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

برنامج ..ارجو المساعدة من محترفي سي بلس بلس

بدأه aegr في 6 نوفمبر 2011 · 2 رد · 623 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

البرنامج

أكتب برنامج بلغة سي بلس بلس

يحتوي على

طبقة stringo تحنوي على متغير عام s لادخال سلسلة حرفية

دالة comp من النوع boolean تتحقق من ان النص المدخل في s تقرا طردا وعكسا اي ان العبارة تقرا من اليمين مثل اليسار

يتفرع من stringo طبقة stringl تحتوي على دالة lengthl لحساب طول السلسلة s اي اذا ادخل المستخدم السلسلةhelloolleh يطبع العدد الأصلي للسلسلة 5حروف فقط وذلك في حالة كون ناتج الدالة comp هو true

وغير ذلك لا تطبع شيء

في الدالة الرئيسية استدعي الدالة comp,lengtho وعند ادخال سلسلة تجعل comp بـtrue وعند ادخال سلسلة اخري تجعل comp بـfalse

جزاكم الله خير

تم تعديل هذه المشاركة بواسطة aegr في 6 نوفمبر 2011 في 11:08

−1
#2

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

حياك الله اخي

وكل عام وانت بالف خير

تفضل حليتلكياه بأستخدام الــstack ان شاء الله ينفعك بالتوفيق


#include<iostream.h>
#include<stdio.h>
#include<string.h>
#define n 20
void push(char stack[n],int &top,char x);
void pop(char stack[n],int &top,char &x);
main()
{
int top1=-1,top2=-1,t=0,f,m;
char s[n],st1[n],st2[n],w;
cout<<"enter your sentence: \n";
gets(s); // space لا تقرا الفراغ cin>> لأن
for(int i=0;i<strlen(s);i++)
{
if(s!=' ')
{
if((s>='A')&&(s<='Z')) //أذا كان الحرف كبير يحوله إلى صغير
s=s+32;
push(st1,top1,s);
}
}
m=(top1)/2; // هنا لتمييز نصف عدد الأحرف ( عدد الأحرف الموجودة في المكدس قسمة 2 )
if((top1+1)%2!=0) t=1; //أذا كان عدد أحرف الكلمة فردي
while(top1>m)
{
pop(st1,top1,w);
push(st2,top2,w);
}
if(t==1) //أذا كان عدد أحرف الكلمة فردي فقط أحذف الحرف الوسط ليصبح عدد الأحرف زوجي
pop(st1,top1,w);
while(top1>-1)
{
if(st1[top1]!=st2[top2])
f=1; // يصبح 1 أذا كان الحرف الموجود في المكدس الأول لا يساوي الحرف الموجود في المكدس الثاني f
pop(st1,top1,w);
pop(st2,top2,w);
}
if(f==1)
cout<<"\n not read from two side(False)"<<"\n";
else
cout<<"It is read from two side(True)\n"<<"The Length Of String Is= "<<strlen(s)<<"\n";
}


void push(char stack[n],int &top,char x)
{
if(top==n-1) cout<<"stack over fllow";
else
{
top++;
stack[top]=x;
}
}
void pop(char stack[n],int &top,char &x)
{
if(top==-1) cout<<"stack under fllow";
else
{
x=stack[top];
top--;
}
}

1
#3

الله يعطيك الف عافية

لكن انا مو فاهم ايش هو stack

انا ابغى الحل باستخدام class,function

وكذلك الوراثة

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