В дополнение.
read и readln отличаются тем, что read оставляет в буфере ввода код окончания строки и следующий оператор ввода начинает читать поток ввода с этого кода, а readln удаляет из входного потока этот код. Следующая процедура ввода начнёт ввод данных со следующей строки.
Другие языки программирования и технологии
объясните пожалуйста тупому челу что означают операторы read и readln в pascal. Только прошу что бы понятно было.
по readln курсор переводится на следующую строку
по read - нет.. . продолжает в этой же строке
writeln и write - то же самое
по read - нет.. . продолжает в этой же строке
writeln и write - то же самое
Для ввода данных с клавиатуры или из файла. Числа или строка, введенные с клавиатуры, после нажатия клавиши Enter переводятся в двоичный вид и засылаются в указанные в этих операторах переменные. На время ожидания ввода с клавиатуры выполнение программы приостанавливается. Из файла нужные значения читаются сразу же.
смотри вот:
writeln('введите число а'); // ввели число а
readln(a); // чтение а с клавиатуры
writeln('введите число а'); // ввели число а
readln(a); // чтение а с клавиатуры
Это две процедуры. Их можно использовать как для чтения символов с клавиатуры, так и для чтения из файла. Все зависит от того, как оформить (написать) эти процедуры.
Предположим что вам надо считывать ввод с клавиатуры. Но в начале надо поставить какую либо задачу для ее решения.
Задача: надо ввести с клавиатуры данные о человеке и положить их в переменные.
Данные:
- Фамилия
- Имя
- Отчество
- день рождения
- месяц роджения
- год рождения
Создаем 6-ть переменных, в которых будет хранится инфо о человеке.
...
var
Name1, Name2, Name3: String[20];
day, month, year: Word;
...
Далее, чтобы считывать с клавиатуры эти данные и выводить их на экран, а потом помещать в наши переменные, мы используем процедуру Read два раза.
...
Read(Name1, Name2, Name3);
Read(day, month, year);
...
Чтобы каждая процедура Read все правильно воспринимала, надо вводить данные через пробел, таким образом мы отделяем слова и они раздельно помещаются в три переменные Name1, Name2, Name3. После ввода трех переменных надо нажать "Enter" и тогда первая процедура Read закончит свою работу и управление в программе перейдет ко второй процедуре Read.
После ввода данных во все шесть переменных, результат на экране будет таким -
Иванов Иван Иванович 20 07 2003 и это выглядит не очень красиво, но если мы будем использовать процедуру ReadLn, тогда результат станет другим -
Иванов Иван Иванович
20 07 2003
Т. е. при процедуре Read ввод на экране происходит в одну строку, а при использовании ReadLn, при нажатии "Enter" ввод следующих данных во второй процедуре ReadLn происходит на новой строке.
Так понятно?
Предположим что вам надо считывать ввод с клавиатуры. Но в начале надо поставить какую либо задачу для ее решения.
Задача: надо ввести с клавиатуры данные о человеке и положить их в переменные.
Данные:
- Фамилия
- Имя
- Отчество
- день рождения
- месяц роджения
- год рождения
Создаем 6-ть переменных, в которых будет хранится инфо о человеке.
...
var
Name1, Name2, Name3: String[20];
day, month, year: Word;
...
Далее, чтобы считывать с клавиатуры эти данные и выводить их на экран, а потом помещать в наши переменные, мы используем процедуру Read два раза.
...
Read(Name1, Name2, Name3);
Read(day, month, year);
...
Чтобы каждая процедура Read все правильно воспринимала, надо вводить данные через пробел, таким образом мы отделяем слова и они раздельно помещаются в три переменные Name1, Name2, Name3. После ввода трех переменных надо нажать "Enter" и тогда первая процедура Read закончит свою работу и управление в программе перейдет ко второй процедуре Read.
После ввода данных во все шесть переменных, результат на экране будет таким -
Иванов Иван Иванович 20 07 2003 и это выглядит не очень красиво, но если мы будем использовать процедуру ReadLn, тогда результат станет другим -
Иванов Иван Иванович
20 07 2003
Т. е. при процедуре Read ввод на экране происходит в одну строку, а при использовании ReadLn, при нажатии "Enter" ввод следующих данных во второй процедуре ReadLn происходит на новой строке.
Так понятно?
Похожие вопросы
- Объясните пожалуйста, что означает эта строка WRITE('ВВЕДИTE ЭЛЕМЕНТ МАССИВА '); READLN(MAS[1])?
- Объясните пожалуйста вот этот алгоритм в Free Pascal
- Зачем в Паскале есть read и readln, если read тоже переводит строку, хотя по идее не должен?
- Объясните, пожалуйста, как написать программу в Pascal'e, которая определяет, находится ли координата в ромбе или нет.
- Помогите, пожалуйста, написать текст программы на языке высокого уровня (Basic или Pascal)!
- Хочу начать изучать язык программирования: Pascal. C чего начать? (Книги понятно, а нужен ли какой-то блокнот?)
- что в программе "Торент" делоют "сиды" и "пиры" их назначение,для чего нужны и т д (только понятно объясните пожалуйста)
- visual c++ объясните, пожалуйста, что означает каждая строчка. задание: найти число различных элементов в массиве
- Скиньте пожалуйста рабочий код для поиска обратной матрицы методом гаусса, в Pascal ABC?
- Для чего нужен указатель this и каков его принцип работы? Объясните пожалуйста самым простым языком, как 2+2.