Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Базовые алгоритмы обработки двумерныхСодержание книги Поиск на нашем сайте
Массивов
Для работы с массивами, как правило, используются алгоритмы регулярной циклической структуры. К базовым алгоритмам обработки двумерных массивов можно отнести алгоритмы: · Нахождение количества элементов матрицы при заданном условии · Нахождение суммы значений элементов матрицы при заданном условии (Пример 4.8.2-2). · Нахождение произведения значений элементов матрицы при заданном условии (Пример 4.8.2-3). · Поиск экстремальных значений элементов матрицы · Формирование матрицы в соответствии с определенными правилами (Пример 4.8.2-6 – 4.8.2-7). · Формирование одномерного массива из двумерного в соответствии с некоторым условием ((Пример 4.8. 2-8)). · Транспонирование матриц ((Пример 4.8.2-9)). · Произведение двух матриц ((Пример 4.8.2-10)).
Пример 4.8.2-1. Написать процедуру, которая определяет количество элементов матрицы a(,) при условии a(i,j) > 0.
Рис. 4.8.2-1. Программный код процедуры Pr821() Примера 4.8.2-1 Пример 4.8.2-2. Написать процедуру, которая вычисляет сумму значений элементов матрицы b(,) для элементов b(i,j) > 0.
Рис. 4.8.2-2. Программный код процедуры Pr822() Примера 4.8.2-2 Пример 4.8.2-3. Написать процедуру, которая вычисляет произведение значений элементов матрицы для элементов x(i,j) < 0.
Рис. 4.8.2-3. Программный код процедуры Pr823() Примера 4.8.2-3
Пример 4.8.2-4. Написать процедуру, которая определяет максимальный элемент среди элементов, лежащих ниже главной диагонали массива. В переменной xmax в цикле фиксируется максимальный элемент массива, в переменной imax, jmax – номер строки и номер столбца.
Рис. 4.8.2-4. Программный код процедуры Pr824() Примера 4.8.2-4
Пример 4.8.2-5. Написать процедуру, которая определяет минимальный элемент, лежащий выше главной диагонали матрицы. Алгоритм и программный код процедуры представлен на рис. 4.8.2-5.
Рис. 4.8.2-5. Программный код процедуры Pr825() Примера 4.8.2-5 Пример 4.8.2-6. Написать процедуру, которая заполняет элементы массива f(5,2) целыми числами, а затем переставляет элементы первого и последнего столбцов. Алгоритм и код программы приведены на Данный пример демонстрирует заполнение массива целых чисел f(,) и перестановку элементов первого и последнего столбцов. Исходные данные для инициализации массива f(,) записываются в фигурных скобках при описании массива. Вложенные циклы обеспечивают перебор элементов двумерного массива по столбцам: внутренний цикл по первому индексу, а внешний по второму. Перестановка элементов первого и последнего столбцов в программе выполняется в цикле, изменяющем номер строки i, в котором выполняется обмен значениями элементов f(i,0) и f(i,2). После этого массив выводится на экран в следующем виде:
Рис. 4.8.2-6. Программный код процедуры Pr826() Примера 4.8.2-6 Пример 4.8.2-7. Написать процедуру, которая формирует двумерный массив x по правилу: x(i,j) = 2*(i - 2) 2 - (j - 2)2). Алгоритм и процедура данной задачи приведены на рис. 4.8.2-7.
Рис. 4.8.2-7. Программный код процедуры Pr827() Примера 4.8.2-7
Пример 4.8.2-4.8. Написать процедуру, которая формирует одномерный массив, каждый элемент которого представляет собой количество положительных элементов соответствующего столбца массива b(,).
Рис. 4.8.2-8. Программный код процедуры Pr828() Примера 4.8.2-8 Предполагается, что выделение памяти и ввод массива b(,) осуществляются в процедуре, которая вызывает процедуру Pr828(). Алгоритм и код программы представлены на рис. 4.8.2-5. Для перебора всех элементов исходной таблицы b(,) также использованы вложенные циклы, в данном случае во внешнем цикле меняется номер столбца, а во внутреннем – номер строки. Такой порядок перебора элементов двумерного массива диктуется условиями задачи. В каждом столбце производится подсчет положительных элементов, и по окончании цикла результат записывается в соответствующий элемент одномерного массива а(), номер которого совпадает с номером столбца матрицы b(,). Пример 4.8.2-9. Написать процедуру, которая из матрицы х(n,m), являющейся входным параметром, получает транспонированную к ней матрицу y(m, n). Алгоритм и процедура приведены на рис. 4.8.2-9. Для решения поставленной задачи в алгоритме необходимо реализовать вложенные циклы перебора всех элементов исходной матрицы х(,). Транспонирование матрицы осуществляется путем перестановки (обмена) индексов транспонированной матрицы по отношению к исходной.
Рис. 4.8.2-9. Программный код процедуры Pr829() Примера 4.8.2-9
Пример 4.8.2-10.Написать процедуру, которая вычисляет алгебраическое произведение матрицы х(n,m) на матрицу y(m,n). Алгоритм и процедура решения задачи представлены на рис. 4.8.2-10. Произведением матрицы x(n,m) на матрицу y(m,k) называется матрица p(m,k), в которой элемент, стоящий на пересечении i -й строки и j -го столбца, равен произведению i -го вектора-строки матрицы x(n,m) на j -й вектор-столбец матрицы y(m,k). Произведением вектора-строки a(n) на вектор-столбец b с одинаковым числом элементов n называется сумма произведений соответствующих элементов этих векторов . Таким образом, произведение двух матриц можно записать следующим образом:
Рис. 4.8.2-10. Программный код процедуры Pr8210() Примера 4.8.2-10
Для формирования такой матрицы необходимо организовать вложенные циклы: внешний цикл, изменяющий номер строки от 0 до m, и внутренний цикл, изменяющий номер столбца от 0 до k. Для вычисления произведения текущей строки матрицы x(i,t) на текущий столбец матрицы y(t,j) в теле внутреннего цикла требуется еще один цикл, параметр которого меняется от 0 до n. На рис. 4.8.2-10 представлен общий алгоритм вычисления алгебраического произведения двух матриц размерами (mx*nx) и
Пример 4.8.2-11. Создать проект, в котором формируется двумерный массив x, состоящий из четырех строк и четырех столбцов, по правилу: x(i,j)=2*(i-2)2-(j-2)2, а затем определяется максимальный элемент среди элементов, лежащих ниже главной диагонали, а также минимальный элемент, расположенный выше главной диагонали. Найденные максимальный и минимальный элементы необходимо поменять местами. Формирование значений элементов двумерного массива x(,) по заданной формуле и их вывод в виде матрицы производятся с помощью вложенных циклов. В переменных xmin и xmax в цикле фиксируются минимальный и максимальный элементы массива, в переменных imin, jmin и imax, jmax – их координаты (номер строки и номер столбца). Программный код проекта представлен на рис. 4.8.2-11.
Рис. 4.8.2-11. Программный код проекта Пример 4.8.2-11
4.8.3. Тестовые задания
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-12-27; просмотров: 291; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.69.134 (0.009 с.) |