Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не читается readln в паскаль

kola kolin Ученик (178), закрыт 5 лет назад
Есть не законченый код для решения квадратного уравнения. Столкнулся с проблемой, если присвоить переменной тип string то readln(переменная) не будет читаться, если заменить на real, тоесть на число, то все работает, дело в том что мне нужно именно буквенное выражение. Что делать?
program n_zigota;

const
awnser_1_1 = 1;
awnser_1_2 = 2;
awnser_1_3 = 3;
awnser_1_4 = 4;

var
a,b,c:real;
users_awnser_1:real;
users_awnser_2:string;

begin

writeln('Все ответы писать цифрами!');
writeln(' ');
writeln('Выберите квадратноe уравнениe: ');
writeln(' ');
writeln('1) ax^2+bx+c=0');
writeln('2) ax^2-bx+c=0');
writeln('3) ax^2+bx-c=0');
writeln('4) ax^2-bx-c=0');
writeln(' ');
write('Квадратное уравнение: ');
read(users_awnser_1);
writeln(' ');

if users_awnser_1 = awnser_1_1 then begin
write('Запишите переменную a: ');
read(a);
write('Запишите переменную b: ');
read(b);
write('Запишите переменную c: ');
read(c);
writeln(' ');
writeln('Ваше уравнение: ',a,'x^2+',b,'x+',c,'=0');
writeln('Верно?');
readln(users_awnser_2);
end
Дополнен 5 лет назад
команда которая не читается находится в самом низу кода перед end
Дополнен 5 лет назад
если есть переменные типа real то не реагирует read с переменной типа string
Дополнен 5 лет назад
тоесть я не могу комбинировать read с переменным string и real в одном коде
Лучший ответ
Άηϑρέΰ ҂ Искусственный Интеллект (180013) 5 лет назад
если ошибок нет, может пролетать .. если ошибки есть - пиши о них.

и да, в моем паскале все норм
Остальные ответы
Gennady Гений (60596) 5 лет назад
Замените все свои Read() на ReadLn() и будет вам счастье.

Фишка в том, что процедура Read() оставляет в буфере клавиатуры смвол перевода строки, который при чтении в строковую переменную и приводит к такому эффекту.

Процедура же ReadLn() очищает буфер клавиатуры полностью. Для проверки достаточно заменить Read(c) на ReadLn(c) и программа остановится в ожидании второго ответа юзера.
Источник: Учите матчасть
Похожие вопросы