Массивы Массив – именованный набор с фиксированным количеством однотипных данных Массив одномерный многомерный Общий вид элемента массива (двумерный массив или прямоугольная таблица) a[i], i =1,2,….,n a[i, j], i = 1,2,….n j = 1,2,….m
Обработка массивов Задачи на обработку массивов могут иметь различную формулировку. Например, «Дано n чисел…», а далее говорится, что требуется сделать с этими числами. Чтобы решить такую задачу на ПК, надо: 1)определить, какие числа даны: целые или вещественные; 2)Назвать весь массив одним именем, которое будет использоваться для каждого элемента, только к нему добавится номер этого элемента (индекс); 3)Описать массив в разделе переменных VAR, тем самым отведя место в памяти для массива; 4)Ввести данные в память.
Описание массива array [ диапазон изменения номеров ] of тип ; Чаще всего номера элементов меняются от 1 до заданного числа n. Поэтому значение n помещают в раздел констант (const) и в качестве переменной n указывают последнее значение (верхнюю границу) номера элемента массива. Пример описания: const n=10; Var a: array [1..n] of real;
Ввод данных в память Для ввода данных в память необходимо организовать цикл. Т.к. число повторений ввода данных известно, удобно использовать цикл счетчик. Ввод описанного массива a может иметь вид: for i=1 to n do read (a[i]); Вводимые значения набираются на клавиатуре через пробел и нажимается.
Задачи на обработку массивов Вычисление суммы (произведения) элементов массива Нахождение наибольшего (наименьшего) элемента массива Упорядочение элементов по возрастанию или убыванию Поиск элемента в массиве
Задача 1. Вычисление суммы элементов массива Вычисление суммы элементов ничем не отличается от суммирования простых переменных Решение задачи состоит из 3-х основных этапов: 1)Ввод данных 2)Вычисление суммы 3)Печать результатов
Решение ( задачи 1 ) Program E12; Const n=7; Var a: array [1...n] of real; s: real; i: integer; Begin write (вводите элементы массива –, n, вещественных чисел через пробел); for i=1 to n do read (a[i]); S:=0; for i:=1 to n do S:= S + a[i]; writeln; write (сумма элементов массива S=, S) End.
Задача 2. Нахождение наибольшего элемента массива Для удобства вообразим, что каждое число написано на отдельной карточке. Первое число запомним сразу, как наибольшее и перевернем карточку. Теперь в нашем распоряжении два числа: одно видим, другое помним. Сравнивая их между собой, запомним большее. Если первое было больше, то запоминать новое не придется и надо смотреть следующую карточку, иначе запомним второе, а помнить первое в дальнейшем нет смысла. Итак, на каждом этапе сравнения будем помнить большее из чисел и в конце решим поставленную задачу
Решение (задачи 2) Program E13; Const n=7; Var a: array [1..n] of integer; max, i: integer; Begin for i=1 to n do begin write(a[,I, ]=); readln (a[i]); end; max:=a[1]; for i:=2 to n do If max