Ввод, вывод данных.

Ввод данных - это передача информации от внешних устройств в оперативную память. Вводятся, как правило, исходные данные решаемой задачи.

Вывод данных - передача данных из оперативной памяти на внешние носители (принтер, дисплей, магнитные устройства и т. д.). Результаты решения всякой задачи должны быть выведены.

Основными устройствами ввода-вывода у персонального компьютера являются клавиатура и дисплей (экран).

Ввод данных осуществляется с помощью оператора ввода данных с клавиатуры Read (читать);

формат оператора:

Read (<список ввода>),

где <список ввода> - это последовательность имён переменных, разделённых запятыми. Например:

Read (a, b, c);

При выполнении этого оператора происходит остановка работы компьютера, после чего пользователь должен набрать на клавиатуре значения переменных а, b, c, отделяя их друг от друга пробелами. После окончания ввода нажимается клавиша [Enter]. Типы вводимых значений должны быть согласованы с описанными в программе типами тех переменных, которым они присваиваются.

Другой вариант оператора ввода с клавиатуры имеет вид:

Readln (<список ввода>)

После считывания последнего в списке значения для одного оператора Readln (читать строку) данные для следующего оператора будут считываться с начала новой строки. В Турбо-Паскале оператор Readln без списка вывода в конце программы (перед End) приостанавливает работу программы и позволяет просмотреть результаты, т. к. система Турбо-Паскаль после выполнения программы автоматически переходит в режим редактирования.

НЕ нашли? Не то? Что вы ищете?

Пример 1.

Рассмотрим работу фрагмента программы:

Read (a, b);

Readln (c, d);

Read (m, n);

Пусть данные, вводимые с клавиатуры, и их порядок имеют вид:

1 2 3 4 5 6[Enter]

7 8[Enter]

В результате переменные в операторах ввода получат следующие значения: a=1, b=2, c=3, d=4, m=7, n=8.

Вывод на экран осуществляется с помощью оператора Write (писать), который имеет следующий формат:

Write (<список вывода>)

Элементами списка вывода могут быть константы, переменные, выражения различных типов.

Пример 2.

Write (234); {выводится целая константа}

Write (A+B); Write (3+2); {выводится результат вычисления выражения}

Write (x, y, Summa); {выводятся значения переменных}

При выводе на экран нескольких чисел в строку они не отделяются друг от друга пробелами. Программист сам должен позаботиться о таком распределении.

Пусть, например, переменные имеют следующие значения: a=1, b=2, c=3.

Тогда, написав в программе Write (a, b, c), получим на экране: 123. Изменив форму записи оператора вывода на следующую – Write (a, ' ', b, ' ', c), на экране получим: 1 2 3.

После вывода последнего символа курсор остаётся в той же строке. Следующий ввод на экран будет начинаться с этой позиции курсора.

Второй вариант оператора вывода на экран:

Writeln (<список вывода>)

Отличие оператора Writeln (писать строку) от оператора Write заключается в том, что после вывода последнего в списке значения происходит переход курсора к началу следующей строки. Оператор Writeln, записанный без параметров, обеспечивает пропуск строки при выводе результатов.

Пример 3.

Пусть переменные a, b, c, d, m, n имеют значения, полученные ими в Примере 1. В результате выполнения операторов Write(a, b); Writeln(c); Write(d, m, n) будет напечатано:

123

478

В Паскале есть возможность выводить на экран не только значения переменных и константы, но и символьную информацию, которая должна быть заключена в апострофы.

Например, после выполнения оператора Write ('Результат = ', 5*2) ЭВМ напечатает:

Результат = 10

Форматы вывода

В списке вывода могут присутствовать указатели форматов вывода (форматы). Формат определяет представление выводимого значения на экране. Формат отделяется от соответствующего ему элемента двоеточием. Если указатель формата отсутствует, то машина выводит значение по определённому правилу, предусмотренному по умолчанию.

Writeln (C:7:2); - для вывода переменной отводится 7 позиций, из которых 2 позиции отводятся для вывода дробной части, 1 - для вывода десятичной точки и 4 - для вывода целой части.

Если выводимое число не будет помещаться в указанный формат, то часть значения переменной, расположенная перед десятичной точкой, будет выводиться на экран полностью, при этом число позиций справа от десятичной точки (т. е. для вывода дробной части числа) остаётся равным указанной в формате величине.

Если не умещается дробная часть, то число округляется.

Если в выводимом числе дробная часть отсутствует, оно выводится в экспоненциальной форме.

Если необходимо вывести значение действительного числа без дробной части (и без экспоненты) - в привычной форме, то необходимо использовать нормализацию вывода. Для этого указать формат: Writeln (С:7:0);

Для вывода целых чисел используют формат: Writeln (C:5), для вывода целого числа будет отведено 5 позиций.

Структура программы. Основные синтаксические правила записи программы

Всякая программа на языке Паскаль, как правило, содержит три раздела: заголовок, раздел описаний, раздел операторов.

Общий вид программы на Паскале выглядит следующим образом:

заголовок Program <имя программы>;

Uses <имя подключаемого модуля>;

Label <раздел описания меток>;

Const <раздел описания констант>;

блок Type <раздел описания типов>;

описаний Var <раздел описания переменных>;

Procedure (Function) <раздел подпрограмм>;

Begin

тело

программы <раздел операторов>

End.

Заголовок программы начинается со служебного слова Program (программа), за которым следует произвольное имя, придуманное программистом (в качестве имени нельзя использовать служебные слова и имена переменных, процедур, функций). Заголовок может отсутствовать.

После заголовка идёт блок описаний, в котором определяются все объекты, которые будут использоваться в программе. Этими объектами являются, например, переменные, константы, процедуры, функции. Раздел описаний может отсутствовать, если в программе не используются вышеперечисленные объекты

За разделом описаний идёт раздел операторов, который начинается служебным словом Begin (начало) и заканчивается служебным словом End (конец). Раздел операторов имеется в любой программе и является обязательным.

Синтаксические правила записи программы:

1.  В конце заголовка программы, в конце каждого раздела описаний, после каждого оператора ставится точка с запятой.

2.  Запятая является разделителем в списках аргументов: переменных в разделе описаний, вводимых и выводимых величин и т. п.

3.  После слова Begin точка с запятой не ставится.

4.  Перед словом End точка с запятой может не ставится.

5.  В конце программы после слова End обязательно ставится точка.

Паскаль не требует какой-либо стандартной разбивки программы на строки. Но для того, чтобы программисту было легче читать текст программы, принято располагать текст по некоторым правилам. Например, End помещают под соответствующим Begin; операторы, находящиеся между Begin и End, располагают с небольшим отступом вправо.

В любом месте Паскаль-программы можно поставить комментарий.

Существуют комментарии для программиста и комментарии для пользователя. Комментарии для программиста используются для пояснения текста программы. Они нужны для человека, работающего с текстом программы, чтобы облегчить её понимание, определить назначение программы, констант, переменных и т. д. Комментарий для программиста - это последовательность любых символов, заключённая в фигурные скобки { }, либо в скобки вида (* *). Внутри комментария другие комментарии запрещены. Комментарии для пользователя позволяют определить действия пользователя в ходе работы с программой и выводятся на экран с помощью операторов вывода.

Пример программы, вычисляющей сумму двух чисел.

Program PRIM1; {заголовок программы}

Var x, y,s: integer; {описаны три переменные целого типа}

Begin

Write ('Введите два числа'); {выводит на экран комментарий для пользователя}

Readln (x, y); {запрашивает значения переменных}

s := x + y; {вычисляет сумму значений переменных X и Y, а}

{затем присваивает её переменной S}

Writeln ('Сумма чисел равна:', s) {выводит на экран комментарий и значение S}

End.

Контрольные вопросы

1.  Какие разделы может содержать программа на Паскале?

2.  Как записывается заголовок программы на языке Паскаль?

3.  Какими словами ограничивается тело программы?

4.  Перечислите основные синтаксические правила записи программы.

5.  Что называется комментарием? Для чего используется в программе?

6.  В каких случаях символ <;> является обязательным в программе?

7.  Для чего предназначена следующая программа:

Program Sk;

Var v, t, s: real;

Begin

Write ('Сообщите значение скорости');

Readln (v);

Write ('Сообщите время');

Readln (t);

Write ('Расстояние S=', v*t)

End.

8.  Составьте программу, которая выводит на экран текст:

Язык программирования Паскаль создал Н. Вирт.

9.  Составьте программу вычисления суммы двух целых чисел, которая будет вести диалог с пользователем в следующем виде (на месте многоточий - вводимые и выводимые числа)

ВВЕДИТЕ ДВА СЛАГАЕМЫХ

а=. . . . . . . . . .

b=. . . . . . . . . .

РЕЗУЛЬТАТ ВЫЧИСЛЕНИЙ:

a+b=. . . . . . . . . . . .

10. Составьте программу, обеспечивающую диалог с пользователем:

Здравствуйте! Задайте размер Вашего вклада:

На сколько месяцев Вы делаете вклад:

Сколько процентов годовых Вам обещано в банке:

Через... месяцев на Вашем счёте будет: ...

11. Укажите ошибки в программе:

Programm PRIM4; {1} Program KORNI; {1}

Var a, b, c; integer {2} Begin {2}

Begin {3} Var d, b, c; real {3}

Read (a, b+1); {4} Read (b, c); {4}

b:=c+1; {5} d:=sqrt (sqr (b)-4*c); {5}

s:=a+b+c; {6} x1=(-b+d)/2 {6}

Write (a:=b+1) {7} x2=(-b-d)/2 {7}

End {8} Writeln ('x1=',x1,'x2=',x2) {8} End; {9}

Program SQR; {1}

Var s: real; {2}

Begin {3}

Writeln (s) {4}

s:=s*s {5}

Readln ('s2=', s) {6}

End {7}

12. Напишите программу, в которой переменные R и N обмениваются значениями:

а) с использованием дополнительной переменной;

б) без использования дополнительной переменной.

13. Составьте программу, определяющую количество десятков и единиц двузначного числа.

14. Составьте программу, определяющую количество сотен, десятков, единиц трёхзначного числа.

15. Составьте программу, определяющую сумму цифр четырёхзначного числа.