Заполнить массив из 10 элементов случайными числами в интервале [0.100] и отсортировать первую половину по - PascalABC.NET
Формулировка задачи:
Может кому нибудь да пригодится) Стараюсь все делать по шагам и чтобы было понятно каждому.
Иногда вижу простые программы, но составленные очень запутанным способом. Поэтому желаю чтобы все программировали как можно понятнее и выкладывали свои результаты! Каждый должен делать вклад))
Листинг программы
- {Заполнить массив из 10 элементов случайными числами в интервале [0..100]
- и отсортировать первую половину по возрастанию, а вторую – по убыванию.}
- program n5str63;
- Var A:Array[1..10] of Integer;
- Var i,j,c: Integer;
- begin
- For i:=1 to 10 do begin
- A[i]:= Random(0,100);
- Write(A[i]:5); { ':' - устанавливает ширину вывода значения массива}
- end;
- For i:=1 to 4 do begin {граница не должна залезать в другую половину}
- For j:=4 downto i do {используем метод пузырька}
- If A[j]>A[j+1] then begin
- C:= A[j];
- A[j]:=A[j+1];
- A[j+1]:=c;
- end;
- end;
- For i:=5 to 9 do begin
- For j:=9 downto i do
- If A[j]<A[j+1] then begin
- C:=A[j];
- A[j]:=A[j+1];
- A[j+1]:=c;
- end;
- end;
- writeln; {пустая печать, чтобы отсортированный массив вывелся на новой строчке}
- For i:=1 to 10 do write(A[i]:5);
- end.
Решение задачи: «Заполнить массив из 10 элементов случайными числами в интервале [0.100] и отсортировать первую половину по»
textual
Листинг программы
- const n=10;
- begin
- randomize; //инициализируем ДСЧ
- var a:=Range(0,n-1).Select(i->random(0,100)).ToArray(); //заполняем массив
- a.Println; //печатаем
- a:=Range(0,n div 2-1).Select(i->a[i]).OrderBy(i->i).
- Concat(Range(n div 2,n-1).Select(i->a[i]).OrderByDescending(i->i)).ToArray();
- a.Println; //печатаем
- end.
Объяснение кода листинга программы
- Инициализируем ДСЧ с помощью функции
randomize
. - Заполняем массив
a
с помощью функцииrandom(0,100)
, которая генерирует случайное число в интервале [0,100]. Используем методSelect
для выбора элементов из диапазона от 0 доn-1
и присваиваем результат массивуa
. - Печатаем массив
a
с помощью функцииPrintln
. - Сортируем первую половину массива
a
с помощью методаOrderBy(i->i)
, который сортирует элементы по возрастанию их индексов. - Сортируем вторую половину массива
a
с помощью методаOrderByDescending(i->i)
, который сортирует элементы по убыванию их индексов. - Объединяем отсортированные половины массива с помощью метода
Concat
и присваиваем результат обратно массивуa
. - Печатаем отсортированный массив
a
с помощью функцииPrintln
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д