Разработка программного приложения для решения информационно-логических задач

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 12.12.2011
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

Северо-Кавказский государственный технический университет»

Факультет Инженерно-экономический

Кафедра Информационных систем, электропривода и автоматики

Специальность 230201.65 - Информационные системы и технологии

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту по технологии программирования

на тему

Разработка программного приложения для решения информационно-логических задач

Автор проекта Бардиловский Р.С.

Группа ИС-091

Руководитель проекта Д.В. Болдырев

Невинномысск, 2011

Содержание

  • Аннотация
  • Введение
  • 1. Разработка технического задания на проектирование
    • 1.1 Общая постановка задачи
    • 1.2 Определение требований к программе
    • 1.3 Предварительный выбор метода решения задачи
    • 1.4 Определение требований к системе
      • 1.4.1 Требования к системе в целом
      • 1.4.2 Требования к техническому обеспечению
      • 1.4.3 Требования к программному обеспечению
  • 2. Проектирование программного приложения
    • 2.1 Разработка технологии обработки информации
    • 2.2 Разработка структуры и формы представления данных
    • 2.3 Разработка алгоритма решения задачи
    • 2.4 Разработка программы решения задачи
      • 2.4.1 Выбор инструментальных средств
      • 2.4.2 Разработка структуры программы
      • 2.4.3 Проектирование программных модулей
      • 2.4.4 Проектирование программного интерфейса
      • 2.4.5 Обеспечение надежности программы
    • 2.5 Определение конфигурации технических средств
    • 2.6 Тестирование программы
      • 2.6.1 Общие сведения
      • 2.6.2 Процесс тестирования программы
      • 2.6.3 Оценка надежности программы
  • Заключение
  • Список использованных источников
  • Приложение А
  • Аннотация
  • В курсовом проекте разработана программа, реализующая синтаксический анализ простой программы на языке С.
  • В представленной работе описаны все этапы создания программы, алгоритм ее функционирования, структура программы, описание программных модулей, интерфейс программы, а также результаты тестирования готового программного продукта.
  • Пояснительная записка содержит 38 страниц машинописного текста, 9 рисунков, 3 таблиц, 1 приложений. Список использованных источников включает 3 наименования.

Введение

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

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

Создание системы позволит как оценить и исследовать отдельные методы и алгоритмы, так и сравнить их с точки зрения затрат вычислительных ресурсов и точности получаемых результатов.

1. Разработка технического задания на проектирование

1.1 Общая постановка задачи

Необходимо разработать программное приложение, выполняющее следующие функции:

­ синтаксический анализ простой программы на языке С;

­ форматирование текста программы на языке С.

Простая программа содержит переменные типа float, операторы if, while, do, логические и арифметические операции. Необходимо в каждой паре следующих друг за другом операторов А и В, с одинаковыми левыми частями, удалить оператор А, если его правая часть на совпадает с правой частью В.

1.2 Определение требований к программе

Программа должна обеспечивать возможность анализа простой программы и форматирования ее текста.

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

Требования к надежности:

Необходимо предусмотреть блокировку некорректных действий пользователей при работе с системой.

Требования к информационной и программной совместимости

Система должна работать под управлением операционной среды Windows'95 и выше

1.3 Предварительный выбор метода решения задачи

Для решения задачи синтаксического анализа был выбран метод Бэкуса-Наура

1.4 Определение требований к системе

1.4.1 Требования к системе в целом

Система должна обеспечивать корректное выполнение всех предусмотренных техническим заданием функций.

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

Для надежного функционирования системы необходима бесперебойная работа компьютеров в соответствии с правилами их эксплуатации. Правила эксплуатации системы соответствуют общим требованиям техники электробезопасности.

Система не должна предъявлять специальных требований к эксплуатации и обслуживанию.

К системе не предъявляются особые требования по сохранности информации при возникновении аварийных ситуаций.

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

1.4.2 Требования к техническому обеспечению

Требования к техническому обеспечению определяются требованиями к программному обеспечению.

1.4.3 Требования к программному обеспечению

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

Для решения задачи будет использоваться Microsoft Visual Studio 2008. Для ее функционирования необходима операционная система не ниже Microsoft Windows XP.

При создании информационной системы главным критерием выбора программных средств разработки должны являться:

- скорость выполнения программы менее 1 секунды;

- возможность быстрого внесения изменений в программу;

- время создания разработанного программного обеспечения должно укладываться в график работы над проектом;

- наличие опыта разработки с использованием данного программного продукта;

- удобство эксплуатации.

2. Проектирование программного приложения

2.1 Разработка технологии обработки информации

Технология обработки информации определяет содержание этапов выполнения информационных операций. Она предусматривает следующие процедуры:

– получение первичной информации;

– обработка первичной информации с целью получения результатной информации;

– выдача варианта решения.

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

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

Структурная схема технологического процесса обработки информации показана на рисунке 1.

Размещено на http://www.allbest.ru/

Рисунок 1 -- Технологический процесс обработки информации

2.2 Разработка структуры и формы представления данных

Основной единицей входной информации является простая программа, состоящая из следующих атрибутов:

­ Объявление переменных;

­ Арифметические выражения;

­ Логические выражения;

­ Операторы;

­ Функции ввода и вывода.

Все приведенные атрибуты по смыслу должны быть строковыми переменными.

Для представления входных данных предлагается использовать список. Его описание приведено ниже.

static public List<string> arrText = new List<string>();

Для представления входной информации используется глобальная переменная arrText. Ее характеристики приведены в таблице 1.

Таблица 1

Входные информационные объекты

Объект

Назначение

Тип

arrText

Список, содержащий простую программу

string

Внутренние информационные объекты предполагается представлять с помощью переменных стандартных типов языка C#. Внутренние локальные переменные используются для хранения результатов промежуточных расчетов, в качестве счетчиков цикла, сумматоров и т. п.

Выходные информационные объекты предполагается представлять с помощью переменных стандартных типов языка C#. Их характеристики приведены в таблице 2.

Таблица 2

Выходные информационные объекты

Объект

Назначение

Тип

arrText

Список, содержащий отформатированную простую программу

string

2.3 Разработка алгоритма решения задачи

Алгоритм главной программы Main() представлен на рисунке 2. После объявления глобальных переменных, программа начинает выполнять главную функцию Main(), в которой происходит открытие файла, запись информации из файла построчно в список, закрытие файла и вызов необходимых функции.

На рисунке 2 представлен алгоритм функции RemoveSpace(), которая убирает пробелы из текста. Так же он добавляет пробелы после основных операторов, а именно float, while, do, if, else. Для того, чтобы удалить все пробелы необходимо определить, есть ли они в данной строке. Организуется цикл, который перебирает все строки в списке. Далее проверяется условие наличия пробелов в строке, пока они присутствуют, будет повторяться цикл while. После обнаружения пробела в строке он заменяется отсутствием пробела. Для того, чтобы добавить пробел после операторов, необходимо определить, есть ли данное вхождение символов в данную строку. Если она обнаруживается, то заменяется на оператор с пробелом.

На рисунке 3 представлен алгоритм функции Split_String(). Функция выполняет разделение фигурных скобок таким образом, чтобы каждая скобка была на отдельной строке. Так как предполагается, что исходная программа простая, то разделение будет происходить из расчета, что на строке не больше одной скобки. Для разделения открывающихся фигурных скобок организуется цикл до конца списка. Производится проверка, если в строке оказывается открывающаяся фигурная скобка, то происходит деление строки на части, каждая часть записывается в свои элемент массива. Разделителем является {. После разделения исходная строка удаляется. Производится проверка, если первая часть содержит элементы, то они записываются в данную строку, и увеличивается индекс строки. В следующую строку записывается {. Далее так же производится проверка второй части и ее запись в случае существования. Для закрывающейся скобки и; производятся аналогичные действия.

На рисунке 4 представлен алгоритм функции Format_Text(), которая выполняет форматирование текста. организуется цикл до конца списка. При обнаружении знака “{” переменная step становится меньше на 2. После чего в строку добавляется step пробелов.

На рисунке 5 представлен алгоритм функции Bracket(). Функция анализирует правильность расстановки скобок в главной программе. Организуется цикл до конца списка. Проверяется каждая строка на наличие скобок, при обнаружении открывающейся скобки переменная, соответствующая данному виду скобок увеличивается на 1, при обнаружении закрывающейся - уменьшается на 1. Далее производится сравнение переменных с 0, и если какое-либо условие не выполняется, то выдается ошибка.

На рисунке 6 представлен алгоритм функции Del(). Данная функция выполняет удаление одного из двух одинаковых операторов. Организуется цикл до конца списка. Производится сравнение, если на двух соседних строках обнаруживается операции присваивания, то далее производится сравнение левых частей. При выполнении условии, первая операция удаляется из списка.

На рисунке 7 представлен алгоритм функции Operator(). Данная функция выполняет анализ операторов, таких как if, else, while, do. Организуется цикл до конца списка. Далее начинается проверка, если в строке находится подстрока “do”, начинается проверка фигурных скобок. Находится открывающаяся скобка, если ее нет, выдается ошибка. Если условие выполняется, то находится оператор while, после чего происходит проверка закрывающейся скобки на предыдущей строчке. Если она не обнаруживается, выдается ошибка. Далее происходит проверка оператора while. Находятся круглые скобки, проверяется, есть ли между ними выражение. Если выражения нет, выдается ошибка. Иначе происходит проверка выражения. Для оператора if и else алгоритм анализа происходит аналогично.

Рисунок 1 - Алгоритм главной функции

Рисунок 2 - Алгоритм функции RemoveSpace()

синтаксический программа модуль интерфейс

Рисунок 3 - Алгоритм функции Split_String()

Рисунок 4 - Алгоритм функции Format_Text()

Рисунок 5 - Алгоритм функции Bracket()

Рисунок 6 - Алгоритм функции Del()

Рисунок 7 - Алгоритм функции Operator()

2.4 Разработка программы решения задачи

2.4.1 Выбор инструментальных средств

В качестве средства разработки информационной системы будет использован язык программирования Microsoft Visual C# , как наиболее оптимальное средство разработки. Используя Microsoft Visual C# можно создавать приложения для MS Windows 2000/XP с минимальными затратами времени, т.к. в ее основе лежит концепция быстрого создания приложений (RAD). Интегрированная среда разработки приложений - позволяет создавать, компилировать, тестировать и редактировать проект или группу проектов в единой среде программирования.

2.4.2 Разработка структуры программы

Структура программного комплекса представлена на рисунке 8. Она включает в себя следующие компоненты:

­ загрузка текста простой программы из файла;

­ синтаксический анализ текста простой программы;

­ вывод результата

Рисунок 8 - Структура программного комплекса

2.4.3 Проектирование программных модулей

В ходе разработки программы создан проект под названием «kurs», содержащий файлы: Program.cs.

Программа состоит из следующих подпрограмм:

- Main() - главная программа;

- RemoveSpace () - удаление пробелов из текста программы;

- Split_String () -разделение фигурных скобок;

- Format_Text () - форматирование текста простой программы;

- Bracket() - проверка правильности расстановки скобок;

- Del() - удаление одного из рядом стоящих одинаковых операторов;

- Operator() - проверка правильности операторов if, else, do, while;

- IsExpr() - проверка правильности введенного выражения;

- IsOper() - проверка правильности знаков операций;

- IsAdd() - проверка правильности слагаемых;

- IsMul() - проверка правильности произведений;

- IsID() - проверка правильности идентификаторов;

- IsConst() - проверка правильности констант;

- IsAlpha() - проверка правильности буквенных выражений;

- IsDigit() - проверка правильности цифр;

2.4.4 Проектирование программного интерфейса

Сценарии диалога с пользователем организован с помощью вывода на экран результата. Экран вывода представлен на рисунке 9

2.4.5 Обеспечение надежности программы

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

Рисунок 9 - Экран вывода результатов

2.5 Определение конфигурации технических средств

Для нормальной эксплуатации данной работы необходимо соблюдать следующие требования, представленные в таблице 3.

Таблица 3

Требования к комплексу технических средств

Технические характеристики

Конфигурация

Минимальная

Рекомендуемая

Процессор

1200 МГц

1500 МГц

Оперативная память

128 Мб

256 Мб

CD-ROM

32х

52х

Свободное место на жестком диске

200 Мб

400 Мб

Монитор

17”

17”

Клавиатура

Наличие

Наличие

Мышь

Наличие

Наличие

2.6 Тестирование программы

2.6.1 Общие сведения

Для проверки работоспособности программы были произведены следующие действия:

- изменение входных параметров;

- проверка правильности расчетов пути;

- проверка правильности вывода расчетной информации на экран;

- вывод результатов.

2.6.2 Процесс тестирования программы

В процессе тестирования проверялись следующие функции программы:

- правильность отработки алгоритма программы;

- правильность функционирования программы;

- проверка выхода из программы.

2.6.3 Оценка надежности программы

В результате тестирования ошибок в работе программы не выявлено. Программа полностью работоспособна и готова к непосредственному функционированию.

Заключение

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

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

Список использованных источников

1. Иванова, Г.С. Технология программирования [Текст]: Учебник для вузов/ Иванова Г.С. - М.: Изд-во МГТУ им. Н.Э.Баумана, 2002. - 320 с.: ил. - (Информатика в техническом университете). - ISBN 5-7038-2077-4.

2. Полный справочник по С. Четвертое издание [Текст]: Пер. с англ./ Шилдт, Герберт. - М.: Издательский дом «Вильямс», 2002. - 704 с.: ил. - Парал. тит. англ. - ISBN 5-8459-0226-6(рус.).

3. Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. Алгоритмы. Построение и анализ [Текст]: Пер. с англ./ Кормен Томас Х., Лейзерсон Чарльз И., Риверс Роналд Л, Штайн Клиффорд. - М.: Издательский дом «Вильямс», 2005. - 1296 с.: ил. - Парал. тит. англ. - ISBN 5-8459-0857-4(рус.).

Приложение А

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Text;

using System.Collections;

namespace kurs

{

class Program

{

static public string s_0 = " ";

static public List<string> arrText = new List<string>();

static public StreamReader objReader = new StreamReader("d:\\text.txt");

static public string expr;

static public int pos;

static void Main(string[] args)

{

StreamReader objReader = new StreamReader(@"d:\text.txt");

while (s_0 != null)

{

s_0 = objReader.ReadLine();

if (s_0 != null)

arrText.Add(s_0.ToLower());

}

objReader.Close();

RemoveSpace(arrText);

Split_String();

Format_Text();

Del(arrText);

Bracket(arrText);

Operator();

}

static public void RemoveSpace(List<string> txt)

{

for (int i = 0; i < txt.Count; i++)

{

while (txt[i].IndexOf(" ") != -1)

txt[i] = txt[i].Replace(" ", "");

if (txt[i].IndexOf("float") > -1)

txt[i] = txt[i].Replace("float", "float ");

if (txt[i].IndexOf("do") > -1)

txt[i] = txt[i].Replace("do", "do ");

if (txt[i].IndexOf("while") > -1)

txt[i] = txt[i].Replace("while", "while ");

if (txt[i].IndexOf("if") > -1)

txt[i] = txt[i].Replace("if", "if ");

if (txt[i].IndexOf("else") > -1)

txt[i] = txt[i].Replace("else", "else ");

}

}

static private void Split_String()

{

for (int k = 0; k < arrText.Count; )

{

if (arrText[k].IndexOf("{") > -1)

{

string[] tmp = arrText[k].Split('{');

arrText.RemoveAt(k);

if (tmp[0].Length != 0)

arrText.Insert(k++, tmp[0]);

arrText.Insert(k++, "{");

if (tmp[1].Length != 0)

arrText.Insert(k, tmp[1]);

}

else

k++;

}

for (int k = 0; k < arrText.Count; )

{

if (arrText[k].IndexOf("}") > -1)

{

string[] tmp = arrText[k].Split('}');

arrText.RemoveAt(k);

if (tmp[0].Length != 0)

arrText.Insert(k++, tmp[0]);

arrText.Insert(k++, "}");

if (tmp[1].Length != 0)

arrText.Insert(k, tmp[1]);

}

else

k++;

}

for (int k = 0; k < arrText.Count; )

{

if (arrText[k].IndexOf(";") > -1)

{

while (arrText[k].IndexOf(";") > -1)

{

string[] tmp = arrText[k].Split(';');

arrText.RemoveAt(k);

for (int i = 0; i < tmp.Length; i++)

if (tmp[i].Length != 0)

arrText.Insert(k++, tmp[i] + ";");

}

}

else

k++;

}

}

static private void Format_Text()

{

string blank = " ";

int step = 0;

for (int i = 0; i < arrText.Count; i++)

{

if (arrText[i].IndexOf("}") > -1)

step -= 2;

string indent = blank.Substring(0, step);

arrText[i] = indent + arrText[i];

if (arrText[i].IndexOf("{") > -1)

step += 2;

}

for (int i = 0; i < arrText.Count; i++)

{

Console.WriteLine(arrText[i]);

}

}

static public void Bracket(List<string> txt)

{

int c = 0;

int f= 0;

int s = 0;

for (int i = 0; i < txt.Count; i++)

{

if (txt[i].IndexOf("{") > -1) f++;

if (txt[i].IndexOf("}") > -1) f--;

if (txt[i].IndexOf("[") > -1) s++;

if (txt[i].IndexOf("]") > -1) s--;

if (txt[i].IndexOf("(") > -1) c++;

if (txt[i].IndexOf(")") > -1) c--;

}

if (f != 0) Console.WriteLine("Ошибка в фигурных скобках");

if (c != 0) Console.WriteLine("Ошибка в круглых скобках");

if (s != 0) Console.WriteLine("Ошибка в квадратных скобках");

}

static public void Del(List<string> txt)

{

for (int i = 0; i < txt.Count - 1; i++)

{

if ((txt[i].IndexOf("=") >= 0) && (txt[i+1].IndexOf("=") >= 0))

{

if (txt[i][0] == txt[i + 1][0])

txt.RemoveAt(i);

}

if (txt[i].IndexOf("=") > -1)

if (txt[i].IndexOf(";") == -1)

Console.WriteLine("Ошибка: не хватает ; после операции присваивания");

}

}

static private void Operator()

{

int a, b;

for (int i = 0; i < arrText.Count; i++)

{

if (arrText[i].IndexOf("do") > -1)

{

if (arrText[i + 1].IndexOf("{") > -1)

{

for (int j = i; j < arrText.Count; j++)

{

if (arrText[j].IndexOf("while") > -1)

{

if (arrText[j - 1].IndexOf("}") == -1)

Console.WriteLine("Ошибка: отсутствует фигурная скобка в конце оператора do");

}

}

}

else Console.WriteLine("Ошибка: отсутствует фигурная скобка перед началом оператора do");

}

if (arrText[i].IndexOf("while") > -1)

{

if (arrText[i][arrText[i].IndexOf("while") + 2] == '(')

{

if (arrText[i].IndexOf(")") > -1)

{

a = arrText[i].IndexOf("(");

b = arrText[i].LastIndexOf(")");

if ((b - a) <= 1)

Console.WriteLine("Ошибка: пустой оператор while");

else

{

pos = 0;

expr = arrText[i].Substring(a + 1, b - a - 1);

if (IsExpr())

Console.WriteLine("Ошибка");

}

if (arrText[i][b + 1] != ';')

Console.WriteLine("Ошибка: не хватает ; после оператора while");

}

}

}

if (arrText[i].IndexOf("if") > -1)

{

if (arrText[i][arrText[i].IndexOf("if") + 2] == '(')

{

if (arrText[i].IndexOf(")") > -1)

{

a = arrText[i].IndexOf("(");

b = arrText[i].LastIndexOf(")");

if ((b - a) <= 1) Console.WriteLine("Ошибка: пустой оператор if");

else

{

pos = 0;

expr = arrText[i].Substring(a + 1, b - a - 1);

if (IsExpr())

Console.WriteLine("Ошибка");

}

if (arrText[i + 1].IndexOf("{") > -1)

{

for (int j = i; j < arrText.Count; j++)

{

if (arrText[j].IndexOf("else") > -1)

{

if (arrText[j - 1].IndexOf("}") == -1)

Console.WriteLine("Ошибка: отсутствует фигурная скобка после if");

else if (arrText[j-2].IndexOf(";") == -1)

Console.WriteLine("Ошибка: не хватает ; после if");

}

}

}

else Console.WriteLine("Ошибка: отсутствует фигурная скобка в начале if");

}

}

}

if (arrText[i].IndexOf("else") > -1)

{

if (arrText[i + 1].IndexOf("{") > -1)

{

for (int j = i; j < arrText.Count; j++)

{

if (arrText[j].IndexOf("}") != -1)

{

Console.WriteLine("Ошибка: отсутствует фигурная скобка после else");

if (arrText[j - 2].IndexOf(";") == -1)

Console.WriteLine("Ошибка: не хватает ; после else");

}

}

}

else Console.WriteLine("Ошибка: отсутствует фигурная скобка в начале else");

}

}

}

static public bool IsExpr()

{

if (IsOper(0)) pos++;

for (; ; pos++)

{

if (!IsAdd())

{

Console.WriteLine("Неверное слагаемое"); return false;

}

if (!IsOper(0)) return true;

}

}

static public bool IsAdd()

{

for (; ; pos++)

{

if (!IsMul())

{

Console.WriteLine("Неверный множитель"); return false;

}

if (!IsOper(1)) return true;

}

}

static public bool IsMul()

{

int tmp = pos;

if (IsID()) return true;

pos = tmp;

if (IsConst()) return true;

if (expr[pos] != '(') return false;

pos++;

if (!IsExpr())

{

Console.WriteLine("Неверное выражение"); return false;

}

if (expr[pos] != ')')

{

Console.WriteLine("Пропуск )"); return false;

}

return true;

}

static public bool IsID()

{

if (!IsAlpha()) return false;

for (; IsAlpha() || IsDigit(); pos++) ;

return true;

}

static public bool IsConst()

{

if (!IsDigit()) return false;

for (; IsDigit(); pos++) ;

return true;

}

static public bool IsAlpha()

{

if (pos >= expr.Length) return false;

if ((expr[pos] >= 'a' && expr[pos] <= 'z') || expr[pos] == '_') return true;

else return false;

}

static public bool IsDigit()

{

if (pos >= expr.Length) return false;

if (expr[pos] >= '0' && expr[pos] <= '9') return true;

else return false;

}

static public bool IsOper(int oper)

{

if (pos >= expr.Length) return false;

if (oper == 1)

{

if (expr[pos] == '*' || expr[pos] == '/' || expr[pos] == '%') return true;

else return false;

}

else

{

if (expr[pos] == '+' || expr[pos] == '-') return true;

else return false;

}

}

}

}

Размещено на Allbest.ru


Подобные документы

  • Разработка технологии обработки информации, структуры и формы представления данных. Проектирование программных модулей. Блок-схема алгоритма и исходный код программы анализа арифметического выражения, синтаксического анализа простой программы на языке С.

    курсовая работа [2,4 M], добавлен 12.12.2011

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

    курсовая работа [1,6 M], добавлен 22.06.2011

  • Синтаксический анализ простой программы на языке С. Предварительный выбор метода решения задачи. Разработка технологии обработки информации. Проектирование программных модулей. Процесс тестирования программы. Требования к программному обеспечению.

    курсовая работа [934,7 K], добавлен 01.07.2011

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

    курсовая работа [959,1 K], добавлен 12.12.2011

  • Рaзрaботка программного приложения (синтаксического aнaлизaторa), которое производит проверку синтaксисa простейшей программы на языке С++. Процедура проверки арифметических и логический выражений. Механизм удаления всех фиктивных переменных из программы.

    курсовая работа [27,2 K], добавлен 28.06.2011

  • Решение задач синтаксического анализа простой программы. Алгоритм нахождения синтаксических ошибок в ее тексте. Вывод данных о местоположении ошибки. Проектирование программы анализа арифметического выражения и методы проверки его на сумму или разность.

    курсовая работа [2,6 M], добавлен 01.07.2011

  • Методика и основные этапы создания программы, взаимодействующей с пользователем посредствам графического интерфейса и выполняющей помехоустойчивое кодирование информации, ее цели. Алгоритм работы программы, отладка и проверка ее работоспособности.

    курсовая работа [43,1 K], добавлен 12.05.2013

  • Проектирование вариантов использования приложения. Анализ существующей версии приложения. Обоснование выбора инструментальных программных средств. Проектирование интерфейса пользователя. Адаптация под мобильные устройства. Описание программного продукта.

    курсовая работа [2,8 M], добавлен 25.06.2017

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

    курсовая работа [460,1 K], добавлен 26.06.2015

  • Cоздание и описание логической модели автоматизированной системы обработки информации. Проектирование структуры системы в виде диаграмм UML. Анализ программных средств разработки программного обеспечения и интерфейса. Осуществление тестирования программы.

    дипломная работа [2,5 M], добавлен 25.01.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.