IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Алгоритм вычисления выражений в постфиксной форме, Си
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 151
Пол: Мужской
Реальное имя: иван

Репутация: -  0  +


Может кнонибудь подсказать алгоритм вычисления выражения(из строки) записанного в постфиксной форме.
Для выражений в инфиксной форме я знаю алгоритм а вот для постфиксной чето никак не соображу wacko.gif .
Напишите просто на словах что запихиваем в стек что и когда вынимаем и тд...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 151
Пол: Мужской
Реальное имя: иван

Репутация: -  0  +


Рабочий алгоритм перевода из инфиксной формы в постфиксную(Может комуто понадобится).

#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
#define Len 2056
#define NAME 5
#define COM 4
#define MCOM 8



char per[Len]="(a+b)*(c-d)/(e*(q-w))",*pe=per,*pe2=pe,c;


char Stack[Len],*ST=Stack;

int i=0,k=0,m;


int precedence(char symb)
{
switch(symb)
{
case ')':return -1;
case '(':return 0;
case '+':return 1;
case '-':return 1;
case '*':return 2;
case '/':return 2;
//default : return -1;
}
}


int main()
{

*ST='(';
while(*pe)
{
if (isalpha(*pe))printf("%c",*pe);
else
if(*pe=='(')*++ST=*pe;
else
if(*pe==')')
{
while((c=*ST)!='('){ printf("%c",c);ST--;}
--ST;
}
else
if(*pe=='+'||*pe=='-'||*pe=='*'||*pe=='/')
{
while(precedence(*ST)>precedence(*pe)||precedence(*ST)==precedence(*pe))
{
printf("%c",*ST);
ST--;
}
*++ST=*pe;
}

pe++;
if(*pe==0)while(*ST!='(')printf("%c",*ST--);
}




return 0;
}




 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
blackhard   Алгоритм вычисления выражений в постфиксной форме   23.04.2008 22:00
volvo   RE: Алгоритм вычисления выражений в постфиксной форме   23.04.2008 22:11
blackhard   Блин я вдруг понял что мнеб и для инфиксной формы …   23.04.2008 22:45
blackhard   Ну ктонибудь помогите пожалуйста!!!…   24.04.2008 0:41
blackhard   Вобщем я сделал так сначало превожу выражения из и…   24.04.2008 19:19
blackhard   Помогите исправить код. Написал алгоритм для перев…   25.04.2008 0:34
volvo   Значит, не все... Вот тут лежит рабочая программа…   25.04.2008 2:07
blackhard   Значит, не все... Вот тут лежит рабочая программ…   25.04.2008 2:44
volvo   Именно так, если текущий знак - "+", то …   25.04.2008 3:11
blackhard   Именно так, если текущий знак - "+", то…   25.04.2008 3:19
blackhard   Рабочий алгоритм перевода из инфиксной формы в пос…   29.04.2008 22:46
blackhard   Теперь точно рабочий #include<stdio.h> #inc…   1.05.2008 4:39
volvo   С каких пор программа, не проходящая компиляцию (G…   30.04.2008 0:11
volvo   По ссылке, которую я тебе давал, есть алгоритм пер…   1.05.2008 6:28
blackhard   Блин чето запутался.Если у меня массив строк и ука…   1.05.2008 14:32
volvo   Ну, пока у тебя не массив строк, а массив указател…   1.05.2008 15:03
Сережа   Ребят а напишите этот алгоритм на паскале пжлст   11.02.2014 7:16
nishaknapp   Why not settling on games that is fun and at the s…   29.07.2022 18:43


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 15:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name