Для вывода данных из оперативной памяти на экран используется оператор
Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.
Следовательно, любой язык программирования должен иметь инструменты как для ввода данных, так и их вывода. В Паскале ввод осуществляется с помощью процедур read() и readln() , а вывод - благодаря write() и writeln() . Процедуры, которые имеют окончание ln , после своего выполнения переводят указатель на новую строку.
Откуда или с помощью чего можно ввести данные в программу? Обычно это можно сделать с помощью клавиатуры или из файлов.
Куда можно вывести данные? На экран, в файл, на принтер и др.
Стандартным устройством ввода является клавиатура, а вывода — монитор. Стандартные — значит "работающие по-умолчанию"; т.е. если не указано ничего иного, то программа будет считывать данные с клавиатуры, а выводить их на монитор. Вместе клавиатуру и монитор называют консолью. Таким образом консоль представляет собой стандартное устройство ввода-вывода.
Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.
§ 3.2. Организация ввода и вывода данных
Информатика. 8 класса. Босова Л.Л. Оглавление
Ключевые слова:
• оператор вывода write
• формат вывода
• оператор ввода read
Процедура вывода
Вывод – это процесс передачи данных после обработки из оперативной памяти на внешнее устройство.
Для вывода данных на экран в языке Паскаль используются процедуры write и writeln , которые имеют следующий вид:
В случае использования процедуры write , после выведения последнего элемента списка на экран, курсор останется в той же строке. Процедура writeln , после завершения вывода, переводит курсор на следующую строку. Если процедуре writeln не передавать параметры, то курсор просто переводится на следующую строку.
Организация вывода данных на языке Паскаль
Для того чтобы вывести из оперативной памяти полученные данные на экране монитора необходимо использовать оператор вывода Write.
Синтаксис оператора Write имеет следующий вид.
в круглых скобках помещают список вывода, то есть список выражений, которые будут водиться последовательно, друг за другом на экран. Они могут представлять из себя числовые, символьные и логические выражения, в том числе и константы.
Строковой константой называют произвольный набор символов заключённый в апострофы. Такая константа может содержать любые символы, которые могут быть набраны с клавиатуры.
Ввод данных с клавиатуры
Ввод данных в языке программирования Паскаль обеспечивается процедурами read() и readln() . Ввод данных осуществляется либо с клавиатуры, либо из файла. Здесь рассматривается только ввод с клавиатуры.
Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read() (или readln() ), то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.
В процедуры ввода можно передавать не один фактический параметр, а множество.
При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку.
Существуют особенности ввода данных с помощью операторов read() и readln() . Если используются подряд несколько операторов read() , то вводимые данные можно разделять всеми допустимыми способами. При использовании нескольких вызовов readln() каждый последующий срабатывает только после нажатия Enter. Программа ниже иллюстрирует это. Комментарии поясняют последовательность возможных действий при вводе данных.
Процедура ввода
Ввод данных — это процесс передачи исходных данных от внешнего устройства в оперативную память.
В качестве внешнего устройства ввода, как правило, является клавиатура или файл с данными.
Для ввода данных с клавиатуры в языке Паскаль используются процедуры read и readln , имеющие следующий формат:
Процедура readln аналогична процедуре read , единственное отличие заключается в том, что после считывания последнего значения переменной из списка, происходит перевод следующего ввода данных в начало новой строки.
Элементом «список» является список имен переменных через запятую, значения которых будут вводится с клавиатуры (заметим, что список может быть пустым), например:
Вводимые значения должны разделяться пробельными символами (пробел, табуляция, перевод строки), причем их количество не ограничено. Ввод данных для одной процедуру завершается нажатием клавиши Enter . Если процедура readln используется без параметров, то происходит ожидание нажатия клавиши Enter .
ВНИМАНИЕ: вводимые значения должны соответствовать типам переменных, в противном случае возникает ошибка (например, переменная b имеет тип integer , а вводится вещественное число).
Вывод данных на экран. Форматированный вывод
Вывод данных на экран и в файл в языке программирования Pascal осуществляется с помощью процедур write ( ) и writeln ( ) . Здесь будет рассмотрен вывод только на экран.
Допустим, нам требуется отобразить на экране пару фраз. Если мы хотим, чтобы каждая из них начиналась с новой строки, то надо использовать writeln() , если нет – то write() .
Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.
Во втором случае мы видим, что процедуры вывода (как write() так writeln() ) позволяют конструировать выводимую информацию из различных компонент (строк-констант и переменных).
В третьем случае был осуществлен так называемый форматированный вывод. При этом для выводимого значения указывается ширина поля вывода (количество знакомест). Если мы выводим вещественное (дробное) число, то вторым числом через двоеточие указывается количество знаков после запятой. Если для вещественных чисел не осуществлять форматирование, то они отобразятся так, как определено для данного компьютера. Если указать только число знакомест без фиксирования дробной части, то вывод будет в экспоненциальной форме.
3.2.1. Вывод данных
В предыдущем параграфе мы познакомились со структурой программы на языке Паскаль, научились описывать данные, рассмотрели оператор присваивания. Этого достаточно для того, чтобы записать программу преобразования данных. Но результат этих преобразований нам виден не будет.
Для вывода данных из оперативной памяти на экран монитора используется оператор вывода write:
Здесь в круглых скобках помещается список вывода — список выражений, значения которых выводятся на экран. Это могут быть числовые, символьные и логические выражения, в том числе переменные и константы.
Произвольный набор символов, заключённый в апострофы, считается строковой константой. Строковая константа может содержать любые символы, набираемые на клавиатуре.
Пример. Оператор write (‘ s=’, s) выполняется так:
1) на экран выводятся символы, заключённые в апострофы: s=
2) на экран выводится значение переменной, хранящееся в ячейке оперативной памяти с именем s.
Если значение переменной s равно 15 и она имеет целочисленный тип, то на экране появится: s=15
Если значение переменной s равно 15, но она имеет вещественный тип, то на экране появится: s=1.5Е+01
При выполнении оператора вывода все элементы списка вывода печатаются непосредственно друг за другом. Так, в результате работы оператора write (1, 20, 300) на экран будет выведена последовательность цифр 120300, которая будет восприниматься нами как число 120300, а не как три отдельные числовые константы. Сделать выводимые данные более доступными для восприятия можно разными способами:
Формат вывода — это указываемое после двоеточия целое число, определяющее, сколько позиций на экране должна занимать выводимая величина. Если цифр в числе меньше, чем зарезервированных под него позиций на экране, то свободные позиции дополняются пробелами слева от числа. Если указанное в формате вывода после двоеточия число меньше, чем необходимо, то оно автоматически будет увеличено до минимально необходимого.
Для вывода вещественного числа в списке вывода для каждого выражения указываются два параметра: 1) общее количество позиций, отводимых под число; 2) количество позиций в дробной части числа:
При выполнении нового оператора write вывод продолжается в той же строке. Чтобы осуществить переход к новой строке, используется оператор writeln. Других различий между операторами write и writeln нет.
САМОЕ ГЛАВНОЕ
Для ввода в оперативную память значений переменных используются операторы ввода read и readln.
Для вывода данных из оперативной памяти на экран монитора используются операторы вывода write и writeln.
Ввод исходных данных и вывод результатов должны быть организованы понятно и удобно; это обеспечивает дружественность пользовательского интерфейса.
Пример работы оператора write.
В апострофах выводится строковая переменная, а из переменной а, значение равное 10.
На экране будет отображена запись а=10.
На экран выводятся символы, заключенный в апострофы.
Далее на экран выводится значение переменной, которая хранится в ячейке оперативной памяти под определённым именем.
На экране монитора появляется надпись.
Для того чтобы при выводе, отделить друг от друга элементы списка, необходимо организовать их правильный вывод.
сделать это можно следующими способами:
- добавить в разделители запятые пробелы,
- или указать формат вывода.
Форматом вывода является указанное после двоеточия целое число, которое определяет, сколько позиций на экране должно занимать выводимая величина.
допустим, если в качестве формата указано число 5. Значит, то на вывод числа приходится 5 свободных мест.
Организация вывода | Вид оператора | Результат на экране |
---|---|---|
без пробелов | write(1,5,10); | 1510 |
с разделителем | write(1," ",5," ",10); | 1 5 10 |
с форматом вывода | write(1:3,5:3,10:4); | 1 5 10 |
В том случае, если цифр в числе будет меньше, чем зарезервированных для него на экране, то свободные позиции будут заполнены пробелами слева от числа.
неуказанная в формате выводы: если число будет меньше, то количество знаков будет автоматически увеличено до минимального необходимого.
Для отображения на экране вещественного числа можно указать 2 параметра:
- количество позиций под целую часть числа,
- количество позиций под дробную часть числа.
Пример вывод целой и дробной частей вещественного числа.
Вид оператора | Результат на экране |
---|---|
write("pi width: 133.267px; text-align: center;"> pi=3.1 | |
write("pi width: 133.267px; text-align: center;">pi=3.14 | |
write("pi width: 133.267px; text-align: center;">pi=3.14000 | |
write("pi width: 133.267px; text-align: center;">pi=213 |
Отметим, что при выполнении нового оператора write, вывод данных будет продолжен в той же строке.
Для того чтобы принудительно осуществить переход на новую строку, применяется оператор writeln. Других различий, между этими операторами, нет.
3.2.3. Ввод данных с клавиатуры
Для ввода в оперативную память значений переменных используется оператор ввода read:
При выполнении оператора read компьютер переходит в режим ожидания данных: пользователь должен ввести данные с клавиатуры и нажать клавишу Enter 1 .
1 Нажатием клавиши Enter может сопровождаться ввод каждого значения.
Несколько значений переменных числовых типов могут вводиться через пробел или через запятую. При вводе символьных переменных пробел и запятая воспринимаются как символы, поэтому ставить их нельзя.
Первое введённое пользователем значение переменной помещается в ячейку памяти, имя которой расположено первым в списке ввода, и т. д. Поэтому типы вводимых значений (входного потока) должны соответствовать типам переменных, указанных в разделе описания переменных.
Пример. ПУСТЬ .
var i, j: integer; x: real; a: char;
Присвоим переменным i, j, x, а значения 1, 0, 2,5 и ‘A’. Для этого воспользуемся оператором
read (i, j, х, а)
и организуем входной поток одним из следующих способов:
Здесь мы не только использовали различные разделители (пробел, запятая), но и представляли входной поток в виде одной, двух и четырёх строк.
Для ввода данных с клавиатуры можно также использовать оператор readln. Отличие состоит в том, что после выполнения readln осуществляется автоматический переход на новую строку входного потока, даже если в текущей строке остались невведённые символы. Таким образом, readln позволяет считать лишь начальную часть введённой пользователем строки и, проигнорировав её окончание, перейти к следующей строке.
Результат работы усовершенствованной программы:
Теперь наша программа может ВЫЧИСЛИТЬ длину окружности и площадь круга для любого значения г. Иначе говоря, она решает не единичную задачу, а целый класс задач. Кроме того, в программе понятно и удобно организован ввод исходных данных и вывод получаемых результатов. Это обеспечивает дружественность пользовательского интерфейса.
3.2.2. Первая программа на языке Паскаль
Пользуясь рассмотренными операторами, составим программу, вычисляющую длину окружности и площадь круга радиуса 5,4 см.
Исходным данным в этой задаче является радиус: r = 5,4 см. Результатом работы программы должны быть величины с — длина окружности и s — площадь круга, с, s и r — величины вещественного типа.
Исходные данные и результаты связаны соотношениями, известными из курса математики: с = 2?r, s = ?r 2 . Программа, реализующая вычисления по этим формулам, будет иметь вид:
Эта программа верна и решает поставленную задачу. Запустив её на выполнение, вы получите следующий результат:
И всё-таки составленная нами программа имеет существенный недостаток: она находит длину окружности и площадь круга для единственного значения радиуса (5,4 см).
Для того чтобы вычислить длину окружности и площадь круга для другого значения радиуса, потребуется вносить изменения непосредственно в текст программы, а именно изменять оператор присваивания. Внесение изменений в существующую программу, по меньшей мере, не всегда удобно (например, когда программа большая и операторов присваивания много). Ниже вы познакомитесь с оператором, позволяющим вводить исходные данные в процессе работы программы, не прибегая к изменению текста программы.
Видеоролик по организации ввода/вывода данных
Организация ввода и вывода данных
Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.
Следовательно, любой язык программирования должен иметь инструменты как для ввода данных, так и их вывода.
Зная со структуру программы на языке Паскаль, описав данные и вычислив с помощью оператора присваивания достаточно для того, чтобы записать простую программу преобразования данных. Но результат этих преобразований нам виден не будет.
I. Для вывода данных из оперативной памяти на экран монитора используется оператор вывода write:
WRITE (A1, A2,…, AN); - вывод значений переменных A1, A2,…, AN в строку экрана;
WRITELN (A1, A2,…, AN); - вывод значений переменных A1, A2,…, AN в строку экрана с переводом строки;
WRITELN; - перевод строки.
Здесь в круглых скобках помещается список вывода — список выражений, значения которых выводятся на печать. Это могут быть числовые, символьные и логические выражения, в том числе переменные и константы.
Произвольный набор символов, заключенный в апострофы, считается строковой константой. Строковая константа может содержать любые символы, набираемые на клавиатуре, выводится без изменений.
Пример 1. Необходимо вывести следующие значения:
А=10; B=20; C=30;
D=-25,11
R='IBM PC';
L:=TRUE;
G:=FALSE.
Процедура: Будет выведено:
WRITELN (A, B, C); 102030
WRITELN (A, ':2,B,' ':2 C); 10 20 30
WRITELN (A, ', ',B,', ', C) ; 10,_20,_30
WRITELN ('Компьютер ', R); Компьютер IBM PC
WRITELN (‘D=’,D:8:2); D= 25.11
WRITELN (L,’ ‘:2, G); TRUE FALSE
Формат вывода позволяет установить количество позиций на экране, занимаемых выводимой величиной. write (s:x:y)
x - общее количество позиций, отводимых под число;
y - количество позиций в дробной части числа.
Пример 2. Необходимо вывести следующие значения:
Процедура: WRITELN (‘A=’,A :3,’ ‘:2,’B=’B:4:1,’C=’, C:13);
Будет выведено: A= 25 B=-3.5 C= -0.1221E-0002
II. Для вывода данных из оперативной памяти на экран монитора используется оператор вывода read:
READ (A1, A2,…, AN); - ввод N значений и присваивание их переменным A1, A2,…, AN;
READLN (A1, A2,…, AN); - ввод N значений и присваивание их переменным A1, A2,…, AN с пропуском остальных данных до конца строки;
READLN; - пропуски строки.
При выполнении оператора read компьютер переходит в режим ожидания данных: пользователь должен ввести данные с клавиатуры и нажать клавишу Enter. Несколько значений переменных числовых типов могут вводиться через пробел или через запятую. При вводе символьных переменных пробел и запятая воспринимаются как символы, поэтому ставить их нельзя.
Первое введённое пользователем значение переменной помещается в ячейку памяти, имя которой расположено первым в списке ввода, и т. д. Поэтому типы вводимых значений (входного потока) должны соответствовать типам переменных, указанных в разделе описания переменных.
Пример 3. Необходимо ввести следующие значения:
A=5,1; B=-12,21*10 -2 ; I=5; J=20; G=’R’; H=’S’;
* * *
Var
A, B :real;
I, J :integer;
G,H :char;
* * *
Read (A,B);
Readln (I,J);
Readln (G,H);
* * *
Вводим с клавиатуры:
5.1 12.21E-2 5 20 нажимаем Enter
RS нажимаем Enter
Данные примут значения:
A=5,1; B=-12,21*10 -2 ; I=5; J=20; G=’R’; H=’S’.
Пример 4. Пользуясь рассмотренными операторами, составим программу, вычисляющую длину окружности и площадь круга радиуса 5,4 см.
Программа, реализующая вычисления по этим формулам, будет иметь вид:
program n_1;
const pi=3.14;
var r, c, s: real;
begin
writeln ('Вычисление длины окружности и площади круга');
write ('Введите r>>');
readln (r);
c:=2*pi*r;
s:=pi*r*r;
writeln ('c =', с:6:4);
writeln ('s=', s:6:4)
end .
Пример 5. Программа перевода чисел из десятичной системы в двоичную.
Обозначим число идентификатором А и ограничим его диапазоном от 0 до 15. Значит, его двоичный код будет содержать 4 разряда. (2 4 =16). В данной программе подключим стандартный модуль CRT для управления экраном, чтобы использовать оператор очистки экрана ClrScr.
Program Primer5;
Uses Crt;
Var A, R0, R1, R3, R4: integer;
Begin
ClrScr;
Writeln (‘Введите число’);
Readln (A);
R0:=B mod 2; B:=B div 2;
R1:=B mod 2; B:=B div 2;
R2:=B mod 2; B:=B div 2;
R3:=B mod 2; B:=B div 2;
Writeln(‘Двоичный код числа ’; A; ‘равен ‘, B, R3; R2; R1; R0);
Вопросы и задания
2. Запишите оператор, обеспечивающий во время работы программы ввод значения переменной summa.
3. Целочисленным переменным i, j, k нужно присвоить соответственно значения 10, 20 и 30. Запишите оператор ввода, соответствующий входному потоку:
а) 20 10 30
б) 30 20 10
в) 10 30 20
4. Опишите переменные, необходимые для вычисления площади треугольника по его трём сторонам, и запишите оператор, обеспечивающий ввод необходимых исходных данных.
5. Что является результатом выполнения оператора?
а) write (а)
б) write (‘а’)
в)write (‘а=’, а)
6. Какой тип имеет переменная f, если после выполнения оператора write (f) на экран было выведено следующее число?
7. Каким образом можно вывести на экран вещественное число?
8. Запишите операторы ввода двух чисел и вывода их в обратном порядке.
9. Дан фрагмент программы:
read (a); read (b); c:=a+b; write (a, b); write (с)
Упростите его, сократив число операторов ввода и вывода.
10. Дан фрагмент программы:
а:=10; b:=a+1: a:=b-a; write (а, b)
Какие числа будут выведены на экран компьютера?
11. Напишите программу, которая вычисляет площадь и периметр прямоугольника по длинам двух его сторон.
Любая программа при вводе исходной информации и выводе результатов взаимодействует с внешними устройствами. Частным случаем обмена данными с внешними устройствами является обмен с консолью. Консоль представляет собой совокупность клавиатуры и экрана монитора.
Рассмотрим способы организации ввода и вывода информации, предоставляемые языком программирования Паскаль.
Читайте также: