Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование на паскале2.doc
Скачиваний:
145
Добавлен:
31.03.2015
Размер:
935.94 Кб
Скачать

1.3. Операторы преобразования данных

1.3.1. Оператор присваивания

Оператор присваивания осуществляет преобразование внутренних данных. Он имеет вид

<переменная>:=<выражение>

Оператор присваивания означает, что вычисляется выражение, стоящее справа от знака присваивания (:=), и вычисленное значение присваивается переменной, стоящей слева от знака присваивания. Переменная может иметь индексы.

Переменная и выражение должны иметь одинаковый тип; имеются два исключения из этого правила:

  • можно использовать вещественные или целые типы разной мощности (например, integer–shortint), при этом значение результата должно принадлежать диапазону допустимых значений для типа переменной – см. таблицы 1-4;

  • переменой вещественного типа можно присваивать выражение целого типа (но не наоборот!).

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

Примеры

k:=k+1;{увеличение значениеkна единицу}

S:=S+a; {значение переменнойSувеличивается наa}

p:=p*i; {значение переменной р увеличивается вiраз}

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

1.3.2. Понятие ввода и вывода

Под вводомпонимается процесс передачи данных с внешних устройств в память компьютера, подвыводом- передачи данных из памяти компьютера на внешние устройства. Ввод и вывод являются важнейшими операторами, так как с их помощью осуществляется общение пользователя с программой. Без операторов вывода программа вообще не имеет права на существование: если она ничего не сообщает пользователю, то зачем она нужна?

Вводу подлежат исходные данные. Это переменные, начальные значения которых меняются от одного выполнения алгоритма к другому. Выводятся, естественно, результаты программы. Соответствующие данные называютсявыходными данными.Все остальные данные называютсяпромежуточными. Разделение данных на исходные, выходные и промежуточные называетсяклассификацией данных по функциональному признаку. Определение, какие данные будут исходными, а какие выходными, является первым и важнейшим этапом разработки алгоритма и программы.

Последовательность значений на входном (или выходном) устройстве часто называют потоком.

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

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

1.3.3. Оператор вывода

Оператор вывода имеет вид:

WRITE(V1,V2,...,VN)

и означает вывод на экран монитора значений выражений V1,V2,...,VN (без перехода к следующей строке по окончании вывода). Последовательность V1,V2,...,VN называется списком вывода. В частности, элементом списка вывода Vi,i=1,...,M, может являться переменная (простая или с индексом11) или константа.

Оператор WRITELN означает переход к новой строке (т.е. вывод символа конца строки).

Оператор WRITELN(V1,V2,...,VN) эквивалентен двум операторам

WRITE(V1,V2,...,VN); WRITELN

Вместо Vi (i=1,2,...,N) может стоять группа:

Vi:Li:Mi,

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

Mi - длина дробной части, указывается только для вещественных чисел; если параметр Мi указан, то вещественное число выводится в формате с фиксированной точкой, иначе - в экспоненциальном формате, причем используется стандартный для данной среды программирования вид экспоненциального формата.

Программисты, работавшие с Фортраном, будут разочарованы: в Паскале (как и в Си) массивы вводятся и выводятся только поэлементно.

Пример.

Var s:real; a,b:integer;

begin…

writeln(‘a=’,a, ‘ b=’,b);

writeln(‘ s=’, s:4:1);…

end.

На экран будет выведена информация в виде:

a=<a>b=<b>

s=<s>

Здесь конструкция <имя переменной> означает значение этой переменной. Заметим, что следующие значения будут выводиться с новой строки, так как для вывода sиспользовался операторwriteln. Такое схематичное изображение выводимой (или вводимой) информации называетсяформой вывода (ввода).

Если a=-2,b=93,s=3.22, то на экране получим:

a=-2b= 93

s= 3.2

Примеры оператора WRITELN также представлены на рис.1.