Register

OR

Do you already have an account? Login

Login

OR

Don't you have an account yet? Register

Newsletter

Submit to our newsletter to receive exclusive stories delivered to you inbox!

Задаю три массива: вопросы викторины, верные ответы, ответы, которые будут введены участниками. Ответы в основном из одного - двух слов. Все вопросы и ответы ввожу присваиванием, но когда пишу цикл на ввод ответа, то первый раз цикл срабатывает нормально, а последующие разы программа не требует ввода, то есть оператор read не работает. Что я сделала не так? Вот программа:

program m81337154u;
var i: integer;
ans:array [1..12] of string;
quest:array [1..12] of string;
answ:array [1..12] of string;
begin
writeln ('');
ans[1]:='';
ans[2]:='';
ans[3]:='';
ans[4]:='';
ans[5]:='';
ans[6]:='';
ans[7]:='';
ans[8]:='';
ans[9]:='';
ans[10]:='';
ans[11]:='';
ans[12]:='';
quest[1]:='';
quest[2]:='';
quest[3]:='';
quest[4]:='';
quest[5]:='';
quest[6]:='';
quest[7]:='';
quest[8]:='';
quest[9]:='';
quest[10]:='';
quest[11]:='';
quest[12]:='';
for i:=1 to 12 do begin
writeln ('Вопрос номер ', i);
writeln (quest[i]);
write ('Ваш ответ - ');
read (answ[i]);
if answ[i]=ans[i] then
writeln ('Ответ верный') else
writeln ('Ответ неверный, попробуйте снова');
writeln;
end;
writeln ('Congrats');
end.

Где-то есть ошибка? Или паскаль никогда не повторяет read в цикле?

более месяца назад
Просмотров : 22    Ответов : 1   

Лучший ответ:

program p;
var i: integer;
quest:array [1..2] of string;
ans:array [1..2] of string;
answ:array [1..2] of string;
begin
quest[1]:='20*2=';
quest[2]:='3*5=';
ans[1]:='40';
ans[2]:='15';
for i:=1 to 2 do begin
writeln ('Вопрос номер ', i);
writeln (quest[i]);
write ('Ваш ответ - ');
readln (answ[i]);
while answ[i]<>ans[i] do
 begin
 writeln ('Ответ неверный, попробуйте снова');
 readln(answ[i]);
 end;
writeln ('Ответ верный');
writeln;
end;
writeln ('Congrats');
end.

Пример:
Вопрос номер 1
20*2=
Ваш ответ - 40
Ответ верный

Вопрос номер 2
3*5=
Ваш ответ - 10
Ответ неверный, попробуйте снова
14
Ответ неверный, попробуйте снова
15
Ответ верный

Congrats

более месяца назад
Ваш ответ:
Комментарий должен быть минимум 20 символов
Чтобы получить баллы за ответ войди на сайт





Вы можете из нескольких рисунков создать анимацию (или целый мультфильм!). Для этого нарисуйте несколько последовательных кадров и нажмите кнопку Просмотр анимации.


Другие вопросы: