Как ускорить вычислительные процессы программы? - QBasic

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

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

Чтобы сделать быструю программу, в которой много вычислений, Надо по возможности не делать эти вычисления в самой программе, а вставить в программу уже готовые значения. Вот яркий пример: Требуется вычислить sin1° + sin2° + ... + sin90° Чтобы определить затраченное время, в программе эти вычисления повторяются 100 000 раз. Для сравнения смотрите вторую программу, которая делает тоже самое, но все синусы вычислены заранее
Программа 2 (соперник)
Время выполнения первой программы = 85 сек Время выполнения второй программы = 55 сек Как видите вторая программа выполняется быстрее первой в 1,5 раза Желая узнать какого эффекта можно достигнуть если взять функцию чуть сложнее, не меняя самой программы, я использовал следующую функцию: SIN(i / 180 * 3.141592) + LOG(i) - LOG(i) (по сути та же задача, логарифмы в нагрузку) Время вычисления составило 169 сек - в ТРОЕ (!!) больше, чем у программы (55 сек), где все сосчитано. Пусть каждый сделает для себя вывод .... Успехов всем!

Решение задачи: «Как ускорить вычислительные процессы программы?»

textual
Листинг программы
DEFSNG S, X
DEFLNG I, N
CLS
DIM sn(1 TO 90)
FOR i = 1 TO 90
   sn(i) = SIN(i / 180 * 3.141593)
NEXT i
 
FOR n = 1 TO 100000
   s = 0
   FOR i = 1 TO 90
      s = s + SN(i)
   NEXT i
NEXT n
PRINT s
END

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

В этом коде на языке QBasic выполняется следующее:

  1. Установка значений переменных:
    • Установка константы S (вероятно, это значение не меняется в ходе выполнения программы).
    • Установка константы X (вероятно, это значение не меняется в ходе выполнения программы).
    • Установка счётчика I для цикла.
    • Установка счётчика N для цикла.
  2. Инициализация массива:
    • Объявление массива sn(1 TO 90) (возможно, это массив для хранения результатов вычислений).
    • Заполнение массива sn значениями синуса от 0 до 90 градусов с шагом 1 градус (предполагается, что функция SIN доступна и возвращает значение синуса).
  3. Вычисление суммы:
    • Установка начального значения переменной s равным 0.
    • Цикл по индексам массива sn.
    • Приращение значения переменной s на значение элемента массива sn(i).
  4. Повторение вычислений:
    • Цикл, выполняющийся 100 000 раз (возможно, это нужно для получения более точного результата).
    • Внутри цикла - повторение вычисления суммы.
  5. Вывод результата:
    • Вывод значения переменной s (вероятно, это сумма синусов).

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


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

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

14   голосов , оценка 3.929 из 5