Что такое оператор вывода
Pascal | Лекция №3
Операторы присваивания, операторы ввода-вывода
Содержание:
Поскольку язык Pascal алгоритмический, то для записи шагов алгоритмов, для наглядного однозначного представления алгоритмов в стиле структурного программирования существует набор операторов. Основные операторы считаются простыми, остальные – структурными, т.е. в их состав могут входить другие операторы, причем глубина «вложенности» операторов не ограничена.
Операторы присваивания
Оператор присваивания предназначен для присваивания переменной значения выражения. Оператор обозначается символом «:=», в левой части указывается имя переменной, в правой – вычисляемое выражение. Выражение может составлять число, знаки арифметических действий, круглые скобки, переменные и константы, процедуры и функции, допускаемое вложение друг в друга. Обязательное условие — совместность типов данных. Оператор считается синтаксически правильным, если тип выражения в правой части совпадает с типом переменной. Исключение составляет случай, когда выражение имеет целый тип, а переменная – вещественный. Допускается использование этого оператора с переменными любого типа, кроме файлового. Синтаксис:
Если в левой части оператора присваивания указана переменная типа Boolean, то в правой части оператора должно быть задано логическое выражение, задающее правило вычисления логического значения (true или false). Синтаксис:
Логическое выражение есть логическая формула, записанная на языке программирования. Логическое выражение состоит из логических операндов, связанных логическими операциями и круглыми скобками. Результатом вычисления логического выражения является булева величина (true или false). Логическими операндами могут быть логические константы, переменные, функции, операции отношения. Один логический операнд является простейшей формой логического выражения.
Примеры использования оператора присваивания:
с переменными целого типа: x := 200;
вещественного: y := Sin(Pi/3);
символьного: с := ‘6’;
булевского: test := false;
R – радиус окружности (тип – integer или real)
Pi – константа, равная значению p.
Операторы ввода-вывода
Ввод данных – это передача информации от внешних устройств в оперативную память. Вводятся, как правило, исходные данные решаемой задачи.
Вывод данных – обратный процесс, когда данные передаются из оперативной памяти на внешние носители (принтер, дисплей, магнитные устройства и т.д.). Результаты решения всякой задачи должны быть выведены на один из этих носителей.
Основными устройствами ввода-вывода у ПК являются клавиатура и экран монитора. Именно через эти устройства главным образом осуществляется диалог между человеком и ПК.
Для того чтобы программа могла работать в диалоговом режиме (позволяла бы вводить данные и видеть результаты работы на экране) существуют операторы ввода и вывода.
Существует две формы оператора ввода: Read и ReadLn. Процедура ввода с клавиатуры имеет следующий формат:
Read ( ),
где – это последовательность имен переменных, разделенных запятыми.
Другой вариант оператора ввода с клавиатуры имеет вид:
ReadLn ( )
Оператор ReadLn аналогичен предыдущему, отличие заключается в том, что при выполнении одного оператора ReadLn курсор на экране монитора переходит на новую строку.
Аналогично существует две формы оператора вывода. Оператор вывода на экран (обращение к стандартной процедуре вывода) имеет следующий формат:
Здесь элементами списка вывода могут быть выражения различных типов. В результате выполнения данного оператора значения списка будут выведены на экран монитора.
Если необходимо вывести на экран какой-либо текст, то внутри оператора Write этот текст записывается в апострофах.
Второй вариант процедуры вывода на экран:
Его действие отличается от оператора Write тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. Оператор WriteLn может использоваться без каких-либо параметров – в этом случае после выполнения такого оператора курсор перемещается на одну позицию вниз.
В операторах вывода Write и WriteLn имеется возможность установить ширину поля вывода. Если X и I – целочисленные выражения, а Y — вещественное выражение, то вызов
Write ( X : I, Y : I ) — печатает значения X и Y каждое в крайние правые позиции полей шириной I;
Write ( Y : I : X) – вызовом в крайние правые позиции поля шириной I символов выводится десятичное представление значения Y в формате с фиксированной точкой, причем после десятичной точки выводится X цифр, представляющих дробную часть числа.
Составной оператор
Для того чтобы задать последовательное выполнение (по порядку, один за другим) нескольких операторов, в языке Pascal существует составной оператор. Операторы, входящие в составной, разделяются символом «;», в начале ставится служебное слово Begin, в конце – End.
Составной оператор применяется в тех случаях, когда синтаксис языка допускает использование только одного оператора, а смысл требует выполнения нескольких действий.
Обратите внимание: перед служебным словом End разделитель (символ «;») не ставится.
Условный оператор
Очень часто так же, как и в жизни, при решении задач некоторые действия выполняются в зависимости от истинности каких-либо условий. Например, мы берем с собой зонт, если идет дождь или на небе тучи. Или часто встречающиеся в математике определения функций:
Здесь значение функции f вычисляется в зависимости от величины x по разным формулам.
Для задания выбора того или иного действия в зависимости от условия в языке Pascal предназначен условный оператор, который имеет две формы: полную и сокращенную.
В качестве условия используется значение логического выражения, в качестве операторов – любой простой или составной оператор, в том числе и сам условный оператор.
И по ветке then, и по ветке else должен выполняться единственный оператор. Если по смыслу задачи необходимо выполнить несколько операторов, тогда следует использовать составной оператор.
Часть условного оператора, начинающаяся со слова else, может отсутствовать, такая форма оператора называется сокращенной и выглядит следующим образом:
Оператор в этом случае выполняется, если условие истинно, иначе программа переходит к следующему оператору.
Пример полной формы: рассмотрим определение функции f(x):
Если в нашем примере описать логическую переменную В, значение которой будет равно true, если x
Пример краткой формы:
При использовании вложенных условных операторов может возникнуть неоднозначность, например:
В данном случае необходимо помнить, что служебное слово else всегда ассоциируется с ближайшим по тексту программы словом if, которое еще не связано с else. А чтобы такая двусмысленность не возникала, лучше всего пользоваться составным оператором:
Теперь дадим строгое описание условного оператора в форме синтаксической диаграммы:
Пример: По длинам трех сторон треугольника a, b, c вычислить его площадь.
Условный оператор Case (оператор варианта)
Более обобщенной формой условного оператора, учитывающей произвольное число альтернатив, является оператор варианта. Использование этого оператора позволяет задавать выполнение некоторых действий для нескольких различных значений одного выражения:
Присвоить строке S значение дня недели для заданного числа D при условии, что в месяце 31 день и 1-ое число – понедельник.
Для построения алгоритма воспользуемся операцией mod, позволяющий вычислить остаток от деления двух целых чисел, и с условием, что 1-ое число – понедельник. Тогда можно записать следующий оператор Case:
Чтобы завершить построение алгоритма решения поставленной задачи, необходимо ограничить область возможных значений переменной D (тип — integer):
В качестве можно также задать список и (или) диапазон значений.
Контрольные вопросы
Операторы ввода-вывода в языке Паскаль
Материал из ПИЭ.Wiki
Ввод данных — это передача информации от внешних устройств в оперативную память. Вводятся, как правило, исходные данные решаемой задачи. Вывод — обратный процесс, когда данные передаются из оперативной памяти на внешние носители (принтер, дисплей, магнитные устройства и т.д.). Результаты решения всякой задачи должны быть выведены на один из этих носителей.
Основными устройствами ввода-вывода у персонального компьютера являются клавиатура и дисплей (экран монитора). Именно через эти устройства главным образом осуществляется диалог между человеком и ПК.
Оператор ввода read
Процедура ввода с клавиатуры (обращение к стандартной процедуре ввода) имеет следующий формат:
где — это последовательность имен переменных, разделенных запятыми. При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа в языке Паскаль недопустимо. Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.
Если в программе имеется несколько операторов read, то данные для них вводятся потоком, т.е. после считывания значений переменных для одного оператора read данные для следующего оператора читаются из той же строки на экране, что и для предыдущего до окончания строки, затем происходит переход на следующую строку.
Другой вариант оператора ввода с клавиатуры имеет вид:
Этот оператор отличается от read только тем, что после считывания последнего в списке значения для одного оператора readln данные для следующего оператора будут считываться с начала новой строки.
Оператор вывода write
Оператор вывода на экран (обращение к стандартной процедуре вывода) имеет следующий формат:
Переменные, составляющие список вывода, могут относиться к целому, действительному, символьному или логическому типам. В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки. При выводе на экран нескольких чисел в строку они не отделяются друг от друга пробелами. Программист сам должен позаботиться о таком разделении.
Второй вариант процедуры вывода на экран:
Его действие отличается от оператора write тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. Оператор writeln, записанный без параметров, вызывает перевод строки.
Что такое оператор вывода
Оператор присваивания
Используется для изменения значений переменных. В языке Паскаль эта команда обозначается так:
При этом значение выражения из правой части команды присваивания заменяет текущее значение переменной из левой части. Тип значение выражения должен совпадать с типом переменной. Выражение может быть арифметическим, логическим или литерным. Важно, чтобы тип величины был согласован с видом выражения.
Пример:
а:=2; b:=8;
S:=а+b;
После выполненных последовательно данных трех команд переменная S принимает значение равное 10.
При помощи оператора присваивания переменной могут присваиваться константы и выражения, значения переменных любого типа.
Как только в программе встречается переменная, для неё в памяти отводится место. Оператор присваивания помещает значение выражения в место, отведённое переменной.
Если в процессе выполнения программы встречается переприсваивание (т.е. та же самая переменная принимает другое значение), то старое значение переменной стирается, на свободное место записывается новое значение. Команда присваивания позволяет лучше понять смысл слова переменная (т.е. меняющая своё значение по ходу программы).
Оператор ввода и вывода
Для ввода исходных данных используются операторы Read и ReadLn.
Read (список переменных);
Readln (список переменных);
Переменные в списке отделяются друг от друга запятой. Переменные могут быть целого, вещественного, символьного, логического, строковых типов.
При вводе значений из буфера используется указатель считывания. Процедура Read ожидает ввод с клавиатуры значений переменных из списка.
В качестве значения символьной переменой используется любой символ, на который в данный момент указывает указатель считывания. Признаком конца строкового значения является признак конца строки.
Процедура readln после ввода значений всех переменных списка очищает буфер ввода.
Пусть a =5, b =1, c =1, тогда ввод можно осуществить следующим образом:
Если в программе записать
то ввод осуществляется следующим образом:
Пусть a =’+’, b =’8’, то ввод осуществляется следующим образом:
Для вывода данных используются процедуры Write и Write Ln.
Оператор вывода имеет вид:
Write (список выражений);
Writeln (список выражений);
Выражения в списке отделяются запятой. Значения выражений могут быть целого, вещественного, символьного, логического, строковых типов.
Вещественные значения выводятся в экспоненциальной форме. Процедура Write выводит значения из списка подряд и устанавливает курсор в следующую позицию после последнего символа.
Процедура Writeln выводит значения из списка подряд, но после вывода последнего значения переводит курсор в первую позицию следующей строки экрана.
Операторы ввода вывода Паскаль
Как организован ввод-вывод данных с терминального устройства? Для начала (кто не знает), определим терминальное устройство. Терминальное устройство — это клавиатура, дисплей, т.е. то, с чем пользователь обычно работает. Какие существуют операторы ввода вывода Паскаль?
Ввод данных Паскаль:
Как ввести данные в Паскале? Очень легко и просто! Ввод исходных данных в Паскале осуществляется процедурой readln:
В этом примере процедура readln осуществляет чтение k значений исходных данных и присваивает эти значения переменным b1, b2,…, bk с переходом на новую строку (похожая процедура read отличается от readln отсутствием перехода на следующую строку). Когда мы вводим данные в Паскале, происходит своеобразное преобразование внешней формы во внутреннюю, которую определяет тип переменных.
Переменные, входящие в состав списка ввода, могут относиться к разным типам: целому, действительному, символьному. Однако чтение логических данных не допускается в Паскале. Исходные данные (т.е. их значения) отделяются друг от друга нажатием клавиши Enter и Tab, пробелами (при вводе данных недопустимо разделять числа запятыми).
Вывод данных Паскаль:
Теперь расскажем о выводе данных в Паскале. Чтобы вывести на экран результат работы вашей программы, обычно пользуются двумя процедурами:
write(b1,b2,…bk) — осуществляет вывод значений переменных b1, b2,…, bk в строку экрана.
writeln(b1,b2,…, bk) — производит как вывод данных на экран, так и переход к началу следующей строки.
Процедура writeln может использоваться без параметров, тогда просто производится пропуск исходной строки и переход к началу следующей. В списке вывода переменные могут иметь нескольких типов: целый, действительный, символьный или булевский. К элементам списка вывода относятся еще выражения и строки. Форма представления значений в поле вывода соответствует типу переменных и выражений:
Оператор вывода создает возможность задать ширину поля вывода для каждого элемента списка вывода, которые будут иметь вид: А:К, где А — строка или выражение, К — выражение либо целочисленная константа. Возникают две ситуации при этом:
Элемент списка вывода для величин действительного типа может иметь вид: А:К:М, где А — выражение действительного типа или переменная, К — ширина поля вывода (выражение или константа), М — число цифр дробной части выводимого значения(выражение или константа). В данной ситуации действительные значения будут выведены как десятичное число с фиксированной точкой. Представим пример записи операторов вывода:
var rM, rN: real;
iS, iT:integer;
bZ, bL: boolean;
chY, chD, chH, chX: char;
begin
writeLn(rM, rN:10:2);
writeLn(iS, iT:8);
writeLn(bZ, bL:8);
writeLn(chY, chD, chH, chX);
Ввод-вывод данных в Pascal
Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.
Откуда или с помощью чего можно ввести данные в программу? Обычно это можно сделать с помощью клавиатуры или из файлов.
Куда можно вывести данные? На экран, в файл, на принтер и др.
Стандартным устройством ввода является клавиатура, а вывода — монитор. Стандартные — значит «работающие по-умолчанию»; т.е. если не указано ничего иного, то программа будет считывать данные с клавиатуры, а выводить их на монитор. Вместе клавиатуру и монитор называют консолью. Таким образом консоль представляет собой стандартное устройство ввода-вывода.
Вывод данных на экран. Форматированный вывод
Write() чаще используется, когда надо вывести для пользователя сообщение на экран, после чего получить данные, не переводя курсора на новую строку. Например, выводим на экран «Введи число: » и не переводим курсор на новую строку, а ждем ввода.
Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.
Во втором случае мы видим, что процедуры вывода (как write() так writeln() ) позволяют конструировать выводимую информацию из различных компонент (строк-констант и переменных).
В третьем случае был осуществлен так называемый форматированный вывод. При этом для выводимого значения указывается ширина поля вывода (количество знакомест). Если мы выводим вещественное (дробное) число, то вторым числом через двоеточие указывается количество знаков после запятой. Если для вещественных чисел не осуществлять форматирование, то они отобразятся так, как определено для данного компьютера. Если указать только число знакомест без фиксирования дробной части, то вывод будет в экспоненциальной форме.
Ввод данных с клавиатуры
Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read() (или readln() ), то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.
В процедуры ввода можно передавать не один фактический параметр, а множество.
При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку.