Я в больнице месяц провела,а тут вышла и информатика...Скажу честно - ничего не понимаю.Что делать и как..А задачи сдать надо. Очень прошу о помощи.
Задачи.
1. Дан 2-х мерный массив, поменять местами указанные столбцы. 2. Дан 2-х мерный квадратный массив. требуется вывести на экран строку чисел, но не по порядку, а по змейке. см. пример: массив 1 2 3 4 5 6 7 8 9 результат вывода на экран 1 2 3 6 9 8 7 4 5
Carola
13.12.2005 3:08
никто не поможет?
volvo
13.12.2005 3:31
Первая...
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 { Столбец с номером First поменять местами со столбцом с номером Second } first := 1; second := 2;
writeln('До:'); 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('После:');
for i := 1 to n do begin for j := 1 to n do write(a[i, j]:4); writeln; end;
end.
Carola
13.12.2005 21:34
Спасибо,Владимир=) Лучше бы ты был моим преподавателем.
То есть,прям в таком виде и сдавать,да*?(ну закинув в паскаль конечно=) Эх,надеюсь кто-нибудь и вторую сделает.... Ещё 4 осталось.....Но,не буду наглеть пока.
volvo
13.12.2005 22:23
Вторая задачка немного посложнее (я сделал для любого N, достаточно будет только поменять N=... и саму матрицу A, и программа будет работать):
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.
Carola
14.12.2005 1:57
Спасибо
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.