Pereiti prie turinio

įrašo nuskaitymas nepavyksta,


Rekomenduojami pranešimai

tokia sąlyga:Duomenų failo pirmoje eilutėje įrašytas kelionės pavadinimas ir turistų grupės dydis. Kitose eilutėse - turistų Vardas Pavardė, Asmens kodas, turimų banknotų Kiekis, banknotai, nurodant jų nominalą. (Pvz.: Jonas Petraitis 38808080099 10 500 20 500 100 20 20 20 10 10 50). Parašyti programą, kuri apskaičiuotų, kokias pinigų sumas į kelionę pasiėmė kiekvienas turistas, visa grupė, kiek vidutiniškai pinigų turi grupės narys bei atspausdintų turtingiausiojo pavardę. (jei tokie yra keli – visų jų pavardes). Rezultatų faile atspausdinti kelionės pavadinimą, grupės dydį. Sąrašo pabaigoje atspausdinti turtingiausiojo(-ųjų) pavardę(-es).

kaip nuskaityt kiekvieno banknotu nominalus? Jei kas galit parašykit procedūra įrašo(masyvo) nuskaitymui, daugiau programa aiški. Ačiū iš anksto. :)

Redagavo agnek21
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Hmm,mažu daryti du masyvus,vienas banknotų tipams (10Lt, 20Lt .... ) ir kitą kiek tokių banknotų yra.

Tik aš dabar nesuprantu tų skaičių,kas ten kur ką reiškia,pirmas 10 - turimų banknotų skaičius, toliau eina visi 10 banknotų,skaitai į masyvą,jei toks jau yra,kitam masyve( kur skaičiuoji kiek tokių banknotų yra - padidini vienu), jei tokio banknoto dar nėra masyve,prirašai tiesiog. Nežinau,čia kažką pabanadžiau paaiškint,bet ar kas gausis negarantuoju :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Arba visus į vieną masyvą sudėt ir

 

type irasas = record
.....
masyvas....;
kiek,
suma: integer;
end;


 for i := 1 to irasas. kiek do
   begin
      read(failas, irasas. masyvas[i]);
      irasas. suma := irasas. suma + irasas. masyvas[i];
   end;

 

Čia tik pavyzdys, nes dar ir masyvo visiem įrašams turbūt reikia. Tikiuosi, kad bent į temą parašiau.... :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

program uzduotis;
type asmuo = record
    kazkas,
       pavad, vard, pav : string[10];
       d, akod, bkiek : longint;
    end;
    masyvas = array[1..100] of asmuo;
    mas = array[1..100] of integer;
var A : masyvas;
   B : mas;
{------------------procedura failo nuskaitymui---------------------------------}
procedure skaitymas;
var fd : text;
   i, j, sk : longint;
begin
   assign(fd, 'duomenys.txt');
   reset(fd);
   read(fd, A[1].pavad);
   readln(fd, A[1].d);
   for i := 1 to A[1].d do
       read(fd,A[i].vard, A[i].pav, A[i].akod, A[i].bkiek);
           for j := 1 to A[1].bkiek do
               read(fd, B[j]);
   close(fd);
end;

dabar pabandziau taip tik s vienu turistu tai gerai o kaip padaryt jei ju daugiau?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

duomenys:

'Egle' 3 (keliones pavadinimas ir grupes dydis d)

Jonas Petraitis 38808080099 10 500 20 500 100 20 20 20 10 10 50

Petras Jonaitis 38099820014 8 20 10 50 100 500 10 50 10

Aidas Briedis 38956854245 5 10 20 50 200 100

 

bandysiu daryt su masyvu įrase,

Redagavo agnek21
Nuoroda į pranešimą
Dalintis kituose puslapiuose

program uzduotis;
type asmuo = record
    kazkas,
       pavad, vard, pav : string[10];
       akod: string[11];
       bkiek: integer;
       B: array[1..100] of integer;
    end;

    masyvas = array[1..100] of asmuo;

var A : masyvas;
   pavadinimas: string[10];   //atitdziai pasiziurek, kad butu tiek arba daugiau simboliu pries grup. dydi
   grupDYD: integer;    //visos grupes dydis
   i: integer;

{------------------procedura failo nuskaitymui---------------------------------}
procedure skaitymas(var A: masyvas; var grupDYD: integer; var pavadinimas: string[10]);   //geriau globaliuju kintamuju nenaudok, bus aiskiau.
var fd : text;
   i, j,z, sk: longint;
begin
   assign(fd, 'C:/kel.txt');
   reset(fd);
   Read(fd, pavadinimas);
   ReadLn(fd, grupDYD);          
   for i := 1 to grupDYD do
      begin
         read(fd,A[i].vard, A[i].pav, A[i].akod, A[i].bkiek);
         for z := 1 to A[i].bkiek do
              read(fd, a[i].B[z]);
         ReadLn(fd);                //pereina i nauja eilute, kuria skaitysime cikle
      end;
close(fd);
end;

 begin
   skaitymas(A, grupDYD, pavadinimas);
   for i := 1 to 3 do
     writeln(a[i].vard,a[i].pav,a[i].akod);
   readln;
 end.

 

Duomenų failas: (atidėjau visur kur reikia po 10 simbolių) taip pat asmens kodą įrašiau į string'a, nes mano žiniom į longint neturėjo tilpt :)

 

'Egle'     3 
Jonas     Petraitis 38808080099 10 500 20 500 100 20 20 20 10 10 50
Petras    Jonaitis  38099820014 8 20 10 50 100 500 10 50 10
Aidas     Briedis   38956854245 5 10 20 50 200 100

 

Jeigu dar kils klausimų, rašyk :)

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ą...