Язык программирования паскаль readln
Язык программирования паскаль readln
Приветствую. Сегодня я хотел бы затронуть тему операторов ввода данных.
Ничего не напоминает? Те, кто внимательно читали предыдущую статью, скажут что эти операторы похожи на операторы вывода. И будут правы! Оператор readln отличается от оператора read только лишь тем, что после ввода данных переводит курсор на следующую строку
Возьмем для примера задачу №1 из первого урока. В ней, если вы помните, длину и ширину прямоугольника мы непосредственно вбивали в код программы. Сейчас мы немного поколдуем над кодом и сделаем так, чтобы эти данные можно было вводить с клавиатуры каждый раз при запуске программы.
Для этого вместо куска кода пишем
Попробуйте теперь запустить программу с измененным кодом. На всякий случай напишу весь код:
Заметили, как теперь при запуске программа ждет ввода данных? И пока ввод не будет осуществлен, она не продолжит выполнение. Но согласитесь, это мы с вами знаем, что при запуске программы нужно ввести значения длины и ширины, а кто-то другой, запустив ее, не догадается до этого. Поэтому нам нужно вывести на экран просьбу, что-то вроде «Введите длину». Для этого используем оператор вывода write. О нем я уже писал в предыдущем уроке.
Ход ваших рассуждений при составлении программы должен быть примерно следующим:
1) Мне нужно попросить пользователя ввести значения ширины прямоугольника. Для этого использую оператор вывода: writeln(‘Введите ширину прямоугольника’);
2) Теперь нужно чтобы программа прочитала это значение. Для этого использую оператор ввода: readln(A);
Здесь немного остановимся. Возможно у вас возник вопрос: «А что значит буква А в скобках?» Так вот, в скобках вы указываете ту переменную, которой будет присвоено значение, введенное с клавиатуры. В нашем случае ширину мы записываем в переменную А, следовательно и в скобках пишем ее.
3) Далее мне нужно попросить пользователя ввести длину. По аналогии с первым пунктом:
writeln(‘Введите длину прямоугольника’);
4) Считываем введенное значение по аналогии со 2-ым пунктом: readln(B);
Вот и все, соберем весь код в кучу:
1) Дописать перед строчкой write(P); строку: write(‘Периметр =’);
Запустите программу, протестируйте ее при разных значениях длины и ширины. Если возникли какие-то вопросы, не стесняйтесь задавать их, контакты для связи со мной находятся здесь. Ну, а если вопросов нет, можете приступать к следующему уроку
3 занятие
Решим задачу, прокомментировав каждое свое действие в фигурных скобках. Напомним, что комментарий не воспринимается компьютером, а нам он нужен для того, чтобы лучше понять как работает программа.
Задача. Напишите программу, которая бы очищала экран и вычисляла произведение двух чисел, вводимых пользователем.
Program Proizv2; Uses Crt;<Подключаем модуль Crt> Var number1, <переменная, в которой будет содержаться первое число> number2, <переменная, в которой будет содержаться второе число> rezult <переменная, в которой будет содержаться результат> : integer; Begin ClrScr;<Используем процедуру очистки экрана из модуля Crt> Write (‘Введите первое число ‘); <Выводим на экран символы, записанные между апострофами> Readln (number1); <Введенное пользователем число считываем в переменную number1> Write (‘Введите второе число ‘); <Выводим на экран символы, записанные между апострофами> Readln (number2); <Введенное пользователем число считываем в переменную number2> rezult := number1 * number2; <Находим произведение введенных чисел и присваиваем переменной rezult> Write (‘Произведение чисел ‘, number1, ‘ и ‘, number2, ‘ равно ‘, rezult); <Выводим на экран строчку, содержащую ответ задачи> Readln;<Процедура задержки экрана> End. |
Чтобы лучше понять действие программы, наберите ее на компьютере и проверьте ее действие. Ответьте на вопросы:
Задание. Измените программу так, чтобы она запрашивала у пользователя еще одну переменную и выводила результат произведения трех чисел.
Операторы Write и WriteLn
Мы уже использовали операторы Write и WriteLn, но нам необходимо подробнее остановиться на правилах применения этих операторов.
Общий вид:
Write (список выражений)
WriteLn (список выражений)
Например, при выполнении процедуры WriteLn(‘Найденное число ‘,а), будет напечатана строчка, заключенная в апострофы, а затем выведено значение переменной а.
Оператор WriteLn можно применить и без параметров. В этом случае напечатается строка, состоящая из пробелов, и курсор будет переведен на другую строку. Это иногда нам нужно для лучшего восприятия ввода данных.
Операторы Read и ReadLn
Общий вид:
Read(переменная, переменная. )
ReadLn(переменная, переменная. )
При выполнении процедуры Read ожидается ввод перечисленных в скобках значений. Вводимые данные нужно отделить друг от друга пробелами. Присваивание значений идет по очереди.
Особых различий при чтении и записи в использовании операторов Read и ReadLn нет. Часто процедуру ReadLn без параметров применяют в конце программы для задержки: до нажатия на клавишу результат выполнения программы остается на экране. Это очень полезно делать для анализа результатов.
Примечание. Когда Вы ставите задержку экрана, обратите внимание на предыдущий ввод. Если данные запрашивались процедурой Read задержки не будет.
Решим задачу, в которой рассмотрим все возможные употребления этих процедур.
Задача. Найти среднее значение трех чисел.
Примечание. Чтобы найти среднее значение нескольких чисел, нужно сложить эти числа и сумму разделить на количество этих чисел.
Program Srednee; Uses Crt; Var First, Second, Third : integer; Sum : real; Begin ClrScr; Write (‘Введите первое число ‘); ReadLn(First); Write (‘Введите второе и третье числа через пробел ‘); ReadLn(Second, Third); Sum := First + Second + Third; Sum := Sum/3; Write (‘Среднее значение ‘, First, ‘, ‘,Second, ‘ и ‘, Third, ‘ равно ‘, Sum:5:2); ReadLn; End. |
Теперь компьютер должен считать введенные символы и занести их в переменную First, это произойдет при выполнении следующего оператора ReadLn(First). Затем с помощью оператора Write запрашиваем значения еще двух чисел и считываем их в переменные Second и Third. Затем вычисляем их сумму и присваиваем полученное число переменной Sum. Чтобы найти среднее, нужно теперь полученное число разделить на 3 и сохранить результат в какой-либо переменной.
Совсем не обязательно описывать еще одну переменную для сохранения результата. Можно, как в нашей программе, значение переменной Sum разделить на 3 и результат опять присвоить той же переменной Sum. Теперь можно вывести результат вычислений на экран с помощью процедуры Write. И, наконец, последняя процедура ReadLn задержит наш вывод на экране до нажатия на клавишу.
Среднее значение 5, 7 и 12 равно 8.00
Просмотрите внимательно эту строчку и сравните со строчкой вывода результата в нашей программе. Протестируйте программу еще несколько раз для других значений переменных.
Выберите с учителем задачи для решения из следующего перечня:
Ввод-вывод данных в Pascal
Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.
Откуда или с помощью чего можно ввести данные в программу? Обычно это можно сделать с помощью клавиатуры или из файлов.
Куда можно вывести данные? На экран, в файл, на принтер и др.
Стандартным устройством ввода является клавиатура, а вывода — монитор. Стандартные — значит «работающие по-умолчанию»; т.е. если не указано ничего иного, то программа будет считывать данные с клавиатуры, а выводить их на монитор. Вместе клавиатуру и монитор называют консолью. Таким образом консоль представляет собой стандартное устройство ввода-вывода.
Вывод данных на экран. Форматированный вывод
Write() чаще используется, когда надо вывести для пользователя сообщение на экран, после чего получить данные, не переводя курсора на новую строку. Например, выводим на экран «Введи число: » и не переводим курсор на новую строку, а ждем ввода.
Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.
Во втором случае мы видим, что процедуры вывода (как write() так writeln() ) позволяют конструировать выводимую информацию из различных компонент (строк-констант и переменных).
В третьем случае был осуществлен так называемый форматированный вывод. При этом для выводимого значения указывается ширина поля вывода (количество знакомест). Если мы выводим вещественное (дробное) число, то вторым числом через двоеточие указывается количество знаков после запятой. Если для вещественных чисел не осуществлять форматирование, то они отобразятся так, как определено для данного компьютера. Если указать только число знакомест без фиксирования дробной части, то вывод будет в экспоненциальной форме.
Ввод данных с клавиатуры
Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read() (или readln() ), то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.
В процедуры ввода можно передавать не один фактический параметр, а множество.
При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку.
Язык программирования TurboPascal
Turbo Pascal. Ввод и вывод данных
Формат оператора:
Допускается использование оператора ввода без параметров
который выполняет переход на новую строку при вводе данных.
При вводе данных с помощью оператора READ нужно иметь в виду следующие основные правила:
ЗАДАЧА. Ввод данных.
Введем в программу следующие исходные данные:
Обозначим символом пробел при вводе. При вводе числа будем разделять пробелом. Между числами допускается любое количество пробелов. Тогда экран монитора при вводе данных может выглядеть следующим образом:
Введите a, b, c:2
3
Введите x, y, z:44.447.5
76
Введите s1,s2,s3:A B C
Вывод данных
Здесь a1,a2,a3. an могут быть либо переменными, либо строкой символов, заключенной в апострофы. Все элементы перечисляются через запятую. Добавление к оператору WRITE символов LN обеспечивает автоматический переход курсора после вывода данных на новую строку.
Допускается использование оператора ввода без параметров
который выполняет переход на новую строку, поэтому последующий оператор вывода с параметрами будет выводить данные с новой строки. Оператор вывода без параметров часто используется для формирования пустых строк.
Бесформатный вывод. Форма представления выводимых данных зависит от типа данных:
При бесформатном выводе отводимое количество позиций равно размеру данных. При выводе символа отводится одна позиция, при выводе целого числа – число позиций равно числу значащих цифр плюс одна позиция под знак, если число отрицательное. Это необходимо учитывать при последовательном выводе данных, например чисел, чтобы значения разных переменных не сливались друг с другом.
ПРИМЕР. Рассмотрим фрагмент программы:
Два числа слились. Для того чтобы числа не сливались необходимо использовать разделяющие пробелы или разнесение информации по разным строкам.
Результат:
Результат:
Форматный вывод. Для вывода вещественных чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:
где: m – целое число, указывающее общее количество позиций отводимое под значение переменной, включая позицию под знак числа, точку и количество цифр дробной части; n – целое число, определяющее количество цифр дробной части.
8 позиций |
Символом обозначен пробел.
Вывод вещественных чисел выполняется по следующим правилам:
В качестве примера рассмотрим печать вещественного числа в различных форматах.
Результат работы программы:
Печать вещественного числа
Печать в фиксированном формате
Печать в плавающем формате
Для вывода целых чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:
k – целое число, указывающее общее количество позиций, отводимое под значение переменной.
В целых числах отсутствует дробная часть, поэтому нет необходимости указывать в формате число позиций дробной части.
Язык программирования паскаль readln
5-ка популярных | ||||||||||||||||||||||
|
Зарег. на сайте
Всего: 564
Новых за месяц: 22
Новых за неделю: 0
Новых вчера: 0
Новых сегодня: 0
Сегодня нас посетили:
Я думаю многим это будет интересно)))
Инструкции read и readln
Инструкция read предназначена для ввода с клавиатуры значений переменных (исходных данных). В общем виде инструкция выглядит следующим образом:
где переменнаяы — имя переменной, значение которой должно быть введено с клавиатуры во время выполнения программы.
Приведем примеры записи инструкции read:
При выполнении инструкции read происходит следующее:
Например, в результате выполнения инструкции
и ввода с клавиатуры строки 21, значением переменной Temperat будет число 21.
Одна инструкция read позволяет получить значения нескольких переменных. При этом вводимые числа должны быть набраны в одной строке и разделены пробелами. Например, если тип переменных а, ь и с — real, то в результате выполнения инструкции read(a,b,c); и ввода с клавиатуры строки:
переменные будут иметь следующие значения:
а = 4,5; b = 23,0; с = 0,17.
и ввода с клавиатуры строки
переменные получат следующие значения: А=10, B = 25. Инструкция read (С); присвоит переменной с значение 18.
Инструкция readln отличается от инструкции read тем, что после выделения очередного числа из введенной с клавиатуры строки и присваивания его последней переменной из списка инструкции readin, оставшаяся часть строки теряется, и следующая инструкция read или readin будет требовать нового ввода.
Например, в результате выполнения инструкции
и вводе с клавиатуры строки
переменные получат следующие значения: А=10, B = 25. После чего программа будет ожидать ввода нового числа, чтобы присвоить его переменной с.
Перед каждой инструкцией read или readin следует располагать инструкцию write, для того чтобы подсказать пользователю, какие данные ожидает от него программа. Например, фрагмент программы вычисления стоимости покупки может иметь вид:
writeln(‘Введите исходные данные.’);
write(‘Количество в партии:’);
Если тип данных, вводимых с клавиатуры, не соответствует или не может быть приведен к типу переменных, имена которых указаны в инструкции read (readin), то программа аварийно завершает работу (инструкции, следующие за read, не выполняются), и на экран выводится сообщение об ошибке.