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

برنامج سي بلس بلس

بدأه miss beeshoo في 11 نوفمبر 2011 · 2 رد · 1,041 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا عندي برنامج ولازم اسويه حاولت احله حليت الجزء الاول منه الباقي ماقدرت احله لاننا لسا ماتمكنت من اللغه

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

السؤال:

اكتبي برنامج بلغة c++ يحتوي على:

1- متغير عام s لادخال مصفوفه حرفيه

2- داله comp من نوع boolean للتحقق من ان العباره المدخله في s تقرا طردا وعكسا بمعنى هل العبارة تقرا من اليمين مثل اليسار (كانها امام مراه)ز

3-يتفرع من stringo طبقه stringl تحتوي على الداله lengtho لحساب طول السلسله s(بدون المراه) اي اذا ادخل السلسه helloolleh تطبع عدد الاحرف الاصليه 5 احرف

اذا كان ناتج comp هو true غير ذلك لاتطبع شيءز

4-في الداله الرئيسيه استدعي الداله comp,lengtho عند ادخال سلسله تجعل comp بــ true وسلسله اخرى تجعل comp بــ false.

حليت البدايه كذا

#include<iostream.h>

class stringo

}

public:

char s;

والباقي ماعرفته وياليت تساعدوني ضروري

#2

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

اتمنى ان يكون هذا الحل يعجبك

#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--;
     }
  }
#3

الحل مطلوب باستخدام الوراثه والــ classes وليست بهذه الطريقه

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