Требуется написать программу с использованием подпрограмм. В первой задаче используются отдельные процедуры для ввода матрицы, ввода массива, вывода результатов и вычислений. Во второй задаче все вычисления оформляются в виде функции. Первая задача оценивается в 6 баллов, вторая – в 4 балла.
Задача 1
· ввод и вывод данных – 1 балл;
· передача параметров и вызов функции – 1 балл;
· анализ существования результата вычислений – 1 балл;
· тесты – 1 балл;
· обработка данных:
o циклы – 0,5 балла;
o досрочный выход из цикла – 1,5 балла.
Задача 2
· ввод и вывод данных – 0,5 балла;
· тесты – 0,5 балла;
· передача параметров в функцию и вызов – 0,5 балла;
· анализ существования результата вычислений – 0,5 балла;
· обработка данных – 2 балла.
Задания и примеры их выполнения
Задача 1.Дана целочисленная матрица A[1:n, 1:m] и массив B[1:k]. Обнулить те строки, все элементы которых отсутствуют в массиве B. Найти сумму элементов остальных строк.
Решение. Приведен алгоритм процедуры вычислительной части задачи.
Алг «процедура обнуления»
Вход: n, m, a[1:n, 1:m], k, b[1:k]
выход: n1, a[1:n1,1:m], s
Нач
s:=0 {сумма}
циклот i:=1 до n {строки}
j:=1 {номер столбца}
flag:=false {признак отсутствия элементов в массиве}
цикл-пока j<=m и flag=false
L:=1 {текущий номер элемента в B}
цикл-пока L<=k и a[i,j]≠B[L]
L:=L+1{берем следующий элемент B}
кц
если L<=k то {a[i,j] есть в B}
flag:=true
иначе
j:=j+1 {берем следующий столбец}
все
кц
если flag то {i-я строка обнуляется}
циклот j:=1 до m
a[i, j]:=0
кц
иначе
циклот j:=1 до m
s:=s+a[i,j] {считаем сумму не обнуленных элементов}
кц
все
кц
кон
Задача 2.Написать программу с использованием функции, которая переставляет в обратном порядке элементы главной диагонали матрицы, если сумма четных элементов, расположенных под главной диагональю, положительная.