- •Введение
- •Основные понятия
- •Тема 1. Линейные алгоритмы Примеры построения линейных алгоритмов
- •Конец начало Задания для самостоятельного выполнения
- •Тема 2. Разветвляющиеся алгоритмы Примеры построения разветвляющихся алгоритмов
- •Задания для самостоятельного выполнения
- •Тема 3. Циклические алгоритмы. Одномерные массивы
- •Примеры построения алгоритмов на одномерных массивах
- •Задания для самостоятельного выполнения
- •Тема 4. Циклические алгоритмы. Двумерные массивы
- •Примеры построения алгоритмов на двумерных массивах
- •Задания для самостоятельного выполнения
- •Тема 5. Циклические алгоритмы. Трехмерные массивы
- •Примеры построения алгоритмов на трехмерных массивах
- •Задания для самостоятельного выполнения
- •Литература
- •Приложение 1. Символы (гост 19.701-90)
Задания для самостоятельного выполнения
-
Изменить порядок следования элементов главной диагонали на противоположный.
-
Переставьте местами строки/столбцы матрицы в порядке возрастания первых элементов строк/столбцов.
-
Найти наибольший/наименьший элемент среди нечётных/нечетных столбцов/строк этой матрицы.
-
Найти наименьший элемент главной диагонали.
-
Найти сумму элементов главной диагонали и разделить на неё значение всех элементов.
-
Вычислить сумму элементов матрицы, выделенных черным цветом.
-
Найти максимальный элемент и разделить на него все диагональные.
-
Определить номера столбцов, все элементы которых нули.
-
Выведите номера строк, все элементы которых одинаковы.
-
Выведите номера строк, все элементы которых нечётные.
-
Выведите номера строк, все элементы которых чётные.
-
Выведите номера строк, все элементы которых отсортированы по возрастанию / убыванию.
-
Написать программу, которая определяет номер строки квадратной матрицы, сумма элементов которой максимальна.
-
Написать программу вычисления, сколько раз введенное с клавиатуры число встречается в массиве.
-
Написать программу проверки, есть ли во введенном с клавиатуры массиве элементы с одинаковым значением. На экран вывести значения элементов и их количество.
-
Написать программу нахождения наименьшего положительного элемента среди элементов с четными номерами массива.
Для всех заданий размерность матрицы 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 параллелограмм превращается в куб.
Как правило, для работы с трёхмерными массивами приходится организовывать три вложенных цикла.
Примеры построения алгоритмов на трехмерных массивах
-
Необходимо в трехмерном массиве сравнить модули сумм отрицательных и положительных элементов.
Для начала опишем переменные, которые необходимы для решения этой задачи: mas[i][j[k]] – массив элементов; i, j, k – индексы элементов массива, sum_otric – сумма отрицательных элементов, sum_polozit – сумма положительных элементов n, m, l – размерность массива.
Определим порядок действий решения задачи:
-
описание переменных: n, m, l, mas[i][j[]k], i, j, k; sum_otric, sum_polozit;
-
ввод размерности массива n, m, l;
-
организуем цикл для ввода массива: счетчики i, k и j устанавливаем в ноль. Перемещаемся по строкам переходя от строки к строке, от одного двумерного массива к следующему двумерному массиву, увеличивая счетчик на единицу. После заполнения всего массива переходим к следующему действию;
-
устанавливаем счетчики в ноль (на начало массива), и, перебирая все элементы массива, сравниваем их с нулем. Если элемент массива больше нуля прибавляем его значение к переменной sum_polozit (sum_polozit+=mas[i][j][k]), в противном случае – к переменной sum_otric (sum_otric+=mas[i][j][k]). Так доходим до конца массива и переходим к следующему действию;
-
значение переменной sum_otric необходимо умножить на минус 1 (sum_otric*=-1), для того чтобы сравнить только модули значений сумм;
-
выводим результат сумм положительных и отрицательных элементов массива на экран.
Нарисуем блок-схему по этим действиям:
-
В трехмерном массиве все отрицательные элементы заменить на нуль, а положительные элементы и нули заменить на единицу.
Для начала опишем переменные, которые необходимы для решения этой задачи: mas[i][j][k] – массив элементов; i, j, k – индексы элементов массива, n, m, l – размерность массива.
Определим порядок действий решения задачи:
-
описание переменных: n, m, l, mas[i][j][k], i, j, k;
-
ввод размерности массива n, m, l;
-
организуем цикл для ввода массива: переменные счетчики i, j, k устанавливаем в ноль. Перемещаемся по строкам справа налево, переходя от строки к строке, от одного двумерного массива к следующему двумерному массиву, увеличивая счетчик на единицу. После заполнения всего массива переходим к следующему действию;
-
организуем цикл проверки элементов массива: если элемент больше нуля, то меняем значение элемента на единицу операцией присваивания, в противном случае на ноль. Переменные счетчики i, j, k устанавливаем в ноль. Перемещаемся по строкам справа налево, переходя от строки к строке, от одного двумерного массива к следующему двумерному массиву, увеличивая счетчик на единицу.
-
организуем цикл вывода элементов полученного трехмерного массива на экран.
Нарисуем блок-схему по этим действиям: