
- •Введение
- •1 Постановка и формулировка задачи
- •1.2 Формулирование требований к представлению исходных данных и выходных результатов.
- •2 Проектирование
- •3 Кодирование
- •3.1 Уточнение структуры входных и выходных данных и определение ассемблерного формата их представления
- •4 Отладка и тестирование
- •5 Список используемой литературы
- •Приложение а
- •Приложение б
- •2. Функциональное назначение
- •3. Описание логической структуры
- •4. Вызов и загрузка
- •5. Входные и выходные данные
2 Проектирование
Данный программный продукт написан на языке Turbo Assembler 5.0 с использованием команд математического сопроцессора. Математический сопроцессор представляет собой устройство, совмещённое в одном корпусе с основным процессором и предназначенное для выполнения операций над числами с плавающей точкой.
Программа написана в соответствии с принципами структурированного программирования. Это означает, что код программы состоит из нескольких модулей, выполняющих определённые действия, которые в свою очередь состоят из процедур, выполняющих определённые действия на уровне модуля.
2.1 Разработка алгоритма реализации задачи
Для расчета интерполяции необходимо ввести число N, необходимое для определения величины каждого интервала разбиения (dx).
Для всех N+1 точек расстояния необходимо провести вычисления значений функции. При этом необходимо проверять, какому из 3-х интервалов заданного диапазона принадлежит текущая точка Хi.
Значения Хi
и соответствующие им значения функции
Yi
образуют таблицу значений функции.
Сформированная таблица позволяет
осуществлять вычисления аппроксимированных
значений функции во всем интервале ее
изменения от Х0
до Хn.
При этом для введенного пользователем
значения Х аппроксимация значения
вычисляется по формуле
.
Началом программы является метка Start модуля main
Инициализация сегмента данных и сопроцессора.
Сообщение с просьбой ввода чисел и с помощью процедуры ввода вещественного числа ввести количество интервалов и X.
Вычисление значений функций в соответствии с шагом dx ( количество значений – не больше 100)
Каждая итерация сопровождается вводом вещественного числа в массив.
Затем выполняется вывод результата в соответствии с вводимым
числом по формуле:
Данный программный продукт состоит из 3 – х программных кодов модулей, а именно:
main.asm
input.asm
out.asm
Рассмотрим каждый из модулей
1) В этом модуле находятся все необходимые процедуры, используемые для вычисления функций представленных в задании курсового проекта в соответствии с вариантом. Рассмотрим подробнее каждую из процедур:
Ssearch_Y proc– данная процедура определяет интервал попадания значения Х и вычисляет значения Y по одной из формул: xsin(x) - на первом участке диапазона значений х; sin(x^2) на втором участке диапазона; х3 – на третьем участке диапазона.
Search_l proc– данная процедура вычисляет значение длины интервала L =Хn - X0.
Search_vdX proc –процедура приращения значения аргумента dX=L/n.
Next_X proc-вычисляет следующее значение Х, т. е. Х=Х+dX.
2) Что касается этого файла, то здесь находятся программа вывода вещественного числа короткого формата (32 бита). Вход: выводимое значение - в поле float32. Выход: вывод вещественного числа короткого формата на экран.
3) В этом модуле находится функция Input_Float для преобразования введённых символов в вещественное число. Ввод с клавиатуры вещественного числа, максимальное число состоит из 20 цифр (22 - с учетом 0d0ah).Выход: вещественное число в вершине стека сопроцессора - эквивалент своего исходного символьного представления.
2.2 Разработка структуры программы в соответствии с выбранной моделью
Итак, из всего выше сказанного можно сделать вывод, что данный программный продукт можно разбить на 3 модуля, каждый из которых выполняет свои функции и процедуры, а именно:
main.asm содержит все необходимые процедуры, используемые для вычисления функций представленных в задании курсового проекта;
v_simvol.asm содержит программу вывода вещественного числа короткого формата (32 бита);
v_Vesh.asm содержит ввод с клавиатуры вещественного числа.