
- •Автономная некоммерческая организация высшего профессионального образования «Брянский институт управления и бизнеса»
- •Методические пособие по изучению алгометрического языка 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 Чтение и запись файла
- •Вопросы для самоконтроля
Тип массива.
В языке ПАСКАЛЬ помимо явного описания массивов в разделе переменных имеется другая форма описания, состоящая из двух этапов.
Сначала в разделе описания типов TYPE указывается тип массива. Затем в разделе описания переменных VAR перечисляются массивы, относящиеся к указанному типу.
Введение типа массива увеличивает раздел описаний, но в то же время упрощает отладку программы и удерживает от абсурдных ошибок, таких, как сложение «ЯБЛОК», с «УСКОРЕНИЕМ СВОБОДНОГО ПАДЕНИЯ».
Указание типов в разделе описаний помогает достичь логической ясности программы и является хорошим стилем программирования. Форма объявления массива имеет вид
TYPE_имя типа = ARRAY [t1] OF_t2;
VAR имя массива : имя типа;
Здесь t1 — тип индекса; t2 — базовый тип элементов массива.
Пусть, например, в программе используется массив R, состоящий из 10 элементов действительного типа. Обозначим тип массива именем MAS. Тогда описание массива можно выполнить следующим образом:
TYPE MAS=ARRAY[1..10] OF REAL; VAR R: MAS;
Если в программе несколько массивов, например R, А, В, С, имеют тип MAS, то изменится лишь раздел описания переменных
VAR R, А, В, С: MAS;
Следует отметить, что массивы R, А, В, С используются в разделе операторов программы. Тип массива MAS введен формально только в разделе описаний и нигде в программе не указывается и не обрабатывается.
Упакованные массивы.
Как правило, одно число или один символ занимают в памяти ЭВМ одно слово, т. е. два байта. В то же время для изображения символа достаточно иметь один байт памяти. С целью экономии памяти машины при использовании символьных данных в языке ПАСКАЛЬ введено понятие упакованного массива. Элементы упакованного массива хранятся по два в одном слове. Упакованный массив символьных данных имеет следующее описание в разделе переменных VAR:
VAR_ имя массива: PACKED ARRAY [тип индекса] OF_CHAR;.
Пусть, например, имеется строка символов
'САВЕЛЬЕВА ТАНЯ'
Эту строку символов можно считать массивом из 14 символов, включая пробел. Обозначим имя массива через РАМ. Описание маессива будет выглядеть следующим образом:
VAR FAM: PACKED ARRAY [1..14] OF CHAR;
Один элемент массива принимает значение одного символа, например:
FAM[1] = 'С', FАМ [2] ='А',..., FAM [14] ='Я'.
Как и в случае неупакованных массивов, рекомендуется описывать упакованные массивы с использованием раздела TYPE. Для рассмотренного примера описание имеет вид:
TYPE Т=PACKED ARRAY[1..N] OF CHAR ;
VAR FAM:Т ;
Здесь сначала введен тип массива с именем Т, а затем в разделе переменных указывается, что FAM имеет тип Т. Таким образом, FАМ является упакованным массивом символов.
Элементы упакованного массива используются в программе точно так же, как и элементы неупакованного массива. Только память для упакованного массива будет автоматически выделяться меньше.
Считается, что символьные константы имеют тип упакованных массивов
PACKED ARRAY [1..N] OF CHAR,
где N — длина строки.
Символьные константы могут присваиваться или сравниваться с любыми массивами, имеющими такое же описание. Например, если описание массива имеет вид
TYPE T=PACKED ARRAY[1..22]OF CHAR;
VAR СТРОКА:S;
то допустим оператор
СТРОКА: = 'САША ВЕРТЫШЕВ — ХУДОЖНИК'.
Для создания упакованных массивов используется цикл. Например, формирование массива В символьных данных можно выполнить следующим образом (см. параграф 7.2):
I:=1;
WHILE NOT EOLN DO
BEGIN
READ(B[I]);
I:=I+1
END.
Элементу массива В[1] присваивается значение введенного символа. Цикл WHILE выполняется до тех пор, пока в вводимой строке не встретится символ конца строки ВК, например
ПАСКАЛЬ - АЛГОРИТМИЧЕСКИЙ ЯЗЫК ВК
В результате выполнения этого фрагмента программы элементы массива В получат следующие значения:
В [1] = ‘П’, В [2] = 'А', В [3] = 'С',.., В [28] = 'К'.
Естественно, что массив В должен быть описан размером не меньше, чем длина вводимой строки, например
VAR В: PACKED ARRAY [I.. N] OF CHAR;
где N>28.
В операторе цикла WHILE можно указать конкретную длину вводимой строки, например
WHILE I<=28 DO
или
WHILE I<= К DO,
если значение К заранее определено.
Вывод массива символьных данных также организуется с использованием цикла. Так, для вывода значений массива В рассмотренного примера можно составить программу 9.1.
Программа 9.1
I:=1;
WHILE I<=К DO
BEGIN
WRITE(В[I]);
I:=I+1;
END.