![](/user_photo/2706_HbeT2.jpg)
- •Цели освоения дисциплины
- •Компетенции обучающегося, формируемые в результате освоения дисциплины
- •Место дисциплины в структуре образовательной программы
- •Формы контроля знаний студентов
- •Критерии оценки знаний, навыков
- •Порядок формирования оценок по дисциплине Для вычисления накопленной оценки по дисциплине используется следующая таблица.
- •Содержание дисциплины
- •1 Модуль
- •1 Модуль.
- •2 Модуль.
- •1 Модуль.
- •2 Модуль.
- •Примеры заданий промежуточного /итогового контроля
- •Задача. Дан массив a[1:n].Сформировать новый массив, состоящий из элементов, не превышающих среднего арифметического отрицательных элементов исходного массива.
- •Учебно-методическое и информационное обеспечение дисциплины
Задача. Дан массив a[1:n].Сформировать новый массив, состоящий из элементов, не превышающих среднего арифметического отрицательных элементов исходного массива.
Решение.
Постановка задачи
Дано:n,a[1:n]
Результат:b[1:k] или сообщение «нет отрицательных элементов»
При:nЄN,n≤Lmax
Связь:
b[j]=a[i], если a[i]≤sr, i=1,n, j=1,k.
Алг «новый массив»
Нач
ввод(n, a[1:n])
{инициализации}
sr:=0
kol:=0
цикл от i:=1 до n
если a[i] <0 то
sr:=sr+a[i]
kol:=kol+1
все
кц
если kol=0 то
вывод(«нет отрицательных элементов»)
иначе
sr:=sr/kol
k:=0{длина нового массива B}
цикл от i:=1 до n
если A[i] ≤sr то
k:=k+1
B[k]:=A[i]
все
кц
вывод(B[1:k])
все
кон
program new_array;
type
mass=array[1..20] of integer;
var a, b:mass;
i,k,n,kol:integer;
sr:real;
begin
repeat
writeln('введите n от 1 до 20');
read(n);
until (n>0) and (n<=20);
writeln ('введите массив A из ', n, ' элементов');
for i:=1 to n do
read(A[i]);
sr:=0;
kol:=0;
for i:=1 to n do
if a[i]<0 then
begin
sr:=sr+a[i];
kol:=kol+1;
end;
if kol=0 then
writeln ('нет отрицательных элементов')
else
begin
sr:=sr/kol;
k:=0;{длина B}
for i:=1 to n do
if A[i] <=sr then
begin
k:=k+1 ;
B[k]:=A[i];
end;
writeln('Получен массив');
for i:=1 to k do
write(b[i]:10);
end;
end.
Тесты:
n=5, A={1, -2, 3, -4, 5}, b={-4}
n=2,A={0, 6}, “нет отрицательных элементов”
Экзамен (2 модуль).
Критерии оценивания результатов
Результаты работы оцениваются по 10 балльной шкале.
Для решения задачи необходимо написать 2 программы (в сумме 9 баллов) и привести исходные данные для их исчерпывающего тестирования (в сумме1 балл).
Задача 1
ввод и вывод данных – 0,5 балла;
передача параметров и вызов функции – 1 балл;
анализ существования результата вычислений – 1 балл;
тесты – 0,5 балла;
обработка данных:
циклы – 0,5 балла;
досрочный выход из цикла – 1,5 балла;
оставшаяся часть алгоритма – 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);
var i,j,t :integer;
begin
{инициализация}
max:=-maxint;
f:=false;{признак существования результата}
for i:=1 to n do
for j:=1 to m do
if a[i,j] >=max then
begin
t:=1 ;
while(t<=k) and(a[i,j]<>b[t])do
t:=t+1;
if t>k then
begin
f:=true; max:=a[i,j];
end;
end;
end;
procedure output_result(f:boolean; max:integer);
begin
if f=false then
writeln ('нет максимума)
else
writeln ('max=', max)
end;
begin
input_array(k, b);
input_matrix(n, m, a);
count (n, m, k, a, b, max, f);
output_result(f, max);
end.