Другие языки программирования и технологии

Разработка в среде TURBO PASCAL программы перестановки элементов массива.

Дан целочисленный двумерный массив.
1 Элементы первой строки представить в одномерный массив.
2 Отсортировать элементы последней строки по убыванию.
3 В последнем столбце удалить все элементы, значения которых меньше P(число P ввести с клавиатуры).
Под удалением понимается исключение этого элемента путем смещения всех следующих за ним влево на 1 позицию и присвоение последнему элементу значения 0.
Для отладки программы числа матрицы сформировать с помощью генератора случайных числе.
program pp;
type tb=array[1..20]of integer; ta=array[1..20]of tb;
var b:tb; a:ta; n,m,i,j,k,p:integer;
begin
randomize; write('n m p: '); readln(n,m,p); writeln;
for i:=1 to n do for j:=1 to m do a[i,j]:=random(100);
for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln end; writeln;
b:=a[1]; for j:=1 to m do write(b[j]:4); writeln; writeln;
for i:=2 to m do for j:=2 to m do if a[n,j]>a[n,j-1] then
begin k:=a[n,j-1]; a[n,j-1]:=a[n,j]; a[n,j]:=k end;
for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln end; writeln;
j:=0; for i:=1 to m do if a[i,m]<p then begin j:=j+1; a[j,m]:=a[i,m] end;
for i:=j+1 to 5 do a[i,m]:=0;
for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln end; writeln;
readln
end.

Тут при вводе n - количество строк, m - количество столбцов, p - число-критерий.
Константин Геннадьевич
Константин Геннадьевич
90 617
Лучший ответ
1) for j:=1 to m do
b[j]:=a[1,j]; исходный массив А (n,m); одномерный массив В
остальное сам, не получится - пиши
Евгений Зюкаев
Евгений Зюкаев
95 951
program ideone;
const size = 10;
var A: array[1..size,1..size] of integer;
B: array[1..size] of integer;
i, j, tmp, P, end_: integer;
begin
randomize;
for i:=1 to size do
for j := 1 to size do
A[i,j]:=random(200)-100;

for i:=1 to size do begin
for j := 1 to size do
write(A[i,j]:4);
writeln;
end;
writeln;

{1}
writeln('1:');
writeln;
for i:=1 to size do
B[i] := A[1][i];

for i:=1 to size do write(B[i]:4);
writeln;

{2}
writeln('2:');
writeln;
for i:=1 to size do
for j:=i+1 to size do
ifA[size, i] < A[size,j] then begin
tmp := A[size,i];
A[size,i] := A[size,j];
A[size,j] := tmp;
end;

for i:=1 to size do begin
for j := 1 to size do
write(A[i,j]:4);
writeln;
end;
writeln;

{3}
writeln('3:');
readln(P);
i := 1;
end_ := size;
while i <= end_ do begin
if A[i,size] < P then begin
for j:=i to end_ do
if j + 1 < end_ then A[j, size] := A[j+1, size]
else A[j,size] := 0;
i := i - 1;
end_ := end_ - 1;
end;
i := i + 1;
end;

for i:=1 to size do begin
for j := 1 to size do
write(A[i,j]:4);
writeln;
end;
writeln;

end.