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

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

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

 
 Ответить  Открыть новую тему 
> квадратная матрица..., нужен алгоритм решения
MI666
сообщение 15.11.2004 9:24
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской

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


По заданной квадратной матрице размером 10*10 построить вектор длиной 19, элементы которого - максимумы элементов диагоналей, паралельных главной диагонали.

thanks...


--------------------
welcome: http://www.m666.nm.ru/
motto: all comes with experience...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
trminator
сообщение 15.11.2004 12:01
Сообщение #2


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

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


Элементы, стоящие на диагонали, параллельной главной:
x[i,j] : (i - j = c = const)

c дает номер диагонали. В твоей матрице будут диагонали с номерами
-9, -8, -7, ..., 0 (главная), 1, ..., 9

То есть можно просто пройти по матрице, выясняя, какой диагонали принадлежит текущий элемент, и запихивая его в соответствующий элемент вектора.

ЗЫЖ: много же вам задали... smile.gif


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
virt
сообщение 15.11.2004 16:26
Сообщение #3


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

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


Код
program maxins_on_diags;
var a:array[1..10,1..10]of integer;
   i,j,k:integer;
   b:array[1..19]of integer;
   v:integer;

begin
  assign(input,'gdiagmax.in');reset(input);
  assign(output,'gdiagmax.out');rewrite(output);
  for i:=1 to 10 do
     for j:=1 to 10 do
        read(a[i,j]);
  for k:=1 to 10 do
  begin
     v:=-maxint-1;
     for i:=1 to 11-k do
        if a[i,k+i-1] > v then v:=a[i,k+i-1];
     b[11-k]:=v;
     v:=-maxint-1;
     for i:=1 to 11-k do
        if a[k+i-1,i] > v then v:=a[k+i-1,i];
     b[9+k]:=v;
  end;
  for i:=1 to 19 do
     write(b[i],' ');
end.


Прикрепленные файлы
Прикрепленный файл  gdiagmax.zip ( 803 байт ) Кол-во скачиваний: 171


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 

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