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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Karštos temos

×
×
  • Sukurti naują...