Программа сортировки треугольной матрицы |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Программа сортировки треугольной матрицы |
SpEctAtOr |
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
Условие задачи:
Заданы две матрицы действительных чисел А[5x5] u B[6x6]. Требуется составить программу вычисления новых матриц A' u B' по следующему алгоритму: 1. в каждой матрице роводится главная левая диагональ (сверху вниз и слева направо), в результате чего образуются две треугольные матрицы; 2. для матрицы А все элементы, расположенные в верхнем треугольнике, расположить в каждой строке в порядке убывания элементов слева направо; 3. для матрицы В требуется выполнить действия, определнные в п.2 относительно нижнего треугольника. Программа сортировки треугольной матрицы должна быть оформлена в виде процедуры. Выходным параметром этой процедуры должна быть матрица, полученная из исходной по алгоритму, описанному выше. |
BlackShadow |
Сообщение
#2
|
Гость |
Можно попробыать так:
Код Type TMatrix5=Array[1..5,1..5] Of Double; TMatrix6=Array[1..6,1..6] Of Double; Temp:Array[1..15] Of Double; Var a,na:TMatrix5; b,nb:TMatrix6; i,j,n,k:Integer; d:Double; Begin {Какой-нибудь ввод. Сам организуешь?} n:=1; For i:=1 To 4 Do For j:=i+1 To 5 Do Begin Temp[i]:=a[i,j]; Inc(i) End; For i:=1 To n-1 Do Begin k:=i; d:=Temp[i]; For j:=i+1 To n Do If d<Temp[j] Then Begin k:=j; d:=Temp[j] End; If k<>i Then Begin Temp[k]:=Temp[i]; Temp[i]:=d End End; Move(an,a,SizeOf(TMatrix5)); {или Move(a,an,SizeOf(TMatrix5)) - посмотри по Help, я не помню. Чтобы a скопировалось в an} n:=1; For i:=1 To 4 Do For j:=i+1 To 5 Do Begin an[i,j]:=Temp[n]; Inc(n) End; {.....} End. Надеюсь принцип понятен. Если тебе нужен полный текст, тогда свисти. |
Текстовая версия | 29.03.2024 9:28 |