- •Титульный лист
- •Курс: Алгоритмизация вычислений отчет по лабораторной работе № 4
- •Постановка задачи 1
- •Постановка задачи 2
- •Метод решения задачи 1
- •Метод решения задачи 2
- •Внешняя спецификация 2
- •Описание алгоритма на псевдокоде 1
- •Листинг программы 1
- •Листинг программы 2
- •Описание алгоритма на псевдокоде 2
- •Распечатка тестов к программе и результатов 1
- •Распечатка тестов к программе и результатов2
Внешняя спецификация 2
Лабораторная
работа 4
Задание
2 Введите
размер массива a
: <n>
Введите
элементы массива a:
<a[1]><a[2]>….<a[k]> Полученные
элементы: <<d[1]>><<d[2]>>….<<d[t]>>
Описание алгоритма на псевдокоде 1
Алг «Лабораторная работа 4» Нач цикл ввод (n )
если n < то
вывод(<<размер матрицы не должно быт отрицательным>>)
все
до n > 0
кц
цикл ввод (m)
если m < то
вывод(<<размер матрицы не должно быт отрицательным>>)
все
до m > 0
кц
ввод(y[1:n, 1:n])
цикл от i := 1 до n
max := -maxint-1;
min := maxint;
min1 := 0;
max1 := 0;
цикл от j:= 1 до m если max < y[i , j] то
max := y[i , j];
max1 := j; всё
если min > y[i , j] то
min := y[i , j];
min1 := j;
всё
кц
l := l + 1;
d[l] := min1;
l := l + 1;
d[l] := max1;
кц
цикл ввод (k )
если k < 0 то
вывод(<<размер матрицы не должно быт отрицательным>>)
все
до k > 0
кц
ввод(a[1:k])
i := 2;
цикл-пока i <= l
l1 := 0;
l2 := 0;
цикл от j := 1 до k если y[i div 2, d[i - 1]] = b[j] то
l1 := 1;
всё
если y[i div 2, d[i - 1]] = b[j] то
l1 := 1;
всё
если (l1 = 0) и (l2 = 0) то
t := t + 1;
c[t] := y[i div 2, d[i - 1]];
t := t + 1;
c[t] := y[i div 2, d[i]];
y[i div 2 , d[i]] := 0;
y[i div 2, d[i - 1]] := 0;
кц
i := i + 2;
кц
если t = 0 то вывод(<<Обнуления нет>>)
иначе
вывод(<<y[i , j]>>)
вывод(<<c[i]>>)
все
кон
Листинг программы 1
var
y: array[1..100,1..100] of integer;
c , d, b: array[1..100] of integer;
n , m , t , i , j , l , l1 , l2 , k, max , max1 , min , min1: integer;
begin
writeln('Лабараторная работа 4');
writeln('Задание 1');
writeln('Введите размер матрицы n на m:');
l := 0;
read(n,m);
writeln('Введите элементы матрицы:');
for i := 1 to n do
for j := 1 to m do
read(y[i , j]);
for i := 1 to n do
begin
max := -maxint-1;
min := maxint;
min1 := 0;
max1 := 0;
for j:= 1 to m do
begin
if max < y[i , j] then
begin
max := y[i , j];
max1 := j;
end;
if min > y[i , j] then
begin
min := y[i , j];
min1 := j;
end;
end;
l := l + 1;
d[l] := min1;
l := l + 1;
d[l] := max1;
end;
writeln('Введите размер массива a');
read(k);
writeln('Введите элементы массива а');
for i := 1 to k do
read(b[i]);
i := 2;
while i <= l do
begin
l1 := 0;
l2 := 0;
for j := 1 to k do
begin
if y[i div 2, d[i - 1]] = b[j] then
l1 := 1;
if y[i div 2, d[i]] = b[j] then
l2 := 1;
end;
if (l1 = 0) and (l2 = 0) then
begin
t := t + 1;
c[t] := y[i div 2, d[i - 1]];
t := t + 1;
c[t] := y[i div 2, d[i]];
y[i div 2 , d[i]] := 0;
y[i div 2, d[i - 1]] := 0;
end;
i := i + 2;
end;
if t = 0 then writeln('Обнуления нет')
else
begin
writeln('Полученная матрица:');
for i := 1 to n do
begin
for j := 1 to m do
write(y[i , j], ' ');
writeln;
end;
writeln('полученный массив:');
for i := 1 to t do
write(c[i], ' ');
end;
end.
