|
Структурированные данные и алгоритмы их обработкиТип данных, позволяющий хранить вместе под одним именем несколько переменных, называется структурированным. Рассмотрим структуру, объединяющую элементы одного типа данных, - массив. Массивом называется упорядоченная совокупность однотипных данных, имеющих общее имя, элементы которой отличаются порядковыми номерами (индексами). Доступ к элементу массива осуществляется по его номеру (индексу). Массивы различаются количеством индексов, определяющих их элементы. Одномерный массив предполагает наличие у каждого элемента только одного индекса. Примерами одномерных массивов служат арифметическая (аi) и геометрическая (bi) последовательности, определяющие конечные ряды чисел. Количество элементов массива называют размерностью. При определении одномерного массива его размерность записывается в круглых скобках, рядом с его именем. Например, если сказано: "задан массив А(10)", это означает, что даны элементы: а 1, а 2,..., а 10. Ввод одномерного массива осуществляется поэлементно, в порядке, необходимом для решения конкретной задачи. Блок-схема алгоритма ввода элементов массива А(10) представлена на рис. 21.
Для i от 1 до 10 шаг 1 Нц Ввод ai Кц
Рис. 21.Ввод элементов одномерного массива А(10) Пример 1. Рассмотрим алгоритм вычисления среднего арифметического положительных элементов числового массива А(10). Среднее арифметическое есть отношение суммы к числу ее слагаемых, т.е. среднее арифметическое =
Алгоритм на псевдокоде: Начало Для i от 1 до 10 шаг 1 Нц Ввод ai Кц S =0 N =0 Для i от 1 до 10 шаг 1 Нц Если ai >0 то S = S + ai N = N +1 Все Кц Если N >0 то SA = S / N Вывод SA Иначе Вывод "Положительных элементов нет" Все Конец
Пример Пример 2. В заданном числовом массиве А(10) найти наибольший элемент и его индекс, при условии, что такой элемент в массиве существует, и он единственный. Обозначим индекс наибольшего элемента т. Будем считать, что первый элемент массива является наибольшим ( т = 1). Сравним поочередно наибольший с остальными элементами массива. Если оказывается, что текущий элемент массива аi (тот, с которым идет сравнение) больше выбранного нами наибольшего аm, то считаем его наибольшим (m = i). Блок-схема алгоритма решения задачи приведена на рис. 23. Алгоритм на псевдокоде: Начало
Нц Ввод ai Кц max=a1 m =1 Для i от 2 до 10 шаг 1 Нц Если ai > max то max = ai m=i Все Кц Вывод max, m Конец
Рис. 23. Блок-схема алгоритма поиска наибольшего элемента массива и его индекса
Пример 3.
Алгоритм на псевдокоде: Начало Для i от 1 до 20 шаг 1 Нц Ввод Сi Кц K= 0 P= 0 Для i от 1 до 20 шаг 1 Нц Если Ci <0 то K = K +1, AK = Ci иначе P = P +1, BP = Ci Кц Для i от 1 до K шаг 1 Нц Вывод Аi Кц Для i от 1 до P шаг 1 Нц Вывод Вi Кц Конец
Рис. 24. Блок-схема алгоритма формирования новых массивов
Рассмотрим двумерный массив. В математике двумерный массив (таблица чисел) называется матрицей. Каждый элемент матрицы аij имеет два индекса, первый индекс i определяет номер строки, в которой находится элемент (координата по горизонтали), а второй j - номер столбца (координата по вертикали). Двумерный массив характеризуется двумя размерностями N и М, определяющими число строк и столбцов соответственно (рис. 25).
Рис. 25. Матрица А (N ´ M) Ввод элементов двумерного массива осуществляется построчно, в свою очередь, ввод каждой строки производится поэлементно, тем самым определяется циклическая конструкция, реализующая вложение циклов. Внешний цикл определяет номер вводимой строки (i),внутренний — номер элемента по столбцу (j).На рис. 26 представлена блок-схема алгоритма ввода матрицы А (N ´ М). Алгоритм на псевдокоде:
Для j от 1 до M шаг 1 Нц Ввод aij Кц
Рис. 26.Ввод элементов двумерного массива А (N ´ M)
Пример 1. Пусть дана квадратная матрица А размером 5×5 состоящая из элементов целого типа. Необходимо преобразовать матрицу: поэлементно вычесть последний столбец из всех столбцов, кроме последнего. На рис. 27 представлена блок-схема решения данной задачи.
Начало Для i от 1 до 5 шаг 1 Для j от 1 до 5 шаг 1 Нц Ввод А(i,j) Кц Для i от 1 до 5 шаг 1 Для j от 1 до 4 шаг 1 Нц А(i,j)=А(i,j)-А(i, 5) Кц Для i от 1 до 5 шаг 1 Для j от 1 до 5 шаг 1 Нц Вывод А(i,j) Кц Конец
Рис. 27. Блок-схема алгоритма преобразования квадратной матрицы Пример 2. Найти сумму элементов А(i, j) массива А(5, 5), имеющих заданную разность индексов i - j = k (-4≤ k ≤ 4). На рис. 28 представлена блок-схема решения данной задачи.
Начало Ввод k Для i от 1 до 5 шаг 1 Для j от 1 до 5 шаг 1 Нц Ввод А(i,j) Кц S =0 Для i от 1 до 5 шаг 1 Для j от 1 до 5 шаг 1 Нц Если i - j = k то S = S + A (i, j) Все Кц Вывод S Конец
Упражнения для самостоятельной работы 1. Задан массив А(10). Найти произведение отрицательных элементов массива с четными номерами (индексами). 2. Изменить знак всех элементов одномерного массива А(10) с нечетными номерами (индексами) на противоположный. 3. Задан массив размером 3*4. Найти максимальный по модулю элемент массива, номер строки и столбца, содержащий данный элемент, вывести на печать.
Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)... ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры... Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычислить, когда этот... Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|