- •Томский государственный университет систем управления и радиоэлектроники (тусур)
- •Длинные числа
- •Томский государственный университет систем управления и радиоэлектроники (тусур)
- •Задание
- •Содержание
- •Введение
- •Постановка задачи
- •Обзор литературы
- •Аналоги разработки данной программы
- •Существующие алгоритмы
- •Представление целых чисел
- •Сложение и вычитание
- •Умножение
- •Деление
- •Возведение в степень
- •Вывод длинного числа
- •Анализ задания
- •Требования к программе
- •Использование готовых разработок
- •Реализация программы
- •Тип данных
- •Основные процедуры и функции
- •Описание программы для пользователя
- •Заключение
- •Список используемых источников
- •Приложение а
- •Приложение б
- •Пошаговая структура процедуры сложения
- •Приложение в
- •Пошаговая структура процедуры деления
Описание программы для пользователя
При запуске программы пользователь увидит окно с несколькими окнами для ввода, переключателями, а также кнопки для действий (рисунок 6.1).
Рисунок 6.1 - Общий вид программы
Рисунок 6.2 - Пример работы программы
После ввода данных и нажатия на кнопку «Go!», а также после нажатий на кнопки «Преобразовать» пользователь увидит окно, которое изображено на рисунке 6.2.
При вводе данных и подсчете результатов важно помнить, что
Программа понимает только разделительный знак « . » (точка).
При выполнении операции деление необходимо вводить только целые, натуральные числа.
При выполнении операции возведение в степень в окно, куда вводится степень («Число №2»), нужно вводить только целые, натуральные числа, и только до числа 9999, так как при введении большей степени программа просто не будет его считать. То же самое произойдет, если ввести дробное число, либо отрицательную степень.
Заключение
В результате, был написан модуль для работы с длинными числами. При создании данного модуля был ряд трудностей: проблемы реализации процедур сложения, умножения и деления. При написании операции сложения проблемой было написание большого количества условий для сложения дробных чисел с одинаковым количеством цифр после запятой, с разным количеством цифр после запятой, сложение целого и дробного числа, а также вычет из целого числа дробное, при написании операции вычитание. При написании операции умножение стандартными средствами Delphiподсчет происходил слишком долго, выходом из данной ситуации стал встроенный в средуDelphi,assembler. При написании операции деление проблемой стало, то, что в задании не была указана точность для таких вычислений. В теории при написании программы возможно деление до бесконечного знака после запятой (ограничением является лишь оперативная память компьютера), но при таком условии этот результат никогда не будет посчитан. Но при дальнейшем развитии программы целесообразно добавить эту функцию, ограничив её условием необходимой точности вычисления. Также при дальнейшем развитии программы можно добавить такие операции, как извлечение квадратного корня из числа, факториал, возведение в дробную, отрицательную степень, логарифм и др.
В целом программа оправдывает своё назначение и выполняет операции с длинными числами, что и являлось заданием данной курсовой работы.
Список используемых источников
1 Гусев В. А., Мордкович А. Г. Математика: Справочные материалы. — М.: Просвещение, 1990.
2 Окулов С.М. Программирование в алгоритмах. - М.: БИНОМ. Лаборатория знаний, 2002.
3 Акритас А. Основы компьютерной алгебры с приложениями. – М: Мир, 1994.
4 Макоха А.Н., Зуй Б. Ю. Арифметика сверхбольших натуральных чисел в параллельных вычислительных системах
5 Макоха А.Н., Ионисян А.С. Компьютерная эмуляция арифметических операций над целыми и рациональными числами в СОК. // Вестник СГУ. – Ставрополь: Изд-во СГУ, вып. 20, 1999.
Приложение а
(обязательное)
Блок-схема программы
Начало
Выбор номера
операции
Создание в памяти
ячейки для числа №1
Создание в памяти
ячейки для числа №2
0
Операция сложения
Создание в памяти
ячейки для остатка от деления
1
Операция вычитания
Создание в памяти
ячейки для результата
2
Операция умножения
3
Операция деления
Создание в памяти
вспомогательной ячейки
4
Операция возведение
в степень
Считывание в число
№1 данных из поля Memo1
Считывание в число
№2 данных из поля Memo2
Подсчет затраченного
времени
Запуск счетчика
времени
Вывод результата
в поле Memo3
Остаток ничему не
равен
Нет Да
1 2
1 2
Остаток
не равен 0
Вывод в поле Memo3
результат вместе
с остатком
Освобождение
памяти для ячейки с числом №1
Освобождение
памяти для ячейки с числом №2
Освобождение
памяти для ячейки с остатком
Освобождение
памяти для ячейки с результатом
Освобождение
памяти для вспомогательной ячейки
Конец