الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يتم تحويل الinfix الى Postfix ؟

مغلق
بدأه الفجر البعيد في 18 يناير 2008 · 4 رد · 952 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام لكيم ورحمة الله وبركاته

انا اشكر كادر هذا المنتدى وهذا الموقع

على العمل الثقافي موقع بالفعل راقي ورائع جدا جدا جدا

والاهم من ذلك انه موقع تعليمي ومفيد الى أبعد الحدود..........

وأذا ممكن محتاجه مساعده من اي شخص بهذا المنتدى

يعرف كيف يسوي برنامج تحويل ال infix الى الpostfix وذلك بلغة pascal

محتاجه هيكذ برنامج ضروري واريد ايضا اعرف كيف ممكن انا اسوي ايضا هيكذ برنامج

ولكم مني شكر الجزيل

سلامي.

تم تعديل هذه المشاركة بواسطة الفجر البعيد في 18 يناير 2008 في 21:34

#2

التحويل من infix notation الى Postfix notation سهل بس يحتاج شغل strings شوي ...بس الاهم هل مطلوب بعد البرنامج يسوي evaluates او لا ؟ اذا يحتاج ذلك فاهذا يحتاج شغل متعب شوي.

بعض الحكي يحق له يجرح الصمت..والبعض الآخر ما يبرر ظهوري

#3

تسلم يا أخ خالد عبد الكريم على هذا ردك بالفعل انا محتاجه له

والبرنامج لا يحتاج الى ل evaluates

وانا اعرف مبرمجه مبتدئه وحتاجه الى من يععلمني وكذلك محتاجه البرنامج

بضرورة

شكرا مرة ثانية يا أخ خالد

وأنتظر المساعده ....

تم تعديل هذه المشاركة بواسطة الفجر البعيد في 24 يناير 2008 في 18:34

#4

العفو اختي ...هذا هو البروسيجر اللي يقوم بالتحويل...

procedure TForm1.InfixToPrefix(S: string);
var sToken,sInput,sStack,stackS,xXpress,skStack,sResult: string;
     xI,IStack,iPos,IInput,StackIput,I: integer;
begin
     sToken := '#-+*/^abcdefghijklmnopqrstuvwxyz0123456789()';
     sInput := '03344599999999999999999999999999999999999992';
     sStack := '03344599999999999999999999999999999999999929';
     xI := 1 - 1;
     IStack := 1 - 1;
     iPos := -1;
     IInput := -1;
     StackIput := -1;
     I := 0;
     IStack := IStack + 1;
     stackS := '#';
     repeat
          xI := xI + 1;
          xXpress := Midstr(S, xI, 1);
          iPos := Pos(xXpress, sToken);
          if (iPos = 0) then
               begin
                  StatusBar1.SimpleText:=xXpress + ' not in Token ' + sToken;
                    Exit;
               end;
          IInput := StrToInt(Midstr(sInput, iPos, 1));
          skStack := Midstr(stackS, 1, 1);
          iPos := Pos(skStack, sToken);
          if iPos = 0 then
               begin
                    StatusBar1.SimpleText:=skStack + ' not found in Token ' + sToken;
                    Exit;
               end;
          StackIput := StrToInt(Midstr(sStack, iPos, 1));
          if IInput > StackIput then
               begin
                    stackS := xXpress + stackS;
               end
          else
               begin
                    repeat
                         skStack := Midstr(stackS, 1, 1);
                         if (skStack <> '(') and (skStack <> ')') then
                              begin
                                   sResult := sResult + skStack;
                              end;

                         stackS := Midstr(stackS, 2, Length(stackS) - 1);
                         skStack := Midstr(stackS, 1, 1);
                         iPos := Pos(skStack, sToken);
                         if iPos = 0 then
                              begin
                                   StatusBar1.SimpleText:=skStack + ' not found in Token ' + sToken;
                                   Exit
                              end;
                         StackIput := StrToInt(Midstr(sStack, iPos, 1));
                    until (IInput > StackIput);
                    stackS := xXpress + stackS;
               end;
     until xI >= Length(S);
     I := 1 - 1;
     repeat
          I := I + 1;
          skStack := Midstr(stackS, I, 1);
          if (skStack <> '#') and (skStack <> '(') and (skStack <> ')')
               then
               begin
                    sResult := sResult + skStack;
               end;
     until I >= Length(stackS);
     Edit2.Text:= sResult;
end;

في المرفقات ملف exe جاهز للتفيذ .

تحياتي

Project1.zip

تم تعديل هذه المشاركة بواسطة خالد عبدالكريم في 25 يناير 2008 في 02:15

بعض الحكي يحق له يجرح الصمت..والبعض الآخر ما يبرر ظهوري

#5

تعيش وتسلم يداك

على هذه المساعده أتمنى لك التوفيق

وشكرا

الفجر البعيد

هذا الموضوع مغلق.

مواضيع مشابهة