64 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что делает readln в паскале. Процедуры Read и ReadLn

Урок #3 — Ввод/Вывод данных в Pascal – Write(). Writeln(), Read(), Readln() — отличия, примеры использования

Primary tabs

Forums:

В этом уроке мы рассмотрим инструкции (стандартные процедуры ввода/вывода):

Read и Readln

Инструкция read предназначена для ввода с клавиатуры значений переменных (исходных данных). В общем виде инструкция выглядит следующим образом:

где переменнаяы — имя переменной, значение которой должно быть введено с клавиатуры во время выполнения программы.

Приведем примеры записи инструкции read:

При выполнении инструкции read происходит следующее:

  1. Программа приостанавливает свою работу и ждет, пока на клавиатуре будут набраны нужные данные и нажата клавиша Enter.
  2. После нажатия клавиши Enter введенное значение присваивается переменной, имя которой указано в инструкции.

Например, в результате выполнения инструкции

и ввода с клавиатуры строки 21, значением переменной Temperat будет число 21.

Одна инструкция read позволяет получить значения нескольких переменных. При этом вводимые числа должны быть набраны в одной строке и разделены пробелами. Например, если тип переменных а, b и с — real, то в результате выполнения инструкции

и ввода с клавиатуры строки:

переменные будут иметь следующие значения:

Если в строке набрано больше чисел, чем задано переменных в инструкции read, то оставшаяся часть строки будет обработана следующей инструкцией read. Например, в результате выполнения инструкций

и ввода с клавиатуры строки

переменные получат следующие значения:

. Инструкция read (С); присвоит переменной с значение 18.

Readln

Инструкция readln отличается от инструкции read тем, что после выделения очередного числа из введенной с клавиатуры строки и присваивания его последней переменной из списка инструкции readln, оставшаяся часть строки теряется , и следующая инструкция read или readln будет требовать нового ввода.

Например, в результате выполнения инструкции

и вводе с клавиатуры строки

перемнные получат следующие значения:

После чего программа будет ожидать ввода нового числа, чтобы присвоить его переменной с.

Перед каждой инструкцией read или readln следует располагать инструкцию write, для того чтобы подсказать пользователю, какие данные ожидает от него программа .

Write и Writeln

  • Write() — выводит на экран все переданные значения (аргументы передаются через запятую — это могут быть переменные или литералы разных типов).
  • Writeln() — выводит на экран все переданные значения и переводит курсор на новую строку.
  • 3 занятие

    Тема: Ввод – вывод. Операторы Read (Readln), Write (Writeln). Простейшие линейные программы.

    Решим задачу, прокомментировав каждое свое действие в фигурных скобках. Напомним, что комментарий не воспринимается компьютером, а нам он нужен для того, чтобы лучше понять как работает программа.

    Задача. Напишите программу, которая бы очищала экран и вычисляла произведение двух чисел, вводимых пользователем.

    Чтобы лучше понять действие программы, наберите ее на компьютере и проверьте ее действие. Ответьте на вопросы:

      почему программу назвали Proizv2?

    зачем в раздел Uses поместили модуль Crt?

    какое назначение переменных number1, number2, rezult?

    какой тип у этих переменных? что это значит?

    если присвоить переменным number1 и number2 соответственно значение 5 и 7, то какую строчку выдаст компьютер при исполнении последней процедуры Write? Запишите ее в тетрадь.

    в каких строчках у пользователя запрашиваются значения переменных?

    в какой строчке происходит умножение чисел?

  • что делает оператор присваивания в этой программе?
  • Задание. Измените программу так, чтобы она запрашивала у пользователя еще одну переменную и выводила результат произведения трех чисел.

    Операторы Write и WriteLn

    Мы уже использовали операторы Write и WriteLn, но нам необходимо подробнее остановиться на правилах применения этих операторов.

    Write (англ. писать) – оператор, который используется для вывода информации на экран. Оператор WriteLn выполняет то же самое действие, но так как у него есть еще окончание Ln (line – англ. линия, строка), то после вывода на экран нужного сообщения, он дополнительно переводит курсор на следующую строчку.

    Общий вид:
    Write (список выражений)
    WriteLn (список выражений)

    Процедуры Write и WriteLn используются не только для вывода результата, но и для вывода различных сообщений или запросов. Это позволяет вести диалог с пользователем, сообщать ему, когда ему нужно ввести значения , когда он получает результат, когда он ошибся и др.

    Например, при выполнении процедуры WriteLn(‘Найденное число ‘,а), будет напечатана строчка, заключенная в апострофы, а затем выведено значение переменной а.

    Оператор WriteLn можно применить и без параметров. В этом случае напечатается строка, состоящая из пробелов, и курсор будет переведен на другую строку. Это иногда нам нужно для лучшего восприятия ввода данных.

    Операторы Read и ReadLn

    Вспомним, что основное назначение ЭВМ – сэкономить человеческий труд. Поэтому необходимо обеспечить возможность, однажды написав программу, многократно ее использовать, вводя каждый раз другие данные. Такая гибкость в языке обеспечивается операторами Read и ReadLn. Этими операторами вводится информация с клавиатуры.

    Общий вид:
    Read(переменная, переменная. )
    ReadLn(переменная, переменная. )

    При выполнении процедуры Read ожидается ввод перечисленных в скобках значений. Вводимые данные нужно отделить друг от друга пробелами. Присваивание значений идет по очереди.

    Например, если вводятся значения 53 и Х, то при выполнении оператора Read(a,b) переменной а будет присвоено число 53, а переменной Х – буква Х. Причем, отметим, чтобы не было аварийной ситуации, нужно правильно определить тип данных в разделе Var; в нашем случае а:integer, а b:char.

    Читать еще:  Перегрев компьютера. Причины и их устранение. Горячие головы: как охладить компьютер в летний зной Что делать если компьютер горячий

    Особых различий при чтении и записи в использовании операторов Read и ReadLn нет. Часто процедуру ReadLn без параметров применяют в конце программы для задержки: до нажатия на клавишу результат выполнения программы остается на экране. Это очень полезно делать для анализа результатов.

    Примечание. Когда Вы ставите задержку экрана, обратите внимание на предыдущий ввод. Если данные запрашивались процедурой Read задержки не будет.

    Решим задачу, в которой рассмотрим все возможные употребления этих процедур.

    Задача. Найти среднее значение трех чисел.

    Примечание. Чтобы найти среднее значение нескольких чисел, нужно сложить эти числа и сумму разделить на количество этих чисел.

    Наберите текст задачи и внимательно рассмотрите каждую строчку. Имя программы Srednee отражает содержание задачи. Кстати, договоримся о том, чтобы имя программы и имя файла, который содержит эту программу, совпадали. Далее идет подключение модуля Crt. В разделе Var описаны First, Second, Third как переменные целого типа, а Sum – действительного типа. Раздел операторов начинается со стандартной процедуры очистки экрана ClrScr (Clear Screen), которая находится в модуле Crt. Далее оператором Write мы выводим на экран сообщение ‘Введите первое число ‘, получив которое пользователь должен ввести число.

    Теперь компьютер должен считать введенные символы и занести их в переменную First, это произойдет при выполнении следующего оператора ReadLn(First). Затем с помощью оператора Write запрашиваем значения еще двух чисел и считываем их в переменные Second и Third. Затем вычисляем их сумму и присваиваем полученное число переменной Sum. Чтобы найти среднее, нужно теперь полученное число разделить на 3 и сохранить результат в какой-либо переменной.

    Совсем не обязательно описывать еще одну переменную для сохранения результата. Можно, как в нашей программе, значение переменной Sum разделить на 3 и результат опять присвоить той же переменной Sum. Теперь можно вывести результат вычислений на экран с помощью процедуры Write. И, наконец, последняя процедура ReadLn задержит наш вывод на экране до нажатия на клавишу.

    Нажмите клавиши + . Введите значения переменных 5, 7 и 12, на экране увидите следующее:

    Среднее значение 5, 7 и 12 равно 8.00

    Просмотрите внимательно эту строчку и сравните со строчкой вывода результата в нашей программе. Протестируйте программу еще несколько раз для других значений переменных.

    Выберите с учителем задачи для решения из следующего перечня:

      Ввести два числа a и b. С помощью оператора присваивания обменять их значения:
      а) с использованием промежуточной переменной (x:=a; a:=b; b:=x);
      b) без использования промежуточной переменной (a:=a-b; b:=a+b; a:=b-a).

    Составить программу, которая запрашивает у пользователя целое число, действительное число, произвольный символ и строку, а затем все выводит в одной строчке.

    Выведите на экран свою фамилию, имя и отчество, а через две строки – дату своего рождения.

    Написать программу для печати звездочками одной из фигур:
    а) елочки (нескольких елочек);
    б) снежинки (нескольких снежинок);
    в) домика.

    Составить свою визитную карточку.

    Составьте диалог пользователя с компьютером на произвольную тему.
    Например, машина задает два вопроса “Как тебя зовут?” и “Сколько тебе лет?”; после введения имени (Антон) и числа (15) выводит на экран “Да. Через 50 лет тебе уже будет 65 лет, а звать тебя будут не Антон, а дед Антон”

    Запросить у пользователя два числа и вывести на экран результат суммы, разности, произведения и частного этих чисел полным ответом.

    Запросить у пользователя два числа и вывести на экран результат целочисленного деления и остаток от целочисленного деления в виде таблицы. Например, при вводе чисел 5 и 3 на экране должна быть такая таблица:

    Написать программу, которая запрашивает название животного и число, а затем выводит на экран фразу типа “Белка съест 10 грибов” (при вводе слова “белка” и числа 10).

  • Организуйте диалог продавца (компьютер) и покупателя (пользователь) при покупке какого-либо товара по следующей схеме: предложение товара по определенной цене, запрашивание количества покупаемого товара, определение и вывод на экран денежной суммы, которую должен заплатить покупатель за покупку.
  • Процедуры Read и ReadLn

    Процедуры Read и ReadLn выполняют чтение информации из устройства стандартного ввода. В консольных приложениях этим устройством может быть, например, клавиатура (точнее – введённые с клавиатуры данные), в графических приложениях – файл на диске.

    То есть эти процедуры являются “антиподами” процедур Write и WriteLn – выполняют противоположные им действия.

    Процедуры Read и ReadLn выполняют схожие действия. Основное отличие между ними следующее: процедура ReadLn после завершения ввода выполняет перевод строки (а в случае с файлами читает файл строка за строкой). А процедура Read читает данные подряд – без перевода строки.

    В Турбо Паскале я не помню такого (может просто забыл), но в FreePascal ввод с клавиатуры можно выполнять только процедурой ReadLn, а процедура Read почему-то не работает.

    Синтаксис для вывода на консоль:

    procedure Read(Args: Arguments);

    Синтаксис для вывода в файл:

    procedure Read(var F: Text; Args: Arguments);

    Аргументами (Arguments) могут быть переменные разных типов. Если используется несколько переменных, то они перечисляются через запятую. Например:

    Как уже было сказано, при вводе с консоли эти переменные могут быть разных типов. Но, в отличие от процедур Write/WriteLn использовать константы не допускается (и это логично))).

    Читать еще:  Отправка SMS через интернет бесплатно – как отправить СМС с компьютера на телефон МТС, Мегафон, Билайн, Теле2

    ВАЖНО!
    При вводе данных следует учитывать, что в случае, если введённое пользователем значение имеет тип, отличный от типа переменной, в которую вводится это значение, то возникнет ошибка времени выполнения. Если, например, в указанном выше примере пользователь в качестве первого числа введёт вещественное значение (такое как 3.14), то программа завершится аварийно, так как переменная х имеет целый тип.

    При чтении из файла можно работать как с типизированными файлами, так и с текстовыми файлами.

    Если F (см. синтаксис) – это типизированный файл, то переменные, передаваемые как параметры (Args) должны иметь такой же тип, какой указан для файла F. Нетипизированные файлы использовать не допускается. Если параметр F не указан, то предполагается, что чтение выполняется из стандартного устройства ввода.

    Если файл F имеет тип Text, то переменные должны иметь тип Char, Integer, Real или String.

    Если при чтении файла нет данных, доступных для чтения, то в переменную F возвращается пустое значение (0 – для порядковых типов, пустая строка – для строковых).

    В случае использования процедуры ReadLn, то есть при построковом чтении данных, конец строки обозначается определённой последовательностью символов (какими именно – зависит от операционной системы, для DOS/Windows это два символа – #10 и #13).

    Маркер конца строки не является частью прочитанной строки и игнорируется.

    Если во время выполнения процедуры Read/ReadLn происходит ошибка, то генерируется ошибка времени выполнения. Такое поведение не всегда приемлемо (например, во время чтения файла). Поэтому в каких-то случаях генерацию ошибок отключают. Сделать это можно с помощью директивы компилятора .

    В разных отладочных и учебных программах процедуру ReadLn часто используют для того, чтобы консольное приложение не закрылось автоматически после выполнения. Для этого в конце программы просто записывают (как в примере выше):

    То есть просто имя процедуры без параметров. В этом случае программа будет ожидать нажатия клавиши ENTER. Следовательно, программа не завершится, пока не будет нажата клавиша ENTER, и это позволит увидеть результат работы программы. Разумеется, в операционной системе DOS (и подобных) такой проблемы нет. Это актуально только для Windows.

    Как стать программистом 2.0

    Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее.

    Разница между readLn и read

    В языке программирования Pascal применяются такие инструкции, как read и readLn. Что они собой представляют?

    Что представляет собой инструкция read?

    Данная инструкция предназначена для обеспечения ввода с клавиатуры ПК различных значений переменных при использовании языка Pascal. Схема задействования рассматриваемой инструкции выглядит просто: как read («значение переменной»).

    На практике инструкция read применяется в целях обеспечения считывания тех или иных данных из файла и последующего присвоения значений, извлекаемых из соответствующих данных, переменным, что указаны при обращении к процедуре.

    В случае если пользователь ошибся при вводе данных они не соответствуют какому-либо типу переменных, отраженных в инструкции, программа перестает выполнять команды. При этом на экране ПК появляется сообщение о том, что в приложении возникла ошибка.

    Если программист использует несколько инструкций read, то данные будут так или иначе вводиться в одной строке. На следующую переход возможен только при условии, что закончится текущая строка. Вместе с тем считать сведения, размещенные в другой строке, можно посредством инструкции readLn. Рассмотрим ее особенности подробнее.

    Что представляет собой инструкция readLn?

    Сущность инструкции readLn заключается в задании в программе условия, при котором:

    • какое-либо число, вводимое в строку, присваивается последней по инструкции переменной;
    • оставшаяся область строки не обрабатывается программой, в то время как следующая инструкция потребует осуществления нового ввода.

    Так, можно ввести инструкцию:

    readLn (C,D); read (E);

    И если после этого с клавиатуры ввести ряд 1 2 3, то переменная C приобретет значение 1, D — 2. Но присвоение определенного значения для переменной E программа осуществлять не будет, пока пользователь не введет новое число.

    Как и в случае с инструкцией read, при некорректном вводе типа данных пользователем посредством команды readLn программа завершает работу и выдает сообщение о том, что возникла ошибка.

    Сравнение

    Главное отличие readLn от read заключается в том, что первая процедура предполагает осуществление программой перехода к строке файла, следующей за той, в которой прописаны инструкции. Вторая процедура позволяет программе считать данные, размещенные в следующей строке, только с разрешения пользователя — если он нажмет Enter.

    На практике использование инструкции readLn чаще всего осуществляется в целях обеспечения задержки между результатом выполнения приложения и переходом к следующей инструкции. Соответствующая задержка длится до тех пор, пока пользователь не нажмет Enter.

    Определив,в чем разница между readLn и read в языке Pascal, зафиксируем выводы в таблице.

    Что делает readln в паскале. Процедуры Read и ReadLn

    Зарег. на сайте
    Всего: 564
    Новых за месяц: 22
    Новых за неделю: 0
    Новых вчера: 0
    Новых сегодня: 0

    Сегодня нас посетили:

    Я думаю многим это будет интересно)))

    Инструкции read и readln

    Инструкция read предназначена для ввода с клавиатуры значений переменных (исходных данных). В общем виде инструкция выглядит следующим образом:

    read (Переменная1, Переменная2, . ПеременнаяN)

    где переменнаяы — имя переменной, значение которой должно быть введено с клавиатуры во время выполнения программы.

    Читать еще:  Как восстановить Windows при помощи встроенных средств?

    Приведем примеры записи инструкции read:

    При выполнении инструкции read происходит следующее:

    1. Программа приостанавливает свою работу и ждет, пока на клавиатуре будут набраны нужные данные и нажата клавиша .

    2 http://tissot.ua/ купить наручные часы часы купить киев. . После нажатия клавиши введенное значение присваивается переменной, имя которой указано в инструкции.

    Например, в результате выполнения инструкции

    и ввода с клавиатуры строки 21, значением переменной Temperat будет число 21.

    Одна инструкция read позволяет получить значения нескольких переменных. При этом вводимые числа должны быть набраны в одной строке и разделены пробелами. Например, если тип переменных а, ь и с — real, то в результате выполнения инструкции read(a,b,c); и ввода с клавиатуры строки:

    переменные будут иметь следующие значения:

    а = 4,5; b = 23,0; с = 0,17.

    Если в строке набрано больше чисел, чем задано переменных в инструкции read, то оставшаяся часть строки будет обработана следующей инструкцией read http://crystal.lviv.ua crystal crystal. . Например, в результате выполнения инструкций

    и ввода с клавиатуры строки

    переменные получат следующие значения: А=10, B = 25. Инструкция read (С); присвоит переменной с значение 18.

    Инструкция readln отличается от инструкции read тем, что после выделения очередного числа из введенной с клавиатуры строки и присваивания его последней переменной из списка инструкции readin, оставшаяся часть строки теряется, и следующая инструкция read или readin будет требовать нового ввода.

    Например, в результате выполнения инструкции

    и вводе с клавиатуры строки

    переменные получат следующие значения: А=10, B = 25. После чего программа будет ожидать ввода нового числа, чтобы присвоить его переменной с.

    Перед каждой инструкцией read или readin следует располагать инструкцию write, для того чтобы подсказать пользователю, какие данные ожидает от него программа. Например, фрагмент программы вычисления стоимости покупки может иметь вид:

    writeln(‘Введите исходные данные.’);

    write(‘Количество в партии:’);

    Если тип данных, вводимых с клавиатуры, не соответствует или не может быть приведен к типу переменных, имена которых указаны в инструкции read (readin), то программа аварийно завершает работу (инструкции, следующие за read, не выполняются), и на экран выводится сообщение об ошибке.

    Что делает readln в паскале. Процедуры Read и ReadLn

    Приветствую. Сегодня я хотел бы затронуть тему операторов ввода данных.

    Операторов ввода существует всего два. А именно:

    1. read
    2. readln

    Ничего не напоминает? Те, кто внимательно читали предыдущую статью, скажут что эти операторы похожи на операторы вывода. И будут правы! Оператор readln отличается от оператора read только лишь тем, что после ввода данных переводит курсор на следующую строку

    Возьмем для примера задачу №1 из первого урока. В ней, если вы помните, длину и ширину прямоугольника мы непосредственно вбивали в код программы. Сейчас мы немного поколдуем над кодом и сделаем так, чтобы эти данные можно было вводить с клавиатуры каждый раз при запуске программы.

    Для этого вместо куска кода пишем

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

    Заметили, как теперь при запуске программа ждет ввода данных? И пока ввод не будет осуществлен, она не продолжит выполнение. Но согласитесь, это мы с вами знаем, что при запуске программы нужно ввести значения длины и ширины, а кто-то другой, запустив ее, не догадается до этого. Поэтому нам нужно вывести на экран просьбу, что-то вроде “Введите длину”. Для этого используем оператор вывода write. О нем я уже писал в предыдущем уроке.

    Ход ваших рассуждений при составлении программы должен быть примерно следующим:
    1) Мне нужно попросить пользователя ввести значения ширины прямоугольника. Для этого использую оператор вывода: writeln(‘Введите ширину прямоугольника’);
    2) Теперь нужно чтобы программа прочитала это значение. Для этого использую оператор ввода: readln(A);

    Здесь немного остановимся. Возможно у вас возник вопрос: “А что значит буква А в скобках?” Так вот, в скобках вы указываете ту переменную, которой будет присвоено значение, введенное с клавиатуры. В нашем случае ширину мы записываем в переменную А, следовательно и в скобках пишем ее.
    3) Далее мне нужно попросить пользователя ввести длину. По аналогии с первым пунктом:
    writeln(‘Введите длину прямоугольника’);
    4) Считываем введенное значение по аналогии со 2-ым пунктом: readln(B);

    Вот и все, соберем весь код в кучу:

    Запустите программу, посмотрите как она выполняется. На мой взгляд чего-то не хватает. Как думаете? Следует выводить на экран что-то типа “Ответ” или “Периметр = “ перед тем как выведется результат расчета. А то у нас получается, что программа выводит какое-то число, а что за число – поди разбери. Для этого можно пойти двумя путями:

    1) Дописать перед строчкой write(P); строку: write(‘Периметр =’);

    2) Модернизировать предпоследнюю строчку кода write(P) . Делается это следующим образом: пишем оператор write, открываем круглую скобку, в одинарных кавычках пишем ‘Периметр = ‘, ставим запятую и после нее пишем переменную P. Вот как это будет выглядеть: write(‘Периметр = ‘,P);

    Запустите программу, протестируйте ее при разных значениях длины и ширины. Если возникли какие-то вопросы, не стесняйтесь задавать их, контакты для связи со мной находятся здесь. Ну, а если вопросов нет, можете приступать к следующему уроку

    голоса
    Рейтинг статьи
    Ссылка на основную публикацию
    Статьи c упоминанием слов: