Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Магнитогорский Государственный Технический Университет
им Г.И. Носова»
Кафедра Вычислительной Техники и Прикладной Математики
Индивидуальная работа №2
по дисциплине: Организация ЭВМ
Вариант 32
Выполнила: студентка группы АВ-09-1
Сичная М.А.
Проверил: проф., д.т.н. Ячиков И.М.
Магнитогорск 2012г
Содержание
Условие задачи 3
Постановка задачи 3
Инструкция пользователю 3
Инструкция для программиста 3
Алгоритм программы 5
Список использованной литературы 17
Условие задачи
Составить программу калькулятора (сложение, вычитание, умножение и деление с заданной точностью) для десятичных чисел. Продумать удобный и красивый интерфейс с использованием мыши.
Постановка задачи
Необходимо написать программу, которая при нажатии мышкой на определенные блоки будет производить действия сложения, вычитания, умножения и деления.
Чтобы работать с мышью необходимо изучить основные функции прерывания 33h, для работы с клавиатурой – функции прерывания 21h, работа с графическим режимом – функции прерывания 10h.
Инструкция пользователю
После открытия файла my_calc.exe программа готова к использованию.
Клавиши управления:
Enter – начать программу, войти в графический режим;
Левая кнопка мыши – выбрать нужный блок;
ESC – выход.
Первый блок в программе отвечает за первое число, второй блок – за операцию, третий блок – за второе число. Блок со знаком «=» считает и записывает ответ в пятый блок.
Инструкция для программиста
Переменные:
x, y – текущие координаты мышки
a, b – операнты
op – операнд
sum, razn, pr, del, ost – переменные для хранения суммы, разности, произведения, деления и остатка от деления
x_n, y_n, x_n1, y_n1 – вспомогательные координаты, используем при рисовании блоков
color – цвет рамки блока
color_f – цвет фона
Список процедур, используемых в программе:
exit – выход из программы;
Color_fon – прорисовка фона;
Draw1 – рисование первого блока;
Draw_op – рисование второго блока;
Draw2 – рисование третьего блока;
Draw_ravno – рисование четвертого блока;
Draw_rez – рисование пятого блока;
Mouse_visible – показать курсор мыши;
Coord – функция, которая проверяет текущие координаты мыши и в зависимости от них выполняет действия;
Work – функция, в которой устанавливается графический режим, вызов всех функция прорисовки объектов, консольный ввод с клавиатуры;
Input – вспомогательная функция для того, чтобы правильно считать число;
Input_op – вспомогательная функция для того, чтобы правильно считать знак операции;
Curs – позиционирование текстового курсора в месте вывода подсказок;
Curs_r – позиционирование текстового курсора в месте вывода ответа;
Write_10 и wr_cifra – используются для правильного перевода в десятичную систему счисления.
Используется прерывание 33h – работа с мышью
AX = 0001h – показать курсор
AX = 0002h – скрыть курсор
AX = 0003h – определение состояния мыши
Прерывание 10h – работа с графикой
AH = 00h – установка видеорежима
AH = 02h – перемещение курсора, позиционирует курсор, использует тестовые координаты
AH = 0Ch - вывод пикселя, рисует на дисплее точку в указанных графических координатах
Прерывание 21h – прерывание работы с клавиатурой
AH = 09h – ввод символьной строки в установленную позицию курсора
AH = 06h – консольный ввод
AH = 08h – консольный ввод без эха
AX = 4C00h – выход из программы, возврат в операционную систему.