Где ошибка
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.

11 Сен 2019 в 05:42
236 +1
1
Ответы
1

Ошибка в данном коде находится в следующих строках:

Вместо "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.
20 Апр 2024 в 01:45
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир