Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по ИП_(алгоритмы).doc
Скачиваний:
7
Добавлен:
11.11.2018
Размер:
2.02 Mб
Скачать

Задания для самостоятельного выполнения

  1. Изменить порядок следования элементов главной диагонали на противоположный.

  2. Переставьте местами строки/столбцы матрицы в порядке возрастания первых элементов строк/столбцов.

  3. Найти наибольший/наименьший элемент среди нечётных/нечетных столбцов/строк этой матрицы.

  4. Найти наименьший элемент главной диагонали.

  5. Найти сумму элементов главной диагонали и разделить на неё значение всех элементов.

  6. Вычислить сумму элементов матрицы, выделенных черным цветом.

  7. Найти максимальный элемент и разделить на него все диагональные.

  8. Определить номера столбцов, все элементы которых нули.

  9. Выведите номера строк, все элементы которых одинаковы.

  10. Выведите номера строк, все элементы которых нечётные.

  11. Выведите номера строк, все элементы которых чётные.

  12. Выведите номера строк, все элементы которых отсортированы по возрастанию / убыванию.

  13. Написать программу, которая определяет номер строки квадратной матрицы, сумма элементов которой максимальна.

  14. Написать программу вычисления, сколько раз введенное с клавиатуры число встречается в массиве.

  15. Написать программу проверки, есть ли во введенном с клавиатуры массиве элементы с одинаковым значением. На экран вывести значения элементов и их количество.

  16. Написать программу нахождения наименьшего положительного элемента среди элементов с четными номерами массива.

Для всех заданий размерность матрицы n*n.

Тема 5. Циклические алгоритмы. Трехмерные массивы

В предыдущем разделе рассматривались двухмерные массивы mas [I][J], индекс I может принимать значения 0,1,…,n-1

I=0, n-1, индекс j-значения 0,1,…,m-1,J=0,m-1.

n, m – целые положительные числа.

Математическим представлением двумерного массива является матрица, где n – количество строк матрицы, а m – количество столбцов. При m=n – матрица является квадратной.

Трёхмерное массивы mas[I][J][K] имеет три индекса: I=0, n-1, J=0, m-1, K=0, l-1. Математическим (геометрическим) представлением трёхмерного массива является параллелограмм, где n – высота, m – ширина, l – глубина

В случае n=m=l параллелограмм превращается в куб.

Как правило, для работы с трёхмерными массивами приходится организовывать три вложенных цикла.

Примеры построения алгоритмов на трехмерных массивах

  1. Необходимо в трехмерном массиве сравнить модули сумм отрицательных и положительных элементов.

Для начала опишем переменные, которые необходимы для решения этой задачи: mas[i][j[k]] – массив элементов; i, j, k – индексы элементов массива, sum_otric – сумма отрицательных элементов, sum_polozit – сумма положительных элементов n, m, l – размерность массива.

Определим порядок действий решения задачи:

  1. описание переменных: n, m, l, mas[i][j[]k], i, j, k; sum_otric, sum_polozit;

  2. ввод размерности массива n, m, l;

  3. организуем цикл для ввода массива: счетчики i, k и j устанавливаем в ноль. Перемещаемся по строкам переходя от строки к строке, от одного двумерного массива к следующему двумерному массиву, увеличивая счетчик на единицу. После заполнения всего массива переходим к следующему действию;

  4. устанавливаем счетчики в ноль (на начало массива), и, перебирая все элементы массива, сравниваем их с нулем. Если элемент массива больше нуля прибавляем его значение к переменной sum_polozit (sum_polozit+=mas[i][j][k]), в противном случае – к переменной sum_otric (sum_otric+=mas[i][j][k]). Так доходим до конца массива и переходим к следующему действию;

  5. значение переменной sum_otric необходимо умножить на минус 1 (sum_otric*=-1), для того чтобы сравнить только модули значений сумм;

  6. выводим результат сумм положительных и отрицательных элементов массива на экран.

Нарисуем блок-схему по этим действиям:

  1. В трехмерном массиве все отрицательные элементы заменить на нуль, а положительные элементы и нули заменить на единицу.

Для начала опишем переменные, которые необходимы для решения этой задачи: mas[i][j][k] – массив элементов; i, j, k – индексы элементов массива, n, m, l – размерность массива.

Определим порядок действий решения задачи:

  1. описание переменных: n, m, l, mas[i][j][k], i, j, k;

  2. ввод размерности массива n, m, l;

  3. организуем цикл для ввода массива: переменные счетчики i, j, k устанавливаем в ноль. Перемещаемся по строкам справа налево, переходя от строки к строке, от одного двумерного массива к следующему двумерному массиву, увеличивая счетчик на единицу. После заполнения всего массива переходим к следующему действию;

  4. организуем цикл проверки элементов массива: если элемент больше нуля, то меняем значение элемента на единицу операцией присваивания, в противном случае на ноль. Переменные счетчики i, j, k устанавливаем в ноль. Перемещаемся по строкам справа налево, переходя от строки к строке, от одного двумерного массива к следующему двумерному массиву, увеличивая счетчик на единицу.

  5. организуем цикл вывода элементов полученного трехмерного массива на экран.

Нарисуем блок-схему по этим действиям: