Цитата:
Сообщение от shrek=)
Мне кажется, что ошибка проста, ведь одна и та же переменная не может принимать несколько значений сразу Думаю and следует заменить на or
И еще, мне кажется, что не стоит так растягивать код условие для проверки ответа и вывода вердикта можно уменьшить и проверьте орфографию
|
И это лишь одно из замечаний.
Перечислю остальные:
1. Начну с модераторского: пожалуйста, давайте названия темам в соответствии с Правилами форума, п.2.1, чтобы модераторам не приходилось самим за Вас придумывать название темы.
2. Ваша программа построена на повторении 10 одинаковых действий. В таком случае в программировании (на любом ЯП) принято пользоваться подпрограммами.
3. Если Вы хотите стать хорошим программистом, то мой Вам совет: выкиньте из головы переходы по меткам! Забудьте о метках совсем - тем более, что здесь они абсолютно не нужны.
4. Зачем Вы присоединяете модуль GraphABC? Вы же графику не употребляете.
В качестве примера - мое решение:
Код:
uses
crt;
const
Q_N:Array[1..10] of String=('Первый','Второй','Третий',
'Четвертый','Пятый','Шестой','Седьмой','Восьмой','Девятый','Десятый');
var
b:Word;
Procedure Question(c,d:Word;i:Integer);
var a:Word;
begin
clrscr;
writeln(Q_N[i]+' вопрос:');
writeln(c,'*',d,' = ?');
readln(a);
clrscr;
if a = c*d then
begin
b:=b+1;
writeln('Ответ = ',a,' правильно')
end
else
writeln('Ответ = ',a,' неправильно');
writeln('Нажмите ENTER');
readln;
end;
BEGIN
b:=0;
Question(4,4, 1);
Question(3,7, 2);
Question(9,7, 3);
Question(8,7, 4);
Question(3,3, 5);
Question(6,6, 6);
Question(5,5, 7);
Question(4,7, 8);
Question(8,8, 9);
Question(9,9,10);
clrscr;
if (b=9) or (b=10) then writeln('Ваша оценка 5') else
if (b=7) or (b= 8) then writeln('Ваша оценка 4') else
if (b=5) or (b= 6) then writeln('Ваша оценка 3') else
writeln('Ваша оценка 2');
readln;
END.
Почувствуйте разницу, для начала - хотя бы в размере кода.