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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2011, 11:30   #1
Artoo
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 10
По умолчанию Заполнить матрицу

По-любому задача простая, но я не могу сообразить как решить ее рационально.
Как заполнить матрицу вот таким способом?


Artoo вне форума Ответить с цитированием
Старый 04.12.2011, 12:00   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

Не знаю, на сколько это рационально, но получилось вот так:
Код:
  FillChar (M, SizeOf (M), 0);
  A := 1;
  for j := 1 to 5 do
    for i := 1 to j do
    begin
      nj := 10 - j;
      M[j-i+1,nj] := 26 - A;
      M[nj+i-1,nj] := 50 - A;
      M[10-i,j] := 25 + A;
      M[i,j] := A;
      Inc (A);
    end; {for}

Последний раз редактировалось Arigato; 04.12.2011 в 12:02.
Arigato вне форума Ответить с цитированием
Старый 04.12.2011, 12:08   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Примерный алгоритм может выглядеть так:
Код:
MODULE Матрица;
IMPORT StdLog,ObxRandom;
VAR  a:ARRAY(9) OF ARRAY(9) OF INTEGER;

PROCEDURE ВводМассива;
VAR i,j,e:INTEGER;
BEGIN
 e:=1; FOR i:=0 TO 4 DO FOR j:=0 TO i DO	 a[j,i]:=e;INC(e);	END;  END;
 e:=25;FOR i:=0 TO 3 DO FOR j:=0 TO i DO	 a[j,8-i]:=e;DEC(e);	END;  END;
 e:=26;FOR i:=0 TO 4 DO FOR j:=0 TO i DO	 a[8-j,i]:=e;INC(e);	END;  END;
 e:=49;FOR i:=0 TO 3 DO FOR j:=8-i TO 8 DO	 a[j,8-i]:=e;DEC(e);	END;  END;
END ВводМассива;

PROCEDURE НульМассива;
VAR i,j:INTEGER;
BEGIN
 FOR i:=0 TO LEN(a)-1 DO
	FOR j:=0 TO LEN(a[i])-1 DO
	 a[i,j]:=0;
	END;
 END;
END НульМассива;

PROCEDURE ВыводМассива;
VAR i,j,e:INTEGER;
BEGIN
 e:=1;
 FOR i:=0 TO LEN(a)-1 DO
	FOR j:=0 TO LEN(a[i])-1 DO
	 StdLog.IntForm(a[i,j],10,3,' ',FALSE);StdLog.Tab;
	END; StdLog.Ln;
 END;
END ВыводМассива;

PROCEDURE do*;
BEGIN
 StdLog.Clear;НульМассива; ВводМассива;ВыводМассива;
END do;

END Матрица.
Бабочку выдает, н правда тут стоит его немного подправить...
I'm learning to live...

Последний раз редактировалось Stilet; 04.12.2011 в 12:13.
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
заполнить квадратную матрицу Orakyll08 Помощь студентам 13 12.07.2011 01:46
Заполнить квадратную матрицу ac1d_buRn Помощь студентам 3 22.12.2010 19:40
Заполнить матрицу по спирали kloffelin Общие вопросы C/C++ 4 03.05.2010 13:37
Матрицу K(m,n) заполнить следующим образом farrrell Фриланс 4 20.02.2010 22:10
Заполнить матрицу линейной последовательностью Настенька..Блонди Помощь студентам 5 05.02.2009 20:53