Определить значение элемента массива, наиболее близкого к среднему арифметическому всех элементов - QBasic

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

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

Определить значение и номер элемента массива X(n), наиболее близкого к среднему арифметическому всех элементов массива. Вывести массив и полученные значения. Упорядочить массив X(n) по убыванию. Вывести полученный массив. Исходный массив элементов получить с помощью датчика случайных чисел. Значения буквенных переменных задавать с клавиатуры.

Решение задачи: «Определить значение элемента массива, наиболее близкого к среднему арифметическому всех элементов»

textual
Листинг программы
CLS
RANDOMIZE TIMER
INPUT "Введите N:", N
REDIM X(1 TO N)
PRINT "Исходный массив:"
FOR I = 1 TO N
    X(I) = INT(RND * 100)
    PRINT X(I);
    S! = S! + X(I)
NEXT I
S! = S! / N
PRINT
PRINT "Среднее значение: "; S!
J = 1
FOR I = 1 TO N
    IF ABS(X(N) - S) > ABS(X(I) - S) THEN
        J = I
    END IF
NEXT I
PRINT "Ближайшее значение элемента: "; X(J); "("; LTRIM$(STR$(J)); ")"
PRINT "Сортировка..."
FOR I = 1 TO N
    FOR J = 1 TO N - 1
      IF X(J) < X(J + 1) THEN
          SWAP X(J), X(J + 1)
      END IF
    NEXT J
NEXT I
PRINT "Полученный массив:"
FOR I = 1 TO N
    PRINT X(I);
NEXT I

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

  1. Объявляется переменная N типа String, в которую с клавиатуры вводится количество элементов в массиве.
  2. Создается массив X размером N x 1.
  3. Выводится сообщение Исходный массив: и элементы массива X по одному в строке.
  4. Сумма всех элементов массива сохраняется в переменной S!.
  5. Среднее значение всех элементов массива вычисляется как S! / N и сохраняется в переменной S!.
  6. Переменная J инициализируется значением 1.
  7. В цикле перебираются все элементы массива X.
  8. Если абсолютное значение разности X(N) и S! больше, чем абсолютное значение разности X(I) и S!, то значение переменной J заменяется на I.
  9. Цикл завершается.
  10. Выводится сообщение Ближайшее значение элемента: и значение элемента массива X(J), а также сообщение (; LTRIM$(STR$(J)); ).
  11. Выводится сообщение Сортировка...
  12. В цикле перебираются все элементы массива X.
  13. Внутренний цикл перебирает элементы от J до N-1.
  14. Если X(J) < X(J+1), то значения элементов X(J) и X(J+1) меняются местами с помощью команды SWAP X(J), X(J+1).
  15. Внутренний цикл завершается.
  16. Внешний цикл завершается.
  17. Выводится сообщение Полученный массив:
  18. В цикле перебираются все элементы массива X.
  19. Выводится значение элемента X(I).
  20. Цикл завершается.

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


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

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

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