Помощь - Поиск - Пользователи - Календарь
Полная версия: Матрица. Решить используя средства управления вводом/выводом.
Форум «Всё о Паскале» > 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;

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