Delsquad
1

Из инфиксной в префиксную

09.02.2010, 20:11. Показов 1281. Ответов 0
Метки нет (Все метки)

Ребят, всем привет!
Есть программка на паскале, преобразует строку из инфиксной записи в префиксную.
Помогите, пожалуйста переписать ее на VSC++
У самого опыт общения с Си очень малый, а сдавать совсем скоро..

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
uses crt;
var
   v,pr:string[30];
   a:integer;
     function search_min_skob(a:string):string; {poisk minimalnih skobok}
              var i1,i2,i11:integer;
                  b:string;
              begin
                   i1:=pos('(',a);              {ishem otkrivayushuyu skobku}
                   if i1<>0 then                {esli nashli}
                   begin
                        i2:=pos(')',a);         {ishem zakrivayushuyu skobku}
                        if i2=0 then            {esli ee net}
                        begin
                             write('Oshibka virageniya!');
                             readkey;           {soobsheie ob oshibke}
                             halt;              {zavershenie programmi}
                        end                     {obe skobki est}
                        else
                        begin
 
                             b:=a;
                             repeat             {proveryaem na samoe vlogennoe}
                                   delete(b,i1,1);
                                   i11:=pos('(',b);
                                   if (i2-i11>0)and(i11<>0) then i1:=i11+1;
                             until i2-i1>0;
                             search_min_skob:=copy(a,i1,i2-i1+1);{fiksiruem rezultat}
 
                        end;
                   end                          {skobok net}
                   else search_min_skob:=a;     {iskomoe viragenie sodergit vse ishodnoe}
              end;
     function prefiks(a:string):string;         {preobrazovanie v prefiksnuyu formu}
              var n,i,j:integer;
                  m:char;
              begin
                   if a[1]='('then delete(a,1,1);
                   n:=length(a);
                   if a[n]=')'then delete(a,n,1);
                   n:=length(a);                {opredelyaem dlinu stroki}
                   for i:=1 to n do             {smotrim sodergimoe ot skobki do skobki}
                       begin
                            if (a[i]='+') or (a[i]='-') or (a[i]='*') or (a[i]='/')then
                               begin            {esli nayden znak}
                                    m:=a[i];    {zapominaem ego}
                                    for j:=i-1 downto 1 do
                                        a[j+1]:=a[j];
                                    a[1]:=m;    {stavim ego vpered}
                               end;
                       end;
                   prefiks:=a;
              end;
     function ending(a:string):string;          {funkciya okonchatelnogo sbora}
              var b:string;
                  n,k:integer;
              begin
                   repeat
                        b:=search_min_skob(a);
                        writeln(b);
                        k:=pos(b,a);
                        n:=length(b);
                        delete(a,k,n);
                        b:=prefiks(b);
                        insert(b,a,k);
                        n:=pos('(',a);
                        writeln(a);
                   until n=0;
                   ending:=a;
              end;
begin
     clrscr;
     v:='((a+b)+c*(d+e)+f)*(e+h)';
     writeln('infiksnaya forma: ',v);
     pr:=ending(v);
     writeln('prefiksnaya forma: ',pr);
     readkey;
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2010, 20:11
Ответы с готовыми решениями:

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

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

Перевести выражение из инфиксной записи в префиксную
Нужно перевести арифметическое выражение в инфиксной записи в префиксную.

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2010, 20:11

Преобразовать формулу из инфиксной формы записи в префиксную
Преобразовать формулу из инфиксной формы записи в префиксную на С++. Возможные символы (ABCD+*-!)....

Преобразование инфиксной записи арифметического выражения в префиксную
Доброго времени суток, ребята! Помогите с решением ЛР. Нужно используя только примитивы Lisp...

Необходимо преобразовать формулу из инфиксной формы в префиксную
Помогите пожалуйста на C++ реализовать алгоритм перехода от инфиксной формы записи к префиксной

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru