Министерство образования Республики Беларусь
Министерство образования Республики Беларусь
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра метрологии и стандартизации
Метрология, стандартизация и сертификация в информационных технологиях
Практическая работа №1
«Метрики сложности потока управления программ»
Вариант 16
Выполнила: Студентка группы
972303
Рушева Маргарита
Владиславовна
Проверил: Грибович Александр
Александрович
Минск, 2020
1 Индивидуальное задание
Ввести массив А (8, 8). Найти минимальный элемент в побочной диагонали массива А. Поменять местами столбец, в котором находится данный элемент, с первым столбцом массива А. Вывести максимальный элемент, номера строки и столбца, в которых он находится, исходный и результирующий массивы.
2 Схема алгоритмов
Рисунок 1 – Схема работы алгоритма
Рисунок 1(продолжение) – Схема работы алгоритма
3 Описание схемы алгоритмов
Начало программы.
Объявление и инициализация константы SIZE = 8.
Объявление массива mas[SIZE][SIZE].
Вывод строки «Введите массив».
Объявление и инициализация переменной i = 0.
Внешний цикл: если i < SIZE, то переходим к блоку 7, если нет, то переходим к блоку 12.
Объявление и инициализация переменной j = 0.
Внутренний цикл: если j < SIZE, то переходим к блоку 9, если нет, то переходим к блоку 11.
Ввод элемента mas[i][j].
Инкрементация переменной j, переход к блоку 8.
Инкрементация переменной i, переход к блоку 6.
Объявление и инициализация переменной min = mas[0][SIZE-1].
Объявление переменной minJ.
Объявление и инициализация переменной i = 0.
Объявление и инициализация переменной j = SIZE-1.
Цикл: если i < SIZE, то переходим к блоку 17, если нет, то переходим к блоку 22.
Условие: если mas[i][j] <= min, то переходим к блоку 18, если нет, то переходим к блоку 20.
Присваивание переменной min значения mas[i][j].
Присваивание переменной minJ значения j,
Инкрементация переменной i.
Декрементация переменной j, переход к блоку 16.
Объявление массива new_mas[SIZE][SIZE].
Объявление и инициализация переменной i = 0.
Внешний цикл: если i < SIZE, то переходим к блоку 25, если нет, то переходим к блоку 33.
Объявление и инициализация переменной j = 0.
Внутренний цикл: если j < SIZE, то переходим к блоку 27, если нет, то переходим к блоку 29.
Присваивание элементу new_mas[i][j] значение элемента mas[i][j].
Инкрементация переменной j, переход к блоку 26.
Объявление и инициализация переменной change = new_mas[i][0].
Присваивание элементу new_mas[i][0] значение элемента new_mas[i][minJ].
Присваивание элементу new_mas[i][minJ] значение переменной change.
Инкрементация переменной i, переход к блоку 24.
Вывод строки «Исходный массив».
Объявление и инициализация переменной i = 0.
Внешний цикл: если i < SIZE, то переходим к блоку 36, если нет, то переходим к блоку 43.
Объявление и инициализация переменной j = 0.
Внутренний цикл: если j < SIZE, то переходим к блоку 38, если нет, то переходим к блоку 41.
Вывод элемента mas[i][j].
Вывод пробела.
Инкрементация переменной j, переход к блоку 37.
Переход на новую строку.
Инкрементация переменной i, переход к блоку 35.
Объявление и инициализация переменной max = new_mas[0][0].
Вывод строки «Новый массив».
Объявление и инициализация переменной i = 0.
Внешний цикл: если i < SIZE, то переходим к блоку 47, если нет, то переходим к блоку 58.
Объявление и инициализация переменной j = 0.
Внутренний цикл: если j < SIZE, то переходим к блоку 49, если нет, то переходим к блоку 56.
Вывод элемента new_mas[i][j].
Вывод пробела.
Условие: если mas[i][j] > max, то переходим к блоку 52, если нет, то переходим к блоку 48.
Присваивание переменной max значение элемента new_mas[i][j].
Присваивание переменной maxI значение переменной i.
Присваивание переменной maxJ значение переменной j.
Инкрементация переменной j, переход к блоку 48.
Переход на новую строку.
Инкрементация переменной i, переход к блоку 46.
Вывод строки «Максимальный элемент : ».
Вывод переменной max.
Вывод строки «Номер строки : ».
Вывод переменной maxI + 1.
Вывод строки «Номер столбца : ».
Вывод переменной maxJ + 1.
Конец программы.