Найти два числа, среднее арифметическое которых ближе к А - QBasic
Формулировка задачи:
Даны действительные числа А и b(1), b(2),....,b(m).В последовательности b(j) найти два числа, среднее арифметическое которых ближе к А.
Помогите пожалуйста. Срочно надо!
Решение задачи: «Найти два числа, среднее арифметическое которых ближе к А»
textual
Листинг программы
- CLS
- RANDOMIZE TIMER
- m = 20
- A = 77
- DIM B(1 TO m)
- FOR i = 1 TO m
- B(i) = 100 * RND + 20
- PRINT USING "###.## "; B(i);
- NEXT i
- min = 100
- FOR i = 1 TO m - 1
- FOR j = i + 1 TO m
- SA = (B(i) + B(j)) / 2
- IF ABS(A - SA) < min THEN
- min = ABS(A - SA)
- im = i
- jm = j
- END IF
- NEXT j, i
- PRINT : PRINT
- PRINT "B("; im; ") ="; B(im)
- PRINT "B("; jm; ") ="; B(jm)
- PRINT "SA ="; (B(im) + B(jm)) / 2
- PRINT "A ="; A
- END
Объяснение кода листинга программы
- В первой строке используется команда CLS для очистки экрана.
- RANDOMIZE TIMER используется для случайной генерации чисел.
- Переменная m устанавливает количество сгенерированных чисел, равное 20.
- Переменная A устанавливает искомое среднее арифметическое на 77.
- Создается массив B(1 TO m) для хранения сгенерированных чисел.
- Используется цикл FOR для генерации 20 случайных чисел и их печати.
- Устанавливается начальное значение переменной min равное 100.
- Используется вложенный цикл FOR для нахождения двух чисел, среднее арифметическое которых ближе всего к переменной A.
- Внутри вложенного цикла определяется значение переменной SA как среднее арифметическое двух текущих чисел.
- Если разница между переменной A и SA меньше текущего значения переменной min, то обновляются значения переменных min, im и jm.
- После окончания вложенного цикла, выводятся значения переменных im и jm, которые содержат индексы двух чисел, среднее арифметическое которых ближе всего к переменной A.
- Вычисляется и выводится значение переменной SA как среднее арифметическое двух чисел с индексами im и jm.
- Выводится значение переменной A.
- Код завершается командой END.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д