Pereiti prie turinio

Java skaitymas iš failo


Rekomenduojami pranešimai

Sveiki! jei turiu failiuką :

3 5 1..

+ * +

6 4 4..

- - -

1 2 4..

+ / +

.. .. ..

ir tokiu labai daug. Reikia skaiciuoti vertikaliai. Koks butu geriausias ir greiciausias atlikimo budas ? :huh:

 

 

Vienas budas : kisti viska i dideli dvimati masyva ? bet efektyvumas mazas..

Redagavo Lauris01
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nematau kuom dvimatis masyvas čia netiktų. 100K x 10 masyvas (100K formulių, 10 vidutinis formulės ilgis) tau neužtruks nė sekundės, nebent kažkaip keistai failą skaitysi.

 

Pasiūlymas toks:

Nuskaityk į 2d char masyvą, transponuok, kad gautum horizontalų pavidalą, ir naudok kokią biblioteką skaičiavimui (pvz JEval)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jeigu reikia skaičiuoti pagal ženklų pateikimo tvarką, t.y. jei:

 

5
+
1
*
2

lygu (5 + 1) * 2 = 12, tai nėra prasmės jokiam dvimačiam masyvui. Jeigu nori suskaičiuoti reiškinio reikšmę, viso labo reikia trijų eilučių – dabar suskaičiuoto rezultato (a), operacijų (op) bei antrojo operando (b). O algoritmas paprastas:

 

int a[];
char op[];
int b;
a = {nusiskaitai pirmą eilutę};
while ({yra ką skaityti}) {
   op = {nusiskaitai operacijų eilutę};
   b = {nusiskaitai antrojo operando eilutę};
   for (i = 0:length(a) - 1) {
       if (op[i] == '+') {
           a[i] += b[i]; 
       } else if (op[i] == '*') {
           a[i] *= b[i];
       } else if (...) { ... } 
   }
}

Redagavo wi_lius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Naudojant ši metoda iskilo kita didele problema.. turiu text faila :

DEJA, cia rasant matricos nesimato..

5 + 3 = 8

- + +

4 - 2 = 2

= = =

1 + 5 = 9

 

jei ji nuskaitau i dvimati masyva, veliau transportuoju, gaunu:

DEJA, cia rasant matricos nesimato..

 

5 - 4 = 1

+ + +

3 2 5

= + = = =

8 2 9

 

+ =

 

ir jei bandau skaičiuoti, gaunasi klaida, nes dideliam masyve tie ženklai kurie nusikelia žemiau isirašo ant kitu ženklų..

 

Patarimą duosiu, jei turi kokių klausimų, geriau rašyk čia, greičiau atsakys.

Dekui!

Redagavo Lauris01
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...