Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki visiems. Yra viena problemėle su Pascal. Gal jus žinote, kaip galima surikiuoti pagal mažejimo tvarka, kur kaina(paskutinis stulpelis).

 

Mano kodas:

 

program Noname0;
   var i,j,n:integer;
       puslapiai,kaina:array[1..1000] of real;
       Df,Rf:text;
       suma,tmp:real;
       vp:array[1..100] of string[10];
begin
   suma:=0;
   Assign(Df,'duomen.txt');
   Reset(Df);
   Readln(Df,n);
   for i:=1 to n do
   begin
   readln(Df,vp[i],puslapiai[i],kaina[i]);
   suma:=suma+kaina[i];
   end;
   Close(Df);
   Assign(Rf,'rez.txt');
   Rewrite(Rf);
   for i:=1 to n do
   Writeln(Rf,vp[i],puslapiai[i]:3:2,'  ', kaina[i]:3:2);
   writeln(Rf,'Is viso: ',suma:3:2);
   Close(Rf);
end.

 

 

Duomenu failas:

 

4
Knyga1    156  38.99
Knyga2    176  58.97
Knyga3    59   8.95
Knyga4    297  28.96

 

Bučiau labai dekingas, jeigu jus galėtumėte tai padaryti mano kode. Iš anksto ačiu

Redagavo Dmitrijus
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveikas, pateikiu paprastą rikiavimo algoritmą :) šiaip siūlyčiau duomenis saugoti irašo tipo masyve būtų lengviau surikiuoti. Šis kodas rikiuoja tiek didėjimo, tiek mažėjimo tvarka, tik ženklą pakeisti reikia :)

  for i := 1 to n-1 do

   for j := i+1 to n do

 	if a[i] > a[j]

   	then begin

          	x := a[i];

          	a[i] := a[j];

          	a[j] := x;

        	end;

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveikas, pateikiu paprastą rikiavimo algoritmą :) šiaip siūlyčiau duomenis saugoti irašo tipo masyve būtų lengviau surikiuoti. Šis kodas rikiuoja tiek didėjimo, tiek mažėjimo tvarka, tik ženklą pakeisti reikia :)

  for i := 1 to n-1 do

   for j := i+1 to n do

 	if a[i] > a[j]

   	then begin

          	x := a[i];

          	a[i] := a[j];

          	a[j] := x;

        	end;

 

Šį kodą aš žinau, bet nelabai moku panaudoti jį mano programoje.O dėl įrašu, tai aš žinau, bet šioje programoje negalima jų naudoti.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nepratikrinau tai gali būti keletas menkų sintaksės ar panašių klaidelių:

program Noname0;
   var i,j,n:integer;
       puslapiai,kaina:array[1..1000] of real;
       Df,Rf:text;
       suma,tmp:real;
       vp:array[1..100] of string[10];
       laikPus, laikKain:real;
       laikVP:string[10];
begin
   suma:=0;
   Assign(Df,'duomen.txt');
   Reset(Df);
   Readln(Df,n);
   for i:=1 to n do
   begin
   readln(Df,vp[i],puslapiai[i],kaina[i]);
   suma:=suma+kaina[i];
   end;
   Close(Df);
   //Rusiavimas
   for j:=1 to n do
   for i:=1 to n-1 do
       if kaina[i+1] > kaina[i] then
           begin
           laikKain := kaina[i+1];
           kaina[i+1] := kaina[i];
           kaina[i] := laikKain;

           laikPus := puslapiai[i+1];
           puslapiai[i+1] := puslapiai[i];
           puslapiai[i] := laikPus;

           laikVP := vp[i+1];
           vp[i+1] := vp[i];
           vp[i] := laikVP;
           end;
   //Rusiavimo pabaiga
   Assign(Rf,'rez.txt');
   Rewrite(Rf);
   for i:=1 to n do
   Writeln(Rf,vp[i],puslapiai[i]:3:2,'  ', kaina[i]:3:2);
   writeln(Rf,'Is viso: ',suma:3:2);
   Close(Rf);
end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tiesiog įsivesk dar vieną kintamąjį kad ir max:integer; jam priskyrk mažiausią reikšmę max := -1, tada tiesiog nusiskaitymų cikle ieškok didžiausios verstės.

   for i:=1 to n do
   begin
   readln(Df,vp[i],puslapiai[i],kaina[i]);
   suma:=suma+kaina[i];
   If puslapiai[i] > max then max := puslapiai[i];
   end;

Ir tada į rezultatų failą gali įrašytį kintamąjį max ;)

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