Расстановка скобок в арифметическом выражении - Программирование, компьютеры и кибернетика курсовая работа

Расстановка скобок в арифметическом выражении - Программирование, компьютеры и кибернетика курсовая работа




































Главная

Программирование, компьютеры и кибернетика
Расстановка скобок в арифметическом выражении

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


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Московский Государственный Университет леса
Проверила: доцент кафедры ПМ Афанасьев А.В.
арифметическое выражение алгоритм программа
function isOperation (symbol: char): boolean;
function bracketsBalance (inString: string): boolean;
function isRightExpression (inString: string): boolean;
function getPriority (symbol: char): integer;
function arrangeBrackets (inString: string): string;
function isOperation (symbol: char): boolean; // проверка является ли символ операцией
function bracketsBalance (inString: string): boolean; // проверка баланса скобок
for i: = 1 to Length (inString) do
if ( (inString [i] = ' (') and ( flag >= 0)) then
function isRightExpression (inString: string): boolean; // проверка является ли введенное выражение правильным
prevFlag: = isOperation (inString [1]);
for i: = 2 to Length (inString) do
curFlag: = isOperation (inString [i]);
if ( (prevFlag = true) and ( curFlag = true)) then
flag: = false; // если предыдущий и текущий символы - операции, то выражение неправильное
isRightExpression: = bracketsBalance (inString)
function getPriority (symbol: char): integer; // получение приоритета операции для правильной расстановки скобок, чем выше приоритет - тем раньше выполняется операция
if ( (symbol = '-') or ( symbol = '+')) then
function arrangeBrackets (inString: string): string;
i, m, count, maxPriority, maxPosition: integer;
priorities: array [1.100] of integer;
symbols: array [1.100] of string;
operand, bracketsExpression: string;
while i <> Length (inString) + 1 do
if ( isOperation (inString [i]) = true) then // если текущий символ - операция
symbols [m]: = operand; // заносим накопленный операнд в массив элементов выражения
Inc (m); // переходим к следующей ячейке массива
priorities [m]: = getPriority (inString [i]); // заносим в массив приоритетов приоритет данной операции
symbols [m]: = inString [i]; // заносим операцию в массив элементов выражения
Inc (m); // переходим к следующей ячейке массива
Inc (count); // увеличиваем счетчик операций
else if ( inString [i] = ' (') then
while ( inString [i + 1] <> ') ') do
bracketsExpression: = bracketsExpression + inString [i];
symbols [m]: = arrangeBrackets (bracketsExpression);
if ( i < Length (inString) - 1) then
while ( count <> 0) do // пока не прошли по всем операциям
if ( priorities [i] >= maxPriority) then // ищем в массиве элементов выражения позицию оператора с наивысшим приоритетом
if ( symbols [i] = '') and ( symbols [i + 1] <> '') then // удаление из массива элементов выражения пустых ячеек (такое бывает после объединения двух операндов и операции)
priorities [i]: = priorities [i + 1];
symbols [maxPosition - 1]: = ' (' + symbols [maxPosition - 1] + symbols [maxPosition] + symbols [maxPosition + 1] + ') '; // объединяем два операнда с операцией с максимальным приоритетом в одну ячейку, освободившиеся обнуляем
writeln ('Please enter a source expression: ');
expressionFlag: = isRightExpression (inString);
outString: = arrangeBrackets (inString);
writeln ('Министерство образования и науки РФ');
writeln ('Московский Государственный Университет леса');
writeln ('по дисциплине: "Программирование"');
writeln ('"Расстановка скобок в арифметическом выражении"');
procedure OverWrite; // вывод пунктов меню
Procedure Wind (k: integer); // управление меню с клавиатуры
7: begin ClrScr; writeln (S1); work; readln; end ;
8: begin ClrScr; writeln (S2); aboutProgram; readln; end ;
9: begin ClrScr; writeln (S3); Delay (1000); Halt; end ;
6. В случае ошибки программа начинает работу заново:
Запустив программу, пользователь видит диалоговое окно, в котором предлагается "Начать работу" с программой, узнать "О программе"или выйти из программы. Выбрав пункт "Начать работу" откроется окно, в котором предлагается ввести арифметическое выражение. Введя выражение, программа расставляет скобки по старшинству операций. Если выражение будет введено со скобками, то программа не изменит их, а если скобки будут не закрыты, то программа начнет свое действие заново.
9 ) Возможности для модификации :
1. Добавить функцию, которая расставляет порядок выполнения действий
2. Добавить функцию, которая осуществляет открытие файла (в котором содержится арифметическое выражение), и создающая новый файл, в котором это выражение было бы записано со скобками по возрастанию операций.
3. Сделать возможность расставления скобок в функциях (таких как sin, cos, tg, log и т.д.)
Особенности составления программы (сценария) на языке JavaScript. Построение выражений из литералов, переменных, знаков операций, скобок. Элементы, используемые для хранения данных. Приоритет операций, порядок, в котором выполняются операции в выражении. лабораторная работа [40,2 K], добавлен 19.09.2019
Разработка технологии обработки информации, структуры и формы представления данных. Проектирование программных модулей. Блок-схема алгоритма и исходный код программы анализа арифметического выражения, синтаксического анализа простой программы на языке С. курсовая работа [2,4 M], добавлен 12.12.2011
Схема разбора арифметического и логического выражения. Внешняя спецификация конвертора и алгоритм перевода программ на языке Паскаль в текст на языке Си. Назначение подпрограмм, особенности констант и переменных. Код программы и ее тестирование. курсовая работа [567,5 K], добавлен 03.07.2011
Методы арифметического кодирования. Основные функции программ, реализующие алгоритмы кодирования по методам Хаффмана, Голомба, Фибоначчи и Элиаса. Разработка программно-аппаратных средств оптимального арифметического кодирования и их экономический расчет. дипломная работа [1,1 M], добавлен 26.05.2012
Условная функция. Логические выражения. Вложенные логические функции ЕСЛИ. Особенности записи логических операций в табличных процессорах: сначала записывается имя логической операции (И, ИЛИ, НЕ). реферат [7,9 K], добавлен 17.11.2002
Использование метода абстракции в программировании на примере построения польской записи выражения с помощью стека. Абстрактные типы данных. Анализ классов реализации списков. Вставка и удаление элемента в список. Вычисление значения выражения на стеке. презентация [166,7 K], добавлен 19.10.2014
Изучение структуры компьютера и принципов его функционирования. Центральный процессор и основной цикл его работы. Выполнение арифметических операций в ЭВМ. Разработка программы реализации арифметического выражения и отладка ее с помощью отладчика TD. контрольная работа [87,3 K], добавлен 12.03.2011
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Расстановка скобок в арифметическом выражении курсовая работа. Программирование, компьютеры и кибернетика.
Доклад по теме Использование традиционных и развитие новых форм взаимодействия с родителями
Методы Юридической Науки Курсовая
Курсовая работа по теме Изучение классификации экскурсий и их особенностей
Курсовая работа по теме Религия и ее место в духовной культуре общества
Курсовая работа: Фінанси та їх структура
Реферат: «коммуникационное пространство»
Реферат: Аналіз виконання Державного бюджету України за 2009 рік
Планировочные Схемы Гражданских Зданий Реферат
Реферат: Технічне обслуговування системи живлення дизеля КамАЗ
Дипломная работа по теме Ишемическая болезнь сердца
Курсовая работа: Гидравлический расчет проточной части центробежного насоса НЦВС 40 30
История Развития Земледелия Реферат
Курсовая работа по теме Автоматизация работы в Microsoft Word
Курсовая работа: Разработка элементов годового плана производственно-хозяйственной деятельности предприятия
Сочинение по теме Методика факультатива "Современные тенденции развития русской литературы"
Курсовая работа: Организация производства горячего цеха кафе общего типа на 60 мест
Дипломная работа: Уголовно-правовое регулирование трансплантации органов и тканей
Нормативная Теория Принятия Решений Реферат
Реферат: Восстановления оптической кабельной линии
Большая Курсовая Разница
Визначення і аналіз ролі менеджменту у діяльності підприємства - Менеджмент и трудовые отношения отчет по практике
Организация рационального питания учащихся в общеобразовательных школах и пути её совершенствования - Кулинария и продукты питания курсовая работа
Критерии качества программных средств - Программирование, компьютеры и кибернетика реферат


Report Page