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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2018, 13:52   #1
Olegyshke
 
Регистрация: 15.05.2018
Сообщений: 3
По умолчанию Pascal. По заданной квадратной матрице построить вектор длиной 2n-1, элементы которого максимумы элементов диагоналей, параллельных главной диагонали

Здравствуйте, мне задали такую задачу "По заданной квадратной матрице построить вектор длиной 2n-1, элементы которого максимумы элементов диагоналей, параллельных главной диагонали". Я не смог сам решить но кажется нашел решенный вариант, НО ПРЕПОД ЗАВАЛИЛ НА ВОПРОСАХ Т.К. Я ТАК И НЕ СМОГ РАЗОБРАТЬ ПРОГРАММУ ПОЖАЛУЙСТА КТО НИ БУДЬ МОЖЕТ ПРОКАМЕНТИРОВАТЬ СТРОКИ В ПРОГРАММЕ.
Один из вопросов препода где матрица делится на диагонали. Заранее спасибо.

Код:
const
  n=10;
var
  a: array[1..n,1..n] of integer;
  b: array[1..n*2-1] of integer;
  i,j,max,m,k: integer;
begin
  writeln('Исходная матрица:');
  for i:=1 to n do
  begin
    for j:=1 to n do
    begin
      a[i,j]:=random(99)+1;
      write(a[i,j]:4);
    end;
    writeln;
  end;
  writeln;
    
  m:=0;
  for k:=1-n to n-1 do
  begin
    inc(m);
    max:=-32768;
    for i:=1 to n do
    begin
      for j:=1 to n do
        if (j-i=k)and(a[i,j]>max)then max:=a[i,j];
      b[m]:=max;
    end;
  end;
  
  writeln('Полученный массив максимумов диагоналей:');
  for i:=1 to 2*n-1 do write(b[i],' ');
  readln;
end.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 25.10.2018 в 14:00.
Olegyshke вне форума Ответить с цитированием
Старый 25.10.2018, 14:02   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Olegyshke Посмотреть сообщение
где матрица делится на диагонали
Цитата:
Сообщение от Olegyshke Посмотреть сообщение
Код:
if (j-i=k)
условие (j-i=k) как раз и выполняется для элементов матрицы, которые лежат на "диагоналях, параллельных главной диагонали"
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.10.2018, 14:05   #3
Olegyshke
 
Регистрация: 15.05.2018
Сообщений: 3
По умолчанию

а что означает цикл

Код:
for k:=1-n to n-1 do
Olegyshke вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с задачей в просто Turbo Pascal. В квадратной матрице замените элементы главной диагонали максимальными элементами соответствующих строк. Jesus51 Паскаль, Turbo Pascal, PascalABC.NET 1 13.04.2017 21:11
VBA: Построить вектор L, элементы которого равны разнице главной и побочной диагоналей матрицы K (m,m). Glazastik Помощь студентам 0 15.11.2014 17:36
По заданной матрице 10*10, построить вектор длиной 19, элементы которого максимумы элементов диагоналей, параллельных главной... Марина1 Visual C++ 2 15.12.2013 12:09
Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы beavis1990 Общие вопросы C/C++ 4 20.08.2011 14:36
В квадратной матрице найти сумму элементов главной и побочной диагонали, среднее, min и max (Pascal) Brusik Помощь студентам 0 09.07.2011 17:01