Пропускается readln в цикле. В чем фокус? - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Код:
Program SPISOK;
uses crt;
type
sp=record
sur,nam,pat:string[20];
age:integer;
sex:Char;
end;
var
file_name:string[10];
f:file of sp;
str:sp;
i:integer;
begin
clrscr;
writeln ('Введите логин');
readln (file_name);
assign (f,file_name+'.note');
rewrite(f);
repeat
with str do begin
write ('Введите фамилию-');
readln (sur);
write ('Введите имя-');
readln (nam);
write ('Введте отчество-');
readln (pat);
write ('Введите возраст-');
readln (age);
write ('Введите пол (м/ж)-');
repeat read (sex); until (sex='м') or (sex='ж');
writeln;
end;
write (f,str);
writeln ('Для продолжения введите 1,');
write ('для того чтобы закончить запись введите 0:');
read (i);
until i=0;
close (f);
end.
вроде все визуально норм. но на втором круге цикла получаем шнягу, как на скриншоте, слипаются две строчки ввоа. Беда-помогите.

Решение задачи: «Пропускается readln в цикле. В чем фокус?»

textual
Листинг программы
Program SPISOK;
uses crt;
type
sp=record
sur,nam,pat:string[20];
age:integer;
sex:Char;
end;
var
file_name:string[10];
f:file of sp;
str:sp;
i:integer;
begin
clrscr;
writeln ('Введите логин');
readln (file_name);
assign (f,file_name+'.note');
rewrite(f);
repeat
with str do begin
writeln ('Введите фамилию-');
readln (sur);
writeln ('Введите имя-');
readln (nam);
writeln ('Введте отчество-');
readln (pat);
writeln ('Введите возраст-');
readln (age);
writeln ('Введите пол (м/ж)-');
repeat readln (sex); until (sex='м') or (sex='ж');
writeln;
end;
write (f,str);
writeln ('Для продолжения введите 1,');
write ('для того чтобы закончить запись введите 0:');
readln (i);
until i=0;
close (f);
end.

Объяснение кода листинга программы

  1. Создание формы с полями для ввода информации о пользователе.
  2. Запрос на ввод логина пользователя.
  3. Формирование имени файла для записи данных.
  4. Открытие файла для записи информации о пользователе.
  5. Проверка существования файла и его открытие для записи данных.
  6. Ввод информации о пользователе в файл.
  7. Повторный запрос на ввод информации о пользователе до тех пор, пока пользователь не введет 0.
  8. Закрытие файла после окончания записи информации о пользователе.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы