Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia6_massivy.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
904.7 Кб
Скачать

Тема 6. Обработка одномерных массивов

Массив – это совокупность (набор) однотипных элементов, имеющих общее имя и упорядоченных по номерам. Каждый элемент массива располагается в отдельной ячейке памяти. Доступ к элементу массива осуществляется по общему имени массива и порядковому номеру элемента в массиве (рис.7.1). Размерность массива – это количество его элементов. Вычислительный процесс по обработке массива реализуется с помощью алгоритма циклической структуры. Число повторений цикла равно размерности массива. Вводится и выводится массив поэлементно. В каждом цикле обрабатывается только один элемент массива - текущий.

Массив X(4)

Рис. 7.1. Размещение элементов массива в памяти

7.1.Ввод, вывод и обработка массива

  • Если, задана размерность массива и его элементы вводятся, то говорят, что массив задан явно.

  • Если элементы массива формируются на заданном интервале, т.е. заданы Xn, Xk, dX (например, -3.5≤Xi≤3.5, dxi=0.5), то говорят, что массив задан неявно.

Ввод массива,заданного явно, происходит в 2 этапа;

  1. Сначала вводится размерность массива – N.

  2. Затем организуется цикл для поэлементного ввода массива.

Элементы вводятся по порядку. В одном цикле вводится 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 : XnXiXk. Сформировать массив 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

Выводы.

  1. Для поиска максимального элемента массива и его номера необходимо предусмотреть 2 вспомогательные ячейки – для значения и для номера – например, max и nom. Сначала в max помещается значение 1 –го элемента, а в nom –единица. Все элементы массива начиная со 2-го последовательно сравниваются с содержимым max. Если при этом какой-то элемент превышает max, его значение заменяет содержимое max, а его номер заменяет содержимое nom.По окончании перебора всех элементов массива в max содержится значение максимального элемента массива, а в nom –его номер.

  2. Все элементы массива должны быть определены (нельзя не вычислить какой-то элемент). Если какой-то элемент невозможно вычислить из-за аномальной ситуации, его определяют произвольно, например, обнуляют.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]