Для вывода данных используются операторы PRINT и LPRINT, PRINT USING, LPRINT USING.
Оператор PRINT выводит данные на экран монитора, а LPRINT – на принтер. Оба оператора имеют одинаковый формат. Операторы PRINT USING и LPRINT USING имеют то же назначение, но дополнительно позволяют форматировать выводимые данные.
Формат оператора PRINT:
Комментарий служит для пояснения выводимой информации; символы
[;/_/,] – разделители. Если в качестве разделителя используется символ [;] или пробел, то выводимый текст размещается один возле другого без пробелов, при выводе чисел одна позиция резервируется для знака числа. Если в качестве разделителя используется запятая, то каждое новое сообщение печатается в новой зоне.
Оператор PRINT формирует выводную строку, которая разбита на 5 зон по 14 символов. Это позволяет размещать выводимую информацию по колонкам. Если текст не умещается в зоне, то он занимает соседнюю зону, а новая порция информации начинает печататься в соседней свободной зоне. В список выражений может помещаться любая информация, в том числе и алгебраические выражения без левой части.
Структура программы. Операторы ввода/вывода
Выводимые выражения в списке разделяются запятыми. В конце строки могут быть расположены управляющие символы: точка с запятой или запятая. При наличии этих управляющих символов курсор остается в текущей позиции, и следующий оператор PRINT будет выводить информацию с этой позиции. Действуют эти управляющие символы также как и управляющие символы после комментария.
Пример 9.4.5. Использование оператора PRINT
PRINT «Х=»;x ‘ выводится значение х
PRINT «X=»;x,»Y=»;y ‘ выводятся значения x и y
PRINT «X=»x,»Y=»;SIN(x) ‘ выводится значение x, вычисляется и
‘ выводится значение функции SIN(x)
Для управления выводом информации в список выражений оператора PRINT могут включаться функции TAB и SPC.
Функции TAB и SPC перемещают точку вывода на заданное число позиций. Отличие в использовании функций TAB и SPC состоит в том, что функция TAB перемещает точку ввода относительно края экрана, а функция SPC – относительно текущей позиции (рис. 9.4.1)
Оператор PRINT USING предназначен для вывода информации на экран с форматированием.
Формат оператора PRINT USING:
Здесь C$ и e$ — шаблоны для вывода символьной или числовой информации. Шаблоны для вывода символьной информации будут рассмотрены в разделе 9.4.9.
Шаблоны для вывода числовой информации:
Если число знаков, указанных в целой части числа шаблона, меньше чем фактическое, то число выводится на экран полностью, но перед первым символом числа ставится знак %.
В примерах 4 и 7 числа.01236787# и 1236787.45673# — вводятся как константы удвоенной точности
Операторы LPRINT и LPRINT USING имеют тот же синтаксис, что и операторы PRINT и PRINT USING, но выводят информацию на печатающее устройство.
Символ | Описание | Пример |
# | — резервирует знакоместо для числа, пробела, знака $ или * | PRINT USING «#####»; a, b, c – зарезервировано 5 знакомест при выводе числа на экран монитора |
. | – позиция десятичной точки | PRINT USING «##.###»;а, в, с – числа a, b, c будут выведены на экран с тремя знаками после десятичной точки |
^^^^ | — местоположение порядка числа (Е+рр) (Е -рр) | PRINT USING «#.####E+pp»; a, b, c – числа будут выведены в экспоненциальной форме |
± | — выводит знак числа. Может располагаться в начале или в конце шаблона | PRINT USING «-##.###»; a, b, c – перед отрицательными числами будет выводиться знак числа |
** | — заполнение лидирующих пробелов символами «*» | PRINT USING «**###.##»; a, b, c – если число знаков в числе меньше, чем число знакомест, указанных в шаблоне, то лидирующие пробелы заполняются звездочками |
$ | — вывод знака $ перед старшей значащей цифрой | PRINT USING «$###.##»; a, b, c — перед старшей значащей цифрой будет выведен знак $ |
, | — разделитель разрядов числа | PRINT USING «###,###,###.##»;a, b, c – целая часть числа разделяется на триады от младшего разряда к старшему, а дробная часть на триады не разделяется |
Источник: studopedia.su
Информатика 8 класс: Ввод и вывод данных в языке Паскаль
Операторы
Оператор является одной из основных конструкций языка. С позиций семантики каждый оператор представляет собой синтаксически завершенную фразу языка, определяющую некоторый законченный этап обработки данных. Совокупность определенных в языке операторов можно разбить на две основные группы.
Первую группу образуют операторы, которые в своем составе (т.е. в последовательности символов, образующих запись оператора) не содержат других операторов. Операторы этой группы называют простыми . В эту группу входят операторы присваивания, перехода и оператор вызова процедуры.
Операторы ввода и вывода также являются простыми, но из-за их специфического назначения их обычно рассматривают отдельно. Другую группу образуют операторы, в состав которых входят другие операторы. Такие операторы называют структурными . К этой группе относятся составной оператор, условные операторы и операторы цикла.
Операторы в программе завершаются символом точка с запятой и обычно (кроме особых случаев) выполняются в порядке их размещения (записи) в тексте программы. Таким образом, преемником каждого очередного выполняемого в данный момент оператора обычно является следующий за ним оператор (ему передается управление).
Этот естественный порядок выполнения операторов может быть нарушен с помощью операторов перехода, работа которых состоит в определении и указании очередного подлежащего выполнению оператора программы. Каждый оператор в программе может быть помечен. В качестве метки используется или идентификатор (набор символов) или целое число в диапазоне от 0 до 9999 (например, m1, lab12, 1, 12).
Метка записывается слева от помеченного оператора и отделяется от него двоеточием. Все используемые в программе метки должны быть заранее описаны в разделе Label. В теле программы метки не могут повторяться.
Простые операторы
Оператор присваивания . Оператор присваивания имеет формат Имя_переменной := выражение; Необходимо чтобы выражение и переменная имели одинаковый тип. Выражения в операторе присваивания могут быть арифметическими, логическими и строковыми. В процессе выполнения этого оператора вычисляется значение выражения и результат присваивается переменной (т.е. записывается в поле памяти, отведенной этой переменной). Например: 45
A := 10; I := I + 2; X := (-b + sqrt(sqr(b) — 4*a*c))/(2*a); S := ‘Модель N’; CanExit := X >= Xmax; Присвоенное переменной значение сохраняется до тех пор, пока этой переменной не будет присвоено новое текущее значение — при этом предыдущее ее значение (если оно было определено) безвозвратно теряется (становится недоступным). В процессе присваивания с переменной связывается определенный тип значений — тот, который она может принимать в соответствии с ее описанием в программе. Попытка присвоить переменной значение иного типа квалифицируется как ошибка в программе. Оператор безусловного перехода . Оператор безусловного перехода (Goto — «перейти к») применяется в тех случаях, когда после выполнения очередного оператора необходимо выполнить не следующий по порядку оператор, а какой-либо другой, отмеченный специальной меткой.. Формат оператора Goto: Goto метка; Например: Label 20,30; begin 20: Goto 30; 30: Goto 20; end . Label nl,nm; begin nl: Goto nm; nm: Goto nl; end . Такой фрагмент программы образует цикл, когда два оператора Goto будут бесконечно, последовательно передавать управление друг другу (если не предусмотреть между ними средства выхода за пределы области их действия).
Операторы ввода и вывода.
Операторы ввода . В стандарте языка Паскаль предусмотрены две основные процедуры ввода Read и Readln , которые используются для считывания данных с клавиатуры или из файла (считывание из файла будет рассмотрено ниже). Отличие этих двух форм оператора ввода состоит в том, что вторая форма оператора осуществляет после ввода последнего значения, размещенного в строке ввода, перевод курсора на начало следующей строки экрана. Формат операторов, описывающих ввод с клавиатуры имеет вид: Read(элемент, элемент. ); <ввод из текущей строки, по окончании ввода курсор остается в строке ввода>Readln(элeмeнт, элeмeнт. ); <ввод из текущей строки, по окончании ввода курсор переходит в начало следующей строки>Readln; где каждый элемент списка ввода может быть именем переменной целого, вещественного, символьного или строкового типа, именующим данные (поля памяти), значения которых должны быть введены (записаны в память). Числа, являющиеся значениями элементов списка ввода, должны при наборе на клавиатуре отделяться друг от друга пробелами или нажатием клавиши «ввод» (Enter). Не рекомендуется использовать не- 46
Writeln(элемент,’ ‘:n, элемент,’ ‘:n1, . ); где n , n1 — целые константы, указывающее количество пробелов, которые следует
вставить в соответствующие места текста. Рассмотрим пример: | |||
Текст фрагмента программы ↓ | Форма вывода ↓ | ||
А:=1; В:=2; С:=3; | |||
Name := ‘Лена’; | 123 | ||
Writeln(А,В,С); | на экране — | ||
Writeln(A,’ ‘,B,’ ‘,C); | на экране — | 1 2 3 | |
Writeln(‘Привет’,Name); | на экране — | ПриветЛена | |
Writeln(‘Привет, ‘,Name,’!’); | на экране — | Привет, Лена! |
Вставляя пробелы и размещая в списке вывода имена выводимых значений непосредственно перед самими значениями, можно получить достаточно наглядный и удобный для использования текст. Для целей редактирования формы вывода в Паскале предусмотрена также возможность явного указания в операторах вывода параметров, описывающих ширину поля, отводимого в строке вывода для каждого выводимого элемента. В этом случае оператор имеет формат Writeln(элемент:ширина_ поля, . ); где характеристика ширина_поля есть целые константа, переменная, выражение или вызов функции, определяющее общий размер поля отводимого в строке вывода для размещения соответствующего элемента. Для иллюстрации рассмотрим следующую
программу и текст, выводимый ею на экран: | |
Текст фрагмента программы ↓ | Форма вывода ↓ |
А:=10; В:=2; С:=100; | 102100 |
Writeln(A,B,C); | |
Writeln(A:2,B:2,C:2); | 10 2100 |
Writeln(A:3,B:3,C:3); | _10__2100 |
Writeln(A,B:2,C:4); | 10_2_100 |
Как видно из примера, символы, составляющие значение элемента дополняются начальными пробелами (в примере эти пробелы показаны с помощью символа «_») слева с учетом различия между объявленной и фактической «длиной» выводимого значения, а при размещении самого значения оно выравнивается по правой границе отведенного поля. Если размер отведенного поля меньше, чем необходимо, то ширина поля автоматически увеличивается (чтобы избежать усечения).
Так, например, во втором операторе Writeln приведенного фрагмента программы для С=100 отведено только две позиции вместо необходимых трех, однако значение выведено полностью. Такой порядок вывода (автоматическое расширение поля) предусмотрен для элементов всех типов: целых и вещественных чисел, символов, строк и булевых типов. Однако, при указании ширины (размера) поля для вывода вещественных чисел необходимо иметь в виду, что при выводе этих чисел Паскаль осуществляет выравнивание выводимого значения по левой границе поля и распечатывает его в экспоненциальной форме: Х := 421.53; Writeln (X); —> 4.2153000000Е+02 4.21Е+02 <— 8 позиций Как видно из примера, в первом случае по умолчанию Паскаль выделил для размещения значения 16 позиций поля (в соответствии с количеством цифр в мантиссе числа этого типа, предусмотренным стандартом), а во втором только 8 (в соответствии с указанием, содержащимся в операторе вывода). Паскаль позволяет также явно указать на то, что число должно быть выведено в форме с фиксированной точкой и сколько цифр при этом следует выводить после запятой (точки). В этом случае элементы списка вывода будут иметь вид: 48
Источник: studfile.net
Операторы ввода и вывода
Операторы ввода и вывода служат для организации обмена информацией между внешними устройствами (дисплей, клавиатура, принтер) и памятью ЭВМ.
Оператор ввода имеет следующие форматы:
1. READ (a1, a2. ak), где a1, a2. ak – список вводимых параметров. Здесь, каждое вводимое значение присваивается последовательно данным переменным.
2. READLN (a1, a2. ak) – каждое вводимое значение присваивается последовательно переменным a1, a2. ak, после чего происходит переход на новую строку.
3. READLN – обеспечивает пропуск одной строки и переход к началу новой строки.
Примечание. Ввод переменных логического типа недопустим. Числовые значения задаются после запуска программы через пробел (или ввод).
Например, ввести данные A=5, B=1.7, C = ‘L’.
5_1.7_L /после запуска программы на выполнение/
Оператор вывода имеет следующие форматы:
1. WRITE (b1, b2. bk), где b1, b2. bk – список переменных подлежащих выводу. Выводимые значения размещаются в одной строке.
2. WRITELN (b1, b2. bk) – осуществляется вывод значений b1, b2. bk и после вывода последнего значения осуществляется переход на новую строку.
3. WRITELN – обеспечивает пропуск строки в файле и переход к новой строке.
Примечание. В качестве выводимых параметров могут быть целые, вещественные, символьные и логические переменные и константы.
Пример 1.1. Вычислить значение выражения по формуле.
Рекомендуется числитель и знаменатель вычислить как отдельные выражения:
A:= exp (abs(x-z)) + sqr (sin (sqr(z)*z));
B:= sin (x) / cos (x) – sqrt (abs(cos (sqr(x))-exp(z)));
Задача 1.1. Рассмотрим разработку алгоритма и программы вычисления площади треугольника по формуле Герона.
Блок-схема алгоритма
Листинг программы
VAR A, B, C, P, S: REAL;
WRITELN (‘Введите стороны треугольника’);
WRITELN (‘Площадь треугольника равна — ’, S);
Задача 1.2. Ввести с клавиатуры четырёхзначное число и найти произведение цифр этого числа.
Листинг программы
VAR A, A1, A2, A3, A4, A5, A6, A7: INTEGER;
WRITELN (‘Введите целое 4-хзначное число’);
A2:= A DIV 10; // 437
A3:= A2 MOD 10; // 7
A4:= A2 DIV 10; // 43
A5:= A4 MOD 10; // 3
A6:= A DIV 1000; // 4
A7:= A1 * A3* A5*A6; // 420
WRITELN (A1, ‘*’, A3, ‘*’, A5, ‘*’, A6, ‘=’, A7);
Вопросы для самопроверки
1. Какие известны объекты алгоритмов?
2. Какова структура программы на языке Паскаль?
3. Дайте определение раздела Var?
4. Зачем используется раздел Type?
5. Что описывают в разделе Cons?.
6. Где располагают раздел Procedure, Function?
7. Каков диапазон значений целого типа?
8. Каков объём памяти требуется для данных вещественного типа?
9. Как описываются данные символьного типа?
10. Для чего используют данные логического типа?
11. Объясните принцип работы оператора присваивания?
12. Каков формат оператора ввода?
- Каков формат оператора вывода?
- Дайте определение идентификатора?
- Что такое служебные слова? Привести пример.
- Где подключают стандартные функции библиотеки Турбо Паскаля? Привести пример.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru