- •Автономная некоммерческая организация высшего профессионального образования «Брянский институт управления и бизнеса»
- •Методические пособие по изучению алгометрического языка pascal
- •Оглавление
- •Введение
- •Глава 1 основные понятия .
- •Алфавит языка.
- •Основные определения языка.
- •Составные части программы.
- •Вопросы для самоконтроля
- •Глава 2 стандартные типы данных
- •Данные целого типа.
- •Вычисление об"ема шара
- •Данные действительного типа.
- •Данные логического типа.
- •Данные символьного типа.
- •`Теплоход``маяк``` или `д``артаньян`
- •Описание констант и переменных.
- •Var_имя переменной: тип;
- •Вопросы для самоконтроля
- •Глава 3 выражения.
- •3.1. Стандартные функции.
- •3.2. Арифметические выражения.
- •3.3. Логические выражения.
- •Вопросы для camokohtpoля
- •Глава 4 основы программирования простых задач.
- •4.1. Оператор присваивания.
- •4.2. Понятие о составном и пустом операторах. Назначение символа точки с запятой.
- •Простейший ввод данных.
- •5 Позиций
- •8 Позиций
- •Примеры программирования простых задач.
- •Вопросы для самоконтроля
- •5.1. Условный оператор.
- •Оператор выбора.
- •Оператор перехода.
- •Go to метка
- •Lавеl метка;
- •Label метка 1, метка 2,…, метка n;
- •5.4.Примеры программирования вычислительных процессов с разветвлениями.
- •Глава 6 организация циклических прцессов.
- •Оператор цикла с предварительным условием.
- •Оператор цикла с последующим условием.
- •Операторы циклической части программы
- •Оператор цикла с параметром.
- •Вложенные циклы.
- •Глава 7 основы ввода и вывода.
- •7.1. Оператор ввода.
- •7.2. Оператор вывода
- •Программирование циклических вычислительных процессов.
- •Вопросы для самоконтроля
- •Глава 8 Переменные типы.
- •Перечислимый тип данных.
- •Var а: (зима, весна, лето, осень);
- •Ограниченный тип данных.
- •Вопросы для самоконтроля
- •Глава 9 Сложный тип данных – массивы.
- •Понятие массива.
- •Var_имя массива: array [t1] of_t2;
- •Тип массива.
- •Упакованные массивы.
- •Понятие многомерных массивов.
- •Глава 10 Сложный тип данных – множества.
- •10.1. Множества в языке Паскаль.
- •Var _имя множества: set_of_ базовый тип;
- •Примеры программирования задач с использованием множества
- •Вопросы для самоконтроля
- •Глава 11 Сложный тип данных – записи.
- •Понятие записи.
- •Оператор присоединения.
- •Вопросы для самоконтроля
- •Глава 12 Подпрограммы.
- •Общие сведения.
- •Процедуры и функции.
- •Вопросы для самоконтроля
- •Глава 13 Файлы
- •13.1. Понятие файла.
- •13.2. Чтение файла.
- •13.3. Запись файла.
- •13.4 Чтение и запись файла
- •Вопросы для самоконтроля
Var_имя массива: array [t1] of_t2;
Здесь ARRAY (массив); OF (из) — служебные слова; t1 — тип индекса, в качестве которого может быть любой простой тип, кроме стандартных типов REAL и INTEGER; (2 - тип элементов массива,) допустимый на языке ПАСКАЛЬ.
Для предыдущего примера описание массива имеет вид
VAR A: ARRAY [1..5] OF REAL;
Здесь А — имя массива, элементы которого имеют базовый тип REAL; тип индекса -ограниченный от 1 до 5.
Следует отметить, что поскольку тип индекса не может быть стандартным целым или действительным типом, то нельзя делать следующее описание массива (часто встречающаяся ошибка)
VAR A: ARRAY [5] OF REAL;
или
VAR A: ARRAY [INTEGER] OF REAL;
Примеры правильного описания массивов:
VAR
MASSIV:ARRAY[1..N]OF REAL ;
ГОД:ARRAY[ЯНВАРЬ.. ДЕКАБРЬ]OF INTEGER ;
L:ARRAY[СТРОКА]OF BOOLEAN ;
M1:ARRAY[CHAR]OF КРУГ ;
Если несколько массивов имеют одинаковый тип индексов и одинаковый базовый тип, то допускается в описании объединять массивы в список, например:
VAR А, В, С : ARRAY [1..50] OF REAL
Здесь объявлено списком три массива А, В, С действительных чисел, каждый из которых содержит по 50 элементов (от 1 до 50):
A[1],A[2],..,A[50],
B[1],B[2],..,B[50],
C[1],C[2],..,C[50].
Нельзя путать понятия «индекс» и «тип индекса». Тип индекса используется только в разделе описания массива, а индекс указывается в разделе операторов для обозначения конкретных элементов массива. При этом индекс должен быть того же типа, что и описание типа индекса.
В качестве индекса может быть выражение, частным случаем которого является константа или переменная. Элемент массива иначе называется переменной с индексом. В отличие от нее переменная без индекса называется простой переменной.
Элементы массива могут стоять как в левой части оператора присваивания, так и в выражениях. Над элементами массива можно производить те же операции, которые допустимы для данных его базового типа. Если базовый тип есть INTEGER, то допустимы все операции над данными целого типа, включая и стандартные функции. Примеры использования элементов массива в разделе операторов:
В[5] : = В[З] +1;
SUM : = SUM + С[K] ;
Р1 : = А[2*I+1] ;
Для ввода и вывода числовых значений массива используются циклы. Например, цикл:
FOR l:=1 ТО 9 DO
READ(A[I]);
организует ввод девяти значений элементов массива А:
А[1], А[2],..,А[9],
а цикл
FOR I:=1 ТО 9 DO
WRITE(A[I]);
вывод девяти значений элементов того же массива.
Пример 9.1. Вычислить сумму пятнадцати целых чисел. Для обозначения чисел введем имя массива X, элементы которого имеют индекс I. Сумму обозначим именем SUM. Тогда SUM = Х[1] + Х[2] + … +X[15].
Фрагмент описания массива и использование его элементов в разделе операторов:
VAR X:ARRAY [1..15] OF INTEGER;
. . .
SUM:=0;
FOR I:=1 TO 15 DO
BEGIN
READ( X[I]);
SUM := SUM + X[I]
END ;
Внутри цикла вводится значение одного элемента массива X [ I ] и оно прибавляется к значению текущей суммы SUM. Цикл повторяется 15 раз. Элементы массива имеют целый тип (INTEGER), а индекс ограниченный тип 1..15.
Переменная I, с одной стороны, используется как параметр цикла, а с другой — в качестве индекса. В этом случае описать переменную I можно двояко:
а) в разделе переменных VAR указать переменную I как ограниченного типа, например
VAR
X:ARRAY[1..15]OF INTEGER;
I:1..15;
б) учитывая, что элементами ограниченного типа являются целые числа, можно ввести описание INTEGER, например
VAR
X:ARRAY[1..15] OF INTEGER;
I:INTEGER;
Так как в языке ПАСКАЛЬ требуется описание всех переменных, то необходимо описать еще и переменную SUM. Естественно, что она имеет тип INTEGER, так как все суммарные числа Х[1] имеют целый тип.
