А.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. Унарные числа представляются в стеке в виде связных списков.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Простейший Web-сценарий
Простейший Web-сценарий Первый Web-сценарий, который мы напишем, будет совсем простым. Он выведет на Web-страницу текущую дату.В самом начале этой книги, приступив к изучению HTML, мы создали небольшую Web-страничку 1.1.htm. Найдем ее и откроем в Блокноте. В самом конце ее HTML- кода,
Калькулятор
Калькулятор Программа Калькулятор (рис. 6.30) давно входит в состав Windows и не предполагает особенных обновлений. Она полезна, так как в процессе работы часто приходится делать арифметические вычисления. Рис. 6.30. Окно программы КалькуляторОписывать работу с программой
Простейший файл конфигурации
Простейший файл конфигурации #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
Простейший Web-сценарий
Простейший Web-сценарий Первый Web-сценарий, который мы напишем, будет совсем простым. Он выведет на Web-страницу текущую дату.В самом начале этой книги, приступив к изучению HTML, мы создали небольшую Web-страничку 1.1.htm. Найдем ее и откроем в Блокноте. В самом конце ее HTML- кода,
Простейший диодный ограничитель
Простейший диодный ограничитель Ограничитель используется, чтобы передать на выход только часть входного напряжения произвольной формы. Когда диод включается, происходит отсечка: на выход независимо от входного сигнала подается сумма напряжений на источнике и
Калькулятор
Калькулятор Удобная программа, имитирующая функции стандартного электронного калькулятора. Проще всего проводить расчеты, пользуясь цифровым блоком клавиатуры – он расположен справа. Калькулятор может работать в двух режимах: в обычном и в режиме инженерного
Простейший пример
Простейший пример Чтобы продемонстрировать "пользу" структурированной обработки исключений, нужно создать тип, который в подходящем окружении может генерировать исключение. Предположим, что мы создали новое консольное приложение с именeм SimpleException, в котором
Простейший пример делегата
Простейший пример делегата В начале освоения приемов работы с делегатами у программиста может возникать много вопросов. Поэтому мы начнем с рассмотрения очень простого примера, в котором используется созданный нами тип делегата BinaryOp. Вот программный код, который мы
Калькулятор
Калькулятор Удобным инструментом для выполнения вычислений, преобразования единиц измерения и других операций является палитра калькулятор, используя которую можно выполнять следующие действия:• математические и тригонометрические расчеты;• просмотр и
Простейший текстовый редактор
Простейший текстовый редактор Когда вы создаете приложение с однооконным или многооконным интерфейсом при помощи средств MFC AppWizard, в последней диалоговой панели вы можете выбрать базовый класс для окна просмотра приложения. По умолчанию используется класс CView.От класса
8.3. Калькулятор
8.3. Калькулятор Программа Калькулятор может работать в двух режимах — в инженерном (рис. 71) и обычном (рис. 72). В инженерном режиме Калькулятор может производить вычисления в различных системах счисления (десятичной, шестнадцатеричной, восьмеричной, двоичной), а также
2.6.3. Калькулятор
2.6.3. Калькулятор Еще одна программа, входящая в состав Windows, — это калькулятор (рис. 2.135). Пригодится, если вам нужно сложить, вычесть, разделить, умножить или извлечь из каких бы то ни было чисел корень. Пользоваться калькулятором очень просто — набираете кнопками число
Калькулятор
Калькулятор Как вы знаете, основное предназначение компьютера – считать.Для математических вычислений используется программа с очень подходящим ей названием Калькулятор (рис. 17.5). Рис. 17.5. Калькулятор WindowsЕе интерфейс напоминает самый обычный настольный калькулятор.
Простейший COM-вирус
Простейший COM-вирус В начале COM-файла обычно находится команда безусловного перехода JMP, состоящая из трех байт. Первый байт содержит код команды 0E9h, следующие два – адрес перехода. Поскольку рассматриваемый ниже вирус учебный, он будет заражать только COM-файлы,