![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 296; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.154.104 (0.01 с.) |