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

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

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

> Найти все индексы максимальных значений в одномерн
Павел
сообщение 18.05.2004 6:09
Сообщение #1


Новичок
*

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

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


Написал процедуру нахождения максимальных элементов и их индексов в
одномерном массиве.
Код

Procedure max_sled (i: integer; var maxX: real);
   var k: integer; max, x: real;
    begin
     max:=l[i];
      for i:=1 to 12 do
       begin
        if max<l[i] then max:=l[i];
       end;

      for i:=1 to 12 do
       begin
        if l[i]=max then
        begin
        x:=i;
        writeln('Index of the maximum element ',x:4:2);
        maxX:=x;
        end;
       end;
 end; {max_sled}

Вызываю процедуру.
Код

max_sled (x, maxX);

и потом у меня там идут выводы массивов
Код

if maxX=1 then
      begin
      vozr (a1, b2, c12);
      writeln ('Matrix c12');
      out_array (a1, b2, c12);
      end;

     if maxX=2 then
     begin
     vozr (a1, b3, c13);
     writeln ('Matrix c13');
     out_array (a1, b3, c13);
     end;

И так до 12 элемента. Вообще весь этот одномерный массив состоит как-бы из
сумм на главной диагонали у 12 массивов из моей курсовой, и мне надо найти
все максимальные следы матриц и вывести их на экран упорядочив по
возрастанию злементы их главных диагоналей.
Вобщем проблема - как мне запомнить все эти элементы, вот эта строка просто пишет
на экране какие эл-ты максимальные
Код
writeln('Index of the maximum element',x:4:2);
, но потом в x остается одно последнее максимальное значение на
основе которого выводится только последний упорядоченный массив, но мне то нужно их все вывести. Как это можно сделать?
Может я сумбурно объяснил, но я файлик прикрепил там все видно.

Сообщение отредактировано: Павел - 18.05.2004 15:34


Прикрепленные файлы
Прикрепленный файл  KURS2.PAS ( 16.16 килобайт ) Кол-во скачиваний: 266
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Павел
сообщение 18.05.2004 11:37
Сообщение #2


Новичок
*

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

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


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

Procedure max_sled (i: integer; var x: real);
   var k: integer; max: real;
    begin
     max:=l[i];
      for i:=1 to 12 do
       begin
        if max<l[i] then max:=l[i];
       end;

      for i:=1 to 12 do
       begin
        if l[i]=max then
        begin
        x:=i;
        writeln('Index of the maximum element ',x:4:2);

      if X=1 then
      begin
      vozr (a1, b2, c12);
      writeln ('Matrix c12');
      out_array (a1, b2, c12);
      end;

     if X=2 then
     begin
     vozr (a1, b3, c13);
     writeln ('Matrix c13');
     out_array (a1, b3, c13);
     end;

     if X=3 then
     begin
     vozr (a1, b4, c14);
     writeln ('Matrix c14');
     out_array (a1, b4, c14);
     end;

     if X=4 then
     begin
     vozr (a2, b1, c21);
     writeln ('Matrix c21');
     out_array (a2, b1, c21);
     end;

     if X=5 then
     begin
      vozr (a2, b3, c23);
      writeln ('Matrix c23');
      out_array (a2, b3, c23);
     end;

     if X=6 then
     begin
      vozr (a2, b4, c24);
      writeln ('Matrix c24');
      out_array (a2, b4, c24);
     end;

     if X=7 then
     begin
      vozr (a3, b1, c31);
      writeln ('Matrix c31');
      out_array (a3, b1, c31);
     end;

     if X=8 then
     begin
      vozr (a3, b2, c32);
      writeln ('Matrix c32');
      out_array (a3, b2, c32);
     end;

     if X=9 then
     begin
      vozr (a3, b4, c34);
      writeln ('Matrix c34');
      out_array (a3, b4, c34);
     end;

     if X=10 then
     begin
      vozr (a4, b1, c41);
      writeln ('Matrix c41');
      out_array (a4, b1, c41);
     end;

     if X=11 then
     begin
      vozr (a4, b2, c42);
      writeln ('Matrix c42');
      out_array (a4, b2, c42);
     end;

     if X=12 then
     begin
      vozr (a4, b3, c43);
      writeln ('Matrix c43');
      out_array (a4, b3, c43);
     end;
     readln;
   end;
   end;
 end; {max_sled}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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