У меня не работает паскаль и я буду очень признательна,если кто-нибудь закинет мне в него проги и даст ссылочки.ПЛЗ!
1. Дан 2-х мерный массив, поменять местами указанные столбцы.
2. Дан 2-х мерный квадратный массив. требуется вывести на экран строку чисел, но не по порядку, а по змейке. см. пример: массив
1 2 3
4 5 6
7 8 9
результат вывода на экран
1 2 3 6 9 8 7 4 5
Препод написал,что они у него не запускаются.
Первая.
const
n = 3;
a: array[1 .. n, 1 .. n] of integer =
((1, 2, 3),
(4, 5, 6),
(7, 8, 9));
var
i, j: integer;
first, second: integer;
T: integer;
begin
{ Stolbez s nomerom First pomeniat' mestami so stolbzom s nomerom Second }
first := 1; second := 2;
writeln('Do:');
for i := 1 to n do begin
for j := 1 to n do
write(a[i, j]:4);
writeln;
end;
for i := 1 to n do begin
T := a[i, first];
a[i, first] := a[i, second];
a[i, second] := T;
end;
writeln('Posle:');
for i := 1 to n do begin
for j := 1 to n do
write(a[i, j]:4);
writeln;
end;
end.
Вторая.
const
n = 3;
a: array[1 .. n, 1 .. n] of integer =
((1, 2, 3),
(4, 5, 6),
(7, 8, 9));
var
steps: array[1 .. 2*n - 1] of byte;
var
i, j, ii, jj: integer;
begin
j := 0;
for i := 2*n-1 downto 1 do begin
if odd(i) then inc(j);
steps[i] := j
end;
j := 0;
ii := 1; jj := 0;
repeat
if j < 2*n-1 then begin
inc(j);
for i := 1 to steps[j] do begin
inc(jj); write(a[ii, jj]:5);
end;
end;
if j < 2*n-1 then begin
inc(j);
for i := 1 to steps[j] do begin
inc(ii); write(a[ii, jj]:5);
end;
end;
if j < 2*n-1 then begin
inc(j);
for i := 1 to steps[j] do begin
dec(jj); write(a[ii, jj]:5);
end;
end;
if j < 2*n-1 then begin
inc(j);
for i := 1 to steps[j] do begin
dec(ii); write(a[ii, jj]:5);
end;
end;
until j = (2*n - 1);
writeln;
end.