Контрольная работа: Выражения и условный оператор IF. Операторы циклов. Массивы и подпрограммы
Цикл while имеет следующие отличия от оператора repeat :
1) В операторе while проверка условия выхода выполняется в начале выхода, а у repeat в конце.
2) Тело цикла может выполняться ни разу в while , а в repeat всегда выполняется хотя бы один раз;
3) Условие выхода удовлетворяется, если выражение ложно, repeat – если истинно;
4) Тело цикла должно содержать только один оператор, а в repeat можно поместить любое количество операторов.
Оператор For: Если значение условного выражения истинно, то цикл продолжает выполняться, а если значение условного выражения ложно, то происходит выход из цикла. После выхода из цикла идет переход к следующему оператору программы. Изменение – это выражение, определяющее, как будет меняться параметр цикла. В операторе for сначала проверяется условие и если значение условия "истинно", то идёт выполнение тела цикла (блока операторов или простого оператора).
Задание №3. «Массивы и подпрограммы»
Результатом выполнения третьего задания должна быть программа, написанная с использованием подпрограмм – не менее 2 процедур и 1 функции.
Задание связанно с действиями над квадратной матрицей m[n,n], у которой количество строк и столбцов равно n (2 ≤ n ≤ 10). Матрицы могут быть либо вещественного, либо целого типа. Значения компонентов матрицы следует задавать случайным образом и в таком диапазоне, чтобы полученные данные были нетривиальными, т.е. неочевидными, не лежащими на поверхности.
Задание:
1) Найти минимальное и максимальное значение компонентов квадратной вещественной матрицы m [n ,n ].
2) Поменять местами в матрице m [n ,n ] компоненты строки, содержащей минимум, с компонентами столбца, содержащего максимум. Если минимумов или максимумов в матрице несколько, то взять строку и столбец первых встречных при переборе из минимумов и максимумов соответственно.
3) В одномерный массив v [n ] записать компоненты главной диагонали измененной матрицы m [n ,n ] (индексы строки и столбца главной диагонали равны).
4) Вычислить сумму компонентов полученного массива v [n ].
5) На экран вывести исходную матрицу m [n ,n ], первые встреченные минимальную и максимальную компоненты с индексами, измененную матрицу m [n ,n ], массив v [n ], сумму компонентов массива v [n ].
Решение.
В следующей программе использованы 3 процедуры:
- input_matrix для ввода n и заполнения матрицы m[n,n];
- output_matrix для вывода матрицы на экран;
- change_matrix для изменения элементов стоки и столбца матрицы;
и одна функция:
- vector_v для вывода на экран вектора v [ n ] и суммирования его элементов.
Формат вывода результатов расчета задается постоянной digits :
const
digits=3;
которая указывает, сколько знаков после запятой отображать.
Программа :
program prog3;
const