Другие языки программирования и технологии

Помогите понять цикл тут.

Вот задача: Дан массив чисел. Расставить их по убыванию.

Вот решение, но я не понимаю алгоритм.

Вот
FOR J := 1 TO N-1 DO
BEGIN
NEW := MAS[N];
К := N;

Что значит FOR J := 1 TO N-1 DO ?
А что значит NEW := MAS[N] и К := N;

Кто объяснит эту часть кода?

Вот весь код.

1. CONST M = 100;
2. VAR MAS : ARRAY[1..M] OF INTEGER;
3. I, J, K, NEW, N : INTEGER;
4. BEGIN
5. WRITE('BBЕДИTE РАЗМЕР МАССИВА N = ');
6. READLN(N);
7. WRITELN('BBЕДИTE N,' ЭЛЕМЕНТОВ МАССИВА');

8. FOR I := 1 TO N DO
9. READ(MAS[I]);
10.WRITELN;

11.FOR J := 1 TO N-1 DO
12.BEGIN
13.NEW := MAS[N];
14.К := N;

15.FOR I := N DOWNTO 1 DO
16.IF MAS[I]>NEW THEN
17.BEGIN
18.К := I;
19.NEW := MAS[I]
20.END;
21.MAS[K] := MAS[1];
22.MAS[1] := NEW;

23.FOR I := 1 TO N DO
24.WRITE(MAS[I] : 4);
25.WRITELN
26.END
Андрей В
Андрей В
84
Если ты спрашиваешь, что такое FOR, значит ты вообще не читал учебник. Хочешь, чтобы его тебе здесь пересказывали???

И могу тебя обрадовать: это не решение. Представленный код работает абсолютно неправильно.

for i := 1 to n-1 do begin
k := i;
for j := i + 1 to n do if mas[j] > max[k] then k := j;
if k <> i then begin
tmp := mas[i];
mas[i] := mas[k];
mas[k] := tmp
end
end
Toha Buha
Toha Buha
97 347
Лучший ответ
чет сложный алгоритм, ещё капсом да без отступов...
обычную пузырьковую сортировку написать не судьба?
Umedjon Khodziyev
Umedjon Khodziyev
50 628
Андрей В это не пузырьковая. это сортировка с помощью прямого выбора.
объясните пожалуйста.
Это называется сортировка вставками.
Вот ваш код с исправлениями (чтобы работал на самом деле) и исчерпывающими комментариями.
http://pastebin.com/cw0nCzxN
Самое важное исправление:
В каждом проходе цикла надо складывать найденный элемент не в первую ячейку, а в j-ю, иначе работать не будет.
На будущее:
1) Вот так надо форматировать код. Намного удобнее читать, не так ли?
2) Абстрактный массив стоит обзывать a или arr (от слова array, а не от слова massiv). Вы же не по-русски пишете, а латиницей, и ваш транслит выглядит убого. Если так вас научил ваш учитель программирования - он не прав.
Mahir Iskenderov
Mahir Iskenderov
1 963
FOR J := 1 TO N-1 DO
Присвоение переменной J значение 1, и совершать этот цикл, пока J не будет равен n-1, при каждом цикле J увеличивается на 1.

NEW := MAS[N]
Присвоение переменной NEW значение N элемента массива MAS

К := N
Присвоить значение N переменной K
Nurym Khan
Nurym Khan
1 049