Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Программа-калькулятор, позволяющая пользователю выполнять четыре основных арифметических действия над числами, укладывающимися в 8-байтовый диапазон

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Проведение четырех основных арифметических операций над целыми числами – подзадача, реализованная в большинстве пользовательских программ. Реализация многоэтапных алгоритмов вычисления. Список макросов, процедур и описание их функциональной нагрузки.
Краткое сожержание материала:

Размещено на

6

Московский Энергетический Институт

Институт автоматики и вычислительной техники

Кафедра ВМСС

Курсовая работа по дисциплине

«Системное программное обеспечение»

Тема: Программа-калькулятор, позволяющая пользователю выполнять четыре основных арифметических действия над числами, укладывающимися в 8-байтовый диапазон

Студент: Резвая Г.В.

Принял: Чернов С.А.

Москва 2011

СОДЕРЖАНИЕ

Введение

1. Анализ задания

2. Проектирование пользовательского интерфейса

3. Выбор формата представления данных

4. Макросы, процедуры, их назначение

5. Используемые функции, их назначение

6. Тестирование и отладка

Заключение

Список литературы

Приложение А. Листинг программы

ВВЕДЕНИЕ

Проведение четырех основных арифметических операций над целыми числами - подзадача, реализованная в большинстве пользовательских программ (как явно, так и неявно). Решение данной задачи требует не столько обширных знаний языка Ассемблер, сколько практических навыков работы. Реализация многоэтапных алгоритмов вычисления требует использования многочисленных операторов и функций языка.

1. АНАЛИЗ ЗАДАНИЯ

Техническое задание: Разработать программу-калькулятор, позволяющую пользователю выполнять четыре основных арифметических действия над числами, укладывающимися в 8-байтовый диапазон.

Разобьем задачу на подзадачи:

- считывание чисел из командной строки;

- считывание символа операции;

- исходя из значения символа операции, выполнение необходимых вычислений;

- вывод результата;

- обработка исключений (например: проверка на корректность введенных символов; проверка на нулевой делитель, при выполнении операции деления и тп.).

По заданию числа должны укладываться в 8-байтовый диапазон. Было принято решение производить вычисления в 10-ричном формате (так как алгоритмы вычисления нетривиальны, в отличие от вычислений в 2-ном формате), отсюда следует, что одному разряду числа будет соответствовать один байт памяти, также один байт памяти должен быть выделен, на хранение знака (1 байт - знак + 7 байт - число = 8 байт).

2. ПРОЕКТИРОВАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА

Входными данными являются 2а числа (обязательно со знаком), участвующие в вычислении, символ операции (+, -, *, /). При вводе некорректных численных знаков и символов операции действий не выполняется, так как программа находится в ожидании одного из необходимых символов и не продолжит работу до его ввода. При вводе некорректных числовых значений выводится сообщение об ошибке и приглашение повторить попытку ввода данных.

Если происходит то или иное исключение (например: пользователь ввел нулевой делитель при выполни операции деления), выводится сообщение об ошибки с понятным комментарием и приглашение повторить попытку ввода данных.

Выходными данными является результат выбранной операции со знаком (если не произошло исключений).

После выполнения операции можно выполнить следующую. Чтобы выйти из программы нужно записать символ q или Q при приглашении ввести символ операции.

3. ВЫБОР ФОРМАТА ПРЕДСТАВЛЕНИЯ ДАННЫХ

Для определения данных в программе используются следующие директивы: db (байт), dq (учетверенное слово). В таблице 1 перечислены переменные, которые фигурируют в программе. Переменные, которые используются для удобства (при просмотре состояния памяти через отладчик) в таблице не приведены.

Таблица 1

Имя

Директива

Назначение

string_1

db

«Введите число»

string_2

db

«Выберите операцию»

string_3

db

«Введено некорректное число. Попробуйте снова»

string_4

db

«Некорректная операция. a<b. Попробуйте снова»

string_5

db

Перевод каретки

string_6

db

«Результат операции»

string_7

db

«Некорректная операция. b=0. Попробуйте снова»

chastnoe

dq

Результат операции деления. (Частное)

bufer_01

dq

Считанное с клавиатуры 1е число

numbe_01

dq

Переписанное 1 число. Запись справа налево, начиная с младших разрядов

bufer_02

dq

Считанное с клавиатуры 2е число

numbe_02

dq

Переписанное 2 число. Запись справа налево, начиная с младших разрядов

bufer_03

dq

Результат операций (сложение, вычитание)

bufer_04

dq

Промежуточный результат деления, умножения

flag

db

Результат сравнения 2х чисел (00 - a > b, 01 - a < b)

flag2

db

Вспомогательный флаг при выполнении деления

flag01

db

Хранит знак 1 числа

flag02

db

Хранит знак 2 числа

flag03

db

Хранит знак результата

4. МАКРОСЫ, ПРОЦЕДУРЫ, ИХ НАЗНАЧЕНИЕ

программа макрос алгоритм

Список макросов, процедур и описание их функциональной нагрузки приведено в таблице 2.

Таблица 2

Макросы

print

Вывод строки

znak

Считывание знака числа (+, -)

read_b

Считывание строки в буфер из консоли

perep

Перенос числа из буфера в память, начиная с правого края

perem

Меняем местами 2а числа в памяти

set_flag

Установка знака результата операции

nuli

Обрезаем лидирующие нули. Проверяем нулевое ли число

smesh

Передвигаем разряд на одну ячейку влево. В указанном отрезке памяти

read_kl

Считывание символа операции

Процедуры

clear

Очистка экрана

srav

Сравниваем 2а числа

zp_znak

Считываем знак числа из консоли

Другие файлы:

Разработка программного обеспечения для реализации арифметических операций над комплексными числами
Понятие и функции комплексных чисел. Правила выполнения арифметических операций с комплексными числами. Действия с комплексными числами: сложение, выч...

Программа "Калькулятор"
Разработка программы "Калькулятор" для работы с вещественными числами. Алгоритм работы программы. Набор тестов и варианты исполнения программы. Порядо...

Родовое содержание и видовые формы арифметической операции над натуральными числами
Описание стандартного подхода к изучению арифметических операций над натуральными числами. Связь между операциями над конечными количествами и операци...

Действия над числами в различных системах счисления
Сопоставление наиболее важных систем счисления. Перевод целых десятичных чисел в недесятичную систему и обратно. Особенности преобразования дробей. Пр...

Калькулятор комплексных чисел
Разработка программы для выполнения арифметических операций с комплексными числами. Разработка эскизного проекта. Диаграмма последовательностей и клас...