- •3. Система программитрования турбо паскаль
- •3.1 Окно среды разработчика
- •3.2. Элементы диалоговой среды
- •3.3. Команды редактора
- •3.4. Модули
- •4. Общие сведения о языке паскаль
- •4.1 Алфавит языка
- •4.2. Типы данных в TurboPascal 7.0
- •4.3. Операции и выражения в языке Паскаль
- •4.4 Стандартные функции в языке Паскаль
- •5. Линейные алгоритмы
- •5.1. Структура программы на языке Паскаль
- •5.2. Конструкция «следование»
- •6. Разветвляющиеся алгоритмы
- •And, * (умножение), / (деление), div, mod;
- •6.1. Операторы условных переходов
- •Var a, b, c : Real; lv : Boolean;
- •Var a, b, c : Real; lv : Boolean;
- •Var X, y : Real;
- •6.2. Оператор безусловного перехода
- •Var n, p, X : Real;
- •20: WriteLn('Факториал числа ' , n:4:2,' равен ' ,p:4:2);
- •7. Циклические алгоритмы
- •7.1. Цикл с предусловием While
- •X, xn, xk, dx, y, s, p: real;
- •7.2. Цикл с постусловием repeat
- •X1, x0, X, eps: real;
- •7.3. Цикл с параметром for
- •I: integer; c: char;
- •7.4. Принудительное завершение цикла
- •X, xn, xk, dx: real;
- •8. Символьный тип
- •8.1. Особенности символьного типа
- •8.2. Объявление символьной переменной
- •8.3. Операции с символами
- •Строковые переменные
- •9.1. Определение и типы строк
- •9.2. Упакованный строковый тип
- •9.3. Строковый тип
- •9.5. Примеры работы со строками
- •9.6. Индивидуальные задания по работе со строками и символами
- •10. Массивы
- •10.1. Организация данных в массиве
- •10.2. Объявление массивов
- •10.3. Ввод и вывод значений элементов массива
- •10.4. Подсчет количества элементов по заданному условию
- •10.5. Поиск минимального элемента массива
- •10.6. Вычисление произведения ненулевых элементов массива
- •10.7. Сортировка элементов массива
- •10.8. Заполнение массива случайными числами
- •10. 9. Индивидуальные задания по работе с массивам
- •11. Процедуры и функции
- •11.1. Понятие подпрограммы
- •11.2. Описание процедуры
- •11.3. Описание функции
- •11.4. Области действия имен
- •11.5. Индивидуальные задания по разработке процедур и функций
- •Var k,l; real;
10.2. Объявление массивов
Объявление массива в программе имеет следующий вид:
ИМЯ ARRAY [тип индекса] OF тип элемента,
где ARRAY, OF - зарезервированные слова (массив, из).
Примеры описания массивов:
TYPE
M1=ARRAY [1..100] OFREAL; {Массив из 100 вещественных чисел}
MM=ARRAY [1..10] OFARRAY [1..20] OFINTEGER; {Массив из 10 элементов, каждый из которых является массивом из 20 целых чисел}
VAR
VECTOR:M1;
MB,MC:MM;
MG:ARRAY [1..10, 1..20] OFREAL; {Прямоугольный массив вещественных чисел из 10 строк и 20 столбцов}
Число индексов в языке Pascal не ограничено. Необходимо отметить, что запись
V3:ARRAY [1..10] OFARRAY [1..20] OFREAL
изапись
V3:ARRAY [1..10,1..20] OF REAL
являются эквивалентными. По умолчанию элементам массива присваивается значение 0 или значение пустой строки в зависимости от типа элемента.
К любому элементу массива применимы те же операции, что и к переменной, тип которой совпадает с типом элемента массива (ввод, вывод, присваивание, сравнение и т.д.).
Единственным допустимым действием над массивом в целом является использование его в операторе присваивания (передает все элементы одного массива другому массиву того же типа) ,например:
MAS1:=MAS2,
причем типы обоих массивов в этом случае должны быть эквивалентны (описаны одним и тем же идентификатором типа: VARMAS1,MAS2:array [1..5] ofSingle).
10.3. Ввод и вывод значений элементов массива
При вводе значений массива необходимо получить доступ к каждому элементу массива (массивы не могут обрабатываться в целом). Это удобно сделать в цикле с параметром, который предполагает изменение параметра цикла от начального до конечного значения (0т первого до последнего индекса массива). В теле цикла должны быть операторы, обеспечивающие присваивание значения каждому i- му элементу:
VAR MAS1: ARRAY[1.. 10] OF INTEGER;
I: INTEGER;
BEGIN
FOR I:=1 TO 10 DO
BEGIN
WRITE(‘MAS1[‘,I,’] = ‘);
READLN(MAS1[I]);
END.
Циклначинаетсяс I=1. Поэтому для элемента массива MAS1[1] после вывода на экран сообщения с номером элемента осуществляется ввод значения, которое присваивается 1-му элементу. Затем прибавляется к параметру единица и новое значение параметра I=2. Все повторяется для второго элемента массива.
Если в теле цикла записать операцию присваивания нуля (любой другой константы), то получится обнуление всего массива (запись одной и той же константы).
Если массив двумерный, то перебор элементов должен осуществляться последовательно: выбор строки и перебор всех столбцов этой строки. Затем увеличение индекса строки на 1 и опять перебор всех индексов столбцов строки. Такое чередование индексов обеспечивают два вложенных цикла:
FORI:=1 TO 5 DO
FOR J:=1 TO 10 DO READLN(MAS2[I,J]);
В данном примере массив состоит из 5 строк и 10 столбцов, I – номер строки, J – номер столбца. Легко заметить, что на одно изменение индекса строки выполняется 10 изменений индекса столбца.
Вывод массива осуществляется также поэлементно с использованием тех же процедур перебора элементов массива.