Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.84] |
|
Сообщ.
#1
,
|
|
|
Люди плиз хэлп
У меня задача, которая состоит в следующем: Дан массив const n=100 X:array[1..n] of real; В нем найти максимальный элемент, кинуть его в самый конец массива и там оставить, а потом сравнивать с остальными элементами и в итоге массив упорядочить по возрастанию. Как это сделать можно проще? Подскажите... |
Сообщ.
#2
,
|
|
|
то, что написал = это алгорим пузырька, называется
var FA, FB, FI, FJ: Integer; procedure Swap(A, B, I, J: Integer); begin FA := A; FB := B; FI := I; FJ := J; end; procedure Sort(var A: array of Integer); var I, J, T: Integer; begin for I := High(A) downto Low(A) do for J := Low(A) to High(A) - 1 do if A[J] > A[J + 1] then begin Swap(A[J], A[J + 1], J, J + 1); T := A[J]; A[J] := A[J + 1]; A[J + 1] := T; end; end; попробуй... |
Сообщ.
#3
,
|
|
|
А если без процедур, например, так
Нахождение максимального элемента const n=100; var X:array[1..n] of real; i:integer; max:real; begin for i:=1 to n do begin writeln('Введите X[',i,']'); readln(X[i]); end; max:=X[1]; for i:=1 to n do if max<X[i] then max:=X[i]; writeln('Максимальный элемент массива',max); end. А как дальше продолжить мысль: перенести max в конец (поменять max местами с последним индексом в массиве), а потом сравнивать индескы между собой и расставлять в порядке возрастания? |
Сообщ.
#4
,
|
|
|
А это другой алгоритм, называется "простые вставки", только обычно ищут минимум А делается это просто: вместе с значением максимума запоминаешь индекс в массиве, т.е. меняешь строчку
Цитата Гэг Крэг, 26.02.04, 20:35 if max<X[i] then max:=X[i]; на вот такой оператор: if max<X[i] then begin max:=X[i]; imax:=i; end; |