Одномерный массив из отрицательных элементов области исходной матрицы - Pascal
Формулировка задачи:
Доброго времени суток, помогите пожалуйста с задачей.
Сформировать одномерный массив В из отрицательных элементов области исходной матрицы А(9,7), лежащей левее шестого столбца. В полученном массиве поменять местами первый и максимальный элементы.
Решение задачи: «Одномерный массив из отрицательных элементов области исходной матрицы»
textual
Листинг программы
const m=9; n=7; p=5; W=3;
var
a: array [1..m, 1..n] of Integer;
b: array [1..m*p] of Integer;
bn, im, i, j, t: Integer;
begin
Randomize; {bn:=0;}
WriteLn('A =');
for i:=1 to m do begin
for j:=1 to n do begin
a[i,j]:=-99+Random(199); Write(' ',a[i,j]:W);
end; WriteLn;
end;
WriteLn('B ='); im:=1;
for i:=1 to m do for j:=1 to p do
if a[i,j]<0 then begin
Inc(bn); b[bn]:=a[i,j]; Write(' ',b[bn]:W);
if b[im]<b[bn] then im:=bn;
end;
WriteLn;
if bn=0 then WriteLn('Нет отрицательных в [1;1]-[',m,',',p,']')
else begin
WriteLn('Максимум: ',b[im],' в позиции ',im);
t:=b[1]; b[1]:=b[im]; b[im]:=t;
WriteLn('B''=');
for i:=1 to bn do Write(' ',b[i]:W); WriteLn;
end;
end.
Объяснение кода листинга программы
- Объявляется константа
mсо значением 9, константаnсо значением 7, константаpсо значением 5, и константаWсо значением 3. - Объявляются переменные:
aкак двумерный массив размером m на n, содержащий целые числаbкак одномерный массив размером m*p, содержащий целые числаbn,im,i,j,tкак целочисленные переменные
- Генерируется случайное значение (Randomize)
- Выводится сообщение
A = - Создается цикл для заполнения двумерного массива
aслучайными отрицательными числами и выводится на экран - Выводится сообщение
B = - Создается цикл, в котором происходит заполнение одномерного массива
bотрицательными числами из двумерного массиваa. Также происходит поиск максимального отрицательного числа и его позиции в массивеb - Проверяется, есть ли отрицательные числа в заданной области [1;1]-[m;p]
- Если есть, выводится максимальное отрицательное число и меняется местами с первым отрицательным числом
- Выводится массив
bна экран Итак, в данном коде создается исходный двумерный массивa, заполняется случайными числами, затем из него формируется одномерный массивbиз отрицательных элементов, и выводится на экран.