Pereiti prie turinio

Pascal duomenų perskaitymas


Rekomenduojami pranešimai

Sveiki, gal kas gali padėti perskaityti duomenis iš:

 

3
Varššuva-Praha    	3
Train110    	8 38
Train110    	8 14
Train407    	11 5
Praha-Viena      	5
Train60477  	6 50
Train73 		6 04
Train75 		6 18
Train77 		4 43
Train173    	4 43
Viena-Budapeštas 	8
Train463    	2 45
Railjet41   	2 38
Train10467  	2 23
Railjet49   	2 28
Train2821   	2 38
Train935    	2 23
Railjet61   	2 38
Railjet63   	2 23

 

Bandau šitaip, bet nesigauna:

program Bevardë17;
type traukiniai = record
  	etapas : string[20];
  	traukinys : string[15];
  	val : integer;
  	min : integer;
  	k : integer;
	end;
	mas = array[1..100] of traukiniai;
{---------------------------------------}
procedure skaitymas(var n : integer; var a : mas);
var duom : text;
	i : integer;
begin
assign(duom, '461Duomenys.txt');
reset(duom);
ReadLn(duom, n);
for i:=1 to n do
 begin
  ReadLn(duom, a[i].etapas, a[i].k);
  WriteLn(a[i].etapas, a[i].k);
  for i:=1 to a[i].k do
begin
	ReadLn(duom, a[i].traukinys, a[i].val, a[i].min);
	WriteLn(a[i].traukinys, a[i].val, a[i].min);
end;
 end;
end;

 

Gaunu štai tokį išspausdinimą:

http://ikelk.lt/i/140482/o_be0399eb3b.JPG

Redagavo unrixas1
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Bet vistiek negerai, dabar taip pamasčiau, nes tame vidiniame cikle val ir min ant viršaus užrašo, kai kiekvieną kartą iš naujo prasideda didysis ciklas.

 

Pvz:

http://ikelk.lt/i/140489/o_5c3f723323.JPG

Redagavo unrixas1
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Bet vistiek negerai, dabar taip pamasčiau, nes tame vidiniame cikle val ir min ant viršaus užrašo, kai kiekvieną kartą iš naujo prasideda didysis ciklas.

 

Pvz:

http://ikelk.lt/i/140489/o_5c3f723323.JPG

 

 

As naudociau masyvus paciam irase, o kiekviena etapa atskira masyvo irasa. Arba daryti, kad visi traukiniai yra vienam iraso masyve, bet to masyvo traukinio numeris turi prasideti nuo praeito etapo, pavyzdziui jei pirmas etapas turi 3 traukinius, tai kita etapo pirma traukini rasyti jau 4, tai reiskias antro etapo paskutinis traukinys isirasytu 3+n. Tikiuos kazka supratai :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

As naudociau masyvus paciam irase, o kiekviena etapa atskira masyvo irasa. Arba daryti, kad visi traukiniai yra vienam iraso masyve, bet to masyvo traukinio numeris turi prasideti nuo praeito etapo, pavyzdziui jei pirmas etapas turi 3 traukinius, tai kita etapo pirma traukini rasyti jau 4, tai reiskias antro etapo paskutinis traukinys isirasytu 3+n. Tikiuos kazka supratai :D

Ačiū už atsakymą,bet kažkaip sunkiai man čia gaunasi, gal galėtum programiškai šiek tiek aprašyt tą procedūrą, kad bent mintį pagaučiau?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ačiū už atsakymą,bet kažkaip sunkiai man čia gaunasi, gal galėtum programiškai šiek tiek aprašyt tą procedūrą, kad bent mintį pagaučiau?

 

Turiu labai panašia/

4 
Gailuva 3 
Dubysos universitetas 45 
Petro universitetas 55 
Baltijos kolegija 9 
Bambukija 1 
Bambuko muzikos akademija 35 
Guglija 2 
Medienos apdorojimo kolegija 14 
Turizmo kolegija 13 
Baltieji lokiai 4 
Baltasis universitetas 10 
Pilkasis universitetas 15 
Rudoji kolegija 8 
Spalvos kolegija 99

 

Type universitetas=record
           vardas:string[15];
           pav:array[1..100] of string[30];
           reit:array [1..100] of integer;
           sum:integer;
           end;
   geriausi=record
           vardas:string[15];
           pav:string[30];
           reit:integer;
           end;
   mas=array[1..100] of universitetas;
   ger=array[1..100] of geriausi;
//Skaitymo procedure------------------------------------------------------------
Procedure skaitymas(var a:mas; var n:integer);
var i,j:integer; fd:text;
   begin
       assign(Fd, 'duom.txt'); reset(fd);
       Readln(fd, n);
           For i:=1 to n do
               begin
                   Readln(fd, a[i].vardas, a[i].sum);
                       for j:=1 to a[i].sum do readln(fd, a[i].pav[j], a[i].reit[j]);
               end;
       Close(Fd);
   end;
//geriausiu universitetu atrinkimas
Procedure atrinkimas(var b:ger; a:mas; n:integer);
var i,j,x,max:integer;
   begin
       For i:=1 to n do
           begin
               max:=0;
                   For j:=1 to a[i].sum do
                       begin
                           If a[i].reit[j]>max then
                               begin
                                   max:=a[i].reit[j];
                                   x:=j;
                               end;
                       end;
               b[i].vardas :=a[i].vardas;
               b[i].pav :=a[i].pav[x];
               b[i].reit :=a[i].reit[x];
           end;
   end;
//Rusiavimo ir isvedimo procedura
Procedure rusiavimas(b:ger; n:integer);
var i,j:integer; fr:text; x:geriausi;
   begin
       assign(fr, 'rezu.txt'); rewrite(fr);
           For i:=1 to n do
               begin
                   For j:=i to n do
                       begin
                           if b[i].reit<b[j].reit then
                               begin
                                   x:=b[i];
                                   b[i] :=b[j];
                                   b[j] :=x;
                               end;
                       end;
               end;
           For i:=1 to n do Writeln(fr, b[i].vardas, b[i].pav, b[i].reit);
       close(fr);
   end;
Var b:ger; n:integer; a:mas;

begin
 skaitymas(a,n);
 atrinkimas(b,a,n);
 Rusiavimas(b,n);
end.

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.

  • Naujausios temos

  • Karštos temos

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