Результаты работы оцениваются по 10 балльной шкале.
Для решения задачи необходимо написать 2 программы (в сумме 9 баллов) и привести исходные данные для их исчерпывающего тестирования (в сумме 1 балл).
Задача 1
· ввод и вывод данных – 0,5 балла;
· передача параметров и вызов функции – 1 балл;
· анализ существования результата вычислений – 1 балл;
· тесты – 0,5 балла;
· обработка данных:
o циклы – 0,5 балла;
o досрочный выход из цикла – 1,5 балла;
o оставшаяся часть алгоритма – 2 балла.
Задача 2
· ввод и вывод данных – 0,5 балла;
· тесты – 0,5 балла;
· передача параметров в функцию – 0,5 балла;
· обработка данных – 1,5 балла.
На решение задачи отводится 2 академических часа.
Задание и пример его выполнения
Задача.Дана целочисленная матрица A[1:n, 1:m] и целочисленный массив B[1:k]. Найти максимальный элемент среди элементов матрицы A, не встречающихся в массиве B. Написать программу с использованием отдельных процедур для ввода данных, вычислений и вывода результатов.
Решение.
program exam;
type mass=array[1..20] of integer;
matr=array[1..20,1..20] of integer;
var a:matr; b:mass;
n,m,k,max:integer;
f:boolean;
procedure input_array(var k:integer; var b:mass);
var i:integer;
begin
{ввод массива}
repeat
write('введите k');
read(k);
until(k>0) and(k<=20);
write('введите мессив') ;
for i:=1 to k do
read(b[i]);
end;
procedure input_matrix(var n,m:integer; var a:matr);
var i,j:integer;
begin
{ввод матрицы}
repeat
write('введите n, m');
read(n,m);
until (n>0) and(n<=20)and (m>0) and(m<=20);
write('введите матрицу') ;
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
end;
procedure count (n, m, k:integer; var a:matr; var b:mass; var max:integer; var f: boolean);