Обработка одномерных числовых массивов.
При выполнении работы необходимо знать:
- Знать и уметь строить алгоритмы циклической структуры для обработки одномерных массивов, знать операторы цикла (смотри лаб. работу № 5).
- Знать принципы и приемы обработки одномерных числовых массивов с использованием операторов цикла.
- Уметь составить схему программы (алгоритм) циклической структуры для обработки одномерного числового массива и записать программу по готовому алгоритму.
Теоретический минимум:
Переменные-массивы являются переменными сложного (структурированного) типа и представляют собой организованную группу элементов одного типа (линейную или прямоугольную таблицу).
Массив - это упорядоченная совокупность однотипных данных, имеющая одно общее имя.
Линейные таблицы представляют собой одномерные массивы, а прямоугольные таблицы - двумерные массивы.
-5 | -90 | -45 | -4 | -24 | ||||||
Порядковые номера элементов массива (индексы)
|
|
A [10] - одномерный массив.
Так как массив имеет одно общее имя, его элементы различаются только номерами (индексами).
При объявлении массива в программе после имени массива в квадратных скобках указывается его размерность, то есть количество элементов. Элементы такого массива идут по порядку с 0 по 10 (всего 11 элементов). Нулевой элемент можно не использовать.
Z [5, 6] - двумерный массив, содержит 5 строк и 6 столбцов (или 6 строк и 7 столбцов вместе с нулевыми). Чтобы обратиться к текущему (очередному) элементу массива, надо указать номер строки и столбца: Z[i, j].
j номера столбцов
iномера строк
-9 | |||||||
-7 | -11 | -43 | |||||
-45 | |||||||
-15 | |||||||
-37 | |||||||
-59 | -13 | -7 | -1 |
Таким образом, массив имеет следующие свойства:
Ø Массив имеет имя, которое задает программист
Ø Массив имеет сквозную нумерацию элементов
Ø Массив имеет размерность, то есть определенное количество элементов
Ø Массив имеет тип, определяющий тип всех входящих в него элементов
Ø Массив имеет значения элементов, которые могут быть заданы в процессе выполнения программы и могут изменяться в пределах диапазона объявленного типа в ходе выполнения программы
Объявление массива. Перед началом работы с массивом необходимо объявить его и зарезервировать место в памяти под соответствующие количество элементов.
Объявление одномерного массива в программе:
Type Mas = array [1..10] of integer; { объявляем тип массив из 10 целых элементов }
|
|
Var A, B: Mas; { переменные A, B типа массив }
Массивы можно объявить и так:
Var A, B: array [1..10] of integer; { переменные A, B типа массив из 10 целых элементов }
Первый способ объявления предпочтительнее, так как при этом программа получается более наглядной. Кроме того, при использовании подпрограмм массивы следует объявлять с явным указанием типа, чтобы массивы в главной программе и массивы в подпрограммах принадлежали к одному и тому же типу. В противном случае при передаче данных в подпрограммы и обратно возникнет ошибка.
Ввод элементов массива может осуществляться разными способами. Любая обработка массивов, в том числе ввод и вывод, производится поэлементно, т.е. в цикле.
Приведем пример организации ввода одномерного массива целых чисел А [10]. Нулевой элемент использовать не будем.
Ввод элементов одномерного массива с клавиатуры:
For i:=1 to 10 do begin
Writeln(‘Введите значение A[’, i, ‘]: ’);
Readln(A[i]);
End;
При запуске на выполнение необходимо поочередно ввести 10 элементов массива (долго, не всегда удобно).
Ввод элементов одномерного массива случайным образом:
Randomize;
For i:=1 to 10 do begin
A[i]:=random(200)-100;
End;
При запуске программы на выполнение элементы массива получат случайные значения при помощи генератора случайных чисел Random в интервале [-100; 100[.
Вывод значений элементов массива на экран. Осуществляется при помощи цикла. Перед выводом лучше очистить экран командой ClrScr. Вывод одномерного числового массива на экран можно осуществлять в строчку или столбик.
Вывод значений элементов одномерного массива на экран:
ClrScr; { очищение экрана }
For i:=1 to 10 do begin
Write(A[i]:5); { вывод элементов массива в строчку, на каждый элемент отводится 5 позиций}
End;
ClrScr; { очищение экрана }
For i:=1 to 10 do begin
Writeln(A[i]);
{ вывод элементов массива в столбик }
End;
Обработка массивов обычно связана с подсчетом суммы, произведения элементов массива, всех или выборочно, с поиском максимального или минимального элемента, подсчетом количества положительных, отрицательных, четных, нечетных либо каких-то еще элементов массива. Возможны также преобразования массивов: перестановка элементов, сдвиг элементов и т. д. Обработка массивов осуществляется при помощи циклов.