IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Матрица, Окаймление числа
Tauka
сообщение 21.08.2004 17:20
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 28

Репутация: -  0  +


Матрицу А(m,n) заполнить следующим образом:
Для заданных k и l элементу akl присвоить значение 1, элементам, окаймляющим его (соседним с ним по вертикали, горизонтали и диагонали) - значение 2; элементам следующего окаймления - значение 3 и так далее до заполнения всей матрицы.
Примечание: Алгоритм не изменится, если координаты элемента (несуществующего k и l) находятся за пределами матрицы.

Спасибо за внимание! smile.gif


--------------------
С уважением,
Таука.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
APAL
сообщение 21.08.2004 18:52
Сообщение #2


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Код
Const
m = 5;
n = 8;

Var
 K,L,i,q : Integer;
 tmp     : Integer;
 A       : Array [1..m,1..n] of Byte;

Procedure PutNum(kk,ll,ii : Integer);
Begin
 If ((kk>0) and (kk<=m)) and ((ll>0) and (ll<=n)) then A[kk,ll]:=ii;
End;

Begin
 Write('A(',m,',',n,')  Enter K and L : '); Readln(K,L);
 If K>L then tmp:=abs(K) else tmp:=abs(L);
 If tmp<m then tmp:=m;
 If tmp<n then tmp:=n;

 For q:=1 to tmp do
  For i:=k-(q-1) to k+(q-1) do
  Begin
    PutNum(i,l-(q-1),q);
    PutNum(i,l+(q-1),q);
    PutNum(k-(q-1),i,q);
    PutNum(k+(q-1),i,q);
  End;

  Writeln('Result:');
  For i:=1 to m do
  Begin
   For q:=1 to n do
     Write(A[i,q]);
   Writeln;
  End;
End.

Не забудьте подредактировать способ вывода результата... (чтобы не было проблем с числами больших или равных 10 - т.е. с дву-трех-....значными)


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 13:52
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"