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

ارجو المساعده ولكم جزيل الشكر

مغلق
بدأه ميمي الفرحان في 11 ديسمبر 2006 · 17 رد · 1,182 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اشكر كل القائمين على هذا الموقع الرائع

واشكر كل عضو افادني بمواضيعه

انا عندي برنامج وعندي فيه اخطاء بس مني عارفه اصلحها لاني مو فاهمه هذي الاخطاء ايش تكون واول مرة تضهر لي

هذا البرنامج

_________________________________

#include<stdio.h>

#include<string.h>

#define STACKSIZE 5

void PUSH (struct *ps,int x);

int empty (struct stack *ps);

int POP (struct stack *ps);

int stacktop(struct stack *ps, int x);

struct stack

{

int top;

int items[sTACKSIZE];

};

main()

{

struct stack s;

int ch,x;

printf("/t /t Stack Lab /n");

printf("1:PUSH\n2:POP\n3:Display\n4:Quit\n");

printf("Please Enter your Choice:\t");

scanf("%d",&ch);

printf("\n");

do

{

switch(ch)

{

case 1:

{

PUSH(&s,x);

}

break;

case 2:

{

int x;

x=POP(&s);

}

break;

//case 3:

// {

// }

// break;

case 4:

printf("***Exit***\n");

break;

}

printf("****************************\n");

}

while(ch<5);

return 0;

}

void PUSH (struct *ps,int x)

{

if(ps->top==STACKSIZE-1)

{

printf("stack overflow");

}

else

ps->items[++(ps->top)]=x;

return ;

}

int POP(struct stack *ps)

{

if(empty(ps))

{

printf("stack underflow");

}

else

return (ps ->items[ps->top--]);

}

int empty (struct stack *ps)

{

if (ps->top==-1)

return true ;

else

return false;

}

int stacktop(struct stack *ps, int x)

{

if(empty(ps))

{

printf("stack underflow");

}

else

return (ps->items[ps->top]);

}

_____________________________________________

اتمنى تساعدوووني

وشاكرة لكم جدا

ميمي الفرحان

lab_stack.cpp

#2
 #include<stdio.h>
#include<string.h>
#define STACKSIZE 5
void PUSH (struct stack *ps,int x);
int empty (struct stack *ps);
int POP (struct stack *ps);
int stacktop(struct stack *ps, int x);



struct stack 
{
	int top;
	int items[STACKSIZE];
};



main()

{
	struct stack s;
	int ch,x;
	printf("/t /t Stack Lab /n");
	printf("1:PUSH\n2:POP\n3:Display\n4:Quit\n");
	printf("Please Enter your Choice:\t");
	scanf("%d",&ch);
	printf("\n");
	do
	{
		switch(ch)
			{
		case 1:
			{
				PUSH(&s,x);
			}
			break;
		case 2:
			{
				int x;
				x=POP(&s);
			}
			break;
		//case 3:
		//	{
		//	}
		//	break;
		case 4:
				printf("***Exit***\n");
			break;
		}
		printf("****************************\n");
	}
	while(ch<5);
	return 0;
}


void PUSH (struct stack *ps,int x)
{
	if(ps->top==STACKSIZE-1)
	{
		printf("stack overflow");
	}
	else 
		ps->items[++(ps->top)]=x;
	return;
}


int POP(struct stack *ps)
{
	if(empty(ps))
	{
		printf("stack underflow");
		return 0;
	}
	else
		return (ps ->items[ps->top--]);
}


int empty (struct stack *ps)
{
	if (ps->top==-1)
		return true;
	else
		return false;
}

int stacktop(struct stack *ps, int x)
{
	if(empty(ps))
	{
		printf("stack underflow");
		return -1;
	}
	else
		return (ps->items[ps->top]);
}

المشكلة كانت عندك بالبروتوتايب

void PUSH (struct *ps,int x);

ما حطيتي كلمة stack بعد struct

ركزي يعني واضح الخطأ

#3

السلام عليكم

شكرا لك اخي على التوضيح

ولي طلب تاني ادا ممكن

كيف اسوي امر الدسبلاي اقصد امر الطباعه ادا ممكن

وكمان بالبرنامج بيطلع لي وررننج انو المستخدم مابيدخل عناصر لمن يسوي البوب

كيف اعملها؟؟؟

ادا ممكن تشوف الرن وتقلي ايش يطلع معاك وتفهني هوا بلييييييييييييييييز

وشكرا مليوووووووووووووووون مرة لك

#4

امر الديسبلاي عندك بسيط!!!

انت معرفه Array داخل الستركت عادي خشي عليه تلقائي وسوي print يعني ما اشوف فيه فكره صعبه هنا

كود ما راح اكتبه اخليه لك

المشكلة بالـويرنينقز هو عندك قيمة اكس اصلا خرابيط يعني ماخذه قاربج فاليو يعني انت ما قريتي الرقم x

يعني عند case 1

تقدرين تقولين scanf عادي واقري الرقم x وسوي له PUSH

بس :)

بالتوفيق

#5

السلام عليكم

شكرا لمساعدتك بس والله تحرقني ايش اللي مابتكتبلي هيا

والله ماعرفت اعملها والمدرسه حقنا ماتعطي شي والله حاله من جد والتسليم يوم الاحد الجاي :(

انا مني عارفه كيف اعبي البوب وكيف اكتب فنجشن الدسبلاي

يله اكتبلي الفنجشن بلييييييييييييييييز والله ماعرفت اعملها

هادا وانا بديك برنامج الكيويو تساعدني فيه

:(

#6

السلام عليكم

هادي اخر تعديلات عملتها على البرنامج :)

____________________________________

#include<stdio.h>

#include<string.h>

#define STACKSIZE 5

void PUSH (struct stack *ps,int x);

int empty (struct stack *ps);

int POP (struct stack *ps);

int manue (int ch);

void Display(struct stack *ps);

int ch,x,m;

struct stack

{

int top;

int items[sTACKSIZE];

};

main()

{

struct stack s;

printf("\n\t\t Stack Lab ");

printf("\n\t\tmeesa farhan\n\n");

do

{

ch=manue(ch);

switch(ch)

{

case 1:

{

printf("Enter num: ");

scanf("%d",&m);

PUSH(&s,x);

}

break;

case 2:

{

int x;

x=POP(&s);

}

break;

//case 3:

// {

// Display(&s);

// }

// break;

case 4:

printf("***Exit***\n");

break;

}

printf("****************************\n");

}

while(ch<5);

return 0;

}

int manue (int ch)

{

printf("\n1:PUSH\n2:POP\n3:Display\n4:Quit\n");

printf("Please Enter your Choice:\t");

scanf("%d",&ch);

printf("\n");

return (ch);

}

void PUSH (struct stack *ps,int x)

{

if(ps->top==STACKSIZE-1)

{

printf("stack overflow");

}

else

ps->items[++(ps->top)]=x;

return ;

}

int POP(struct stack *ps)

{

if(empty(ps))

{

printf("stack underflow");

}

else

return (ps ->items[ps->top--]);

}

int empty (struct stack *ps)

{

if (ps->top==-1)

return true ;

else

return false;

}

//void Display(struct stack *ps)

//{

// for(i=0;i<n;i++)

// {

// printf("");

// }

//}

_________________________________________

وانت عليك الباقي :^)

لاني مو عارفه اكمل وباقي كمان لاب الكيويو تلاقيه في المرفقات بس شيك عليه وقلي ايش الاخطاء :)

lab_stack.cpp

lab_queue.cpp

#7

ممكن تشغلين مخك شوي ؟؟

s.items

فكري فيها هذي شلون تسوي print لمصفوفة؟؟؟؟؟؟؟

تم تعديل هذه المشاركة بواسطة NullFlag في 13 ديسمبر 2006 في 17:21

#8

شغلت مخي في اللي قببله وقفلت معايا في البرنت

انا اعرف انو في برنت المصفوفات لازم نحط عداد (فور) بس في شرط لازم يوقفه انا ماني عارفه كيف اعمله

حتى في لاب الكيويو الشرط اللي يساوي السايز حق المصفوفه ب العداد نصفرهم كيف اعمله

:)

ممكن توريني شطارتك وتديني هيا

والله عاجبك حالي وانا اكتب بليييييييييييييييييييييييييييييييز -_-

:) حلها وبدعييلك من قلبي

ويعطيك العافيه على مجهودك والله

#9

خخخخخخخخخخخخخخخخخخخخخخخ

اذا على الشرط احلف انك ما شغلتي مخك ابد :rolleyes:

for(int i =0; i<STACKSIZE;i++)
printf("[%d] %d",i,s.items);
#10

بعض الأخطاء:

				printf("Enter num: ");
				scanf("%d",&m);
				PUSH(&s,x);

كيف تقرئين المتغير m و ترسلين المتغير x .. ما هي قيمة x في هذه الحاله؟

void PUSH (struct stack *ps,int x)
{
	if(ps->top==STACKSIZE-1)
	{
		printf("stack overflow");
	}
	else 
		ps->items[++(ps->top)]=x;
	return;

ما قيمة ps->top في أول مره ينفذ البرنامج؟ هل هي قيمة عشوائيه؟ ان لم تحددي القيمه البرنامج سيعطيه قيمة افتراضيه ربما تكون 88483273772

لم أتطرق الى باقي الأخطاء .. شكرا

#11

طيب ممكن لو سمحتوا احد يعيد لي شرح ال stack و ال queue

بليييييييييييييز عشان اقدر اسلم البرنامج يوم الاحد

ومشكورين مقدما :^)

#12
ميمي الفرحان كتب:
طيب ممكن لو سمحتوا احد يعيد لي شرح ال stack و ال queue

بليييييييييييييز عشان اقدر اسلم البرنامج يوم الاحد

ومشكورين مقدما :^)

ممكن تشوفي هذا الكتاب في الـ data structure باللغه العربيه

و ان شالله تستفيدي :rolleyes:

رابط التحميل

Success Is A Journey Not A Destination

#13

طيب ممكن تشوفولي شرط الدسبلاي لي لاب ال stack

هادا

void Display(struct stack*ps)
{
	for(int i=5;i>=0;i--)
		printf("%d",ps->items);
}

المدرسه قالتلي ابدء العداد i من اخر عنصر انحط بالسايز

لان زي ماحطنا العناصر لازم نشيله من فوق مو نبدء العداد من صفر

دحين لخبطتوني

مشكوووووووووووووووور على الملف وجاري دراسته بقللللللللللللللللللللللب

#14
void Display(struct stack*ps)
{
	for(int i=STACKSIZE-1;i>=0;i--)
		printf("%d",ps->items);
}

المشكلة الجواب في كلامك :blink:

#15

نل لاتجنني والله هادا اللي طلع معايا

ياهوووو بكرة لازم اسلم قولي وين الصح

والله خلاص قفلت معايا من جد

من الصبح افحط فيها وماطلع معايا شي

حلووووووووووووووووووووني

بليييييييييييييييييييييييييييييييييييز :(

نل ممكن لو تكرمت تقلي كيف اقدر احل البرنامج بدون ارورات ولك كل الشكر

#16

شكرا خلاص راح اليوم

بس ادوني الاجابه دحين عشان استفيد اقل شي :(

#17

قد أشرت في مداخلتي السابقه بالاهتمام ببعض الأخطاء .. هذا برنامج فيه تصحيح للأخطاء

#include<stdio.h>
#include<string.h>
#define STACKSIZE 5

void PUSH (struct stack *ps,int x);
int empty (struct stack *ps);
int POP (struct stack *ps);
int manue (int ch);
void Display(struct stack *ps);
int ch,x,m;
struct stack 
{
int top;
int items[STACKSIZE];
};



main()
{
struct stack s;
 s.top = -1;

printf("\n\t\t Stack Lab ");
printf("\n\t\tmeesa farhan\n\n");

do
{
ch=manue(ch);
switch(ch)
{
case 1:
{
printf("Enter num: ");
scanf("%d",&m);
PUSH(&s,m);
}
break;
case 2:
{
int x;
x=POP(&s);
 printf("%d\n",x);
}
break;

case 3:
{
Display(&s);
}
break;

case 4:
printf("***Exit***\n");
break;
}
printf("****************************\n");
}
while(ch<5);
return 0;
}

int manue (int ch)
{
printf("\n1:PUSH\n2:POP\n3:Display\n4:Quit\n");
printf("Please Enter your Choice:\t");
scanf("%d",&ch);
printf("\n");
return (ch);
}


void PUSH (struct stack *ps,int x)
{
if(ps->top==STACKSIZE-1)
{
printf("stack overflow\n");
}
else 
{
ps->items[++(ps->top)]=x;
printf("ps->items[%d] = %d\n",ps->top,ps->items[ps->top]);
}
return;
}


int POP(struct stack *ps)
{
if(empty(ps))
{
printf("stack underflow\n");
}
else
return (ps ->items[ps->top--]);
}


int empty (struct stack *ps)
{
if (ps->top==-1)
return true;
else
return false;
}

void Display(struct stack*ps)
{
	for(int i=ps->top;i>=0;i--)
		printf("%d ",ps->items);
	printf("\n");
}

البرنامج ربما لا يكون كاملا (perfect) و لكنه يفي بالغرض

تم تعديل هذه المشاركة بواسطة Yousof في 17 ديسمبر 2006 في 14:47

#18

شكرا يوسف :) يعطيك العافيه

استفدت كتير

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

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

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

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

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

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