Где ошибка var x,y,i,s,d,n,p:integer; begin randomize; for i:=1 to 10 do begin x:=random(8)+2; y:=random(8)+2; p:=0; n:=0; writeln ('Сколько будет ',x,'*',y,'='); read (s); if s=x*y then p:=p+1; begin writeln (':) Правильно'); d:=d+1; end; if s<>x*y then n:=n+1; begin writeln (':( Неправильно,',x,'*',y,'=',x*y); end; WriteLn('Количество правильных ответов: ',p); WriteLn('Количество неправильных ответов: ',n); if (d=10) or (d=9) then writeln ('Ваша оценка за тест 5'); if (d=8) or (d=7) then writeln ('4'); if (d=6) or (d=5) then writeln ('3'); if (d=4) or (d=3) or (d=2) or (d=1) or (d=0) then writeln ('2'); end; end.
Ошибка в данном коде находится в следующих строках:
Вместо "if s<>xy" нужно написать "if s<>xy" для сравнения значений.Необходимо добавить "end;" после блока условия "if s=xy" и "if s<>xy", чтобы правильно завершить каждый блок.
Исправленный код:
var x, y, i, s, d, n, p: integer; begin randomize; for i := 1 to 10 do begin x := random(8) + 2; y := random(8) + 2; p := 0; n := 0; writeln ('Сколько будет ', x, '*', y, '='); read (s); if s = x * y then begin p := p + 1; writeln (':) Правильно'); d := d + 1; end; if s <> x * y then begin n := n + 1; writeln (':( Неправильно, ', x, '*', y, '=', x * y); end; WriteLn('Количество правильных ответов: ', p); WriteLn('Количество неправильных ответов: ', n); if (d = 10) or (d = 9) then writeln ('Ваша оценка за тест 5'); if (d = 8) or (d = 7) then writeln ('4'); if (d = 6) or (d = 5) then writeln ('3'); if (d = 4) or (d = 3) or (d = 2) or (d = 1) or (d = 0) then writeln ('2'); end; end.
Ошибка в данном коде находится в следующих строках:
Вместо "if s<>xy" нужно написать "if s<>xy" для сравнения значений.Необходимо добавить "end;" после блока условия "if s=xy" и "if s<>xy", чтобы правильно завершить каждый блок.Исправленный код:
varx, y, i, s, d, n, p: integer;
begin
randomize;
for i := 1 to 10 do
begin
x := random(8) + 2;
y := random(8) + 2;
p := 0;
n := 0;
writeln ('Сколько будет ', x, '*', y, '=');
read (s);
if s = x * y then
begin
p := p + 1;
writeln (':) Правильно');
d := d + 1;
end;
if s <> x * y then
begin
n := n + 1;
writeln (':( Неправильно, ', x, '*', y, '=', x * y);
end;
WriteLn('Количество правильных ответов: ', p);
WriteLn('Количество неправильных ответов: ', n);
if (d = 10) or (d = 9) then
writeln ('Ваша оценка за тест 5');
if (d = 8) or (d = 7) then
writeln ('4');
if (d = 6) or (d = 5) then
writeln ('3');
if (d = 4) or (d = 3) or (d = 2) or (d = 1) or (d = 0) then
writeln ('2');
end;
end.