program tabliczka_mnozenia;
uses crt;
var
a, b, c, d, e, f: integer;
poprawny, niepoprawny: string;
znak: char;
label poczatek1, poczatek2;
begin
{a, b = liczby losowane wykorzystywane w dzialaniach
c = wynik przy dzialaniach podany przez uzytkownika
d = wybrana ilosc przykladow do rozwiazania
e = wynik ogolny wszystkich zadan w procentach
f = numer zadania}
randomize;
poprawny:=('Wynik poprawny.');
niepoprawny:=('Wynik niepoprawny, prawidlowy wynik to ');
poczatek1:
f:=0;
e:=0;
clrscr;
writeln('*** Program do cwiczenia tabliczki mnozenia ***');
writeln;
writeln;
writeln;
poczatek2:
writeln('Ile przykladow wyswietlic?');
readln(d);
writeln;
if d<1 then
begin
writeln('Nie obliczyles nawet jednego przykladu! Sproboj obliczyc kilka.');
writeln;
goto poczatek2;
end;
for d:=1 to d do
begin
a:=random(10);
b:=random(10);
f:=f+1;
writeln('Przyklad nr ', f);
writeln(a, ' * ', b, ' = ?');
write('Podaj wynik: ');
read(c);
if c=a*b then
begin
writeln(poprawny);
e:=e+1;
end
else writeln(niepoprawny, a*b);
writeln;
readln;
end;
if e=0 then
begin
writeln('Nie rozwiazales ani jednego przykladu poprawnie! Sproboj jeszcze raz.');
writeln;
goto poczatek2;
end
else
begin
e:=e*100 div d;
write('PODSUMOWANIE: Rozwiazales ', e, '% zadan poprawnie. ');
if e < 50 then writeln('Jest to bardzo slaby wynik.') else
if e < 90 then writeln('Moglo byc lepiej.') else
if e < 100 then writeln('Prawie dobrze.') else
if e = 100 then writeln('Idealnie!');
end;
writeln;
writeln;
writeln;
writeln('Nacisnij klawisz BACKSPACE, aby sprobowac ponownie lub ENTER, aby zakonczyc dzialanie programu.');
znak:=readkey;
if znak=chr(8) then goto poczatek1;
end.