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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2009, 19:29   #1
mivel
 
Регистрация: 23.12.2009
Сообщений: 5
По умолчанию На главную диагональ матрицы поместить наибольшие элементы этой матрицы

Помогите, пожалуйста, решить задачку на паскале.
На главную диагональ матрицы А(К,К), К <= 100 поместить наибольшие элементы этой матрицы (сначала наибольший, затем следующий по величине и т.д.), а диагональные элементы - на место наибольших.
mivel вне форума Ответить с цитированием
Старый 23.12.2009, 19:33   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Главная диагональ: http://www.programmersforum.ru/showthread.php?t=70310
Сортировка матрицы: http://www.programmersforum.ru/showthread.php?t=70310
Перемещение элементов: http://www.programmersforum.ru/showthread.php?t=70310
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 23.12.2009, 21:19   #3
mivel
 
Регистрация: 23.12.2009
Сообщений: 5
По умолчанию

Вот что у меня получилось:
Код:
program kkr3;
uses crt;
var
  A: array [1..100,1..100] of integer;
  i,j,k,n,imax,jmax,c,max: integer;
begin
  clrscr;
  write('Введите число строк и столбцов матрицы: ');
  readln(n);
  for i:=1 to n do
    for j:=1 to n do
      begin
        write('Введите элемент (',i,' ',j,'): ');
        readln(A[i,j]);
      end;
  k:=1;
  while k <= n do
    begin
      max:=A[k,k];
      for i:=1 to n do
        for j:=1 to n do
          begin
            if ((A[i,j] > max) and (i<>j)) then
              begin
                max:=A[i,j];
                imax:=i;
                jmax:=j;
              end;
          end;
      c:=A[k,k];
      A[k,k]:=max;
      A[imax,jmax]:=c;
      k:=k+1;
    end;
  for i:=1 to n do
    begin
      for j:=1 to n do
        write(A[i,j],' ');
      writeln;
    end;
  readkey
end.
Правильно работает только когда на главной диагонали нет ни одного максимального элемента.
mivel вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Элементы матрицы FunnyDevil Помощь студентам 0 21.12.2009 15:27
Задача на элементы прямоугольной матрицы Knife Помощь студентам 3 08.04.2009 22:00
Диагональ матрицы Pecherni Общие вопросы C/C++ 2 16.03.2009 17:47
Вопрос: Побочная диагональ матрицы в С++ john350 Помощь студентам 4 16.03.2008 22:19
умножить число на элементы матрицы KORT Помощь студентам 2 04.11.2007 02:06