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

سؤال مهم اذا ممكن؟؟

بدأه Palestine55 في 11 فبراير 2009 · 5 رد · 1,458 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

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

انا ماعرفت اطلع مشاركتي لحتى اشوف ردكم اذا في الامكان توضحولي الموضوع اللي حكيتوو عالـstack , Queue في الـ datastructur عالـ VC++ بس بجد احب اعرف الحل منكم لانوو بجد طريقتكم واضحة ومفهومة في الشرح فالموضوع هو :blush:

عن كيف ادخل نص string واستطيع قرائته من اليسار لليمين وبالعكس اللي هو الـ Palindrom والمطلوب هو استخدام الـstack و Queue بواسطة عمليه الاضافة عليهم انا بقدر اقرا النص عادي وبالعكس بقدر اقراه بواسطة الحذف (هيك بعتقد انا :blush: ) والمطلوب في البرنامج من الاخر عشان مااخليكم تحسوا بالملل هو :blush:

Write aprogram to read astring and check its compatibility with palindrom rules

وياخد احرف lowercase &Uppercase متل بعض يعتبرهم ومايعمل حساب للمسافات ويكون الـoutput كالاني:

MAIN MENU

1- NEW STRING

2-PRINT FORWARD

3-PRINT BACKWARD

4-TEST A PALINDROME

5- EXIT

ياااااااااااااااارب تلاقوا حلوا :S يااااااارب لانوا بجد حيرني :S

مشكوووووووورين ماقصرتم وماتقصرون ان شاء الله :happy:

عساااااااكم عالقوة :happy:

داااامت ايامكم بالخير والبركة :lol:

ودامت طلاتكم المفيدة :lol:

#2

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

لكن قم بطرح محاولاتك لحل السؤال قبل ان اعتبره مخالف لـ ضوابط الكتابة بالمنتدى ..

شكرا لك .

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#3

السلام عليكم ,,

في الحقيقة يمكنك كتبت موضوعاُ منذ زمن عن الـ Palindrome

خوارزمية Palindrome كلمة كلمة ,,, حمل المثال ,, تم استخدام Queue و Stack من STL

لاحظي أن الموضوع يتكلم عن Palindrome الكلمات و ليس الحروف, لذلك فهو أعقد قليلاً. قمت بتعديل الكود لكي يقوم باكتشاف Palindrome الحروف... عبارة عن دالة تسمى IsPal...

عموماً أعلم أنك صممتي Stack و Queue لهذا المهمة, كل ما عليك فعله في هذا الكود هو استبدال الـ Stack و الـ Queue الخاصة بـ STL و استعمال اللتان قمتي بتصميمها...

و رجاءً كما قال لك الأخوة المشرفون في المنتدى ضعي محاولتك أولاً..

[color= #0000ff;]bool IsPal[color= #000000;]( std[color= #000000;]::[color= #808000;]string Str [color= #000000;])[color= #000000;]{

 

    std[color= #000000;]::[color= #808000;]queue [color= #000000;]<[color= #0000ff;]char[color= #000000;]> PalQ;

    std[color= #000000;]::[color= #808000;]stack [color= #000000;]<[color= #0000ff;]char[color= #000000;]> PalS;

 

    [color= #0000ff;]for [color= #000000;]( [color= #0000ff;]unsigned [color= #0000ff;]int I [color= #000000;]= [color= #ff0000;]0; I [color= #000000;]< Str.[color= #808000;]length[color= #000000;]([color= #000000;]); I[color= #000000;]++ [color= #000000;])[color= #000000;]{

 

		[color= #0000ff;]if[color= #000000;]( isalpha[color= #000000;]( Str[color= #000000;][ I [color= #000000;]] [color= #000000;]) [color= #000000;]&& isupper[color= #000000;]( Str[color= #000000;][ I [color= #000000;]]  [color= #000000;]) [color= #000000;])[color= #000000;]{ [color= #007f00;]// HERE ARE YOUR RULES.. 

 

			Str[color= #000000;][ I [color= #000000;]] [color= #000000;]= tolower [color= #000000;]( Str[color= #000000;][ I [color= #000000;]] [color= #000000;]);

			PalQ.[color= #808000;]push[color= #000000;]( Str[color= #000000;][ I [color= #000000;]] [color= #000000;]);

			PalS.[color= #808000;]push[color= #000000;]( Str[color= #000000;][ I [color= #000000;]] [color= #000000;]);

		[color= #000000;]}

 

		[color= #0000ff;]else

			[color= #0000ff;]if[color= #000000;]( isalpha[color= #000000;]( Str[color= #000000;][ I [color= #000000;]] [color= #000000;]) [color= #000000;])[color= #000000;]{

 

				PalQ.[color= #808000;]push[color= #000000;]( Str[color= #000000;][ I [color= #000000;]] [color= #000000;]);

				PalS.[color= #808000;]push[color= #000000;]( Str[color= #000000;][ I [color= #000000;]] [color= #000000;]);

			[color= #000000;]}

    [color= #000000;]}

 

	[color= #0000ff;]while[color= #000000;]( [color= #000000;]!PalQ.[color= #808000;]empty[color= #000000;]([color= #000000;]) [color= #000000;])[color= #000000;]{

 

		[color= #0000ff;]if[color= #000000;]( PalQ.[color= #808000;]front[color= #000000;]([color= #000000;]) [color= #000000;]![color= #000000;]= PalS.[color= #808000;]top[color= #000000;]([color= #000000;]) [color= #000000;])

			[color= #0000ff;]return false;

		PalQ.[color= #808000;]pop[color= #000000;]([color= #000000;]);

		PalS.[color= #808000;]pop[color= #000000;]([color= #000000;]);

	[color= #000000;]}

 

    [color= #0000ff;]return true;

[color= #000000;]}
#4

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

موضوع يكفيه فخرا انه يوجد به اخي خالد وtime

الاخت عائشه ارجوا ان لا تكوني انت سببا في اغلاق هذا الموضوع اتمنى ثم ارجوا ان تراجعي ضوابط الكتابه

لكم مني خالص التقدير

*********************

دروس الاكسس

قاعدة بيانات بالسي++

قاعدة بيانات اخرى بالسي++

الفريق العربي للبرمجه

*********************

كان الله في عون العبد مادام العبد في عون اخيه

#5

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

اشكرلكم مشاركتم واهتمامكم بموضوعي واستفساري انا حينما سالت السؤال كان لضيق الوقت معي لتسليم المشروع والامتحانات :calc:

اما بالنسبة للسؤال الايمكن عمله على الستاك والكيو من دون تيمبليت او لينكد

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

تم تعديل هذه المشاركة بواسطة Palestine55 في 15 فبراير 2009 في 02:22

#6

بســم الله الـرحمــن الرحيــم

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

اشكر لكم اهتمامكم ولكن انا لوربطت هالستاك والكيوو مع برنامج بحيث اربطهم مع المينيو التالية رح يكون كالاتي palindrome فانه رح يسير كالاتي

:


  1. <LI style="BACKGROUND: #fcfcfc">#include <iostream>
    #include <string>
    typedef string ItemType;
    class FullQue{};
    class EmptyQue{};
    class QueType
    {
    public:
    QueType();
    bool IsEmpty()const;
    bool IsFull()const;
    void EnQue( const ItemType& Stri);
    void DeQue( ItemType& Strs);
    private:
    int front, back, count; // back instead of rear
    ItemType Str[MAX_ITEMS];
    };
    QueType::QueType()
    {
    front = back = count = 0;
    }
    bool QueType::IsEmpty() const
    {
    return( count == 0 );
    }
    bool QueType::IsFull() const
    {
    return( count == MAX_ITEMS );
    }
    void QueType::EnQue( const ItemType& Stri )
    {
    if(IsFull())
    throw FullQue();
    else
    {
    items[back] = NewItem;
    back = (back+1) % MAX_ITEMS;
    count++;
    }
    }
    void QueType::DeQue( ItemType& Strs )
    {
    if(IsEmpty())
    throw EmptyQue();
    else
    {
    item = items[front];
    front = (front+1) % MAX_ITEMS;
    count--;
    }
    }
    <LI style="BACKGROUND: #fcfcfc">#include <iostream>
    #include <string>
    typedef string ItemType;
    char const MAX_ITEMS = 15;
    class FullStack{};
    class EmptyStack{};
    class StackType{
    public:
    StackType();
    bool IsEmpty() const;
    bool IsFull() const;
    void Push( const ItemType& newItem );
    void Pop( ItemType& item );
    private:
    int top;
    ItemType Str[MAX_ITEMS];
    };
    StackType::StackType()
    {
    top = -1;
    }
    bool StackType::IsEmpty() const
    { return (top == -1);
    }
    bool StackType::IsFull() const
    {
    return (top == MAX_ITEMS-1);
    }
    void StackType::Push( const ItemType& Stri )
    {
    if( IsFull() )
    throw FullStack();
    top++;
    items[top] = newItem;
    }
    void StackType::Pop( ItemType& Strn )
    {
    if( IsEmpty() )
    throw EmptyStack();
    item = items[top];
    top--;
    }

  2. #include <iostream>
    #include <string>
    #include <cstdlib>
    #include"StackType.h"
    #include"QueType.h"
    using namespace std;
    void main()
    {
    void InsertPal(ItemType Strn)
    {
    system("cls");
    cout <<"The new string: ";
    cin>>Strn;
    }
    void PrintF(ItemType Strn)
    {
    StackType PalS;
    PalS.Pop(&Strn);
    cout<< Strn;
    }
    void PrintB(ItemType Stri)
    {
    QueType PalQ;
    PalQ.DeQue(Stri);
    cout<< Stri;
    }
    bool IsPal( ItemType Str )
    {
    QueType PalQ;
    StackType PalS;
    for ( unsigned int I = 0; I < Strn.length();
    I++ )
    {
    if( isalpha( Strm[ I ] ) && isupper( Str[ I ] ) )
    {
    Str[ I ] = tolower ( Str[ I ] );
    PalQ.push( Str[ I ] );
    PalS.push( Str[ I ] );
    }
    else
    if( isalpha( Str[ I ] ) )
    {
    PalQ.push( Str[ I ] );
    PalS.push( Str[ I ] );
    }
    }
    while( !PalQ.empty() )
    {
    if( PalQ.front() != PalS.top() )
    return false;
    PalQ.pop();
    PalS.pop();
    }
    return true;
    }
    int choice;
    do{
    MainMenu(choice);
    switch(choice)
    {
    case 1:InsertPal(Str);
    break;
    case 2:PrintF(Str);
    break;
    case 3:PrintB(Str);
    break;
    case 4:IsPal(Str);
    break;
    case 5: system("cls");
    cout <<"\n Thank you for using this application.. \n\n We hope you a nice day!\n\n\n\n";
    system("pause");
    exit(0);
    }
    }
    while(choice !=5);
    }
    void MainMenu(int& choice){
    system("cls");
    cout<<"\n\n\n";
    cout<<" M A I N M E N U \n\n";
    cout<<" ----------------- \n\n";
    cout<<" 1.NEW STRING\n\n";
    cout<<" 2.PRINT FORWARD\n\n";
    cout<<" 3.PRINT BACK\n\n";
    cout<<" 4.TEST A PALINDROME\n\n";
    cout<<" 5.Exit\n\n";
    cout<<"\n\n";
    cout<<" -> Enter Your Choice: ";
    cin>>choice;
    }
    system("pause");
    }

    هاد الكود اعطاني خطا لا اعرف ليش ??

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