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




Содержание

 

Содержание............................................................................................... 2

Введение........................................................................................................ 3

Постановка задачи......................................................................... 4

Метод решения задачи............................................................. 4

Алгоритм работы программы......................................... 5

Технические данные для использования... 6

Описание основных функций...................................... 6

Список используемой литературы....................... 7

 

 

Язык формирует наш способ мышления

и определяет, о чем мы можем мыслить.

Б.Л. Ворф

 

 

Введение

 

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

Си - это язык программирования общего назначения, хорошо известный своей эффективностью, экономичностью, и переносимостью. Указанные преимущества Си обеспечивают хорошее качество разработки почти любого вида программного продукта. Использование Си в качестве инструментального языка позволяет получать быстрые и компактные программы. Во многих случаях программы, написанные на Си, сравнимы по скорости с программами, написанными на языке ассемблера. При этом они имеют лучшую наглядность и их более просто сопровождать.

Си сочетает эффективность и мощность в относительно малом по размеру языке. Хотя Си не содержит встроенных компонент языка, выполняющих ввод-вывод, распределение памяти, манипуляций с экраном или управление процессами, тем не менее, системное окружение Си располагает библиотекой объектных модулей, в которой реализованы подобные функции. Библиотека поддерживает многие из функций, которые требуются.

Это решение позволяет изолировать языковые особенности от специфики процессора, на котором выполняется результирующая программа. Строгое определение языка делает его независимым от любых деталей операционной системы или машины. В то же время программисты могут добавить в библиотеку специфические системные программы, чтобы более эффективно использовать конкретной особенности машины.

Си - гибкий язык, позволяющий принимать в конкретных ситуациях самые разные решения. Тем не менее, Си налагает незначительные ограничения в таких, например, действиях, как преобразование типов. Во многих случаях это является достоинством, однако программисты должны хорошо знать язык, чтобы понимать, как будут выполняться их программы.

 

Постановка задачи

 

Задача курсовой работы состоит в разработке программы - калькулятора, которая позволяет считать выражения, состоящие из чисел, содержащих до 29 цифр от 0 до 9, постоянные числа pi=3,14159265359 и e=2.718281828459, функции синус (sin), косинус (cos), арксинус (asin), арккосинус (acos) и натуральный логарифм (ln).

Необходимо разработать удобный пользовательский интерфейс для работы с программой, а так же пункт “Помощь” для ознакомления с программой.

Программу разработать на языке C в среде Borland C++ V. 3.1

 

Метод решения задачи

 

Проанализировав поставленную задачу, я пришел к выводу, что необходимо разработать синтаксический анализатор выражений, для реализации которого я использовал алгоритм множественного выбора. При разборе выражение разбивается на составные части – термы, который в свою очередь состоит из факторов. Факторами могут являться числа или подвыражения, состоящего из других факторов. Терм является произведением или отношением факторов. Поочередно, анализируя каждый введенный символ, программа объединяет их в факторы, а готовые факторы в термы, после подсчета которых выдается окончательный ответ. Это правило очень важно, так как должен соблюдаться строгий приоритет выполнения операций, то есть вложенные элементы должны иметь операторы с более высоким приоритетом. Сначала, если есть функции, вычисляется их значение. У арифметических операций приоритет следующий: сначала выполняется возведение в степень, затем умножение, деление, сложение и вычитание. Если выражение содержит скобки, то в первую очередь вычисляется подвыражение во вложенных скобках самого нижнего уровня, а затем по возрастанию уровня.

 

 

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

 

Данная программа позволяет вычислять выражения, содержащие численные значения и некоторые функции. Следовательно, в алгоритме нужно осуществлять проверку на неверно введенные символы и ошибочно нажатые клавиши. Так же необходимо учесть количество открытых и закрытых скобок. Алгоритм программы следующий: включается функция 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;

}

}

Эта функция является определяющей при распознавании введенного выражения, то есть основополагающей при вычислении ответа.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-10-17 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: