Tym razem kompilator pięknie przeszedł przez moduł tylko tym razem problem dotyczy wczytywania danych. Procedura arepeat miała służyć do powtarzania programu. Z nie wyjaśnionych przyczyn program nie reaguje na readln(znak); po wcześniejszej deklaracji w zmiennych lokalnych.
Oto kod.
program ala_ma_kota;
uses crt,rekurencja;
procedure powitanie(var a:integer);
begin
writeln('Wybierz opcje');
writeln('1 - Silnia');
writeln('2 - Fibonacci');
writeln('3 - NWD (odejmowanie)');
writeln('4 - NWD (dzielenie)');
writeln('Opcja numer: '); read(a);
end;
procedure acase(z:integer);
var a,b:integer;
begin
case z of
1:
begin
writeln('Podaj liczbe '); read(a);
writeln('Silnia z liczby ',a,' wynosi ',silniar(a));
end;
2:
begin
writeln('Podaj liczbe '); read(a);
writeln('Wyraz ciagu ',a,' wynosi: ',fibonacci(a));
end;
3:
begin
writeln('Podaj pierwsza liczbe: '); read(a);
writeln('Podaj druga liczbe: '); read(b);
writeln('Najwiekszy wspolny dzielnik z ',a,' i ',b,' wynosi: ',nwddodawanie(a,b));
end;
4:
begin
writeln('Podaj pierwsza liczbe: '); read(a);
writeln('Podaj druga liczbe: '); read(b);
writeln('Najwiekszy wspolny dzielnik z ',a,' i ',b,' wynosi: ',nwddzielenie(a,b));
end;
Else writeln('Bledna opcja.');
end;
end;
procedure wszystko;
var z:integer;
begin
powitanie(z);
acase(z);
end;
procedure arepeat;
var znak:char;
begin
repeat
clrscr;
wszystko;
Delay(5000);
writeln('Czy chcesz powtorzyc program ? (T/N)');
readln(znak);
Until UpCase(znak)='N';
writeln('Koniec programu.');
end;
begin
arepeat;
end.
Za pomoc dziękuje.