Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
алгоритм на псевдокоде.docx
Скачиваний:
14
Добавлен:
01.07.2025
Размер:
70.92 Кб
Скачать

Внешняя спецификация 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.