Автор: Пользователь скрыл имя, 08 Декабря 2011 в 17:58, курсовая работа
«С  – удобный, выразительный и гибкий язык, пригодный для программирования широкого класса задач», – таково мнение создателей С Брайана Кернигана и Дениса Ритчи. Язык С приобрел широкую известность как язык разработки операционной системы UNIX. Сегодня многие операционные системы написаны на С++.
   С++ – это язык, расширяющий возможности  С. Его разработал Бьерн Страуструп. Название С++ предложил Рик Массити. Оно указывает на эволюционную природу перехода к нему от С, так как «++» – это операция приращения в С.
Введение. 4
Математическая формулировка задачи. 6
Описание программы…………………………………………………………………………………..7
Руководство пользователя 8
Выводы (заключение). 10
Список использованной литературы. 11
Приложение 1 (текст программы). 12
                              
}
                  else if(step==1&&(str[i]=='-'||str[
{
                              
                              
                              
                              
                              
                              
if(((str[j]=='*'||str[j]=='/'|
                              
                              
                              
                              
                              
                              
                              
                              
                              
if(((str[j]=='*'||str[j]=='/'|
                              
                              
                              
                              
                              
                        } 
}
for (int i=0, balance=0; i<len-2; i++) //удаляем лишние скобки (сначала ищем)
{
if (str[i]=='(') //если открылась
{
int j;
for (j=i; j<len; j++) //то смотрим, что внутри неё
{
                              
                              
                              
                              
                              
                              
                              
                              
}
if (empty) //если лишние
                              
}
                  empty=true; 
}
}
void _input(int x, int y) //вставляем скобки
{
int right;
for (right=len+1; right>y; right--) //двигаем строку вправо с позиции y на 1 символ
            str[right]=str[
      str[y+1]=')';    //
++len; //увеличиваем длину
for (right=len+1; right>x; right--) //то же
            str[right]=str[
str[x]='('; //с позиции x
++len;
} 
void _delete(int x, int y)
{
int left;
for (left=x; left<y-1; left++) //надвигаем правую часть строки на вторую скобку
            str[left]=str[
--len;
for (; left<len; left++) //затем ещё раз на первую скобку
            str[left]=str[
--len; //получается удаление
} 
void do_it()
{
int tmp=0;
for (int i=0, tmp=0; i<len; i++) //ставим приоритеты в вспомогательном символьном массиве
if (str[i]=='(')
                  sign[i]=++
            else if 
(str[i]==')'||str[i]=='+'||
                  sign[i]=--
else if (isdigit(str[i]))
{
                  sign[i]=++
if (isdigit(str[i+1]))
{
for (++i; isdigit(str[i]);i++)
                              
--i;
}
}
for (int i=0; i<len; i++) //показываем, что //получилось
                              
                              
while (no_bracket()) //пока в выражении есть скобки
            get_answer(place_
} 
int place_with_max() //получаем
{ //индекс
int index=0; //элемента
for (int i=0; i<len; i++) //строки
if (sign[i]>sign[index]) //с
                  index=i;   /
return index; //приоритетом
} 
void get_answer(int pos) //вычисление результата операции с двумя операндами
{
char c;
int i=pos, left=1, right=1;
int x=atoi(str+pos),y; //читаем первый операнд
for (; i<len&&sign[i]==sign[i+1]; i++) //перематываем индекс на конец операнда
            ++left;    //
      c=str[++i];             
y=(atoi(str+i+1)); //читаем второй операнд
for (++i; i<len&&sign[i]==sign[i+1]; i++) //перематываем индекс
++right; //считаем длину правого операнда
switch (c)
{
Информация о работе Разбор строкового выражения. Алгоритм Рутисхаузера