Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Програма - калькулятор

Реферат Програма - калькулятор





нь, потім множення, ділення, додавання і віднімання. Якщо вираз містить дужки, то в першу чергу обчислюється підвираз під вкладених дужках самого нижнього рівня, а потім по зростанню рівня.



Алгоритм роботи програми

Дана програма дозволяє обчислювати вирази, містять чисельні значення і деякі функції. Отже, в алгоритмі потрібно здійснювати перевірку на невірно введені символи і помилково натиснуті клавіші. Так само необхідно врахувати кількість відкритих і закритих дужок. Алгоритм програми наступний: включається функція get_token (), в якій кожен символ, що вводиться перевіряється чи є він виходом, висновком відповіді, оператором "+", "-", "*", "/", "^", Цифрою або буквою, в кожному з цих випадків відбувається подальший рекурсивний розбір введеного вирази.


token_value get_token ()

{

char ch;

do

{

if ((ch = getch ()) == ESC) return curr_tok = END;

} while (ch == '');


switch (ch)

{

case ';':

putch (ch);

ps = ' x0';

return curr_tok = PRINT;

case ' r':

ps = ' x0';

gotoxy (1, wherey () +1);

return curr_tok = NEXT;

case '*': case '/': case '+': case '-':

case '(': case ')': case '=': case '^':

dupl_oper_verify (ps, ch),

return curr_tok = ch;

case '0 ': case '1': case '2 ': case '3': case '4 ':

case '5 ': case '6': case '7 ': case '8': case '9 ': case '.':

ps = ' x0';

ungetch (ch);

get_number ();

return curr_tok = NUMBER;

default:

ps = ' x0';

if (isalpha (ch))

{

ungetch (ch);

get_name ();

return curr_tok = NAME;

}

error ("Invalid symbol");

return curr_tok = PRINT;

}

}

Ця функція є визначальною при розпізнаванні введеного вирази, тобто основоположною при обчисленні відповіді.


Технічні дані для використання

Для запуску даної програми необхідна наявність персонального комп'ютера IBM PC/XT з операційною системою MS-DOS. Українізатор для ознайомлення з Допомогою. Обсяг оперативної пам'яті 640 Кбайт. Для запуску програми необхідно зробити поточним каталог з програмою Cal_kur.exe і викликати її на виконання.


Опис основних функцій

Функція get_token () - функція синтаксичного розбору введеного вирази.

Функція get_number () - функція введення числа.

Функція get_name () - функція введення імені постійної або функції.

Функція expr () - функція обчислення повного вираження.

Функція term () - функція обчислення доданка.

Функція prim () - функція обчислення первинної частини вираження.

Функція function_value () - функція обчислення значення функції.

Висновок повідомлення про помилку

Функція error () - функція виведення повідомлення про помилку.

Функція term_sym () - функція перевірка на термінальний символ.

Функція void back_space () - функція виправлення помилки введення клавішею BACKSPACE. p> Функція dupl_oper_verify () - функція перевірка дублювання знаку операції.

Функція menu () - функція організовує меню.




Список використаної літератури

1. Л.І. Шолмов. Мова Сі. 1988р. p> 2. Г. Шилдт. C для професійних програмістів. 1989р. p> 3. Б.В. Керниган, Д.М. Річі. Мова Сі. 1995р. p align=right> Додаток

# include

# include

# include

# include

# include

# include

# include

# define PI 3.14159265359

# define E 2.718281828459

# define ENTER 13

# define ESC 27

# define BACKSPACE ' b'

// Масив, відповідний термінальним символам

enum token_value

NAME, NUMBER, END,

PRINT = ';', NEXT = ' r',

PLUS = '+', MINUS = '-', MUL = '*', DIV = '/', POWER = '^',

ASSIGN = '=', LP = '(', RP = ')';

token_value curr_tok;

// Чисельна величина

double number_value;

// Рядок для зберігання введеного імені функції

char * func_name;

// Номер функції в словнику функцій

int function_number;

// Словник функцій

char funcs [43] = "sin cos ln asin acos e pi "; p>//

int sch_ch = 0;

// Попередня операція

char ps = ' x0...


Назад | сторінка 2 з 6 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Arguing your case (10 кл)
  • Реферат на тему: Arguing your case (10 кл)
  • Реферат на тему: Моделювання процесу за допомогою CASE-cредства
  • Реферат на тему: Функція y = ax ^ 2 + bx + c
  • Реферат на тему: Case-study. Аналіз випадку