![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Павел |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: ![]() ![]() ![]() |
Написал процедуру нахождения максимальных элементов и их индексов в
одномерном массиве. Код 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 Прикрепленные файлы ![]() |
![]() ![]() |
Павел |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не придумал ничего умнее кроме как засунуть все в процедуру, зато заботает.
Но слишком уж она большая получается, может можно как нтбудь ее урезать? Код 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} |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 5:56 |