Помощь - Поиск - Пользователи - Календарь
Полная версия: Матрица. Решить используя средства управления вводом/выводом.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
RioDezz
Здравствуйте!

Паскаль изучаю недавно, дали дз, но не понятно как сделать его. Учителя говорят думай, но я так ничего не смог придумать. Помогите, пожалуйста! Заранее спасибо.

Задача:
Решить поставленную задачу, используя средства управления вводом/выводом. Целочисленный массив размера n*m (n,m<=10) сформировать следующим образом: все элементы первого столбца равны 10, второго - 20, третьего - 30 и т. д. Вывести массив на экран так, чтобы каждая четная строка была смещена относительно нечетной на два элемента, поочередно то вправо, то влево:
            *  *  *  *  * 
* * * * *
* * * * *
* * * * *
* * * * *
и т. д.

Вот все, что написал:
var
n,m,i,j:integer;
a:array[1..10,1..10] of integer;
begin
write('Enter matrics n*m: ');
readln(n,m);
if (n<=10) and (m<=10) then
begin
writeln;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=j*10;
write(a[i,j]:4);
end;
writeln;
end;
end
else write('Nevernie znacheniya, n,m>10!');
readln;
end.
Федосеев Павел
Примерно так, но это не очень аккуратное решение...

const
StepPos = 3;
var
step, shift: integer;
..........................

step := StepPos;
shift := 2 * step;
for i := 1 to n do
begin
Write(a[i, 1]: (shift + 2));
for j := 2 to m do
begin
Write(a[i, j]: (StepPos));
end;
writeln;
if (shift = 0) or (shift = 2 * StepPos) then
step := -step;
shift := shift + step;
end;

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.