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

Задаю три массива: вопросы викторины, верные ответы, ответы, которые будут введены участниками. Ответы в основном из одного - двух слов. Все вопросы и ответы ввожу присваиванием, но когда пишу цикл на ввод ответа, то первый раз цикл срабатывает нормально, а последующие разы программа не требует ввода, то есть оператор 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 в цикле?
Гость
Ответ(ы) на вопрос:
Гость
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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы