Определить значение элемента массива, наиболее близкого к среднему арифметическому всех элементов - 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
Объяснение кода листинга программы
- Объявляется переменная N типа String, в которую с клавиатуры вводится количество элементов в массиве.
- Создается массив X размером N x 1.
- Выводится сообщение
Исходный массив:и элементы массива X по одному в строке. - Сумма всех элементов массива сохраняется в переменной S!.
- Среднее значение всех элементов массива вычисляется как S! / N и сохраняется в переменной S!.
- Переменная J инициализируется значением 1.
- В цикле перебираются все элементы массива X.
- Если абсолютное значение разности X(N) и S! больше, чем абсолютное значение разности X(I) и S!, то значение переменной J заменяется на I.
- Цикл завершается.
- Выводится сообщение
Ближайшее значение элемента:и значение элемента массива X(J), а также сообщение(; LTRIM$(STR$(J));). - Выводится сообщение
Сортировка... - В цикле перебираются все элементы массива X.
- Внутренний цикл перебирает элементы от J до N-1.
- Если X(J) < X(J+1), то значения элементов X(J) и X(J+1) меняются местами с помощью команды SWAP X(J), X(J+1).
- Внутренний цикл завершается.
- Внешний цикл завершается.
- Выводится сообщение
Полученный массив: - В цикле перебираются все элементы массива X.
- Выводится значение элемента X(I).
- Цикл завершается.