You are on page 1of 54

‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫‪1‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫المقدمة‬

‫الحمد هللا رب العالمٌن والصالة والسالم على أشرف األنبٌاء والمرسلٌن نبٌنا محمد وعلى آله‬
‫وصحبه أجمعٌن وبعد ‪:‬‬
‫فها قد تم وهلل الحمد جمع الدورة التً ّ‬
‫نظمت فً شهر رمضان المبارك عام ألف وأربع مائة‬
‫وتسع وعشرٌن‪.‬‬

‫وقد ألقٌت الدورة فً منتدى عشاق البرمجة التابعة لجامعة اإلمام محمد بن سعود اإلسالمٌة ‪:‬‬

‫‪http://www.imam1.com/vb/forumdisplay.php?f=102‬‬

‫رابط الدورة‪:‬‬

‫‪http://www.imam1.com/vb/showthread.php?t=45042‬‬

‫وقد تم تقسٌم هذا الكتاب إلى أربعة فصول وملحق خاص بحلول الواجبات والمشروع ‪.‬‬

‫إقتصرت الدروس على األساس ولم ندخل فً التفاصٌل ‪.‬‬

‫وأحب فً الختام أن أشكر والديّ اللذٌّن ساندانً على إنجاز هذا المشروع وكذالك أحب أن‬
‫أشكر أخً عبدهللا الذي ساندنً فً إعداد هذه الدورة‪ ,‬وكذالك أخً فً اإلسالم الذي أحبه فً هللا‬
‫برقاوي جزاه هللا عنً كل خٌر حٌث أشرف على الدورة وقد أضاف إضافات كثٌرة فً‬
‫الدروس بل إن الفصل األخٌر هو الذي كتبه وقد نبه على الكثٌر من األخطاء وتعب فً إعداد‬
‫الدروس ‪.‬‬

‫وكذالك أحب أن أشكر ك ّل من ساند فً إعداد هذه الدورة وكل من دخل الدورة وساهم فً‬
‫إنجاحها‪ .‬وأسأل هللا سبحانه أن ٌنفع بهذا الكتاب اإلسالم والمسلمٌن‪.‬‬

‫كتبه‬

‫خالد بن عبد الرحمن الحصٌّن‬

‫جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫كلٌة علوم الحاسب اآللً والمعلومات‬

‫ذو الحجة‬

‫الساعة العاشرة لٌلة اإلربعاء‬

‫‪1429\12\4‬‬

‫‪2‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫مقدمة فً البرمجة‬

‫قبل البدء فً البرمجة علٌك أن تعرف أن البرمجة تعتمد على المنطق والمنطق فقط أي أن‬
‫‪ 2= 1+1‬فلٌس هناك مجال اخر ربما لن تفهم ذالك االن ولكن ضعه فً بالك حتى تبداء فً‬
‫كتابة البرامج‪ .‬وكذالك أرجوا منك التمرس على كتابة البرامج ألن هذه الدورة لن تنفعك مالم‬
‫تقوم بنفع نفسك ‪ ,‬أعنً أن هذه الدورة ستعطٌك األساسٌات فقط ثم أنت ٌجب علٌك أن تبحر فً‬
‫عالم البرمجة فلن نشرح إال بعض الدوال األساسٌة‪.‬أتوقع األن أن جمٌعكم ٌقول (دع عنك‬
‫الفلسفة) إذن لندخل فً العمٌق وهٌا لنشرح كود البداٌة‪:‬‬

‫كود‪:‬‬
‫>‪#include<iostream‬‬
‫;‪using namespace std‬‬
‫)( ‪int main‬‬
‫‪{//first code‬‬
‫‪cout<<"lutes‬‬ ‫;"‪began student of imam university‬‬
‫;‪return 0‬‬
‫}‬

‫طٌب لنبدأ األن بسطر األول وهو استدعاء لمكتبة )‪ (iostroame‬وفٌها بعض الدوال وحتى‬
‫تفهم ذالك اصبر حتى نشرح دالة ‪ (cout) .‬أما عن )‪ (using name space std‬فتستعمل‬
‫لتضمٌن دوال )‪ (iostream‬ثم ٌأتً بعد ذالك )‪ (int main‬وهذا هو جسم البرنامج أي أن‬
‫الشغل والبرنامج ٌأتً بعد ذالك ‪.‬‬
‫أما ما بعد هذه العالمة‪ //‬فهو خاص للمبرمج حٌث أنه ٌضع شروحات البرنامج وشرح فوائد‬
‫الدوال وتأتً فائدتها إذا بداءة بكتابة بعض البرامج التً تحتوي على دوال كثٌرة فسوف تضٌع‬
‫إذا لم تضع هذه الشروحات‪ .‬المهم هذا الذي فوق سًتكرر فً كل برنامج فأرٌد منك التركٌز‬
‫على الذي بعد ‪ main‬فً هذا البرنامج استعملنا دالة واحدة وهً )‪ (cout‬وتستخدم لإلخراج‪.‬‬
‫)<<‪(cout‬طبعا هذه األسهم مهمة فهٌه تأتً مالزمة ل )‪(cout‬ربما تسأل األن مافائدة‬
‫‪ (cout) ,‬أقول لك فائدتها هو اخراج ماٌأتً بعد األسهم ٌعنً أن هذا البرنامج سوف ٌخرج‬
‫عبارة )‪ (lutes began student of imam university‬ومعنى العبارة‪ :‬لنبداء طالب‬
‫وطالبات جامعة اإلمام‪ .‬طبعا عالمة التنصٌص فائدتها إخراج ما هو داخل العالمة وسنأخذ‬
‫تفصٌل عن ذالك فً المدخالت والمخرجات‪ .‬أما األن فإن بودي أن أعود إلى دالة‬
‫)‪ (iostream‬جرب أن تحذفها وانضر هل سٌعمل البرنامج أم ال طبعا البرنامج لن ٌعمل‬
‫وسٌعطٌك تنبٌه بأن دالة )‪ (cout‬غٌر معروفة‬
‫‪3‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫وكذالك لو حذفت دالة )‪ (using namespace std‬سٌعطٌك نفس المشكلة‪.‬‬
‫وبالنسبة للفاصلة المنقوطة ( ; ) فهذا ٌكون بعد األوامر البرمجٌة وستعتاد لٌها فً المستقبل‪.‬‬
‫أما عن )‪ (getchar‬فوظٌفتها هو إبقاء البرنامج ٌعمل حتى تضغط على زر )‪ (enter‬وجرب‬
‫حذفها ستجد أن البرنامج ٌعمل ثم ٌخرج من البرنامج بسرعة‪.‬‬
‫طبعا هناك بعض العملٌات الرٌاضٌة التً ٌجب أن تعرفها فً ال ‪c++‬وهً‪:‬‬

‫الكود‬ ‫العملٌة‬
‫*‬ ‫الضرب‬
‫‪/‬‬ ‫القسمة‬
‫‪+‬‬ ‫الجمع‬
‫‪-‬‬ ‫الطرح‬
‫‪%‬‬ ‫باقً القسمة‬

‫طبعا األولوٌة تأتً لما بداخل األقواس ثم الضرب والقسمة ثم الجمع والطرح أعتقد أن هذا‬
‫واضح لذا لن أقوم بشرحه‪.‬‬

‫المتغٌرات‪:‬‬
‫وهً عناصر تحتوي على قٌم ٌحددها المستخدم مثل المتغٌرات فً الرٌاضٌات‪.‬‬
‫طبعا هذه القٌم ٌحددها المبرمج هل هو عدد صحٌح أم عشري أم أنه حرف ‪ ,‬فلو فرضنا أنك‬
‫كتبت برنامج ٌحتوي على متغٌرٌن ولنفرض أنهما ‪ x‬و ‪ y‬وقد عرّ فت أن ‪ x‬و ‪ y‬هما متغٌران‬
‫صحٌحان وأعنً بصحٌحان أنهما الٌقبالن األعداد العشرٌة فلو أسند قٌمة ما مثل ‪ 5,8890‬إلى‬
‫المتغٌر ‪ x‬فإنه سٌأخذ الرقم ‪ 5‬وسٌتجاهل الباقً‪.‬‬
‫طبعا طرٌقة اإلعالن عن المتغٌرات هً كالتالً‪:‬‬
‫كود‪:‬‬
‫;‪Int x,y‬‬

‫وقد وضعت كلمة ‪ int‬لٌعلم البرنامج أن ‪ x‬و ‪ y‬عددان صحٌحان أما لو أردت أن اعرّ فها على‬
‫أنها عدد عشري فسوف أقوم بإستبدال كلمة ‪ int‬ب ‪float‬أو ب ‪double‬وهذا جدول ٌبٌن لك‬
‫أهم اإلعالنات للمتغٌرات‪:‬‬

‫فائدته‬ ‫اإلعالن‬
‫عدد صحٌح‬ ‫‪Int‬‬
‫عدد عشري‬ ‫‪Float‬‬
‫عدد عشري ولكنه ٌقبل األعداد الطوٌلة أي أن‬ ‫‪Double‬‬
‫األعداد الكبٌرة التً ال ٌتحملها ال ‪float‬‬

‫ٌستخدم لتعرٌف األحرف وكذاللك األرقام‬ ‫‪Char‬‬

‫‪4‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫أما طرٌقة اإلسناد فهً كالتالً ‪:‬‬
‫كود‪:‬‬
‫;‪X=5‬‬

‫وتستطٌع أن تسند القٌمة مع اإلعالن فتكون كذا‪:‬‬
‫كود‪:‬‬
‫;‪Int x=5‬‬

‫بل تستطٌع أن تسند متغٌرات لمتغٌر ‪ ,‬مثل هذا المتغٌر الذي ٌحوي متغٌران وهو المتغٌر‬
‫‪sum‬الذي ٌحوي قٌمتٌن ‪ x +y‬وٌكون اإلعالن عنه بهذه الطرٌقة‪:‬‬
‫كود‪:‬‬
‫;‪Sum=x+y‬‬

‫فهذا المتغٌر ٌحتوي على المتغٌر ‪ x‬زائدا علٌها المتغٌر ‪y .‬‬
‫وتستطٌع أن تجعل المستخدم ٌدخل قٌم المتغٌرات عبر ادالة )‪ (cin‬والذي سنأخذه بعد قلٌل فً‬
‫المدخالت والمخرجات‪.‬‬
‫وإلٌك هذا المثال وهو برنامج ٌقوم بضرب قٌمة متغٌرٌن وٌخرج الناتج‪:‬‬
‫كود‪:‬‬
‫>‪#include<iostream‬‬

‫;‪using namespace std‬‬
‫)( ‪int main‬‬
‫{‬
‫;‪int x,y,sum‬‬
‫;‪x=5‬‬
‫;‪y=2‬‬
‫;‪sum=x+y‬‬
‫;‪cout<<x*y<<endl<<sum‬‬
‫;)( ‪getchar‬‬
‫;)( ‪getchar‬‬
‫;‪return 0‬‬
‫}‬

‫طبعا لن أشرح مافوق )‪ (main‬إلنه وأضح وسٌتكرر معنا ولنبدأ بما بعد )‪ (main‬فً البداٌة‬
‫كما ترون عرفت أن هناك ثالث متغٌرات وهً )‪ (x,y,sum‬طبعا نفصل بٌن المتغٌرات‬
‫بفاصلة ثم قمت بإسناد قٌمة ‪ 5‬ل )‪(x‬وقٌمة ‪ 2‬ل )‪)y‬وأسند جمع )‪ (x‬و )‪ (y‬ل ) ‪ )sum‬ثم‬
‫أخرجت قٌمة ضرب ‪ x‬و ‪ y‬وبعد ذالك أخرجت قٌمة )‪ (sum‬طبعا كٌفٌة اإلخراج سنأخذه بعد‬
‫قلٌل فً المدخالت والمخرجات‪.‬‬

‫‪5‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫المدخالت والمخرجات‪:‬‬
‫المدخالت‪:‬‬
‫وهً دالة تستعمل إلدخال البٌانات وتكتب هكذا )>>‪ (cin‬فكما ترا القوس معاكس لقوس‬
‫)<<‪ (cout‬وتستطٌع أن تسند القٌم عبر هذه الدالة فكما رأٌتم فً درس المتغٌرات الذي أسند‬
‫القٌم للمتغٌرات هو المبرمج نفسه ولكن كٌف أجعل المستخدم هو الذي ٌسند القٌم ؟‪ .‬أقول لك‬
‫بعد أن تعرّ ف المتغٌر تضع بعدها دالة )‪ (cin‬وهذه هً الطرٌقة‪:‬‬
‫كود‪:‬‬
‫;‪Int x‬‬
‫‪Cin>>x:‬‬

‫ولكن لو كان لدٌنا أكثر من متغٌر فكٌف أجعل المستخدم ٌسند هذه القٌم؟ أقول استعمل نفس‬
‫الطرٌقة وضع بٌن متغٌر وأخر هذا السهم >> وانضر إلى هذا‪:‬‬
‫كود‪:‬‬
‫;‪Int x,y,z‬‬
‫;‪Cin>>x>>y>>z‬‬

‫وهذه طرٌقة اخرا‪:‬‬
‫كود‪:‬‬
‫;‪Cin>>x‬‬
‫;‪Cin>>y‬‬
‫;‪Cin>>z‬‬

‫وسنأخذ مثال على ذالك بعد أن نشرح المخرجات‪.‬‬
‫المخرجات‪:‬‬
‫وهً عكس المدخالت فهً تستعمل لإلخراج وتكتب )<<‪ (cout‬وأستطٌع أن أخرج قٌم‬
‫المتغٌرات عبر كتابة اسم المتغٌر بعد هذه األسهم << وتتم ٌهذه الطرٌقة‪:‬‬
‫كود‪:‬‬
‫;‪Cout<<x‬‬

‫أما لو أردت أن تخرج أكثر من متغٌر فستكون بهذه الطرٌقة‪:‬‬
‫كود‪:‬‬
‫;‪Cout<<x<<y<<z‬‬

‫أو هذه الطرٌقة‪:‬‬
‫كود‪:‬‬
‫;‪Cout<<x‬‬
‫;‪Cout<<y‬‬
‫;‪Cout<<z‬‬

‫وإلنهاء السطر تستعمل األمر ‪ endl‬وتكون بهذه الطرٌقة‪:‬‬
‫كود‪:‬‬

‫‪6‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫;‪cout<<x<<endl‬‬

‫وتستطٌع أن تخرج جملة ما عبر وضعها بٌن عالمة التنصٌص مثل مثال كود البداٌة ومثل هذا‬
‫المثال وهو نفس مثال المتغٌرات ولكنه معدل طبعا هذا المثال سٌكون مثال لدرس المدخالت‬
‫والمخرجات كامال‪:‬‬
‫كود‪:‬‬
‫>‪#include<iostream‬‬

‫;‪using namespace std‬‬
‫)( ‪int main‬‬
‫{‬
‫;‪int x,y,sum‬‬
‫;" ‪cout<<"enter tow number :‬‬
‫;‪cin>>x>>y‬‬
‫;‪sum=x+y‬‬
‫;‪cout<<"the number = "<<x*y<<endl‬‬
‫;‪cout<<"the sum is : "<<sum<<endl‬‬
‫;)( ‪getchar‬‬
‫;)( ‪getchar‬‬
‫;‪return 0‬‬
‫}‬

‫طبعا شرح هذه األكواد سأجعلها مشاركة واألن إلى الواجب‪:‬‬
‫س‪ :1‬أكتب برنامج ٌطلب من المستخدم إدخال خمس أرقام ثم ٌقوم البرنامج بحساب المجموع‬
‫والمتوسط لهذه األرقام‪.‬‬
‫س‪ :2‬اكتب برنامج ٌطلب من المستخدم إدخال خمس أرقام ثم ٌقوم البرنامج بوضع كل رقم فً‬
‫سطر‪.‬‬
‫تلمٌح للسؤال الثانً‪:‬تذكر أن ‪ int‬الٌقبل إال باألعداد الصحٌحة‪.‬‬
‫طبعا سأضع درسٌن خالل هذا األسبوع وهذه الدرسٌن هً نهاٌة الفصل األول‪ .‬وسنناقش‬
‫الدرس خالل هذا األسبوع وسنستلم الواجبات ‪.‬‬

‫*شرح سؤال المشاركة‪:‬‬

‫شرح سؤال المشاركة من األخ هتلرر‪:‬‬
‫>‪#include<iostream‬‬

‫;‪using namespace std‬‬
‫)( ‪int main‬‬
‫{‬
‫;‪int x,y,sum‬‬
‫;" ‪cout<<"enter tow number :‬‬
‫;‪cin>>x>>y‬‬
‫;‪sum=x+y‬‬
‫;‪cout<<"the number = "<<x*y<<endl‬‬

‫‪7‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫;‪cout<<"the sum is : "<<sum<<endl‬‬
‫;)( ‪getchar‬‬
‫;)( ‪getchar‬‬
‫;‪return 0‬‬
‫}‬

‫كود‪:‬‬
‫;‪int x,y,sum‬‬

‫هنا تم التعرٌف عن ‪ 3‬متغٌرات من نوع) ‪ ( int‬اعداد صحٌحة‬

‫كود‪:‬‬
‫;" ‪cout<<"enter tow number :‬‬

‫هنا طلب من المستخدم ادخال الرقمٌن المراد اجرا العملٌة علٌمة ونفصل بٌن الرقمٌن بعملٌة‬
‫الفراغ ) (‪ (space‬ما ادري السبلٌنق صحٌح واال ال ‪.....‬‬

‫كود‪:‬‬
‫;‪sum=x+y‬‬

‫تم اسناد عملٌة الجمع الى المتغٌر ‪sum‬‬

‫كود‪:‬‬
‫;‪cout<<"the number = "<<x*y<<endl‬‬

‫هنا اخراج ضرب العددٌن‬

‫كود‪:‬‬
‫;‪cout<<"the sum is : "<<sum<<endl‬‬

‫هنا تم اخراج قٌمة المتغٌر) ‪( sum‬وهوجمع العددٌن‪.‬‬

‫كود‪:‬‬
‫;)( ‪getchar‬‬
‫;)( ‪getchar‬‬

‫‪8‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫اعتقد انها ألٌقاف تنفٌذ البرنامج‪.‬‬

‫شرح األخت أحلى روح‪:‬‬
‫كود‪:‬‬
‫>‪#include<iostream‬‬

‫هنا استدعاء لدوال )‪ (I\O‬اإلدخال واإلخراج‪.‬‬

‫كود‪:‬‬
‫;‪using namespace std‬‬

‫تجعل المتغٌرات متاحه لألستخدام فً أي مكان فً الكود‪.‬‬

‫كود‪:‬‬
‫)( ‪int main‬‬

‫مثل ماقال أخ اباسلٌمان جسم البرنامج‪.‬‬

‫كود‪:‬‬
‫{‬

‫القوس المتعرج اعالن عن بداٌة البرنامج‪.‬‬

‫كود‪:‬‬
‫;‪int x,y,sum‬‬

‫عرفت ‪ 3‬متغٌرات) ‪ (x,y,sum‬من النوع‪int .‬‬
‫َ‬

‫كود‪:‬‬
‫;" ‪cout<<"enter tow number :‬‬

‫جملة اخراج تطلب من المستخدم أن ٌدخل رقمان‪.‬‬

‫كود‪:‬‬
‫;‪cin>>x>>y‬‬

‫جملة ادخال ٌتم فٌها ادخال المتغٌران‪(x,y).‬‬

‫كود‪:‬‬
‫;‪sum=x+y‬‬

‫‪9‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫هنا تم جمع المتغٌرٌن المدخلٌن من المستخدم وحفظهمما (اسنادهما) الى المتغٌر‪sum .‬‬

‫كود‪:‬‬
‫;‪cout<<"the number = "<<x*y<<endl‬‬

‫جملة اخراج وٌتم فٌها ضرب العددٌن المدخلٌن من المستخدم‪.‬‬

‫كود‪:‬‬
‫;‪cout<<"the sum is : "<<sum<<endl‬‬

‫جملة اخراج وٌتم فٌها اخراج قٌمة‪sum .‬‬

‫كود‪:‬‬
‫;)( ‪getchar‬‬
‫;)( ‪getchar‬‬

‫كود‪:‬‬
‫;‪return 0‬‬
‫}‬

‫وهنا إلنهاء البرنامج مع القوس المتعرج المغلق‪.‬‬

‫‪10‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫بسم هللا الرحمن الرحٌم‬
‫درسنا الٌوم هو دالة الشرط ‪ (if) .‬وهو آخر درس فً الفصل األول ألن درس )‪(swich‬‬
‫سنرجئه إلى الفصل الثانً‪.‬‬

‫قبل أن ابداء بدرس دالة الشرط أحب أن اضع هذا الجدول الذي ٌحوي على ادوات المقارنة‪:‬‬

‫فائدته‬ ‫أداة الربط‬
‫ٌساوي‬ ‫==‬
‫الٌساوي‬ ‫=!‬
‫أكبر من‬ ‫>‬
‫أصغر من‬ ‫<‬
‫أكبر من أو ٌساوي‬ ‫=>‬
‫أصغر من أوٌساوي‬ ‫=<‬

‫دالة الشرط‪if :‬‬
‫وهً من أهم الدوال المستخدمة فً اللغة وطرٌقتها أن ٌتحقق البرنامج من تحقق الشرط فإذا‬
‫تحقق الشرط عمل بما بعد الشرط‪.‬‬
‫فكأنك تقول للمترجم (إذا تحقق الشرط فاعمل كذا ) وٌكتب الكود بهذه الطرٌقة‪:‬‬

‫كود‪:‬‬
‫;)‪If (statement‬‬

‫طبعا )‪ (statement‬هً جملة الشرط‪.‬‬
‫وبالمثال ٌتضح المقال‪:‬‬
‫كود‪:‬‬
‫>‪#include<iostream‬‬
‫;‪using namespace std‬‬
‫)( ‪int main‬‬
‫{‬
‫;‪int x,y‬‬
‫;" ‪cout<<"enter tow number :‬‬
‫;‪cin>>x>>y‬‬
‫)‪if (x>y‬‬
‫;‪cout<<"the largest is : "<<x<<endl‬‬
‫;)"‪system("pause‬‬
‫;‪return 0‬‬
‫}‬

‫‪11‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫طبعا هذا المثال سوف ٌقارن بٌن قٌمة ‪ x‬و ‪ y‬وإذا كان قٌمة ‪ x‬أكبر من ‪ y‬فسوف ٌخرج قٌمة ‪x‬‬
‫أما لو كان العكس فسوف ٌخرج من البرنامج ولكن ٌخرج شٌئا‪.‬‬

‫ولكن نحن النرٌد أن ٌخرج من البرنامج نرٌده مثال أن ٌحسب أكبر قٌمة فما العمل؟‬
‫أقول هناك دالة أخرى وهً عكس دالة ‪ if‬وهً دالة )‪ (else‬وعملها عكس عمل )‪ (if‬فكأنك‬
‫تقول للمترجم (إذا لم ٌتحقق الشرط فاعمل كذا) وٌكتب الكود بهذه الطرٌقة‬
‫كود‪:‬‬
‫‪else‬‬

‫وتستطٌع أن تضٌف ل )‪(else‬جملة شرط فٌصبح الكود كذا‪:‬‬
‫كود‪:‬‬
‫‪else‬‬ ‫)‪if (statemint‬‬

‫وانضر إلى هذا المثال وهو مثل المثال السابق ولكن قمنا بإضافة دالة )‪ (else‬فأصبح البرنامج‬
‫ٌطبع أكبر قٌمة‬
‫كود‪:‬‬
‫>‪#include<iostream‬‬

‫;‪using namespace std‬‬
‫)( ‪int main‬‬
‫{‬
‫;‪int x,y‬‬
‫;" ‪cout<<"enter tow number :‬‬
‫;‪cin>>x>>y‬‬
‫)‪if (x>y‬‬
‫;‪cout<<"the largest is"<<x<<endl‬‬
‫‪else‬‬
‫;‪cout<<"the largest is :"<<y<<endl‬‬
‫;)"‪system("pause‬‬
‫;‪return 0‬‬
‫}‬

‫األن البرنامج سٌقارن بٌن ‪ x‬و ‪ y‬وسٌطبع أكبر قٌمة‪.‬‬
‫طٌب لو أردت من البرنامج أن ٌقارن بٌن ثالثة أرقام ثم ٌقوم بإخراج أوسط عدد فكٌف تعمل‬
‫ذالك؟‬
‫فً الحقٌقة هناك أدوات تستعمل لمثل هذه األشٌاء وهً أدوات الربط وهً كالتالً‪:‬‬

‫فائدته‬ ‫أدوات الربط‬
‫&& ومعناها (و)‬ ‫‪And‬‬

‫‪12‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫|| ومعناها (أو)‬ ‫‪Or‬‬

‫بالنسبة للمقارنة ‪ AND‬األصل نستعمل معها الرمز ‪ && ....‬وكذلك المقارنة ‪ OR‬األصل‬
‫نستعمل معها الرمز‪|| ....‬‬

‫أما إذا استعملنا الرمز & فهذا ٌرمز للعملٌة المنطقٌة ‪ AND ....‬مثل ‪4&5 :‬‬
‫وكذلك الرمز | فهو برمز للعملٌة المنطقٌة ‪ OR .....‬مثل‪.4|5 :‬‬
‫طبعا وظٌفة && وهو أن ٌتحقق البرنامج من تحقق الشرطٌن جمٌعا فإذا تحققا عمل بمقتضى‬
‫الشرط‪.‬‬
‫أما وظٌفة || هو التحقق من عمل أحد الشرطٌن فإذا تحقق إحداها عمل بقتضى الشرط‪.‬‬
‫وإلٌك هذا المثال وهو برنامج ٌطلب من المستخدم إدخال ثالثة ارقام ثم ٌقوم بطباعة أوسطها ‪.‬‬
‫كود‪:‬‬
‫>‪#include<iostream‬‬

‫;‪using namespace std‬‬
‫)( ‪int main‬‬
‫{‬
‫;‪int x,y,z‬‬
‫;" ‪cout<<"enter 3 number :‬‬
‫;‪cin>>x>>y>>z‬‬
‫))‪if ((x>y&&x<z)||(x<y&&x>z‬‬
‫;‪cout<<"the midel is : "<<x<<endl‬‬
‫))‪else if((y<x&&y>z)||(y>x&&y<z‬‬
‫;‪cout<<"the midel is :"<<y<<endl‬‬
‫‪else‬‬
‫;‪cout<<"the midel is :"<<z<<endl‬‬
‫;)"‪system("pause‬‬
‫;‪return 0‬‬
‫}‬

‫فكما ترون فً الدالة األولى للشرط قارنت بٌن ‪ x‬و ‪ y‬و ‪ z‬وطلبت من البرنامج أن ٌتحقق من ‪x‬‬
‫هل هو أكبر من ‪ y‬وأصغر من ‪ z‬أو أصغر من ‪ y‬وأكبر من‪ z .‬فإذا تحقق هذا الشرطٌن طبع‬
‫قٌمة‪x .‬‬
‫أما إذا لم ٌتحقق الشرط فسوف ٌنتقل لشرط الثانً والشرط الثانً نفس األول ولكن الفرق أنه‬
‫سٌطبع قٌمة‪y .‬‬
‫أما إذا لم ٌتحقق أي من الشرطٌن فسوف ٌقوم بطباعة قٌمة‪z .‬‬
‫وهذا مثال اخر على ادات الربط ‪ or‬وهو برنامج ٌطلب من المستخدم إدخال درجته ثم ٌطبع له‬
‫عبارة " ‪ "pass‬إذا كانت درجته أكبر من ‪ 60‬أما إذا كانت أصغر من ‪ 60‬فسوف ٌطبع عبارة‬
‫"‪"fail‬أي راسب ‪,‬وإذا أدخل المستخدم درجة أكبر من ‪ 100‬أو أصغر من الصفر فسوف ٌطبع‬
‫عبارة "‪ "wrong in put‬وتعنً (مدخل خاطئ)‪.‬‬
‫كود‪:‬‬
‫>‪#include<iostream‬‬
‫;‪using namespace std‬‬
‫)( ‪int main‬‬

‫‪13‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫‪{//program of dgree‬‬
‫;‪int mark‬‬
‫;" ‪cout<<"enter mark :‬‬
‫;‪cin>>mark‬‬
‫)‪if (mark<0||mark>100‬‬
‫;‪cout<<"wrong number"<<endl‬‬
‫‪else‬‬
‫)‪if (mark>60‬‬
‫;‪cout<<"pass"<<endl‬‬
‫‪else‬‬
‫;‪cout<<"fial"<<endl‬‬
‫;)"‪system("pause‬‬
‫;‪return 0‬‬
‫}‬

‫األن سؤال المشاركة اشرح المثال األخٌر‪.‬‬
‫أما سؤال الواجب فسٌكون كما قال أخوي البرقاوي سؤال واجب إجباري وآخر اختٌاري‪:‬‬
‫س‪ 1‬اكتب برنامج ٌطلب من المستخدم إدخال درجته ثم ٌقوم البرنامج بطباعة ) ‪(a,b,c,d,f‬‬
‫وذالك حسب الدرجة المعطاة‬
‫س‪ 2‬اكتب برنامج ٌطلب من المستخدم إدخال ثالثة أرقام ثم ٌقوم بإخراج أكبر عدد وأصغر‬
‫عدد‪.‬‬
‫أما السؤال الثالث وهو (اختٌاري(‬
‫س‪ 2‬اكتب برنامج ٌطلب من المستخدم إدخال عدد صحٌح ثم ٌقوم البرنامج بحساب العدد هل‬
‫هو زوجً أو فردي فإذا كان زوجً طبع كلمة "‪"even‬أما إذا كان فردي فٌطبع كلمة "‪"odd‬‬
‫‪.‬‬

‫*شرح سؤال المشاركة ‪:‬‬

‫شرح المثال لألخت أحلى روح‪:‬‬

‫راح ابدأ اشرح من بعد المٌن‬

‫كود‪:‬‬
‫;‪int mark‬‬

‫عرفنا متغٌر من النوع‪int .‬‬
‫َ‬

‫كود‪:‬‬
‫;" ‪cout<<"enter mark :‬‬
‫‪14‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫طلب من المستخدم ادخال العالمه‪.‬‬

‫كود‪:‬‬
‫;‪cin>>mark‬‬

‫جملة ادخال ٌدخل فٌها المستخدم العالمه‪.‬‬

‫كود‪:‬‬
‫)‪if (mark<0||mark>100‬‬

‫داله شرطٌه )‪ (if‬بقوم فٌها البرنامج بمقارنة العالمه إذا كانت اصغر من الصفر أو أكبر من‬
‫‪ 100‬راح ٌطبع الجمله التالٌه‬
‫كود‪:‬‬
‫;‪cout<<"wrong number"<<endl‬‬

‫جملة اخراج تخبر بأن العدد المدخل خاطئ‬

‫كود‪:‬‬
‫‪else‬‬

‫تنفً عمل ‪ٌ if‬عنً إذا كانت العالمه المدخله لٌست أصغر من الصفر وال بأكبر من ‪.100‬‬

‫كود‪:‬‬
‫)‪if (mark>60‬‬
‫;‪cout<<"pass"<<endl‬‬
‫‪else‬‬
‫;‪cout<<"fial"<<endl‬‬

‫هنا جملة ‪ if‬شرطٌه اخرى تقارن هل العالمه المدخله أكبر من ‪ 60‬إذا كان الكالم هذا صحٌح‬
‫راح تطبع ‪ pass‬وإال أي إذا لم ٌتحقق الشرط فسٌطبع‪fial.‬‬

‫والباقً مشروح فً الدرس السابق‪....‬‬
‫بالتوفٌق للجمٌع‪.....‬‬

‫‪15‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫الفصل الثانً‬
‫الحلقات التكرارٌة‪:‬‬
‫تعرٌفها‪:‬‬
‫الحلقات التكرارٌة اسم على مسمى فأنت تجعل البرنامج ٌكرر فعل ما حتى ٌنتهً الشرط الذي‬
‫وضعته‪.‬‬
‫دالة‪for :‬‬
‫وهذه الدالة التستخدم إال بع ّداد ولها وظائف عدٌدة منها إدخال القٌم والبحث عن القٌم طبعا‬
‫سوف نستخدمها كثٌرا فً المصفوفات ‪.‬‬
‫وطرٌقة كتابة الكود تكون بهذه الطرٌقة‪:‬‬
‫‪16‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫كود‪:‬‬
‫{)‪for(int i=0;i<=n;i++‬‬
‫األوامر البرمجية‬
‫}‬

‫قبل الشرح ٌجب أن تعلم أن فً لغة ‪ c++‬إذا وضعنا أمام المتغٌر )‪ (++‬فسٌزداد المتغٌر واحد‪,‬‬
‫أعنً لو كان المتغٌر ٌساوي ‪ 3‬ثم وضعنا أمام المتغٌر )‪ (++‬فسٌكون ‪ 4‬وإذا أردنا أن نزٌد‬
‫المتغٌر أكثر من واحد فنضع إشارة ) )‪ +n‬طبعا ) ‪ (n‬معناه أي عدد ٌدخله المبرمج‪.‬‬
‫طبعا سأشرح معنى األشٌئا التً بٌن القوسٌن بعد هذا المثال‪.‬‬
‫وهو برنامج ٌطبع األعداد من ‪ 0‬إلى ‪.10‬‬
‫كود‪:‬‬
‫>‪#include <iostream‬‬
‫;‪using namespace std‬‬

‫)(‪int main‬‬
‫{‬
‫)‪for(int i=0;i<=10;i++‬‬
‫{‬
‫;‪cout<<i<<endl‬‬
‫}‬
‫;)( ‪getchar‬‬
‫;)( ‪getchar‬‬
‫;‪return 0‬‬
‫}‬

‫فً البداٌة عرفنا متغٌر وهو ‪ i‬على أنه عدد صحٌح وساوٌناه بالصفر‪.‬‬
‫ثم وضعنا شرط الحلقة وهو أن تنتهً الحلقة بعد أن تكون ‪ i‬أصغرمن أو ٌساوي‪10 .‬‬
‫وبعدها وضعنا العداد‪.‬‬
‫األن البرنامج سوف ٌعمل بأمر البرمجً الذي ٌأتً بعد القوس المنبعج) {(‬
‫وقد وضعنا أمر إخراج لقٌمة‪i .‬‬
‫البرنامج سوف ٌخرج فً البداٌة قٌمة ‪ i‬وهً الصفر ثم سٌتزداد ‪ i‬واحد ‪.‬‬
‫بعد ذالك سٌتأكد البرنامج هل ‪ i‬أضغر من أو ٌساوي ‪ 10‬؟‬
‫إذا لم ٌكن ٌساوي أو أصغر من ‪ 10‬سٌستمر البرنامج فً إخراج قٌمة ‪ i‬وسٌزداد ‪ i‬واحدا بعد‬
‫كل دورة‪.‬‬
‫طبعا هناك دالة مشهورة تستخدم فً دالة ‪ for‬وفً غٌرها من الدوال‬
‫وهً دالة‪break‬‬
‫وتستخدم للخروج من حلقة ‪ for‬قبل إنهاء الشرط‪,‬‬
‫وانضر إلى هذا المثال وهو نفس المثال السابق وقد عدلنا علٌه حٌث سٌخرج األعداد من الصفر‬
‫إلى الخمسة‪.‬‬
‫حٌث أنه إذا وصل إلى خمسة خرج من الحلقة‪:‬‬
‫كود‪:‬‬
‫>‪#include <iostream‬‬
‫;‪using namespace std‬‬

‫)(‪int main‬‬
‫‪17‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫{‬
‫)‪for(int i=0;i<=10;i++‬‬
‫{‬
‫;‪cout<<i<<endl‬‬
‫)‪if(i==5‬‬
‫;‪break‬‬
‫}‬
‫;)"‪system("pause‬‬
‫;‪return 0‬‬

‫}‬

‫هناك كلمة مهمة فً دوال التكرار وخاصة ‪ for ....‬وهً كلمة ‪ continue ....‬فائدة هذه‬
‫الكلمة أنها تتجاهل الحالة المحددة وتتابع دورة التكرارمثل‪:‬‬
‫كود‪:‬‬
‫{)‪for(int i=0;i<=10;i++‬‬
‫)‪if(i==5‬‬
‫;‪continue‬‬
‫;‪cout<<i<<endl‬‬
‫}‬

‫هنا فً هذا المثال‪ :‬البرنامج سوف ٌطبع من ‪ 0‬إلى ‪ 10‬باستثناء رقم ‪ ...5‬ألنه إذا وصل إلى‬
‫رقم ‪ٌ 5‬نفذ أمر ‪ continue‬الذي ٌقوم بتجاهل ما أسفله من أوامر أو كود وٌتابع دروة التكرار‬
‫‪.....‬‬

‫هذا بشأن ال‪for .‬‬
‫طٌب ماذا لو أردت من البرنامج أن ٌستمر فً الحلقة من دون وضع ع ّداد‪.‬‬
‫مثال أخونا ‪ some bodey‬سألنً عن إمكانٌة جعل البرنامج ٌستمر من دون أن أخرج‪.‬‬
‫أعنً كل البرامج التً أشتغلنا علٌها سابقا كان ٌخرج لك القٌمة ثم ٌخرج من البرنامج نحن‬
‫النرٌد منه أن ٌخرج نرٌد منه أن ٌستمر‪ ,‬وأن أضع شرطا للخروج فكٌف أفعل ذالك؟‬
‫هنا أقول لك ٌجب أن تستخدم الدلة‪while .‬‬
‫دالة‪while :‬‬
‫والمعنى الحرفً والفعلً لكلمة ‪ while‬هو (مادام) فكأنك تقول للبرنامج (مادام هذا الشرط‬
‫موجود فأعمل بمقتضى البرنامج) طبعا له استعماالت عدٌد وتستطٌع أن تجعله ٌعمل عمل ‪for‬‬
‫‪.‬‬
‫وال ٌشترط أن ٌكون هناك عداد‪.‬‬
‫طرٌقة كتابة الكود ٌكون كذا‪:‬‬
‫كود‪:‬‬
‫{)‪While (statemint‬‬

‫‪.‬األوامر البرمجية‬
‫}‬

‫‪18‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

.‫( معناه الشرط الذي ٌضعه المبرمج‬ststemint) ‫طبعا‬
‫وانضر إلى هذا المثال وهو نفس المثال الذي فً الفصل األول وهو الواجب الذي ححلتموه‬
:)1-( ‫ولكن نجعل البرنامج ٌستمر حتى ٌدخل المستخدم‬
:‫كود‬
#include<iostream>
using namespace std;
int main ()
{
int x,y,z,d,s,sum,ava;
int optin;

while (optin != -1)
{
cout<<"enter mumber1 :"<<endl;
cin>>x;
cout<<"enter number 2 :"<<endl;
cin>>y;
cout<<"enter mumber3 :"<<endl;
cin>>z;
cout<<"enter mumber4 :"<<endl;
cin>>d;
cout<<"enter mumber5 :"<<endl;
cin>>s;
sum=x+y+z+d+s;
ava=sum/5;
cout<<"the sum is : "<<sum<<endl;
cout<<"the ava is : "<<ava<<endl;
cout<<"enter any number to contino or -1 to
quit :"<<endl;
cin>>optin;
}
system("puase");
return 0;
}

.‫طبعا سأجعل شرح هذا المثال مشاركة‬
.‫هو فً الحقٌقة مثال مهم لذا ٌجب أن تشرحوه‬

: ( switch ):‫*دالة التبدٌل‬
.‫ومهمة هذه الدالة هً التبدٌل‬
:‫وٌكتب الكود كذا‬
:‫كود‬
switch (‫{)المتغير‬
‫األوامر البرمجية‬
19
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

}

.‫طبعا كما ترا ٌبداء بقوس منبعج وٌنتهً بقوس منبعج‬
‫هذا بشأن اإلعالن عن المتغٌر الذي ترٌدون تبدٌله ولكن كٌف تتم عملٌة التبدٌل؟‬
‫( ومعناه (فً حالة) طبعا هذا الكالم النضري لن ٌكون واضحا من‬case) ‫عبر إضافة دالة‬
.‫دون مثال‬

‫ بحٌث أن تضغط رقم‬switch ‫وإلٌك هذا المثال وهو نفس المثال السابق ولكن أضفنا إلٌه دالة‬
.‫ للخروج من البرنامج‬3 ‫ ورقم‬ava ‫ لحساب‬2 ‫ ورقم‬sum ‫ لحساب‬1
:‫كود‬
#include<iostream>
using namespace std;
int main ()
{
int x,y,z,d,s,sum,ava;
int optin;

while (optin != 3)
{
cout<<"enter youer choice :" <<endl<<"1- for
sum"<<endl
<<"2- for ava"<<endl<<"3- forqout"<<endl;
cin>>optin;

switch (optin)
{
if (optin==1)
case 1://sum

cout<<"enter mumber1 :"<<endl;
cin>>x;
cout<<"enter number 2 :"<<endl;
cin>>y;
cout<<"enter mumber3 :"<<endl;
cin>>z;
cout<<"enter mumber4 :"<<endl;
cin>>d;
cout<<"enter mumber5 :"<<endl;
cin>>s;
sum=x+y+z+d+s;
cout<<"the sum is : "
<<sum<<endl;
break;
case 2:
cout<<"enter mumber1 :"<<endl;
cin>>x;
cout<<"enter number 2 :"<<endl;

20
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫;‪cin>>y‬‬
‫;‪cout<<"enter mumber3 :"<<endl‬‬
‫;‪cin>>z‬‬
‫;‪cout<<"enter mumber4 :"<<endl‬‬
‫;‪cin>>d‬‬
‫;‪cout<<"enter mumber5 :"<<endl‬‬
‫;‪cin>>s‬‬
‫"‪cout<<"the ava is :‬‬
‫;‪<<(x+y+z+d+s)/5<<endl‬‬
‫;‪break‬‬
‫}‬
‫}‬
‫;)"‪system("puase‬‬
‫;‪return 0‬‬
‫}‬

‫طبعا سأشرح هذا المثال ولكن قبل ذالك أظنكم أنكم قد الحظتم وجود دالة ‪ break‬وهً مهمة‬
‫فً دالة التبدٌل إلنك بهذه دالة توقف عمل دالة التبدٌل‪.‬‬
‫كما ترا عرفنا متغٌر وهو )‪ (optin‬ومعناه الخٌار (طبعا هناك خطاء فً اإلمالء)‪.‬‬
‫ثم استخدمنا دالة ‪ while‬لنقول للبرنامج مادام ‪ optin‬ال ٌساوي ‪ 3‬فاستمر فً البرنامج ثم طلبنا‬
‫من المستخدم إدخال خٌاره‪.‬‬
‫بعد ذالك وضعنا دالة ‪ switch‬لنبدل المتغٌر ‪optin .‬‬
‫وهنا بٌت القصٌد قلنا للبرنامج إذا كان ‪ optin‬تساوي ‪ 1‬فاحسب لنا ‪ sum‬بعد ذالك قمنا‬
‫بتبدٌل‪.‬‬
‫أي أننا قلنا للبرنامج فً حالة أن ال ‪ٌoptin‬ساوي ‪ 2‬فاحسب لنا ال‪ava .‬‬
‫طٌب هل أستطٌع أن أكتب البرنامج من دون استخدام ‪ switch‬؟‬
‫طبعا تستطٌع بإستخدام دوال الشرط ولكن تخٌل معً لو أن لدٌك عشر اختٌارات ماذا ستفعل؟!‬
‫هل تقوم بوضع عشر دوال شرطٌة أم تقوم بفعل ذالك عبر دالة التبدٌل؟‬
‫تنبٌه بسٌط إلى أهمٌة أمر ‪ break‬فً جمٌع حاالت دالة ‪ switch ....‬فإذا لم تكتب هذا األمر‬
‫فإن البرنامج ٌنفذ الحالة المطلوبة وٌنفذ أٌضا الحاالت التً أسفلها حتى نهاٌة دالة ‪switch .....‬‬

‫ومعنى أمر ‪ break‬هو" قف‪"...‬‬
‫هناك حالة افتراضٌة فً دالة ‪ switch‬وهً معرفة باسم ‪ default ....‬وتنفذ هذه الحالة إذا لم‬
‫ٌوافق الخٌار المدخل من المستخدم أٌا من الخٌارات المتاحة فً دالة ‪ switch ....‬مثل‬

‫كود‪:‬‬
‫;‪int we‬‬
‫;‪cin >> we‬‬
‫)‪switch(we‬‬
‫{‬
‫‪case 1:‬‬
‫;"‪cout<<"first‬‬
‫;‪break‬‬
‫‪case 2:‬‬
‫;"‪cout << "second‬‬

‫‪21‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

break;
default:
cout << "wrong";
break;
}

‫ وهذا مثال آخر‬default ...‫ هنا تنفذ حالة‬... ‫ مثال‬3 ‫فإذا أدخل المستخدم فً هذا المثال رقم‬
‫بسٌط لن أقوم بشرحه أعتقد أنه واضح‬
:‫كود‬
#include <iostream>
using namespace std;

int main(){

int mark;

cout<<" pls enter the mark:";

cin>>mark;
if(mark < 0 || mark > 100)
cout << " bad input \n";
else {
int markdiv10 = mark / 10 ;
switch (markdiv10) {
case 10:
case 9 : cout << "A";
break;
case 8 : cout << "B";
break;
case 7 : cout << "C";
break;
case 6 : cout << "D";
break;
default : cout << "F";

}
}
getchar ();
getchar ();

return 0;

}

22
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫أرجوا أن ٌكون الشرح واضحا‪.‬‬
‫وكذالك أرجوا أن تشرحوا المثال الذي طلبت منكم أن تشرحوه‪.‬‬
‫إلنه من المهم أن تفهموه ‪ .‬اذا أرجوا من جمٌع األعضاء محاولة شرحه حتى ولو كان خطئا‪,‬‬
‫المهم أن تحاول‪.‬‬
‫واألن إلى سؤال الواجب‪:‬‬
‫س‪ :1‬اكتب برنامج ٌطلب من المستخدم إدخال عشرة أرقام ثم ٌقوم البرنامج بحساب أكبر عدد‬
‫وذالك بإستخدام دالة‪for .‬‬
‫س‪ :2‬طلبت منك إحدى الشركات أن تصمم لها برنامجا بلغة ‪ c++‬لحساب رواتب الموظفٌن‪.‬‬
‫وهذه الشركة لها عدة طرق لحساب رواتب الموظفٌن فهناك موظفٌن ٌستلمون رواتب أسبوعٌة‬
‫وأخرون ٌستلمون نسبة ‪ %5,7‬على كل قطعة ٌتم بٌعها ‪ ,‬وآخرون ٌستلمون ‪ 250‬لاير وعلى‬
‫كل ساعة ‪ 20‬لاير ولكن إذا كان عدد الساعات فوق ‪ 10‬صار كل ساعة ب‪ 40‬لاير‪.‬‬
‫اكتب البرنامج بحٌث ٌطلب من المستخدم الضغط على‬

‫‪ -1‬لحساب رواتب الموظفٌن األسبوعٌة‬
‫‪ -2‬لحساب رواتب الموظفٌن بالقطعة‬
‫‪ -3‬لحساب النوع األخٌر من الموظفٌن‬

‫‪ -4‬للخروج من البرنامج‪.‬‬
‫لن ٌكون فً هذا الدرس سؤال اختٌاري ولكن حل ماتستطٌع أن تحله وأرسله لً‪.‬‬
‫وأسأل هللا لً ولكم التوفٌق فً الدنٌا واآلخرة‪.‬‬

‫شرح المثال من األخ ‪:the hero‬‬

‫كود‪:‬‬
‫;‪int x,y,z,d,s,sum,ava‬‬
‫;‪int optin‬‬

‫قمنا بتعرٌف ‪ 5‬متغٌرات من نوع‪int‬‬
‫واٌضا قمنا بتعرٌف الجمع والمعدل واالختٌار كمتغٌرات من نوع ‪int‬‬

‫كود‪:‬‬
‫{)‪while (optin != -1‬‬

‫وضعنا شرط فً داله ‪while‬‬
‫وهو اذا كان االختٌار ٌساوى ‪1-‬‬
‫فانه ٌتوقف عمل البرنامج‬
‫كود‪:‬‬
‫;‪cout<<"enter mumber1 :"<<endl‬‬
‫;‪cin>>x‬‬

‫‪23‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫هنا ٌتم ادخال العدد االول‬
‫كود‪:‬‬
‫;‪cout<<"enter number 2 :"<<endl‬‬
‫;‪cin>>y‬‬

‫ادخال العدد الثانً‬
‫كود‪:‬‬
‫;‪cout<<"enter mumber3 :"<<endl‬‬
‫;‪cin>>z‬‬

‫ادخل العدد الثالث‬
‫كود‪:‬‬
‫;‪cout<<"enter mumber4 :"<<endl‬‬
‫;‪cin>>d‬‬

‫ادخال العدد الرابع‬
‫كود‪:‬‬
‫;‪cout<<"enter mumber5 :"<<endl‬‬
‫;‪cin>>s‬‬

‫واخٌرا ‪ ,‬ادخال العدد الخامس<<<< اوووف مشوار‬

‫كود‪:‬‬
‫;‪sum=x+y+z+d+s‬‬

‫هذه المرحله ٌتم فٌها جمع االعداد‬
‫كود‪:‬‬
‫;‪ava=sum/5‬‬

‫هنا ٌتم حساب المعدل لالعداد‬
‫كود‪:‬‬
‫;‪cout<<"the sum is : "<<sum<<endl‬‬

‫هنا ٌتم طباعه المجموع‬
‫كود‪:‬‬

‫‪24‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫‪cout<<"the ava is : "<<ava<<endl‬‬

‫هنا تتم طباعه المعدل‬
‫كود‪:‬‬
‫‪cout<<"enter any number to contino or -1 to quit‬‬
‫;‪:"<<endl‬‬
‫};‪cin>>optin‬‬

‫هنا ٌطلب من المستخدم ادخال اي عدد الكمال البرنامج او ‪ 1-‬للخروج منه‬
‫والقوس المنبعج الغالق داله‪. while‬‬

‫شرح المثال من األخ ‪:somebody‬‬

‫كود‪:‬‬
‫;‪int x,y,z,d,s,sum,ava‬‬
‫‪int optin‬‬

‫;‬

‫اإلعالن عن ‪ 7‬متغٌرات ‪ ,‬خمسه خاصة باألرقام ‪,‬‬

‫ومتغٌرٌن خاصة بالمجموع والمتوسط ‪ ,‬ومتغٌر خاص باإلختٌار‪.‬‬

‫كود‪:‬‬
‫{)‪while (optin != -1‬‬

‫هنا نشترط طالما المدخل ال ٌساوي(‪ٌ , )1-‬كمل‬
‫كود‪:‬‬
‫;‪cout<<"enter mumber1 :"<<endl‬‬
‫;‪cin>>x‬‬
‫;‪cout<<"enter number 2 :"<<endl‬‬
‫;‪cin>>y‬‬
‫;‪cout<<"enter mumber3 :"<<endl‬‬
‫;‪cin>>z‬‬
‫;‪cout<<"enter mumber4 :"<<endl‬‬
‫;‪cin>>d‬‬
‫;‪cout<<"enter mumber5 :"<<endl‬‬
‫;‪cin>>s‬‬

‫عملٌات إسناد القٌم ‪ ,‬وإدخال األعداد بعد تحقٌق الشرط‪.‬‬
‫كود‪:‬‬
‫;‪sum=x+y+z+d+s‬‬

‫‪25‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫عرّ فنا المجموع ‪,‬وأسندنا المتغٌرات للمتغٌر ‪sum‬‬

‫كود‪:‬‬
‫;‪ava=sum/5‬‬

‫عرّ فنا المتوسط‪.‬‬
‫كود‪:‬‬
‫;‪cout<<"the sum is : "<<sum<<endl‬‬
‫;‪cout<<"the ava is : "<<ava<<endl‬‬

‫عملٌتٌن طباعة قٌمة المجموع والمعدل‪.‬‬
‫كود‪:‬‬
‫‪cout<<"enter any number to contino or -1 to‬‬
‫;‪quit :"<<endl‬‬
‫};‪cin>>optin‬‬

‫هنا ٌطلب من المستخدم إدخال أي عدد إلستمرار البرنامج ‪,‬‬

‫أو إدخال(‪ )1-‬إلنهاء وإغالق البرنامج‪.‬‬

‫كود‪:‬‬
‫;)"‪system("puase‬‬
‫};‪return 0‬‬

‫إنتهٌنا !‪ ,‬وعطٌكم العافٌهـ’ ’‬

‫الفصل الثالث‬
‫الدوال ‪function‬‬
‫فً الحقٌقة احترت كٌف اعرِّ ف الدوال‪ .‬ولكن ماٌجب أن تعرفه أن هذا الفصل سٌكون نقطة‬
‫تحول لحٌاتك البرمجٌة‪.‬‬
‫أستطٌع أن أقول أن الدوال هً برامج وسط برنامج‪.‬‬
‫ال أتوقع منك أن تفهم التعرٌف اآلن ولكن احفظ ذلك فإنه سٌتضح لك قرٌبا ‪.‬‬
‫‪26‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫ٌجب أن تعلم أن هناك نوعان من الدوال دوال ترجع بقٌمة ودوال ال ترجع بقٌمة‪ .‬سنأخذ كل‬
‫واحدة منهما على حدة‪.‬‬
‫ولكن قبل ذالك من المهم أن تعلم أن الدوال نكتبها خارج ال‪(main) .‬‬
‫تعلم أن األوامر البرمجٌة تكتب عادة داخل ‪ main‬ولكن فً هذا الفصل سنتعلم كتابته خارج‬
‫‪main‬ثم سنستدعٌه من داخل ال‪main .‬‬
‫أوال‪:‬الدوال التً ترجع بقٌمة‪:‬‬
‫وٌتم التعرٌف عنها باإلعالنات المعروفة ) …‪(int, float,char‬وإلٌك الطرٌقة لكتابة‬
‫الدالة‪:‬‬

‫كود‪:‬‬
‫)( ‪int Name‬‬

‫طبعا كما ترى أعل ّنا عن دالة تر ِجع عدداً صحٌحا ً و ‪ name‬أقصد به اسم الدالة التً ٌسمٌها‬
‫المبرمج‪.‬‬
‫مابٌن القوسٌن هً قٌم (متغٌرات) ٌضعها المبرمج‪.‬‬
‫وهً القٌم التً أٌضا تستقبلها الدالة‪.‬‬
‫وإلٌك طرٌقة اإلستدعاء‪:‬‬
‫كود‪:‬‬
‫)(‪Name‬‬

‫كما ترى تكون طرٌقة اإلستدعاء بذكر اسم الدالة‪.‬‬
‫والتً بٌن القوسٌن هً القٌم التً ترسلها الدالة ‪ main‬للدالة المستدعات‪.‬‬
‫دعك األن من الكالم النظري ودعنا نأخذ هذا المثال وهً دالة سأسمٌها دالة )‪(sum‬دالة‬
‫الجمع‪.‬وظٌفتها جمع عددٌن‪:‬‬
‫كود‪:‬‬
‫>‪#include <iostream‬‬
‫;‪using namespace std‬‬
‫)‪int sum(int x,int y‬‬
‫{‬

‫;‪int s= x+y‬‬
‫;‪return s‬‬
‫}‬

‫)( ‪int main‬‬
‫{‬
‫;‪int x,y‬‬
‫;" ‪cout<<"enter number :‬‬
‫;‪cin>>x>>y‬‬
‫;‪cout<<"the sum is : "<<sum(x,y)<<endl‬‬
‫;)"‪system("PAUSE‬‬
‫;‪return 0‬‬
‫}‬

‫‪27‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫سنركز األن على دالة الجمع ثم سنعرج على دالة ‪ main‬لشرح طرٌقة اإلستدعاء‪.‬‬
‫كود‪:‬‬
‫)‪int sum(int x,int y‬‬
‫{‬

‫‪int‬‬ ‫;‪s= x+y‬‬
‫;‪return s‬‬
‫}‬

‫فكما ترا أعل ّنا عن دالة تر ِجع قٌمة صحٌحة ثم سمٌنا هذه الدالة ب‪(sum ).‬‬
‫وعرفنا بٌن القوسٌن متغٌرٌن من نوع صحٌح (طبعا ما بٌن القوسٌن هً القٌم التً ستستقبلها‬
‫الدالة‪.‬‬
‫بعد ذالك قمنا بتعرٌف متغٌر آخر صحٌح وأسندنا له جمع ‪ x‬و‪y .‬‬
‫ثم قمنا بإرجاع قٌمة ‪ s‬عبر األمر البرمجً‪(return) .‬‬
‫األن لنذهب إلى الدالة الرئٌسٌة )‪ (main‬لندرس طرٌقة اإلستدعاء‪:‬‬
‫كود‪:‬‬

‫{)( ‪int main‬‬
‫;‪int x,y‬‬
‫;" ‪cout<<"enter number :‬‬
‫;‪cin>>x>>y‬‬

‫;‪cout<<"the sum is : "<<sum(x,y)<<endl‬‬

‫;)"‪system("PAUSE‬‬
‫};‪return 0‬‬

‫كما ترى فً البداٌة عرفنا متغٌرٌن من نوع صحٌح وأسمٌناه ‪ x‬و ‪ y‬وال ٌشترط أن نسمٌه بنفس‬
‫أسماء المتغٌرات التً فً دالة الجمع‪.‬‬
‫وأتوقع أنك تعرف الباقً لذا سأقوم بشرح طرٌقة اإلستدعاء‬
‫كود‪:‬‬
‫)‪sum(x,y‬‬

‫طبعا كما قلنا سابقا طرٌقة اإلستدعاء تكون بذكر اسم الدالة ووضع القٌم التً ترٌد أن ترسلها‬
‫بٌن القوسٌن‪.‬‬
‫هنا سٌتم إرسال قٌمة ‪ x‬التً ٌضعها المستخدم إلى دالة ‪ sum‬وسٌتم إسنادها إلى المتغٌر ‪ x‬فً‬
‫تلك الدالة ونفس الشئ مع ال‪(y).‬‬
‫بعد ذالك ستقوم دالة ال‪ sum‬بعملها وإرجاع قٌمة‪z .‬‬
‫طٌب ماذا لو قمت بتغٌر طفٌف فً اإلستدعاء فأصبح بهذا الشكل‪:‬‬
‫كود‪:‬‬
‫)‪sum(y,x‬‬

‫‪28‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫الذي سوف ٌحصل هو أن ال ‪y‬فً دالة ال ‪main‬ستسند إلى ال ‪x‬فً دالة ‪ sum‬وال ‪x‬فً دالة‬
‫ال ‪main‬ستسند إلى ال ‪y‬فً دالة‪sum .‬‬
‫هذا مثال اخر فٌه دالتان دالة ‪ sum‬ودالة‪ava :‬‬
‫كود‪:‬‬
‫>‪#include <iostream‬‬
‫;‪using namespace std‬‬
‫)‪int sum(int x,int y‬‬
‫{‬

‫‪int‬‬ ‫;‪s= x+y‬‬
‫;‪return s‬‬
‫}‬
‫)‪double ava(double x,double y‬‬
‫{‬
‫;‪double a=(x+y)/2‬‬
‫;‪return a‬‬
‫}‬

‫)( ‪int main‬‬
‫{‬
‫;‪int x,y‬‬
‫;" ‪cout<<"enter number :‬‬
‫;‪cin>>x>>y‬‬
‫;‪cout<<"the sum is : "<<sum(x,y)<<endl‬‬
‫;‪cout<<"the ava is : "<<ava(x,y)<<endl‬‬
‫;)"‪system("PAUSE‬‬
‫;‪return 0‬‬
‫}‬

‫لن نشرح هذا المثال أتوقع أنه واضح‪.‬‬
‫قاعدة‪:‬‬
‫استقبال القٌم للدالة ٌكون بٌن القوسٌن ‪ ....‬أما إرسال قٌم فً الدالة إلى خارج الدالة فٌكون عن‬
‫طرٌق‪return ....‬‬
‫ثانٌا‪ :‬الدوال التً ال ترجع بقٌمة‪ :‬طرٌقة اإلعالن عنها تكون هكذا‪:‬‬
‫كود‪:‬‬
‫)( ‪Void name‬‬

‫طبعا ‪ void‬معناه فارغ أي أنه الترجع بقٌمه‪.‬‬
‫والباقً نفس طرٌقة الدوال التً ترجع بقٌمة‪.‬‬
‫طبعا الدالة ‪ void‬الترجع بقٌمة لذالك التحتوي على األمر‪(return ).‬‬
‫طٌب ما فائدة هذه الدوال التً ال ترجع بقٌمة؟‬
‫أقول لك فائدتها تكون فً حفظ الخطوات‪.‬‬
‫ٌعنً لو عندك خطوات وأوامر برمجٌة تتكرر هل تقوم بكتابتها فً كل مرة أم تقوم بوضعها فً‬
‫دالة وتستدعٌها عند الحاجة ‪.‬‬
‫سنأخذ اآلن مثال على هذه الدوال وهذا المثال هو الواجب اإلختٌاري (البرنامج الذي ٌطبع كلمة‬
‫‪29‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫( إذا كان فردي) طبعا البرنامج ال ٌرجع قٌمة لذالك سٌكون‬odd) ‫(إذا كان زوجً و‬even)
void :‫من نوع‬
:‫كود‬
#include<iostream>
using namespace std;
void math(int number)
{
if(number%2==0)
cout<<"even";
else
cout<<"odd";
}
int main()
{
int number;
cout<<"enter number:";
cin>>number;
math(number);
getchar ();
getchar ();
return 0;
}

‫إلى‬main ‫فكما ترى طرٌقة اإلستدعاء سهلة مجرد كتابة اسم الدالة ووضع القٌم المرسلة من ال‬
.‫بٌن قوسٌن‬math ‫ال‬
‫طبعا طرٌقة القوسٌن هذه أظن أنها معقدة قلٌال لذا سأعدل على البرنامج السابق (حتً ٌتضح لك‬
:‫ وبذالك لن نضع قٌم بٌن قوسٌن‬math ‫فائدة القوسٌن أكثر )وسأضع إدخال القٌم داخل دالة‬
:‫كود‬
#include<iostream>
using namespace std;
void math()
{
int number;
cout<<"enter number:";
cin>>number;
if(number%2==0)
cout<<"even";
else
cout<<"odd";}
int main()
{
math();
getchar ();
getchar ();
return 0;
}

30
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫فكما ترى لم نضع قٌم بٌن القوسٌن وذالك ألننا لن نرسل قٌم من ال ‪main‬إلى ال‪math .‬‬
‫فً الدوال ‪ :‬األمر ‪ٌ return‬نهً عمل الدالة فمثال فً الكود التالً‪:‬‬

‫كود‪:‬‬
‫)‪int sum (int n1 , int n2‬‬
‫{‬
‫;‪int sum = n1+n2‬‬
‫;‪return sum‬‬
‫;"‪cout << "END‬‬
‫}‬

‫إذا استدعٌنا الدالة فً الـ ‪main‬فلن تطبع النص "‪ "END‬ألن الدالة تنتهً عند أمر ‪return‬‬
‫‪....‬‬

‫وكذلك فً الدوال من نوع ‪ void ....‬كالتالً‪:‬‬

‫كود‪:‬‬
‫)‪void sum (int n1 , int n2‬‬
‫{‬
‫;‪int sum = n1+n2‬‬
‫;‪cou << sum‬‬
‫;‪return‬‬
‫;"‪cout << "END‬‬
‫}‬

‫هنا الدالة ستطبع المجموع ثم تنتهً عند أمر ‪ return ....‬لكن الحظ هنا أمر ‪ return‬كتبناه‬
‫بمفرده ألن الدالة ‪ void‬فهً ال ترجع أي قٌمة‪...‬‬
‫أرجوا أن ٌكون الشرح واضح‪.‬‬
‫إخوانً وأخواتً هذا الفصل فً الحقٌقة كبٌر جدا فٌه تفاصٌل ومعلومات كثٌىرة لم أذكرها‬
‫(أعنً هناك طرٌقة أخرى لكتابة الدوال وشئ من هذا القبٌل(‪....‬‬
‫ولكن ماوضعته هنا هو مجرد األساس واألساس فقط‪.‬‬

‫*واألن إلى سؤال المشاركة‪:‬‬
‫كود‪:‬‬
‫>‪#include <iostream‬‬
‫;‪using std::cout‬‬
‫;‪using std::cin‬‬

‫)(‪int main‬‬
‫{‬

‫;‪int x, number = 1‬‬
‫‪31‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫;" ‪cout << "Enter integer:‬‬

‫;‪cin >> x‬‬

‫)‪if (x > 0‬‬
‫{‬
‫)‪while (x > 0‬‬
‫{‬
‫;‪number *= x‬‬
‫;‪x--‬‬
‫}‬

‫;‪cout << "number: " << number‬‬
‫;)( ‪getchar‬‬
‫;)( ‪getchar‬‬

‫;‪return 0‬‬
‫}‬
‫}‬

‫اشرح لً هذه الدالة واذكر لً فائدتها‬
‫والسؤال الثانً وهو مشاركة‪:‬‬
‫عدد فوائد الدوال‪.‬‬
‫واألن إلى سؤال الواجب‬
‫س‪ :1‬اكتب برنامجا رٌاضٌا بحٌث ٌطلب البرنامج من المستخدم إدخال عددٌن ثم ٌقوم بسؤال‬
‫المستخدم عن العملٌة المطلوبة بحٌث تكون‬
‫‪-1‬للضرب‬
‫‪-2‬للقسمة‬
‫‪-3‬للجمع‬
‫‪ -4‬للطرح‬
‫طبعا ٌكتب البرنامج على طرٌقة الدوال أي سٌكون لدٌك ‪ 4‬دوال‪.‬‬
‫الفصل القادم سٌكون عن المصفوفات وهوا إنشاهللا آخر فصل‪.‬‬
‫كان من المفروض أن ٌكون الفصل األخٌر هو ال ‪class‬ولكن فً الحقٌقة لٌس لدي وقت‬
‫ألكتب هذا الفصل لذا أرجوا منكم أن تعذرونً ‪.‬‬
‫وبالنسبة للفصل القادم هل ترٌدون أن أضع واجب أم مشروع‪.‬‬

‫شرح المثال من األخت ‪: miss computer‬‬

‫‪32‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫السالم علٌكم ورحمة هللا وبركاته‪..‬‬

‫ه ذه محاولتً لإلجابة عن السؤال تبع المشاركة‬

‫كود‪:‬‬
‫;‪int x, number = 1‬‬

‫عرفنا عددٌن‪ number‬اعطٌناه قٌمة =‪ 1‬والعدد ‪x‬متغٌر ٌؤخذ من الٌوزر‬

‫كود‪:‬‬
‫;" ‪cout << "Enter integer:‬‬

‫;‪cin >> x‬‬

‫طلبنا من الٌوزر ادخال قٌمة للرقم ‪x‬صحٌحة ‪..‬‬

‫كود‪:‬‬
‫)‪if (x > 0‬‬
‫{‬
‫)‪while (x > 0‬‬
‫{‬
‫;‪number *= x‬‬
‫;‪x--‬‬
‫}‬

‫اذا كانت القٌمة المدخلة عدد موجب سندخل فً الحلقة ‪ while‬وسٌقوم البرنامج بالتحقق من‬
‫قٌمة ‪ x‬اذا كانت موجبة فً كل مرة تدور فٌها الحلقة‬
‫والمعادلة المكتوبة تعنً ان نضرب ال ‪number‬اللً هو فً االساس =‪ 1‬نضربه فً ‪ x‬اللتً‬
‫ٌحصل لها تناقص فً كل مره بواحد)‪(x--‬‬
‫وراح ٌتوقف الدوران فً الحلقة اذا كانت قٌمه ‪ x‬سالبة تبعا للشرط)‪while (x > 0‬‬

‫كود‪:‬‬
‫;‪cout << "number: " << number‬‬

‫بعد ذلك نطبع النتٌجة االخٌرة للرقم‬
‫***************************‬
‫الفائدة من البرنامج‬
‫استخراج المضروب‪...‬‬
‫‪33‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫بمعنى مثال لو دخل الٌوزر قٌمة للـ ‪x‬مثال لنقل خمسة‪..‬‬
‫راح ٌكون الناتج‬
‫‪number=120‬‬
‫الن مضروب الخمسه = ‪1*2*3*4*5‬‬

‫الفصل الرابع‬
‫المصفوفات‬
‫هً مجموعة متغٌرات مترابطة مع بعضها‪.‬‬
‫أعنً بهذا التعرٌف تذكرون الواجبات والتمارٌن التً أخذناها من قبل بعضها كانت تحوي على‬
‫أكثر من متغٌر ونعمل علٌها نفس الحسابات‪ .‬اآلن ال حاجة لنا لنعرّ ف أكثر من متغٌر نستطٌع‬
‫أن نضع مصفوفة تحوي على هذه المتغٌرات ثم نتعامل معها كمتغٌر واحد‪.‬‬
‫أعنً تخٌل أنه قد طلب منك كتابة برنامج خاص لمدرسة ما وهذا البرنامج ٌطلب من المستخدم‬
‫إدخال درجة الطالب ورقمه واسمه ثم ٌقوم البرنامج بحفظ اسم الطالب ورقمه ودرجته‪ ,‬وهناك‬
‫مائة طالب هل ستقوم بإعالن عن مائة متغٌر؟! أم ستكتفً بمصفوفة واحدة ٌحوي على مائة‬
‫متغٌر‪.‬‬
‫طبعا لن أكتب البرنامج اآلن سأكتبه بعد أن نأخذ طرٌقة كتابة األكواد‪.‬‬
‫اآلن سأشرح طرٌقة حفظ المتغٌرات‪:‬‬
‫ٌجب أن تعلم أن الطرٌقة المتبعة فً حفظ المتغٌرات تكون بحفظ المتغٌر فً خانة نعٌنه وتعطى‬
‫فً هذه الخانه عنوان للمتغٌر(انضر للجدول اآلتً)‪:‬‬

‫‪34‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫)هذا الجدول أخذ من كتاب ‪ c++‬للمبتدئٌن للمؤلف‪ :‬خللٌل األمٌن عبدالجواد(‬
‫كما ترى هذه مصفوفة حجمها خمسة وأول عنصر هو )‪ (13‬وموقعه هو الصفر والعنصر‬
‫الثانً هو (‪ )16‬وموقعه (‪ )1‬وهكذا(تالحظ أن المصفوفة بدأت بالصفر وهذا فً ال ‪c++‬‬
‫حٌث إذا أعطٌت مصفوفة ما حجم ما فسوف تبداء بالصفر ٌعنً لو عرّ فت مصفوفة حجمها‬
‫عشرة فسوف تبداء المصفوفة من الصفر إلى ‪9‬‬
‫اآلن سوف نأخذ كٌف تتم كتابة األكواد وكٌف ٌتم اإلعالن عن المصفوفة وكذالك كٌف ٌتم إسناد‬
‫القٌم‪.‬‬
‫أما اإلعالن عن المصفوفة فهذه طرٌقتها‪:‬‬

‫كود‪:‬‬
‫‪Int‬‬ ‫;]‪ar[n‬‬

‫كما ترى اإلعالن عن المصفوفة ٌكون مثل اإلعالن عن متغٌر ولكن اإلختالف ٌكون بهذه‬
‫األسهم( ]‪ [n‬معنى حرف ال ‪n‬هو أي عدد ٌدخله المبرمج) فائدة هذه األقواس هً تحدٌد حجم‬
‫المصفوفة‪.‬‬
‫وٌقصد بالحجم هو عدد العناصر المدخلة من قبل المستخدم والمبرمج‪.‬‬
‫طٌب كٌف ٌتم إسناد القٌم للعناصر؟‬
‫تتم بهذه الطرٌقة‪:‬‬
‫كود‪:‬‬
‫;}‪Int ar[5]={1,2,3,4,5‬‬

‫هنا اعالنا عن مصفوفة حجمها ‪ 5‬وقد أسندنا إلٌها القٌم‪.‬‬
‫فً هذا اإلعالن لو وضعت هذه الدالة‪:‬‬
‫كود‪:‬‬
‫;]‪Cout<<ar[0‬‬

‫فسوف ٌخرج قٌمة (‪ ,)1‬ولو وضغت مكان الصفر (‪ )3‬فسوف ٌخرج البرنامج قٌمة ‪ 4‬وهكذا‪.‬‬
‫طبعا هناك أكثر من طرٌقة إلسناد القٌم للعناصر‪.‬‬
‫أستطٌع مثال أن أسند القٌم للعنصر الذي أرٌده بهذا الكود‪:‬‬
‫كود‪:‬‬
‫;}‪ar[3]={4‬‬

‫‪35‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫هنا أصبح العنصر الثالث ٌحوي على العدد اربعة‪.‬‬
‫بل أستطٌع أن أجعل المستخدم ٌسند القٌم للعناصر بهذه الطرٌقة‪:‬‬
‫كود‪:‬‬
‫>‪#include<iostream‬‬
‫;‪using namespace std‬‬
‫)( ‪int main‬‬
‫{‬
‫;]‪int ar[6‬‬
‫)‪for(int i=0;i<6;i++‬‬
‫{‬
‫;"‪cout<<"enter number :\n‬‬
‫;]‪cin>>ar[i‬‬
‫}‬

‫;)"‪system("pause‬‬
‫;‪return 0‬‬
‫}‬

‫أما طرٌقة اإلخراج ٌكون بإستبدال دالة ‪ cin‬ب‪cout .‬‬
‫السالسل النصٌة‪:‬‬
‫فً الحقٌقة لٌس لدي وقت لشرح عن السالسل ولكن سأتكلم عنها بإختصار‪.‬‬
‫السالسل النصٌّة اسم على مسمى فأنت تضع مصفوفة وتضع فً كل عنصر حرف واحد ثم‬
‫سٌتم تجمٌع هذه الحروف على شكل كلمة انضر للكود التالً‪:‬‬
‫كود‪:‬‬
‫;}'‪char ar[5] = {'h','e','l','o','\0‬‬

‫كما ترى فً هذا الكود عرّ فنا على مصفوفة تقبل الحروف ووضعنا كلمة ) ‪ (helo‬ولكن قمنا‬
‫ٌتقسٌم األحرف كل حرف فً خانة‪.‬‬
‫وهذا امر متعب فتخٌل أنك تطلب من المستخدم إدخال اسمه الرباعً فهل سٌقوم ٌتقسٌم‬
‫األحرف؟‬
‫فً الحقٌقة هناك دالة ترٌحك من عنى التقسٌم وهذه الدالة‬
‫هً دالة ال‪string.‬‬
‫دالة ال ‪string‬لٌست ضمن دوال ال ‪iostream‬لذالك وجب استدعائها‪.‬‬
‫وانضر إلى هذا البرنامج وهو البرنامج الذي أخبرتكم عنه فً أول الفصل‪.‬‬
‫طبعا لن أجعله مائة طالب سأكتفً بعشر طالب‪.‬‬
‫وهذا البرنامج ٌحتوي على ثالث دوال‪.‬‬
‫دالة لكتابة اسم الطالب ورقمه وإعطاء درجته ‪,‬والدالة الثانٌة للبحث عن رقم الطالب وإظهار‬
‫درجته‪.‬‬
‫أما الدالة األخٌره فتطبع أرقام الطالب حٌث ٌطبع أرقام جمٌع الطالب واسمائهم ودرجاتهم ‪.‬‬
‫أما إذا كان رقم الطالب صفر فهذا ٌعنً أن الطالب لم ٌسجل فً النضام‪.‬‬
‫كود‪:‬‬
‫>‪#include<iostream‬‬
‫>‪#include<string‬‬
‫;‪using namespace std‬‬
‫‪36‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

void stu(int id[10],string name[10],int mark[10])
{
int a;
cout<<"give studint number : ";
cin>>a;
if(a>10)
cout<<"roeng data";
else
{
id[a]=a;
cout<<"enter his name : ";
cin>>name[a];
cout<<"enter his mark : ";
cin>>mark[a];
}
}
void serch(int id[10],string name[10],int mark[10])
{
int a;
cout<<"enter the number of studint : ";
cin>>a;
cout<<"the name is : "<<name[a]<<endl;
cout<<"the mark is : "<<mark[a]<<endl;
}
void print(int id[10],string name[10],int mark[10])
{
cout<<"number \t"<<"name\t"<<"mark"<<endl;
for (int i=1;i<10;i++)
{
cout<<id[i]<<"\t"<<name[i]
<<"\t"<<mark[i]<<endl;
}
}
int main ()
{
int option;
int id[10]={0,0,0,0,0,0,0,0,0,0};
string name[10];
int mark[10]={0,0,0,0,0,0,0,0,0,0};
while (option!=4)
{
cout<<" 1-for studint info\n 2- for search
\n 3- for print alist \n 4- for quet: ";
cin>>option;
switch (option)
{
case 1:
stu(id,name,mark);
break;
case 2:

37
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫;)‪serch(id,name,mark‬‬
‫;‪break‬‬
‫‪case 3:‬‬
‫;)‪print(id,name,mark‬‬
‫;‪break‬‬
‫}‬
‫}‬
‫;)"‪system("pause‬‬
‫;‪return 0‬‬
‫}‬

‫من خصائص المصفوفة من نوع ‪ int‬أو ‪ double‬أو ‪ float :‬أنك إذا أسندت قٌمة إلى أول‬
‫عنصر تلقائٌا ٌسند ‪ 0‬إلى العناصر األخرى ‪ ....‬فبدال من أن تكتب‪:‬‬
‫;}‪int id[10]={0,0,0,0,0,0,0,0,0,0‬‬

‫تكتفً بكتابة‪:‬‬
‫;}‪int id[10] = {0‬‬
‫وستسند إلى باقً العناصر ‪....0‬‬
‫كما ترى لم نحتج إلى عشر متغٌرات بل مصفوفة واحدة ألرقام الطالب وهذا ماعنٌته فً أول‬
‫الفصل‪.‬وهذا مثال على المصفوفات والسالسل النصٌّة وسٌفٌدك كثٌرا فً المشروع ‪.‬‬
‫أرجوا أن ٌكون الشرح واضح‪.‬‬
‫لن أضع واجب فً هذا الفصل بل سأضع مشروع بعد أن ٌضع أخوي برقاوي درس الكالس ‪.‬‬
‫لذا ارجوا إن كان هناك سؤال ما أو اقتراح أرجوا أن تطرحه بال تردد‪.‬‬
‫وأخٌرا أحب أن أشكر أخوي برقاوي الذي ساندنً وساعدنً فً هذه الدورة والذي لو امتدحته‬
‫إلى غدا فلن أوفٌه حقه‪.‬‬
‫ولكنً أسأل هللا أن ٌجزٌه عنا كل خٌر‪ .‬وكذالك أرجوا منكم أن تدعوا له ولً ولجمٌع‬
‫المشاركٌن بالخٌر والصالح والتوفٌق لنا ولوالدٌنا‪.‬‬

‫الكالس‪..... CLASS :‬‬

‫‪38‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫أوال ‪ :‬لماذا نستخدم الكالس ؟‬
‫نستخدم الكالس لتنظٌم الدوال والمتغٌرات وترتٌبها ‪ ....‬والكالس أٌضا هو أساس البرمجة‬
‫الكائنٌة أي بواسطة الكائنات‪(bjects) ...‬‬

‫طٌب اآلن كٌف نعرف الكالس ؟‬

‫أوال تكتب كلمة ‪ class‬ثم تكتب اسم الكالس ثم تفتح قوس منبعج لبداٌة الكالس (}) وفً نهاٌة‬
‫الكالس قوس منبعج مع فاصلة منقوطة){;(‬
‫مثال‪:‬‬

‫كود‪:‬‬
‫‪class person‬‬
‫{‬

‫;}‬

‫اآلن تضٌف الدوال والمتغٌرات اللً تبغى ‪ ....‬مثال‪:‬‬

‫كود‪:‬‬
‫‪class person‬‬
‫{‬
‫‪public:‬‬

‫;‪int age‬‬
‫;‪int phone‬‬
‫;‪string name‬‬

‫)(‪void display‬‬
‫{‬
‫;‪cout<<"name : "<<name<<endl‬‬
‫;‪cout<<"age : "<<age<<endl‬‬
‫;‪cout<<"phone : "<<phone<<endl‬‬
‫}‬

‫;}‬

‫طبعا أضفت ثالثة متغٌرات ودالة واحدة كمثال‪....‬‬
‫الجدٌد هنا كلمة ‪ public :‬هذه الكلمة تعنً أن المتغٌرات والدوال التً تكون تحتها ٌكون‬
‫تصرٌحها عام ‪ٌ ....‬عنً ٌمكن استعمال هذه الدوال أو المتغٌرات فً أي دالة خارج الكالس‬
‫ومنها دالة الـ ‪main‬وسنعرف ذلك الحقا‪...‬‬

‫اآلن سنعرف كٌف نصل لمحتوى الكالس ؟؟؟‬
‫إذا أردت الوصول إلى محتوى الكالس تقوم أوال بتعرٌف كائن لهذا الكالس )‪ (object‬تصل‬
‫بواسطته إلى محتوى الكالس‪....‬‬
‫مثال‪:‬‬
‫‪39‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

:‫كود‬
#include <iostream>
#include <string>
using namespace std;

class person
{
public:

int age;
int phone;
string name;

void display()
{
cout<<"name : "<<name<<endl;
cout<<"age : "<<age<<endl;
cout<<"phone : "<<phone<<endl;
}

};

int main()
{
person Barqawee;
Barqawee.name = "Barqawee";
Barqawee.age = 23;
Barqawee.phone = 0555555555;
Barqawee.display();

system("pause");
return 0;
}

Barqawee ...‫ وسمٌته‬person ‫أوال عرفت كائن لكالس‬main ‫فً دالة الـ‬
‫ثم أسندت قٌم لمتغٌرات الكالس مثل أي متغٌرات أخرى لكن ٌكون استدعائها عن طرٌق الكائن‬
Barqawee ....
display ...‫ثم استدعٌت دالة‬

==========================================
....‫ الخاص‬: ‫ ومعناه‬private ‫اآلن سنرى النوع الثانً من التصارٌح لمحتوٌات الكالس وهو‬
private :‫ مع تصرٌح‬person ‫نرى اآلن كالس‬

:‫كود‬
class person
{
private:

40
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫;‪int age‬‬
‫;‪int phone‬‬
‫;‪string name‬‬

‫‪public :‬‬

‫)(‪void display‬‬
‫{‬
‫;‪cout<<"name : "<<name<<endl‬‬
‫;‪cout<<"age : "<<age<<endl‬‬
‫;‪cout<<"phone : "<<phone<<endl‬‬
‫}‬

‫;}‬

‫أصبحت اآلن المتغٌرات الثالث خاصة بالكالس فقط وممنوع استدعائها خارج الكالس ‪ ...‬فمثال‬
‫لو كتبنا الـ ‪main‬مثل المثال السابق‪:‬‬

‫كود‪:‬‬
‫)(‪int main‬‬
‫{‬
‫;‪person Barqawee‬‬
‫;"‪Barqawee.name = "Barqawee‬‬
‫;‪Barqawee.age = 23‬‬
‫;‪Barqawee.phone = 0555555555‬‬
‫;)(‪Barqawee.display‬‬

‫;)"‪system("pause‬‬
‫;‪return 0‬‬
‫}‬

‫هنا سٌصبح عندنا ثالثة أخطاء فً الترجمة ‪ ....‬وهً األسطر التالٌة‪:‬‬

‫كود‪:‬‬
‫;"‪Barqawee.name = "Barqawee‬‬
‫;‪Barqawee.age = 23‬‬
‫;‪Barqawee.phone = 0555555555‬‬

‫والخطأ هنا أننا استدعٌنا المتغٌرات الثالثة وهً‪private ....‬‬

‫طٌب األن كٌف نسند قٌم لهذه المتغٌرات أو نستدعٌها ؟؟؟‬
‫الحل ٌكون بإنشاء دوال تقوم بهذه المهام وتكون ‪ public ...‬كالتالً‪:‬‬

‫كود‪:‬‬
‫‪class person‬‬
‫{‬
‫‪private:‬‬
‫‪41‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

int age;
int phone;
string name;

public :

void setName(string n)
{
name = n;
}

string getName()
{
return name;
}

void setAge(int g)
{
age = g;
}

int getAge()
{
return age;
}

void setPhone(int p)
{
phone = p;
}

int getPhone()
{
return phone;
}

void display()
{
cout<<"name : "<<name<<endl;
cout<<"age : "<<age<<endl;
cout<<"phone : "<<phone<<endl;
}

};

:‫هكذا‬main ‫ فتصبح الـ‬..... ‫اآلن نقدر نسند قٌم إلى متغٌرات الكالس وأٌضا نستدعٌها‬

:‫كود‬

42
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

int main()
{
person Barqawee;
Barqawee.setName("Barqawee");
Barqawee.setAge(23);
Barqawee.setPhone (0555555555);
Barqawee.display();

system("pause");
return 0;
}

:‫ مثال‬... ‫أٌضا ممكن نستدعً أحد قٌم الكالس عن طرٌق أحد الدوال التً أنشئناها‬
:‫كود‬
int MyAge = Barqawee.getAge();

===============================

(constructor) ....‫باقً معنا آخر نقطة مهمة وهً دالة البناء‬
.... ‫ وٌكون اسم دالة البناء نفس اسم الكالس‬.... ‫هذه الدالة تنفذ أول ما تعرف كائن لهذا الكالس‬
public ....‫والبد أن تكون‬
person :‫نضٌف اآلن دالة بناء على الكالس‬

:‫كود‬
class person
{
private:

int age;
int phone;
string name;

public :

person ()
{
age = 0;
phone = 0;
name = "";
cout << "person has been built";
}

void setName(string n)
{
name = n;
}

43
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫)(‪string getName‬‬
‫{‬
‫;‪return name‬‬
‫}‬

‫)‪void setAge(int g‬‬
‫{‬
‫;‪age = g‬‬
‫}‬

‫)(‪int getAge‬‬
‫{‬
‫;‪return age‬‬
‫}‬

‫)‪void setPhone(int p‬‬
‫{‬
‫;‪phone = p‬‬
‫}‬

‫)(‪int getPhone‬‬
‫{‬
‫;‪return phone‬‬
‫}‬

‫)(‪void display‬‬
‫{‬
‫;‪cout<<"name : "<<name<<endl‬‬
‫;‪cout<<"age : "<<age<<endl‬‬
‫;‪cout<<"phone : "<<phone<<endl‬‬
‫}‬

‫;}‬

‫اآلن أول ما تعرف كائن لهذا الكالس فً الـ ‪main‬وتطبق البرنامج تحصل إن دالة البناء تطبق‬
‫تلقائٌا مع تعرٌف الكائن‪....‬‬

‫===================‬

‫هذه أساسٌات الكالس ‪ ....‬أرجوا أن ٌنفع هللا بها وأن ٌكون الدرس واضح‪....‬‬
‫وهناك أشٌاء أخرى مثل ‪ static‬و فصل الكالس فً ملفٌن و الدالة الهادمة‪destructor‬‬
‫وغٌرها ‪ ....‬إذا ودكم أطرحها ما عندي مانع‪....‬‬

‫=================‬

‫سؤال ذكاء ‪ :‬ماذا لو تم تعرٌف دالة البناء كـ ‪private‬؟؟‬
‫‪44‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫=========================‬

‫ملحق‬

‫حل الواجبات‪:‬‬

‫الفصل األول‬

‫ج‪ :1‬حل األخ صامت‪:‬‬

‫>‪#include <iostream‬‬

‫; ‪using namespace std‬‬
‫)( ‪int main‬‬

‫{‬

‫; ‪double x,y,z,s,k,Sum ,Average‬‬
‫‪45‬‬
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

cout<<"Enter 5 numbers\n";
cin>>x>>y>>z>>s>>k ;
Sum=x+y+z+s+k ;
Average=Sum/5 ;
cout<<" The sum is = " << Sum <<endl;
cout<<" The average is = " << Average <<endl ;

getchar () ;
getchar () ;
return 0 ;}

:2‫ج‬

#include<iostream>
using std::cout;
using std::cin;
using std::endl;
int main(){
int number;
cout<<"pleas enter 5 digits number: ";
cin>>number;
cout<<number/10000<<endl;
cout<<(number%10000)/1000<<endl;
cout <<(number%1000)/100<<endl;
cout<<(number%100)/10<<endl;
cout<<(number%10)<<endl;
system("pause");
system("pause");
return 0;}

:ً‫ من األخت الطموح السام‬1‫ج‬

#include<iostream>
using namespace std;

int main()
{

int mark;

cout<<"enter your mark"<<endl;

46
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

cin>>mark;

if(mark<0||mark>100)
cout<<"wrong mark"<<endl;

if(mark>90)
cout<<"a"<<endl;

if(mark>80)
cout<<"b"<<endl;

if(mark>70)
cout<<"c"<<endl;

if(mark>60)
cout<<"d"<<endl;
else
cout<<"e"<<endl;

return 0;
}

:ً‫ من األخت الطموح السام‬2‫ج‬

#include<iostream>
using namespace std;

int main()

{

int num1,num2,num3,largest,smallest;

cout<<"enter the three number"<<endl;

cin>>num1>>num2>>num3;

largest=num1;
smallest=num1;

if(num1>largest)
largest=num1;

if(num2>largest)
largest=num2;

if(num3>largest)
largest=num3;
47
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

if(num1<smallest)
smallest=num1;

if(num2<smallest)
smallest=num2;

if(num3<smallest)
smallest=num3;

cout<<"the largest is:"<<largest<<endl;
cout<<"the smallest is:"<<smallest<<endl;
return 0;}

: the hero ‫ من األخ‬3‫ج‬

#include<iostream>

using namespace std;

int main()
{
int number ;
cout << "please enter number:" << endl ;
cin >> number ;

if ( number%2==0 )
cout << "the number is even" << endl ;

else
cout <<"the number is odd" << endl ;

system ("pause");
return 0 ;

ً‫الفصل الثان‬

48
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

:ً‫حل األخت الطموح السام‬

1‫ج‬

#include<iostream>
using namespace std;

int main()
{
int num;
int largest=0;

for(int i=0;i<=10;i++)
{

cout<<"enter the number";
cin>>num;

if(num>largest)

largest=num;}
cout<<"the largest is:"<<largest<<endl;
system("pause");

return 0;}

:‫ حل األخت أحلى روح‬2‫ج‬

#include <iostream>
using namespace std;
int main()
{
int option,choois;
float salary,n,h,w;

while(option!=4)
{
cout<<"Enter your choois : 1-For calculating the
salaries of staff weekly. 2-For calculating the salaries
of staff piecework. 3-For calculating the salaries of
other type of staff. 4-Out of the program:- ";
cin>>choois;
switch(choois)
{
case 1:
cout<<"Enter salaries :- ";

49
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

cin>>salary;
cout<<"salaries =
"<<salary<<endl;
break;
case 2:
cout<<"How Bit Rate :- ";
cin>>n;
cout<<(n/100)*5.7<<endl;
break;
case 3:
cout<<"How many hours you are
working :- ";
cin>>h;
if(h<=10)
w=(h*20)+250;
else
w=(h*40)+250;
cout<<w<<endl;
break;
case 4:
cout<<"exit\n";
break;
default :
cout<<" wrong\n";
}
cin>>option;

}

system("PAUSE");
return 0;}

50
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫الفصل الثالث‬

the hero ‫ من حل أخونا‬1‫ج‬

#include<iostream>
using namespace std;

float sum ( float x , float y){
float s=x+y;
return s;}

float subtract ( float x , float y){
float s=x-y;
return s;}

float multiple ( float x , float y){
float m=x*y;
return m;}

float divide (int x ,int y){
float d=x/y;
return d;}

int main()
{
float x,y;
int option;

cout<<"enter 2 numbers:\n"<<endl;
cin>>x>>y;

cout<<"select opration:\n"<<"1 for
summation\n"<<"2 for substraction\n"<<"3 for
multiplcation\n"<<"4 for division\n"<<endl;
cin>>option;

switch(option){
case 1:{

cout<<sum(x,y)<<"\n";
break;}

case 2:{

cout<<subtract(x,y)<<"\n";
break;}

case 3:{

51
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

cout<<multiple(x,y)<<"\n";
break;}

case
4:{

cout<<divide(x,y)<<"\n";

break;}

default :

cout<<"error"<<endl;}

system ("pause");

return 0;

}cout<<"error"<<endl;}

system ("pause");

return 0;}

52
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

‫المشروع‬

include<iostream>
#include<string>
using namespace std;
void Reservation (int seat[10], string name[80] ,int
a)//Reservation
{
int clas;

cout<<"enter youer seat from 1 to10
"<<endl
<<" if the stion is 1 that meen the seat
have been token:"<<endl;
cout<<"seat\t"<<"stion"<<endl;
for (int i=1;i<=10;i++){
cout<<i<<"\t"<<seat[i]<<endl;}

cin>> a;
seat[a]=1;
cout<<"enter youer name:";
cin>>name[a];
}

void print (int seat[10] , string name[80],int
a){//print
cout<<"enter youer seat:";
cin>>a;
cout<<"youer seat is :"<<a<<"\t"<<"youer name is
:"<<name[a];}
void cancel(int seat[10] , string name[80],int a){
cout<<"enter youer seat";
cin>>a;
seat[a]=0;
name[a]=" ";}//end print

int main (){//main
string name[80];

53
‫ملتقى طالب و طالبات جامعة اإلمام محمد بن سعود اإلسالمٌة‬

int
seat[11]={0,0,0,0,0,0,0,0,0,0};
int a,option;
while (option != 4){
cout<<endl<<"1-Make Reservation"<<endl
<<"2-Cancel Reservation"<<endl
<<"3-Print Passengers list"<<endl
<<"4-qouet"<<endl;

cin>>option;
switch (option){
if (option==1)
case 1:
Reservation(seat,name,a);
break ;
case 3:
print(seat,name,a);
break;
case 2:

cancel(seat,name,a);

}}
system("pause");
return 0;}

54