
Pascal
Zdravim!
Mam zdrojovy kod:
program LZ;
uses crt;
var subor:text;
i:integer;
procedure menu;
begin
clrscr;
writeln('1-vypis');
end;
procedure vypis;
var f:text;
s:string[50];
begin
clrscr;
assign(f,'h:\LZ\ziaci.txt');
reset(f);
while not eof(f) do begin
readln(f,s);
writeln(s);
end;
close(f);
end;
begin
menu;
writeln('Vyberte si polozku z menu zadanim prislusneho cisla.');
readln(i);
if i=1 then vypis;
end.
Ma to fungovat tak, ze zadanim cisla podla menu sa vykona prislusna procedura. Teda 1 - vypis zoznamu ziakov. Dalsie polozky v menu este nie su hotove. Potreboval by som to urobit vsak tak, aby po zadani a precitani cisla (premenna i)
sa program nevypol, ale aby pokracoval vypisom zoznamu. Uvedeny zdrojovy kod urobi to, ze po precitani cisla sa program vypne a na zoznam sa mozem pozriet len stlacenim Alt+F5. Dufam, ze som to napisal zrozumitelne. Dakujem za pomoc.
Musíš si ošetriť program tak, aby skončil iba po zadaní nejakého preddefinovaného čísla z menu napr. 4.... Čo ja viem koľko tam bude položiek v tom menu. Teraz to máš tak, že program urobí postupne všetky príkazy a príde na koniec - takže skončí.
Napr:
Tak si hoď to volání těch procedur do cyklu s podmínkou na konci. Cyklus se pak bude opakovat tak dlouho, dokudu někdo nezada třeba nulu pro konec...
Nebo to může doladit příkazem GOTO