Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Program v pascalu-někde mám chybu

Prosím o radu, hlavně těch, kteří jsou ochotni napsat konkrétně jakou. Vypracoval jsem zde program na vylosování určitého počtu žáků ze seznamu. Na začátku je určitý počet žáků, v tomto případě 30. Uživatel vloží počet žáků a program mu náhodně vylosuje jména žáků, kteří mají být zkoušení. Žáci se nesmějí při vylosování opakovat, takže by se nemělo stát, že bude vylosován některý žák dvakrát a vícekrát najednou. Bohužel mi program nevypíše vůbec žádná jména a nevím kde je problém. Můžete někdo poradit, konkrétně? Děkuji předem za odpovědi.

Uses crt;
type zak = record
jmeno,prijmeni:string;
vyber:boolean;
end;

var
A:integer;
pole : array [0..30] of zak;
T:text;
Zkouseni:integer;

procedure Vyber(zaci:integer);
var zak:integer;
P:integer;

begin
randomize;
for P:=1 to A do
begin
repeat
until pole[zak].vyber=false;
pole[zak].vyber:=true;
writeln(pole[zak].prijmeni,' ',pole[zak].jmeno);
end;
end;

begin
assign (T,'C:\Simpas\zaci.txt');
reset(T);

while not eof(T) do
begin
A:=A+1;
readln(T,pole[A].prijmeni);
readln(T,pole[A].jmeno);
pole[A].vyber:=false
end;
close(T);

Write('Zadejte pocet zaku ke zkouseni: ');
readln(Zkouseni);
writeln(' Ke kzouseni jsou tito zaci: ',zkouseni);
readln(zkouseni);
vyber(zkouseni);
readln;

end.

Předmět Autor Datum
Soubor mas skutecne v tomto tvaru? Novotny Karel Koutecký Jaroslav ... Randomize se vola pouze 1x…
Jan Fiala 12.06.2009 19:41
Jan Fiala
Nechce sa mi to citat cele, ale ked nieco nefunguje (co je uplne bezna vec) tak vyvojar nesedi nesta… poslední
MM.. 12.06.2009 19:47
MM..

Soubor mas skutecne v tomto tvaru?

Novotny
Karel
Koutecký
Jaroslav
...

Randomize se vola pouze 1x na zacatku souboru
Nikde nemas funkci Random()
Obsah procedury Vyver() je velmi podivny. Pristupujes k poli podle promenne ZAK, ale tu nikde nemenis
K cemu je tam ten cyklus FOR?

Zkus se zamyslet, co to ma delat a tomu prizpusobit kod v procedure Vyber()

Nechce sa mi to citat cele, ale ked nieco nefunguje (co je uplne bezna vec) tak vyvojar nesedi nestastne na stolicke a nevlhci vreckovky, ale spusti debugger (vo vyvojovom prostredi v ktorom to robis urcite moznost debugovat je) a cast ktora nefunguje sa odkrokuje (da sa breakpoint na nejaku proceduru ktora nerobi to co ma a skontroluje sa kam to leze a ako vyzeraju data v tom momente).

Zpět do poradny Odpovědět na původní otázku Nahoru