Здраствуйте! Помогите пожалуста, кому не сложно решить довольно простетскую задачку. Пробывал, но у меня не выходит...
Требуется отсортировать по возрастанию только элементы массива с чётным индексом
И ещё вот одна, ну в ней у меня вообще завал
Задан двумерный массив, требуется переставить местами элементы 1 столбца и элементы столбца в котором находятся самый максимальный элемент этого массива.
var
ar : array[1..n] of integer;
i, dx, temp : integer;
begin
clrscr;
randomize;
for i := 1 to n do
begin
ar := random(30);
writeln(ar);
end;
dx := trunc(n / 2);
writeln(dx);
i := 1;
while(i < dx )do
begin
if(ar[i * 2] > ar[(i + 1) * 2]) then
begin
temp := ar[i * 2];
ar[i * 2] := ar[(i + 1) * 2];
ar[(i + 1) * 2] := temp;
if(i > 1) then
i := i - 1;
end
else
i := i + 1;
end;
writeln('--------------------------');
for i := 1 to n do
begin
if (i mod 2 = 0) then
writeln('->',ar)
else
writeln(ar);
end;
readkey;
end.
на первую задачу.
прога тупая) лень мозги вечером напрягать)
[syntax="pascal"]
uses crt;
var n_col,n_row: byte;
mass: array[1..30,1..30] of real;
i,j,max_j: integer;
max,buf: real;
begin
clrscr;
write('Zadaite kol-vo strok: ');
readln(n_col);
write('Zadaite kol-vo stolbcov: ');
readln(n_row);
max_j:=1;
for i:=1 to n_col do
begin
clrscr;
writeln('Stroka ',i);
for j:=1 to n_row do
begin
write('#',j,': ');
readln(mass[i,j]);
if (i=1) and (j=1) then max:=mass[i,j]
else if max<=mass[i,j] then
begin
max:=mass[i,j];
max_j:=j;
end;
end;
end;
clrscr;
writeln('ISHODNYI MASSIV: ');
for i:=1 to n_col do
begin
for j:=1 to n_row do write(mass[i,j]:6:2,' ');
writeln;
end;
writeln('MAX: ',max:6:2);
readkey;
for i:=1 to n_col do
begin
buf:=mass[i,1];
mass[i,1]:=mass[i,max_j];
mass[i,max_j]:=buf;
end;
writeln('MASSIV POSLE PERESTANOVKI: ');
for i:=1 to n_col do
begin
for j:=1 to n_row do write(mass[i,j]:6:2,' ');
writeln;
end;
readkey;
end.
[/syntax]