Найти максимальное значение функции - QBasic

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

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

Задается функция, определенная на натуральных числах интервал на котором ищется ее максимальное значение (1; 1000) теперь определение самой функции: (лучше приведу на примере) дано число 12. значение функции от этого числа sin1 + sin2 + sin3 + sin4 + sin6 (все числа делители числа 12) другой пример (число 13) значение функции: sin1 (всё, других делителей числа 13 нет) (само число не считается делителем самого себя) ... Программа посчитала и нашла максимум 6.589797 в точке 832 Вопросы 1. Есть ли иное решение? 2. Что может дать массив? 3. Ваше мнение?

Решение задачи: «Найти максимальное значение функции»

textual
Листинг программы
DIM s(1 TO 500) AS DOUBLE, sm AS DOUBLE, mx AS DOUBLE, i AS LONG, j AS LONG, n AS LONG, im AS LONG
n = 1000
FOR i = 1 TO n \ 2
    s(i) = SIN(i)
NEXT i
FOR i = 1 TO n
    sm = s(1)
    FOR j = 2 TO SQR(i)
        IF i MOD j = 0 THEN
            sm = sm + s(j)
            IF j * j <> i THEN sm = sm + s(i \ j)
        END IF
    NEXT j
    IF sm > mx OR i = 1 THEN mx = sm: im = i
NEXT i
PRINT mx, im

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

  1. Объявляются переменные: — s(1 TO 500) AS DOUBLE — массив s с 500 элементами типа double, инициализированный нулями; — sm AS DOUBLE — переменная sm типа double, инициализированная нулём; — mx AS DOUBLE — переменная mx типа double, инициализированная нулём; — i AS LONG — переменная i типа long, инициализированная единицей; — j AS LONG — переменная j типа long, инициализированная единицей; — n AS LONG — переменная n типа long, инициализированная тысячей.
  2. Вычисляется значение переменной n: n = 1000.
  3. Заполняется массив s: FOR i%=1 TO n \ 2% s(i%) = SIN(i%). NEXT i%
  4. Находится максимальное значение среди элементов массива s: FOR i%=1 TO n% sm = s(1)% FOR j%=2 TO SQR(i%) IF i% MOD j% = 0 THEN sm = sm + s(j%) IF j% * j% <> i% THEN sm = sm + s(i% \ j%) END IF NEXT j% IF sm > mx OR i% = 1 THEN mx = sm: im = i% NEXT i%
  5. Выводятся найденные значения: PRINT mx, im.

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


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

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

10   голосов , оценка 3.9 из 5