Какой из операторов считает с клавиатуры значение переменной a
Ввод данных в языке программирования Паскаль обеспечивается процедурами read() и readln(). Ввод данных осуществляется либо с клавиатуры, либо из файла. Здесь рассматривается только ввод с клавиатуры.
Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read() (илиreadln()), то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.
В процедуры ввода можно передавать не один фактический параметр, а множество.
При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку.
Существуют особенности ввода данных с помощью операторов read()и readln(). Если используются подряд несколько операторов read(), то вводимые данные можно разделять всеми допустимыми способами. При использовании нескольких вызовов readln() каждый последующий срабатывает только после нажатия Enter. Программа ниже иллюстрирует это. Комментарии поясняют последовательность возможных действий при вводе данных.
Ввод строковых значений с клавиатуры.
Для ввода значений типа STRING необходимо использовать READLN, а не READ. За один раз может быть введена только одна строка. Две строки можно сравнивать, используя операции отношения (сначала сравниваются самые левые символы, если они равны, то сравниваются следующие).
1. Инструкция геаdln при вводе с клавиатуры предпочтительнее read, т. к. полностью освобождает буфер клавиатуры — рабочую область памяти, в которой временно хранятся введенные с клавиатуры символы. Инструкция readоставляет в буфере клавиатуры код клавиши <Еntег>, нажатие которой завершает процесс ввода.
2. B одной инструкции read или readln можно записать несколько переменных. Для того чтобы отделить их значения друг от друга, при вводе можно использовать пробел либо символ табуляции (клавиша <ТаЬ>) или нажимать клавишу <Enter > после ввода каждого из значений.
3. Инструкция readln (без переменных) обычно записывается в конце программы и служит для создания паузы, которая длится до нажатия пользователем клавиши < Enter >. В противном случае, по окончании программы окно с текстом программы закроет экран с полученными результатами.
4. Тип данных, вводимых во время работы программы, должен соответствовать типу переменной, указанной в инструкции ввода.
Операторы вывода значений на экран.
Для вывода результатов работы программы на экран используются операторы:
Write(A1,A2. AK);
WriteLn(A1,A2. AK);
WriteLn;
Первый из этих операторов реализует вывод значений переменных А1, А2. АК в строку экрана. Второй оператор реализует вывод значений переменных А1, А2, . АК и переход к началу следующей строки. Третий оператор реализует пропуск строки и переход к началу следующей строки.
Переменные, составляющие список вывода, могут относиться к целому, действительному, символьному или булевскому типам. В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки.
Вывод каждого значения в строку экрана происходит в соответствии с шириной поля вывода, определяемой конкретной реализацией языка.
Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа – как действительные десятичные числа с десятичным порядком, символьного типа и строки – в виде символов, логического типа – в виде логических констант TRUE и FALSE.
Оператор вывода позволяет задать ширину поля вывода для каждого элемента списка вывода. В этом случае элемент списка вывода имеет вид А:К, где А – выражение или строка; К – выражение либо константа целого типа. Если выводимое значение занимает в поле вывода меньше позиций, чем К, то перед этим значением располагаются пробелы. Если выводимое значение не помещается в ширину поля К, то для этого значения будет отведено необходимое количество позиций. Для величин действительного типа элемент списка вывода может иметь вид А:К:М, где А – переменная или выражение действительного типа; К – ширина поля вывода; М – число цифр дробной части выводимого значения. К и М – выражения или константы целого типа. В этом случае действительные значения выводятся в форме десятичного числа с фиксированной точкой.
Пример записи операторов вывода:
var rA, rB: Real;
iP, iQ: Integer;
bR, bS: Boolean;
chT, chV, chU, chW: Char;
WriteLn(rA, rB:10:2);
WriteLn(iP, iQ:8);
WriteLn(bR, bS:8);
WriteLn(chT, chV, chU, chW);
Условный оператор If.
Если условие выполняется, то будет выполнена инструкция "1", если нет, то - инструкция "2". Несмотря на то, что в схеме присутствуют два действия, выполнено будет только одно, так как условие либо ложно, либо истинно. Третьего не дано. Такая схема позволяет решать задачи, в которых в зависимости от сложившихся обстоятельств требуется совершить то или иное действие.
Если <усл.>
то <действие 1>
иначе <действие 2>
Формат условного оператора на языке Паскаль:
If <условие>
Then <оператор 1>
Else <оператор 2>;
Обратите внимание на то, что в Then- и Else- части стоит только один оператор. Но что делать, чтобы решить задачу, в которой по выполнению или невыполнению условия нужно совершить не одно, а несколько действий? Здесь приходит на помощь уже известный вам составной оператор. В операторные скобки можно заключить любое количество операторов.
Вариант условного оператора в этом случае:
If <условие>
Then Begin <группа операторов 1> end
Else Begin < группа операторов 2> end;
Знак "точка с запятой" не ставится перед служебным словом Else, но операторы в группах, естественно, отделяются друг от друга этим знаком.
Теперь поговорим об условиях. В программах на языке Паскаль условия представляют собой выражения, значением которых является величина логического (Boolean) типа. Это может быть как просто переменная указанного типа, так и сложная последовательность высказываний, связанных логическими операциями.
В простых условиях могут применяться знаки операций сравнения: >(больше), <(меньше), =(равно), <>(не равно), >=(больше или равно), <=(меньше или равно).
Приведем пример решения еще одной задачи: "Из двух чисел выбрать наибольшее".
На первый взгляд решение очевидно, но оно не столь тривиально, как кажется.
Program Example;
Var A,B,C : Real;
Begin
Writeln('Введите два числа');
Readln(A,B);
If A>B Then C:=A Else C:=B;
Writeln(C);
Оператор цикла For.
Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее (хотя оно не вычисляется).
В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В Pascal тело цикла не должно содержать выражений, изменяющих счетчик.
Цикл for существует в двух формах:
for счетчик:=значение to конечное_значение do
for счетчик:=значение downto конечное_значение do
Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу.
Количество итераций цикла for известно именно до его выполнения, но не до выполнения всей программы. Так в примере ниже, количество выполнений цикла определяется пользователем. Значение присваивается переменной, а затем используется в заголовке цикла. Но когда оно используется, циклу уже точно известно, сколько раз надо выполниться.
Var
i, n: integer;
Begin
write ('Количество знаков: ');
for i := 1 to n do
end.
Оператор цикла Repeat.
Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.
В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае trueпроисходит выход из цикла, в случае false – его повторение.
Для ввода данных в языке Турбо Паскаль предусмотрены стандартные операторы (процедуры) – READ и READLN , которые предназначены для чтения данных, как с клавиатуры, так и из файла. В данном разделе рассматривается ввод данных только с клавиатуры. Добавление к оператору READ символов LN обеспечивает автоматический переход курсора после ввода данных на новую строку.
Формат оператора:
Здесь a1,a2,a3. an – переменные, которым последовательно присваиваются значения. Если в тексте программы встречается оператор READ , компьютер приостанавливает работу и ожидает ввода значений переменных с клавиатуры. Когда все значения переменных, перечисленных в операторе ввода, введены, процесс выполнения программы продолжается.
Допускается использование оператора ввода без параметров
который выполняет переход на новую строку при вводе данных.
При вводе данных с помощью оператора READ нужно иметь в виду следующие основные правила:
- логические данные в Турбо Паскале вводить не разрешается;
- при вводе числовых данных, числа разделяются пробелом или символом окончания ввода (клавиша ENTER). Ввод всегда заканчивается нажатием клавиши ввода – ENTER;
- пробелы перед числом и между числами игнорируются, поэтому их можно ставить в любом количестве;
- если переменная описана как Integer , ее значение вводится как целое число, т.е. не допускается использование точки после числа;
- если переменная описана как вещественная ( Real ), а ее значение является целым числом, то можно вводить число как целое (т.е. без точки) и как вещественное число – с точкой. Преобразование целого числа к вещественному числу будет выполнено автоматически;
- ввод символьных данных имеет особенности. Поскольку пробел является символом, как и любой другой символ языка Турбо Паскаль, то символьные данные необходимо вводить сплошной строкой;
- одной символьной переменной можно присвоить значение только одного символа;
- нажатие клавиши ENTER воспринимается как символ, поэтому для правильного ввода символьных данных рекомендуется перед каждым оператором ввода символьных данных ставить оператор перехода на новую строку READLN , чтобы их ввод осуществлялся с новой строки.
ЗАДАЧА. Ввод данных.
Введем в программу следующие исходные данные:
Обозначим символом пробел при вводе. При вводе числа будем разделять пробелом. Между числами допускается любое количество пробелов. Тогда экран монитора при вводе данных может выглядеть следующим образом:
Введите a, b, c: 2 3
Введите x, y, z:44.4 47.5 76
Введите s1,s2,s3:A B C
Вывод данных
Для вывода данных из памяти компьютера на экран монитора предназначен оператор Write .
Здесь a1,a2,a3. an могут быть либо переменными, либо строкой символов, заключенной в апострофы. Все элементы перечисляются через запятую. Добавление к оператору WRITE символов LN обеспечивает автоматический переход курсора после вывода данных на новую строку.
Допускается использование оператора ввода без параметров
который выполняет переход на новую строку, поэтому последующий оператор вывода с параметрами будет выводить данные с новой строки. Оператор вывода без параметров часто используется для формирования пустых строк.
Параметрами оператора WRITE могут быть данные целого, вещественного, логического, символьного, а также типа string .
Расположение данных на экране монитора может быть задано параметрами оператора WRITE , тогда вывод называется выводом с форматами данных. Если в операторе WRITE форматы не используются, вывод называется бесформатным выводом или стандартной формой вывода.
Бесформатный вывод. Форма представления выводимых данных зависит от типа данных:
- значения логического типа выводятся в виде логических значений TRUE и FALSE ;
- значения символьных переменных выводятся в виде соответствующих символов;
- символьная константа выводится в том виде, как она записана, но без апострофов;
- значения величин целого типа выводятся как целые числа;
- значения величин вещественного типа выводятся в формате с плавающей точкой.
При бесформатном выводе отводимое количество позиций равно размеру данных. При выводе символа отводится одна позиция, при выводе целого числа – число позиций равно числу значащих цифр плюс одна позиция под знак, если число отрицательное. Это необходимо учитывать при последовательном выводе данных, например чисел, чтобы значения разных переменных не сливались друг с другом.
ПРИМЕР. Рассмотрим фрагмент программы:
Оператором write(n,m); на экран монитора выводятся целые числа: n=1234 и m=7890 . Поскольку используется вывод без форматов данных, результат будет иметь вид:
Два числа слились. Для того чтобы числа не сливались необходимо использовать разделяющие пробелы или разнесение информации по разным строкам.
Результат:
Результат:
Форматный вывод. Для вывода вещественных чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:
где: m – целое число, указывающее общее количество позиций отводимое под значение переменной, включая позицию под знак числа, точку и количество цифр дробной части; n – целое число, определяющее количество цифр дробной части.
Выводимая информация выравнивается по левому краю. При этом подавляется печать ведущих нулей, т.е. если для вывода числа было выделено четыре позиции, то на экран монитора будет выведено, например, 6 , а не 0006 .
Пример. Выведем значение переменной A , равное 401.3 оператором write(A:8:2) . На экран монитора будет выведено:
401,30 |
8 позиций |
Символом обозначен пробел.
Вывод вещественных чисел выполняется по следующим правилам:
- Если число имеет меньшую длину, чем m , то оно будет дополнено слева пробелами.
- Если число имеет большую длину, чем m , то параметр m игнорируется и число будет выведено полностью.
- Если дробная часть больше, чем параметр n , то число округляется. Округление не изменяет самого значения переменной, меняется только представление числа на мониторе.
- Если параметр n не указан, то ни дробная часть числа, ни десятичная точка не выводятся. Вывод осуществляется в формате с плавающей запятой.
В качестве примера рассмотрим печать вещественного числа в различных форматах.
Результат работы программы:
Печать вещественного числа
Печать в фиксированном формате
Печать в плавающем формате
Для вывода целых чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:
k – целое число, указывающее общее количество позиций, отводимое под значение переменной.
В целых числах отсутствует дробная часть, поэтому нет необходимости указывать в формате число позиций дробной части.
Оператор присваивания
Используется для изменения значений переменных. В языке Паскаль эта команда обозначается так:
<имя переменной>:=<выражение>
При этом значение выражения из правой части команды присваивания заменяет текущее значение переменной из левой части. Тип значение выражения должен совпадать с типом переменной. Выражение может быть арифметическим, логическим или литерным. Важно, чтобы тип величины был согласован с видом выражения.
Пример:
а:=2; b:=8;
S:=а+b;
После выполненных последовательно данных трех команд переменная S принимает значение равное 10.
При помощи оператора присваивания переменной могут присваиваться константы и выражения, значения переменных любого типа.
Как только в программе встречается переменная, для неё в памяти отводится место. Оператор присваивания помещает значение выражения в место, отведённое переменной.
Если в процессе выполнения программы встречается переприсваивание (т.е. та же самая переменная принимает другое значение), то старое значение переменной стирается, на свободное место записывается новое значение. Команда присваивания позволяет лучше понять смысл слова переменная (т.е. меняющая своё значение по ходу программы).
Оператор ввода и вывода
Для ввода исходных данных используются операторы Read и ReadLn.
Read (список переменных);
Readln (список переменных);
Переменные в списке отделяются друг от друга запятой. Переменные могут быть целого, вещественного, символьного, логического, строковых типов.
При вводе с клавиатуры информация представляет собой строку символов. В процессе ввода происходит автоматическое преобразование строковых значений к типу переменных, входящих в список ввода. При наборе информации с клавиатуры данные сначала помещаются в виде строки в буфер ввода. Преобразование и передача значений из буфера ввода в переменные списка возможно, только если в буфер ввода введен признак конца строки. Этот символ вводится нажатием клавиши Enter .
При вводе значений из буфера используется указатель считывания. Процедура Read ожидает ввод с клавиатуры значений переменных из списка.
Ввод значений числовых переменных завершается символом пробел, Tab , признаком конца строки – Enter .
В качестве значения символьной переменой используется любой символ, на который в данный момент указывает указатель считывания. Признаком конца строкового значения является признак конца строки.
Процедура readln после ввода значений всех переменных списка очищает буфер ввода.
Пример 1.
Если использовать оператор Readln ( a , b ), то можно использовать те же самые способы ввода – а и б.
Пример 2.
Var a, b, c:integer;
Пусть a =5, b =1, c =1, тогда ввод можно осуществить следующим образом:
Если в программе записать
то ввод осуществляется следующим образом:
Пример 3.
Пусть a =’+’, b =’8’, то ввод осуществляется следующим образом:
Оператор readln ; используется для приостановки работы программы, он ожидает нажатия клавиши Enter .
Для вывода данных используются процедуры Write и Write Ln.
Оператор вывода имеет вид:
Write (список выражений);
Writeln (список выражений);
Выражения в списке отделяются запятой. Значения выражений могут быть целого, вещественного, символьного, логического, строковых типов.
Вещественные значения выводятся в экспоненциальной форме. Процедура Write выводит значения из списка подряд и устанавливает курсор в следующую позицию после последнего символа.
Процедура Writeln выводит значения из списка подряд, но после вывода последнего значения переводит курсор в первую позицию следующей строки экрана.
Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.
Следовательно, любой язык программирования должен иметь инструменты как для ввода данных, так и их вывода. В Паскале ввод осуществляется с помощью процедур read() и readln() , а вывод - благодаря write() и writeln() . Процедуры, которые имеют окончание ln , после своего выполнения переводят указатель на новую строку.
Откуда или с помощью чего можно ввести данные в программу? Обычно это можно сделать с помощью клавиатуры или из файлов.
Куда можно вывести данные? На экран, в файл, на принтер и др.
Стандартным устройством ввода является клавиатура, а вывода — монитор. Стандартные — значит "работающие по-умолчанию"; т.е. если не указано ничего иного, то программа будет считывать данные с клавиатуры, а выводить их на монитор. Вместе клавиатуру и монитор называют консолью. Таким образом консоль представляет собой стандартное устройство ввода-вывода.
Вывод данных на экран. Форматированный вывод
Вывод данных на экран и в файл в языке программирования Pascal осуществляется с помощью процедур write ( ) и writeln ( ) . Здесь будет рассмотрен вывод только на экран.
Допустим, нам требуется отобразить на экране пару фраз. Если мы хотим, чтобы каждая из них начиналась с новой строки, то надо использовать writeln() , если нет – то write() .
Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.
Во втором случае мы видим, что процедуры вывода (как write() так writeln() ) позволяют конструировать выводимую информацию из различных компонент (строк-констант и переменных).
В третьем случае был осуществлен так называемый форматированный вывод. При этом для выводимого значения указывается ширина поля вывода (количество знакомест). Если мы выводим вещественное (дробное) число, то вторым числом через двоеточие указывается количество знаков после запятой. Если для вещественных чисел не осуществлять форматирование, то они отобразятся так, как определено для данного компьютера. Если указать только число знакомест без фиксирования дробной части, то вывод будет в экспоненциальной форме.
Ввод данных с клавиатуры
Ввод данных в языке программирования Паскаль обеспечивается процедурами read() и readln() . Ввод данных осуществляется либо с клавиатуры, либо из файла. Здесь рассматривается только ввод с клавиатуры.
Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read() (или readln() ), то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.
В процедуры ввода можно передавать не один фактический параметр, а множество.
При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку.
Существуют особенности ввода данных с помощью операторов read() и readln() . Если используются подряд несколько операторов read() , то вводимые данные можно разделять всеми допустимыми способами. При использовании нескольких вызовов readln() каждый последующий срабатывает только после нажатия Enter. Программа ниже иллюстрирует это. Комментарии поясняют последовательность возможных действий при вводе данных.
Читайте также: