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

وين الخطأ في الخوارزميه هذي

بدأه ابـــورمـــش في 5 يناير 2009 · 9 رد · 743 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كيف حالكم ان شاء الله بخير

معي خوارزميـه ولاقدرت اشغلها على الكومبايلرر وابي مساعدتكم كيف اشغلها

#include<iostream.h>
 int lookahead;

 main()
 {
 	lookahead = getchar();
 	expr();
 	putchar('\n');
 }
 expr()
 {
 	term();
 	while(1)
 		if (lookahead == '+'){
 			match('+'); term(); putchar('+');
 		}
 		else if (lookahead == '-'); {
 			match('-'); term(); putchar('-');
 		}
 		else break;
 }
 term()
 {
 	if(isdigit(lookahead)) {
 		putchar(lookahead);
 		match(lookahead);
 	}
 	else error();
 }
 match(t)
 int t;
 {
 	if(lookahead == t)
 		lookahead = getchar();
 	else error();
 }
 error()
 {
 	printf("syntax error\n"); 
 	exit(1);
 }
#2

اخي العزيز إذا عندك خوارزميه فمعناها

احد الامرين

اما خوارزميه مرسومه وهي معروفه وهي تقوم بتحديد كيفية العمل ولها اساليبها وطرقها

او خوارزميه نصيه ليست باي لغه برمجيه وهي اقرب ما تكون لشرح العمل ولكن باسلوب يحاكي البرمجه

اما ما وضعته فهو كود برمجي مكتوب بلغة السي وهو معد لغرض ما

لذلك لدي سؤال ( بعد اذنك )

من اين حصلت على هذا الكود ؟

ودمتم.

متغيب

#3

الكود بعد التعديل ، لكن لى طلب صغير ، ممكن شرح للخوارزمية حتى نستطيع المساعدة فى الكود نفسه و ليس تصحيحه كما يقول المترجم :)

#include<iostream.h>
int lookahead;
void expr();
void match(int t);
void term();
void error();
main()
{
	lookahead = getchar();
	expr();
	putchar('\n');
}
void expr()
{
	term();
	while(1)
		if (lookahead == '+'){
			match('+'); term(); putchar('+');
		}
		else if (lookahead == '-') {
			match('-'); term(); putchar('-');
		}
		else break;
}
void term()
{
	if(isdigit(lookahead)) {
		putchar(lookahead);
		match(lookahead);
	}
	else error();
}
void match(int t)
{
	if(lookahead == t)
		lookahead = getchar();
	else error();
}
void error()
{
	printf("syntax error\n");
	exit(1);
}
#4

مشكورين على ردودكم

الخوارزميـه تقوم بالترجمه من انفكس لـ بوست فكس

translate an infix expression into postfix

طبعا الخوارزميـه هذي حصلت عليها من كتاب لتصميم المترجمات

والخوارزميه هذي اصلا هي مثال لكيفيه عمل المترجمات مثل مترجم c++

#5

يعطيك العافيه على توضيح

لانها بصراحه ذكرتني بمادة الكومبايلير ايام الجامعه

وإذا عندك اسم الكتاب يا ليت لو تحطه لانه فيه مفاهيم حلوه

ودمتم

متغيب

#6

ابـشر ان شاء الله بجيب اسم الكتاب

بس الحين محتاج احد يساعدنا بتشغيل الخوارزميـه على السي

#7

الكود اللي موجود برد الاخ عمر يشتغل على اي مترجم للسي

وعذرا لان طلبك غير واضح

يعني ما المقصود بتشغيل الخوارزميه على السي

متغيب

#8

جربت الكود وماشتغل معي على السي \ السي مقصود فيها كومبايلر السي بلس بلس c++

جربـه انت وعطني خبر

#9

لماذا لم يعمل معك؟؟

يظهر لك خطأ في النتائج ام البرنامج لا يتنفذ في الاساس؟؟

اي مترجم تستخدم؟

انا نفذت البرنامج ،، فقط ينقصه هذه الاسطر في اعلى الكود

#include<stdio.h>
#include<ctype.h>
#include<process.h>

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#10
الاخير زمانه كتب:
لماذا لم يعمل معك؟؟

يظهر لك خطأ في النتائج ام البرنامج لا يتنفذ في الاساس؟؟

اي مترجم تستخدم؟

انا نفذت البرنامج ،، فقط ينقصه هذه الاسطر في اعلى الكود

#include<stdio.h>
#include<ctype.h>
#include<process.h>

أخى زيد ، عندما جربت الكود ، كان يعمل دون اضافة هذه الأسطر !!!

ما السبب ؟

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…