А.3.1. Простейший калькулятор

А.3.1. Простейший калькулятор

Для иллюстрации методики профилирования мы напишем простейшую программу- калькулятор. Чтобы программа выполнялась нетривиальным образом, заставим ее работать с унарными числами, чего не встречается в реальных калькуляторах. Код программы приведен в конце приложения.

Значение унарного числа представляется аналогичным количеством символов. Например, число 1 — это "x", 2 — "xx", 3 — "xxx" и т.д. Вместо символов "x" программа использует связный список, количество элементов которого соответствует значению числа. В файле number.c содержатся функции, позволяющие создавать число 0, добавлять единицу к числу, вычитать единицу из числа, а также складывать, вычитать и умножать числа. Есть функция, которая преобразует строку, содержащую неотрицательное десятичное число, в унарное число. Другая функция преобразует унарное число в значение типа int. Сложение реализуется путем последовательного добавления единицы, вычитание — путем последовательного отнимания единицы, а умножение — путем многократного сложения. Функции even() и odd() возвращают унарный эквивалент единицы тогда и только тогда, когда их единственный операнд является соответственно четным или нечетным числом. В противном случае возвращается унарный эквивалент нуля. Обе функции взаимно рекурсивны. Например, число является четным, если оно равно нулю или если число, на единицу меньшее, является нечетным.

Калькулятор принимает однострочные постфиксные выражения[40] и отображает значение каждого выражения:

% ./calculator

Please enter a postfix expression:

2 3 +

5

Please enter a postfix expression:

2 3 + 4 -

1

Калькулятор, реализованный в файле calculator.c, читает каждое выражение и сохраняет промежуточные результаты в стеке унарных чисел, реализованном в файле stack.c. Унарные числа представляются в стеке в виде связных списков.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Простейший файл конфигурации

Из книги Документация NetAMS автора Автор неизвестен

Простейший файл конфигурации #NeTAMS version 3.1(1205.408) compiled by root@avm#configuration built Thu Aug 8 09:03:53 2002#begin#global variables configurationdebug noneuser name admin real–name Admin password aaa email root@localhost permit all#services configurationservice server 0login locallisten 20001max–conn 6service processor 0lookup–delay 60flow–lifetime 180policy name ip target proto ippolicy name www target proto tcp port 80 81 8080 3128policy name


Калькулятор

Из книги Работа на ноутбуке автора Садовский Алексей

Калькулятор Как вы знаете, основное предназначение компьютера – считать.Для математических вычислений используется программа с очень подходящим ей названием Калькулятор (рис. 17.5). Рис. 17.5. Калькулятор WindowsЕе интерфейс напоминает самый обычный настольный калькулятор.


Простейший пример

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Простейший пример Чтобы продемонстрировать "пользу" структурированной обработки исключений, нужно создать тип, который в подходящем окружении может генерировать исключение. Предположим, что мы создали новое консольное приложение с именeм SimpleException, в котором


Простейший пример делегата

Из книги Windows Vista без напряга автора Жвалевский Андрей Валентинович

Простейший пример делегата В начале освоения приемов работы с делегатами у программиста может возникать много вопросов. Поэтому мы начнем с рассмотрения очень простого примера, в котором используется созданный нами тип делегата BinaryOp. Вот программный код, который мы


Калькулятор

Из книги Windows Vista. Мультимедийный курс автора Мединов Олег

Калькулятор Удобная программа, имитирующая функции стандартного электронного калькулятора. Проще всего проводить расчеты, пользуясь цифровым блоком клавиатуры – он расположен справа. Калькулятор может работать в двух режимах: в обычном и в режиме инженерного


Калькулятор

Из книги Самоучитель работы на компьютере автора Колисниченко Денис Николаевич

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


8.3. Калькулятор

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

8.3. Калькулятор Программа Калькулятор может работать в двух режимах — в инженерном (рис. 71) и обычном (рис. 72). В инженерном режиме Калькулятор может производить вычисления в различных системах счисления (десятичной, шестнадцатеричной, восьмеричной, двоичной), а также


Простейший текстовый редактор

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

Простейший текстовый редактор Когда вы создаете приложение с однооконным или многооконным интерфейсом при помощи средств MFC AppWizard, в последней диалоговой панели вы можете выбрать базовый класс для окна просмотра приложения. По умолчанию используется класс CView.От класса


Простейший Web-сценарий

Из книги OrCAD PSpice. Анализ электрических цепей автора Кеоун Дж.

Простейший Web-сценарий Первый Web-сценарий, который мы напишем, будет совсем простым. Он выведет на Web-страницу текущую дату.В самом начале этой книги, приступив к изучению HTML, мы создали небольшую Web-страничку 1.1.htm. Найдем ее и откроем в Блокноте. В самом конце ее HTML- кода,


Простейший Web-сценарий

Из книги С компьютером на ты. Самое необходимое автора Егоров А. А.

Простейший Web-сценарий Первый Web-сценарий, который мы напишем, будет совсем простым. Он выведет на Web-страницу текущую дату.В самом начале этой книги, приступив к изучению HTML, мы создали небольшую Web-страничку 1.1.htm. Найдем ее и откроем в Блокноте. В самом конце ее HTML- кода,


Простейший диодный ограничитель

Из книги AutoCAD 2009. Учебный курс автора Соколова Татьяна Юрьевна

Простейший диодный ограничитель Ограничитель используется, чтобы передать на выход только часть входного напряжения произвольной формы. Когда диод включается, происходит отсечка: на выход независимо от входного сигнала подается сумма напряжений на источнике и


2.6.3. Калькулятор

Из книги Создаем вирус и антивирус автора Гульев Игорь А.

2.6.3. Калькулятор Еще одна программа, входящая в состав Windows, — это калькулятор (рис. 2.135). Пригодится, если вам нужно сложить, вычесть, разделить, умножить или извлечь из каких бы то ни было чисел корень. Пользоваться калькулятором очень просто — набираете кнопками число


Калькулятор

Из книги автора

Калькулятор Удобным инструментом для выполнения вычислений, преобразования единиц измерения и других операций является палитра калькулятор, используя которую можно выполнять следующие действия:• математические и тригонометрические расчеты;• просмотр и


Простейший COM-вирус

Из книги автора

Простейший COM-вирус В начале COM-файла обычно находится команда безусловного перехода JMP, состоящая из трех байт. Первый байт содержит код команды 0E9h, следующие два – адрес перехода. Поскольку рассматриваемый ниже вирус учебный, он будет заражать только COM-файлы,