В одномерном массиве выбрать два числа по заданному условию - 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.

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

  1. Создается константа nmax, которая определяет максимальное количество элементов в одномерном массиве (100 в данном случае).
  2. Создается переменная a, которая представляет собой одномерный массив целых чисел.
  3. Создаются три байтовых переменных: n, i, j. Они будут использоваться для циклов.
  4. Создается переменная x, которая будет использоваться для обмена числами.
  5. В цикле повторяется следующая последовательность действий:
    • Выводится сообщение с предложением ввести размер массива A от 5 до nmax.
    • Пользователю предлагается ввести размер массива n.
    • Массив a заполняется случайными числами из диапазона от 1 до 100.
    • Выводится сообщение с номерами выбранных чисел.
  6. Выполняется сортировка массива a по возрастанию. Для этого используются два вложенных цикла. Первый цикл проходит по элементам массива с индексами от 1 до n-1, а второй цикл проходит по элементам массива с индексами от i+1 до n. Если текущий элемент в первом цикле больше текущего элемента во втором цикле, то числа меняются местами с помощью переменной x.
  7. Находится номер первого числа путем деления (n-2) div 3+1.
  8. Находится номер второго числа путем деления (i1+n+2)div 2.
  9. Выводится сообщение с номерами выбранных чисел.
  10. Выводится сообщение с числами до первого числа.
  11. Выводится сообщение с числами между первым и вторым числами.
  12. Выводится сообщение с числами после второго числа.
  13. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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