Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2009, 16:33   #1
microlab
Пользователь
 
Регистрация: 06.11.2008
Сообщений: 51
По умолчанию масив в паскале

Так уважаемые програмисты помагите написать прогу на заполнение двух мерного массива при помощи каждый следуюший член массива больше предыдушего в 2 раза,а расположение элементов массиво должно быть улитко образной формы Пример
3 6 12
384 768 24
192 96 48
P.S. первый элемент вводиться с клавы и размерность матрицы произвольная
microlab вне форума Ответить с цитированием
Старый 16.01.2009, 16:44   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Уже решал подобную задачу здесь на форуме (Думаю, не я один).

Код:
uses crt;

var
a : array[1..100,1..100] of longint;
i,j,maxi,mini,minj,maxj,kk,el : longint;
m,n : integer;

begin
clrscr;
write('Enter m: ');
readln(m);
write('Enter n: ');
readln(n);
write('Enter first element: ');
readln(el);

minj := 1;
maxj := n;
kk := 1;
mini := 1;
maxi := m;
repeat
  for j:=minj to maxj-1 do
  begin
   a[mini,j] := el;
   el := el*2;
   inc(kk);
  end;
  inc(j);
 for i:= mini to maxi-1 do
  begin
   a[i,maxj] := el;
   el := el*2;
   inc(kk);
  end;
  inc(i);
 for j:= maxj downto minj+1 do
  begin
   a[maxi,j] := el;
   el := el*2;
   inc(kk);
  end;
 for i:= maxi downto mini+1 do
  begin
   a[i,minj] := el;
   el := el*2;
   inc(kk);
  end;
 inc(mini);
 inc(minj);
 dec(maxi);
 dec(maxj);
{----}
 if (m=n) and odd(m) and (minj=maxj) then
  begin
  a[mini,minj] := el;
  break;
  end;
{----}
until kk>=m*n;

for i:=1 to m do
 begin
 for j:=1 to n do
  write(a[i,j]:9);
 writeln;
 end;


readln;
end.
Пример ввода:
Код:
Enter m: 4
Enter n: 5
Enter first element: 2
        2        4        8       16       32
    16384    32768    65536   131072       64
     8192  1048576   524288   262144      128
     4096     2048     1024      512      256
upd Выяснилось, что если матрица квадратная с нечетной стороной (3x3,5x5), то не считается элемент в центре.. Хм..
В общем, добавил проверку (внизу цикла). Теперь все нормально.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 16.01.2009 в 17:05.
Sazary вне форума Ответить с цитированием
Старый 16.01.2009, 17:02   #3
microlab
Пользователь
 
Регистрация: 06.11.2008
Сообщений: 51
По умолчанию

спасибо большое
microlab вне форума Ответить с цитированием
Старый 16.01.2009, 17:48   #4
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

программа интересная, но от массивов уже тошнить начинает ) где же мои любимые объекты ))
capta1n вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Масив rizii Общие вопросы C/C++ 2 09.01.2009 13:30
Двухмерный масив alen666 Помощь студентам 3 07.12.2008 13:31
Масив и timage. RealSHELS Мультимедиа в Delphi 2 06.05.2008 13:39
Масив и матрица nikleb Паскаль, Turbo Pascal, PascalABC.NET 4 26.02.2008 01:31
маcсив nikleb Паскаль, Turbo Pascal, PascalABC.NET 3 19.04.2007 23:23