Pereiti prie turinio

Padekite surasti klaida


Rekomenduojami pranešimai

Sveiki, turiu parasyti programa 2010 VBE uzduotis. Uzduoties reikalavimus ir duomenu file'a ikeliau.

 

Padekite surasti klaida. Kame cia problema?

 

program varzybos;
type sarasas=record
               vardas:string[18];
               laikas:integer;
       end;
       mas=array[1..50] of sarasas;

//Surandame geriausią bėgiką.
function Geriausias(k:integer; GG:mas):integer;
var i,nr,m:integer;
begin
       nr:=0; m:=0;
       for i:=1 to k do
       if GG[i].laikas > m
       then m:=GG[i].laikas;

       for i:=1 to k do
       if GG[i].laikas <= m then
       begin
       m:=GG[i].laikas;
       nr:=i;
       end;
       Geriausias:=nr;
end;

//Perrikiojame masyvą ir pašaliname geriausią bėgiką
procedure Perrikiojame(id,k:integer; var GG:mas);
var i:integer;
begin
       for i:=id to k-1 do
       begin
       GG[i].vardas:=GG[i+1].vardas;
       GG[i].laikas:=GG[i+1].laikas;
       end;
end;

//Surikiuojame masyvą laiko didėjimo tvarka
procedure Rikiavimas(k:integer; var G:mas);
var i,j,laikas:integer;
       vardas:string[20];
begin
       for i:=1 to k-1 do
       for j:=i+1 to k do
       if G[i].laikas > G[j].laikas then
       begin
               vardas:=G[j].vardas;
               G[j].vardas:=G[i].vardas;
               G[i].vardas:=vardas;
               laikas:=G[j].laikas;
               G[j].laikas:=G[i].laikas;
               G[i].laikas:=laikas;
       end;
end;
//Nuskaituome failą.
procedure Duomenys(var kk:integer; var G:mas);
var i,j,n,k,id,ii,min,sek,kiek:integer;

       F1:text;
       GG:mas;
begin
       assign(F1,'U2.txt');
       reset(F1);
       readln(F1,n);
       ii:=0;
       for i:=1 to n do
       begin
       readln(F1,k);
       for j:=1 to k do
       begin
               readln(F1,GG[j].vardas,min,sek);
               GG[j].laikas:=(min*60)+sek;
       end;
       //Apskaičiuojame kiek reikės geriausių rezultatų iš grupės.
      kiek:=k div 2;
       //Skaičiuos kiek bus išviso geriausių bėgikų.
       kk:=kk+kiek;
       //Ciklas vyks tiek kiek reikės atrinkti iš grupės geriausių bėgikų.
       while kiek > 0 do
       begin
               ii:=ii+1;
               id:=Geriausias(k,GG); //Surandame geriausio bėgiko indeksą masyve.
               G[ii].vardas:=GG[id].vardas; //Priskiriame kitam masyvui geriausią rezultatą.
               G[ii].laikas:=GG[id].laikas;
               Perrikiojame(id,k,GG); //Pašaliname iš masyvo geriausią rezultatą.
               kiek:=kiek-1;
       end;
       end;
       close(F1);
end;
//Įrašome failą.
procedure Rezultatas(k:integer; G:mas);
var i:integer;
       F2:text;
begin
       assign(F2,'U2rez.txt');
       rewrite(F2);
       for i:=1 to k do
       writeln(F2,G[i].vardas,' ',G[i].laikas div 60,' ',G[i].laikas mod 60);
       close(F2);
end;
//Programa
var G:mas;
       k:integer;
begin
       Duomenys(k,G);
       Rikiavimas(k,G);
       Rezultatas(k,G);
end.

post-57949-0-28115500-1360931494_thumb.jpg

U2.txt

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Su duomenų failais reikėtų atsargiau... Iškarto patikrinęs duomenų failą ir klaidą radau, jeigu pas save masyvuose skiri 18 simbolių vardui, tai manau tiek simbolių ir reikėtų padėti savo duomenų faile. O "TAB" nepadeda 6 tarpų, jis tik padeda vieną ilgą tarpą. Tikiuosi mintį supratai... ;)

U2.txt

Redagavo audrius^
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Su duomenų failais reikėtų atsargiau... Iškarto patikrinęs duomenų failą ir klaidą radau, jeigu pas save masyvuose skiri 18 simbolių vardui, tai manau tiek simbolių ir reikėtų padėti savo duomenų faile. O "TAB" nepadeda 6 tarpų, jis tik padeda vieną ilgą tarpą. Tikiuosi mintį supratai... ;)

 

 

Dekui, supratau dabar.

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