Вещественный массив - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Дан вещественный массив x размера n(n=10). Переставить элементы массива таким образом, чтобы вначале в массиве шла группа элементов больших первого элемента в исходном массиве, потом - группа элементов меньших или равных ему

Решение задачи: «Вещественный массив»

textual
Листинг программы
uses crt;
const n=10;
var a:array[1..n] of real;
    i,k,j:integer;
    x,y:real;
begin
clrscr;
randomize;
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=-5+random*(10);
  write(a[i]:6:2);
 end;
writeln;
writeln;
k:=0;
x:=a[1];
for i:=2 to n do
if a[i]>x then
 begin
  k:=k+1;
  y:=a[i];
  for j:=i downto k+1 do
  a[j]:=a[j-1];
  a[k]:=y;
 end;
writeln('Перестановка:');
for i:=1 to n do
write(a[i]:6:2);
readln
end.

Объяснение кода листинга программы

  1. Объявлены переменные: n - константа, равная 10; a - вещественный массив размера n; i, k, j - целочисленные переменные для цикла; x, y - вещественные переменные для работы с массивом.
  2. Заполнение исходного массива случайными числами от -5 до 5 с шагом 0,1.
  3. Вывод исходного массива на экран.
  4. Инициализация счётчика k=0 и переменной x значением первого элемента массива.
  5. Проход по массиву с 2-го элемента до n-го. Если текущий элемент больше x, то: 5.1. Увеличение счётчика k на 1. 5.2. Значение переменной y присваивается текущему элементу массива. 5.3. Проход по массиву от элемента с индексом (k+1) до элемента с индексом k включительно. При этом элемент с индексом k присваивается значению элемента с индексом (k-1), а элемент с индексом (k+1) присваивается значению переменной y.
  6. Вывод переставленного массива на экран.
  7. Ввод символа для выхода из программы.

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы