عرض مشاركة واحدة
منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 19-05-2010, 01:08 AM   #42

الكاتب

سبحان الله وبحمده

الصورة الرمزية الكاتب

 
تاريخ التسجيل: Mar 2008
التخصص: علوم الحاسبات
نوع الدراسة: إنتظام
المستوى: متخرج
الجنس: ذكر
المشاركات: 397
افتراضي رد: هنا تجمع طلاب وطالبات cpcs302 د.فادي فوز

المشاركة الأصلية كتبت بواسطة gadOoOrah مشاهدة المشاركة
شكرا لك اخوي الكاتب الدكتور فادي طالب مننا
An Infix to Postfix Translator
والاوراق اللي نزلتها في المكتبه ما كان من ضمنها فياليت لوكانت عندك تنزلها لنا ...
وجزيت خيرا ان شاء الله...

هلا أخوي gadOoOrah
العفو ماسوينا شئ
بالنسبة للأورااق اللي بالمكتبة كان من ضمنها المشروع تقريبا 4 أوراق بس موب مشكلة أنزله هنا
وهذا المشروع برنامج يقوم بتحويل جملة يدخلها المستخدم من infix إلى postfix


الكود

كود:
using System;
using System.Collections.Generic;
using System.Text;
namespace Postfix_Parser
{
classToken
{
publicstaticint code;
publicstaticstring attribute = "";
}
classParser
{
publicconstint id = 256;
publicconstint num = 257;
publicstaticstring input = "";
publicstaticstring p = "";
staticint x = 0;
publicToken NextTerminal()
{
char c;
Token token = newToken();
c = input[x];
if ((x + 1) < input.Length)
{
x++;
}
if (char.IsLetter(c) == true)
{
Token.attribute = c.ToString();
Token.code = id;
}
elseif (char.IsDigit(c) == true)
{
Token.attribute = c.ToString();
Token.code = num;
}
else
{
Token.code = (int)c;
}
return token;
}
publicvoid output()
{
p = "";
expr();
Console.WriteLine("The Postfix is : ");
Console.WriteLine(p);
Console.ReadLine();
}
publicvoid expr()
{
int lookahead = Token.code;
if (lookahead == id || lookahead == num || lookahead == (int)'-' || lookahead == (int)'(')
{
term();
edash();
}
else
{
Console.WriteLine("syntx error");
}
}
publicvoid edash()
{
int lookahead = Token.code;
switch (lookahead)
{
case (int)'+': match((int)'+');
term();
p += "+";
edash();
break;
case (int)'-': match((int)'-');
term();
p += "-";
edash();
break;
}
}
publicvoid term()
{
int lookahead = Token.code;
if (lookahead == id || lookahead == num || lookahead == (int)'-' || lookahead == (int)')')
{
factor();
tdash();
}
else
{
Console.WriteLine("syntx error");
}
}
publicvoid tdash()
{
int lookahead = Token.code;
switch (lookahead)
{
case (int)'*': match((int)'*');
factor();
p += "*";
tdash();
break;
case (int)'/': match((int)'/');
factor();
p += "/";
tdash();
break;
}
}
publicvoid factor()
{
int lookahead = Token.code;
string lex;
switch (lookahead)
{
case id: lex = Token.attribute;
match(id);
p += lex;
break;
case num: match(num);
p += Token.attribute;
break;
case'(': match((int)'(');
expr();
match((int)')');
break;
case'-': match((int)'-');
factor();
p += "-";
break;
default: Console.WriteLine("syntx error");
break;
}
}
publicvoid match(int t)
{
Parser parse = newParser();
if (Token.code == t)
{
parse.NextTerminal();
}
else
{
Console.WriteLine("syntx error");
}
}
staticvoid Main(string[] args)
{
Parser parse = newParser();
Console.WriteLine("Please Enter the Infix Translation :");
input = Console.ReadLine();
Console.WriteLine();
parse.NextTerminal();
parse.output();
}
}
}



output




بالتوفيق

 

توقيع الكاتب  

 



تسلم الأيـآدي على التوقيع الذووق *_^



اللهم إن كان رزقي في السماء فأنزله وإن كان في الأرض فأخرجه وإن كان بعيدا فقربه وإن كان قريبا فيسره وإن كان قليلا فكثره وإن كان كثيرا فبارك لي فيه اللهم اغنني بحَلالِك عن حرامك وبفضلك عمَّن سواك يا مقيل العثرات.. يا مبتدئا بالنعم قبل استحقاقها....

 

الكاتب غير متواجد حالياً   رد مع اقتباس