09 Массивы.pptx
- Количество слайдов: 17
Pascal МАССИВЫ
Массивы Массив – это структурированный тип данных, который представляет собой однородную фиксированную по размеру совокупность элементов одного типа (простой или составной структуры), упорядоченных по номерам.
Элементы массива Доступ к содержимому массива осуществляется по его имени (идентификатору) и по порядковому номеру (индексу) элемента, хранящегося в массиве Индекс м/б только целым числом
Особенности массивов • все элементы имеют один тип • весь массив имеет одно имя • все элементы расположены в памяти рядом
Конфигурация массивов Определяется размерностью массива: одномерный многомерный В одномерном (линейном) массиве для указания месторасположения его элементов используется только один индекс. В многомерном массиве для указания месторасположения его элементов используются несколько индексов.
Конфигурация массивов В качестве индексов могут использоваться константы или переменные порядковых типов данных. Тип индексов и их количество (размерность массива) определяются при описании массива.
Массивы A НОМЕР массив 1 2 5 10 A[1] A[2] 3 3 15 15 4 5 20 элемента массива (ИНДЕКС) 25 ЗНАЧЕНИЕ A[3] A[4] A[5] элемента массива НОМЕР (ИНДЕКС) элемента массива: 2 ЗНАЧЕНИЕ элемента массива: 10
Описание массива Формат описания типа Type
Описание массива Пример: Type My 1=array [-5. . 5] of integer; My 2=array [‘a’. . ’d’, 1. . 7] of real; My 3=array [‘a’. . ’d’] of array [1. . 7] of real;
Описание массива Описание переменных типа массива var <имя массива>: <тип массива>; Пример: var VMy 1: My 1; VMy 2: My 2; VMy 3: My 3; VMy: array [boolean, char] of byte;
Обращение к элементам массива <имя массива>[<список значений индексов>] Пример: VMy 2[‘b’, 4]: =4. 6; VMy 3[‘d’, 2]: =4; VMy 1[-4]: =4; VMy[true, ‘*’]: =6;
Заполнение массива Цикл по первому индексу (параметр j 1) Цикл по второму индексу (параметр j 2) … Цикл по последнему индексу (параметр jn) begin write (‘Введите j 1, j 2, …jn’); readln(<имя массива>[j 1, j 2, …jn]); end;
Заполнение массива Пример заполнения массива типа My 2 for j 1: =‘a’ to ‘d’ do for j 2: =1 to 7 do begin write (‘Введите элемент с номерамиj 1, j 2’); readln(VMy 2[j 1, j 2); end;
Объявление массивов Зачем объявлять? • определить имя массива • определить тип массива • определить число элементов • выделить место в памяти Массив целых чисел: имя начальный индекс конечный индекс тип элементов var A : array[ 1. . 5 ] of integer ; Размер через константу: const N=5; var A: array[1. . N ] of integer;
Объявление массивов Массивы других типов: var X, Y: array [1. . 10] of real; C: array [1. . 20] of char; Другой диапазон индексов: var Q: array [0. . 9] of real; C: array [-5. . 13] of char; Индексы других типов: var A: array ['A'. . 'Z'] of real; B: array [False. . True] of integer; . . . A['C'] : = 3. 14259*A['B']; B[False] : = B[False] + 1;
Что неправильно? var a: array[10. . 1] of integer; [1. . 10]. . . A[5] : = 4. 5; var a: array ['a'. . 'z'] of integer; ['z'. . 'a']. . . A['B'] A['b'] : = 15; var a: array [0. . 9] of integer; . . . A[10] : = 'X';
Массивы Объявление: const N = 5; var a: array[1. . N] of integer; i: integer; Ввод с клавиатуры: for i: =1 to N do begin write('a[', i, ']='); read ( a[i] ); end; a[1] = 5 12 a[2] = 34 a[3] = 56 a[4] = 13 ? Почему write? Поэлементные операции: a[5] = for i: =1 to N do a[i]: =a[i]*2; Вывод на экран: writeln('Массив A: '); for i: =1 to N do write(a[i]: 4); Массив A: 12 3 32 45 100