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.