В одномерном массиве выбрать два числа по заданному условию - Pascal ABC
Формулировка задачи:
в одномерном массиве выбрать два числа так чтобы остальные элементы можно было распределить на три примерно равные по количеству группы- не больше меньшего из этих двух, не меньше большего и все остальные.
Решение задачи: «В одномерном массиве выбрать два числа по заданному условию»
textual
Листинг программы
const nmax=100; var a:array[1..nmax] of integer; n,i,j,i1,i2:byte; x:integer; begin randomize; repeat write('Размер массива А от 5 до ',nmax,' n='); readln(n); until n in [5..nmax]; writeln('Массив A'); for i:=1 to n do begin a[i]:=random(100); write(a[i]:4) end; writeln; {отсортируем массив по возрастанию} for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin x:=a[i]; a[i]:=a[j]; a[j]:=x; end; i1:=(n-2) div 3+1;{найдем номер первого числа n минус 2 разделяющих, разделить на 3+1} i2:=(i1+n+2)div 2;{найдем номер второго числа первое+n+2 разделяющих, разделить на 2} writeln('Первое число=',a[i1]); writeln('Второе число=',a[i2]); writeln('Числа до первого числа'); for i:=1 to i1-1 do write(a[i]:4); writeln; writeln('Числа между первым и вторым числами'); for i:=i1+1 to i2-1 do write(a[i]:4); writeln; writeln('Числа после второго числа'); for i:=i2+1 to n do write(a[i]:4); writeln; end.
Объяснение кода листинга программы
- Создается константа nmax, которая определяет максимальное количество элементов в одномерном массиве (100 в данном случае).
- Создается переменная a, которая представляет собой одномерный массив целых чисел.
- Создаются три байтовых переменных: n, i, j. Они будут использоваться для циклов.
- Создается переменная x, которая будет использоваться для обмена числами.
- В цикле повторяется следующая последовательность действий:
- Выводится сообщение с предложением ввести размер массива A от 5 до nmax.
- Пользователю предлагается ввести размер массива n.
- Массив a заполняется случайными числами из диапазона от 1 до 100.
- Выводится сообщение с номерами выбранных чисел.
- Выполняется сортировка массива a по возрастанию. Для этого используются два вложенных цикла. Первый цикл проходит по элементам массива с индексами от 1 до n-1, а второй цикл проходит по элементам массива с индексами от i+1 до n. Если текущий элемент в первом цикле больше текущего элемента во втором цикле, то числа меняются местами с помощью переменной x.
- Находится номер первого числа путем деления (n-2) div 3+1.
- Находится номер второго числа путем деления (i1+n+2)div 2.
- Выводится сообщение с номерами выбранных чисел.
- Выводится сообщение с числами до первого числа.
- Выводится сообщение с числами между первым и вторым числами.
- Выводится сообщение с числами после второго числа.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д