
- •Тема 6. Обработка одномерных массивов
- •Массив X(4)
- •7.1.Ввод, вывод и обработка массива
- •7.2. Поиск максимального и минимального элементов массива
- •7.3.Объявление одномерного массива
- •7.4. Доступ к элементу массива
- •Локальные и глобальные переменные
- •Инициализация глобальных массивов
- •7.7. Ввод и вывод массивов
Тема 6. Обработка одномерных массивов
Массив – это совокупность (набор) однотипных элементов, имеющих общее имя и упорядоченных по номерам. Каждый элемент массива располагается в отдельной ячейке памяти. Доступ к элементу массива осуществляется по общему имени массива и порядковому номеру элемента в массиве (рис.7.1). Размерность массива – это количество его элементов. Вычислительный процесс по обработке массива реализуется с помощью алгоритма циклической структуры. Число повторений цикла равно размерности массива. Вводится и выводится массив поэлементно. В каждом цикле обрабатывается только один элемент массива - текущий.
Массив X(4)
Рис. 7.1. Размещение элементов массива
в памяти
7.1.Ввод, вывод и обработка массива
Если, задана размерность массива и его элементы вводятся, то говорят, что массив задан явно.
Если элементы массива формируются на заданном интервале, т.е. заданы Xn, Xk, dX (например, -3.5≤Xi≤3.5, dxi=0.5), то говорят, что массив задан неявно.
Ввод массива,заданного явно, происходит в 2 этапа;
Сначала вводится размерность массива – N.
Затем организуется цикл для поэлементного ввода массива.
Элементы вводятся по порядку. В одном цикле вводится 1 элемент массива: сначала 1-ый, затем 2-ой ….N-ый. Т.е. цикл повторяеется N раз. Пусть i –порядковый номер массива. Тогда в i –м цикле вводится i –ый єлемент (рис. 7.2). Вывод массива происходит также поэлементно, анологично вводу - в цикле.
Рис. 6
.2. Ввод массива
Рассмотрим пример поэлементного формирования нового массива по вводимому исходному массиву.
ПРИМЕР 6.1. Задан массив X размерностью N. Сформировать массив Y, если каждый его элемент вычисляется по формуле:
где Xi – i-ый элемент заданного массива X, а
Yi – соответствующий элемент формируемого массива Y.
Определить среднее арифметическое положительных элементов массива Y.
Алгоритм приведен на рис. 6.3.
Сначала вводится размерность массива и его элементы. Затем происходит очистка счетчиков. В следующем цикле происходит поєлементное формирование и вывод нового массива Y, а также накопление счетчиков S и k. После завершения цикла происходит анализ значения k: если оно отлично от 0, вычисляется SА - среднее арифметическое положительных значений массива Y, а иначе - выводится сообщение.
Рис. 7.3. Алгоритм
решения примера 7.1
7.2. Поиск максимального и минимального элементов массива
В предыдущем примере размерность массива X задана явно, а теперь рассмотрим пример, в котором задан интервал для формирования значений элементов массива X .
ПРИМЕР 7.2. Элементы массива X формируются на заданном интервале шагом ΔX : Xn≤Xi≤Xk. Сформировать массив Y, вычислив по формуле его элементы. Определить максимальный элемент массива Y и его порядковый номер.
Алгоритм решения приведен на рис. 7.4. После ввода исходных данных определяется N - размерность массива X. Затем с помощью блока модификации организуется цикл. Он предназначен для поэлементного формирования и вывода массивов X и Y, определения максимального элемента массива Y и его номера.
Так как формула для вычисления Yi содержит аномалию, в алгоритме предусмотрена проверка: если cosXi=-1 , то вычислить Yi невозможно; в этом случае Yi присваивается 0 (Yi=0), так как все элементы массива должны быть определены. Внимание!!! В массиве не может отсутствовать какой-то элемент!!!
Для хранения значения максимального элемента и его номера отведены 2 вспомогательные ячейки : max и nom. Сначала в max помещается значение 1-го элемента массива Y, а в nom – его номер, т.е. число 1. Каждый следующий элемент массива Yi сравнивается с содержимым max и если Yi>max, то содержимое max меняется на Yi, а в nom помещается значение номера i. После завершения цикла в переменной max находится искомое значение максимального элемента, а в переменной nom – его номер.
Рассмотрим более подробно алгоритм поиска максимального элемента массива и его номера. Допустим значения элементов массива Y равны : Y1=-3, Y2=0, Y3=10, Y4=3, Y5=-2
-3
0
3
10
-2
-3
1
1) i=1 ; Y1=-3 ; max=-3 ; nom=1
2) i=2 ; Y2= 0 ; проверка Yi > max “ИСТИНА” max=0; nom=2
3) i=3 ; Y3= 10; проверка Yi>max“ИСТИНА” max=10; nom=3
4) ) i=4 ; Y3= 3; проверка Yi>max“ЛОЖЬ”
5) i=5 ; Y3= -2; проверка Yi>max“ЛОЖЬ”
Цикл завершен, результат max=10; nom=3
N=(Xk-Xn+X/2)/X+1
Xi=Xn+ΔX(i-1)
_
+
Yi=Ln|2+2cosXi|
Yi=0
+
+
max=Y1
nom=1
max=Yi nom=i
_
_
Рис. 7.4. Алгоритм
решения примера 7.2
Выводы.
Для поиска максимального элемента массива и его номера необходимо предусмотреть 2 вспомогательные ячейки – для значения и для номера – например, max и nom. Сначала в max помещается значение 1 –го элемента, а в nom –единица. Все элементы массива начиная со 2-го последовательно сравниваются с содержимым max. Если при этом какой-то элемент превышает max, его значение заменяет содержимое max, а его номер заменяет содержимое nom.По окончании перебора всех элементов массива в max содержится значение максимального элемента массива, а в nom –его номер.
Все элементы массива должны быть определены (нельзя не вычислить какой-то элемент). Если какой-то элемент невозможно вычислить из-за аномальной ситуации, его определяют произвольно, например, обнуляют.