12.07.2015 Views

تعلم لغة ++C

تعلم لغة ++C

تعلم لغة ++C

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

المؤلف:‏ مجلاد مشاري السبيعيالبريد الإلكتروني:‏ magedxl@hotmail.comيمكنكم مراسلتي إذا كان هناك آي مشاكل متعلقة بعدم التوضيح أو نحوه مما يوجد في هذا الكتاب...ممنوع منعا باتا طباعة أو اقتباس أي جزء من هذا الكتاب بدون أذن خطي من المؤلفPDF created with pdfFactory Pro trial version www.pdffactory.com


،*حقوق الطبع محفوظة©‏ال برامج المذك ورة ف ي ه ذا الك تاب م ثل " "Windows visual‏"وغ "++c يرها علام ات تجارية أو علاماتمس جلة لاص حابها والمؤل ف يح ترم ه ذه العلام ات ويق ر به ا لاص حابها ول م يذك رها تص ريحا ف ي الك تاب طل باللاختصار.‏المؤل ف لا يع د مس ؤولا ب أي ش كل ص ريحا أو ض منيا ع ن أي ن تائج تترت ب ع ن اس تخدام المعلوم ات الت ييحتويها الكتاب أو آي تعديلات يجريها القارئ عليها.‏* جميع الآراء وما كتب في هذا الكتب تعبر عن رأي المؤلف شخصيا.‏الكتاب مجاني %100 ولا يحق لاحد بيعه أو استغلاله تجاريا.‏،**PDF created with pdfFactory Pro trial version www.pdffactory.com


..ه ذا الك تاب إه داء إل ى ارض الع راق الحبي بة نع م الع راق لق د أض عنا الع راق ارض الفرات ودجلةوالمسلمين بغدادأضعناها أضعناها..‏لكنك لست ببعيد وستعودين أرضا للخلافه الإسلامية..‏قريبا قريبا،.......فخر الإسلامPDF created with pdfFactory Pro trial version www.pdffactory.com


..أعزائي..‏تم وبحمد االله الانتهاء من هذا الكتاب المفيد للجميع بإذن االله المبتدئين والمحترفين على حد السواء..‏وقد قمت بإنشاء هذا الكتاب بعد أن لاحظت قلت الكتب التي تتحدث عن لغة <strong>++C</strong> ..Visualوهي اللغة التي تم منها بناء حزمة اوفيس المعروفة لتطبيقات الحاسب..‏لذلك أرجو أن يحوز هذا الكتاب على رضاكم وهو يحتوى على العديد من الأمثلة التطبيقية مع شرح الأساسياتوالعديد من الأجوبة التي يحتاجها مبرمجي <strong>++C</strong>.وباالله التوفيق..‏PDF created with pdfFactory Pro trial version www.pdffactory.com


عنوان الكتاب............................................................................أاهدأ.......................................................................................بمقدمة....................................................................................‏ دالباب الأولالأساسيات مكونات وادواتهارموز لغة ++c .........................................................................٧المتغيرات................................................................................‏‎١٣‎الأدوات المستعملة في لغة ++c ....................................................١٥الأدوات الحسابيةالأدوات الأحادية والثنائية............................................................‏‎١٧‎الزيادة والنقصان.......................................................................‏‎١٧‎أوليات العمليات للأدوات الحسابية..................................................‏‎١٩‎الأدوات العلاقية والمنقطيةالأدوات الدقيقة.........................................................................‏‎٢٢‎أداة النفي.................................................................................‏‎٢٣‎أداة الجمع...............................................................................‏‎٢٤‎أداة الاختيار............................................................................‏‎٢٤‎أداة الاختيار الاستثنائي...............................................................‏‎٢٥‎أداة الإزاحة.............................................................................‏‎٢٦‎الأداة الشرطيةأداة العنوان..............................................................................‏‎٢٩‎أداة تعيين الطول.......................................................................‏‎٣٠‎الفاصلة كأداة...........................................................................‏‎٣١‎جمل التعريف..........................................................................‏‎٣٢‎الثوابت الرمزية ذات الشرط المعكوسة...........................................‏‎٣٣‎الملاحظات والتعليقات في ++c...................................................٣٤الباب الثانيتشغيلc++١٥......................................................................٢٠..........................................................٢٨.........................................................................Visual C++6.0خطوات تشغيل برنامج <strong>++C</strong> ..........................................٣٥ Visualالباب الثالثأساليب الإدخال والإخراجمقدمة..................................................................................‏‎٤٠‎PDF created with pdfFactory Pro trial version www.pdffactory.com


الإدخال والإخراج...................................................................‏‎٤١‎طباعة النصوص الثوابت الرمزيةطباعة القيم العدديةطباعة النصوص والقيم العددية في جملة واحده................................‏‎٤٧‎الإدخال بلغة ++c ..................................................................٤٩٤٢...........................................()٤٤.................................................................الباب الرابعجمل التحكم والشرط والتكرارمقدمةالجمل الشرطية.......................................................................‏‎٥٣‎جملة الشرط إذا وأخواتهاجملة التوزيعجملة أداة الشرط ؟...................................................................‏‎٦٠‎التكرار وحلقات التكرار............................................................‏‎٦١‎أسلوب التكرار باستعمال حلقةحلقات التكرار المتداخلةأسلوب التكرار باستعمال حلقة ٦٩................................While & Doحلقاتجملة الإيقاف ٧٣...............................................................Breakجملة الاستمرارجملة الخروج٥٣..................................................................................٥٤......................................if statements٥٩............................................. switch statement٦١............................................. For٦٦.......................................... for LoopsWhile المتداخلة...........................................................‏‎٧٢‎٧٥...................................................... continue٧٧.............................................................. exit()جملة الانتقال ................................................................٧٨ gotoالباب الخامسالمتغيرات المرقمة والمصفوفاتمقدمة..................................................................................‏‎٧٩‎إعطاء قيمة أولية للمصفوفة ذات البعد الواحد..................................‏‎٨٣‎عنوان عناصر المصفوفة في الذاكرة............................................‏‎٨٥‎المصفوفة ذات البعدين.............................................................‏‎٨٦‎الباب السادسالدوالمقدمة.................................................................................‏‎٨٨‎تطبيقات على الدوال...............................................................‏‎٩٠‎الباب السابعتقنية الأقراص و دوال الملفات الانتقاليةمقدمة................................................................................‏‎٩٤‎دالة فتح الملفدالة الكتابة داخل الملفدالة إغلاق الملفالدالتانالنهاية...............................................................................‏‎١٠١‎٩٥....................................................... fopen()٩٧............................................ fprintf()٩٨.................................................... fclose()٩٩.......................................................putw() getw()PDF created with pdfFactory Pro trial version www.pdffactory.com


الأساسياتمكونات <strong>++C</strong> وادواتهاBasic Elements of C++رموز لغة <strong>++C</strong>‏*الرموز المستخدمة في لغة <strong>++C</strong>الحروف الإنجليزية الكبيرة A.B.Cالحروف الإنجليزية الصغيرة a.b.cالأرقام العربية الأصل 1.2.3رموز خاصة مثل:‏-١-٢-٣-٤[] " ! < - +* ، || > ( ) _>> < = > = \ /!= & % $ #


"_"-١-٢-٢‏*قواعد تسمية الأسماء التعريفية في لغة <strong>++C</strong> :-أن يك ون الاس م مك توبا م ن سلس لة متص لة م ن الح روف أو الأرق ام بش رط أنيبدا بحرف أو بخط تحتيأن لا يحتوى الاسم على رموز خاصة عدا الخط التحتي "_"أن لا يكون الاسم إحدى الكلمات المحجوزة.‏بعض الأمثلة الصحيحة على الأسماء التعريفية:‏B6 .aX_ray .bMatrix .cOk_ .dA .eSoft_fine .fDoor12 .g_new .hوهذه أسماء تعريفية غير مقبول (invalid) للأسباب المبينة إزاء كل منها:‏لانه بدا برقم وليس بحرف.‏لاستعماله الرمز الخاصلاستعماله الرمز الخاصلا يجوز استعمال حروف غير إنجليزية.‏لاستعماله الرمز الخاص(.)(!)(#)7-upb6.1salim!Ђ2No#1،،وم ن الجدي ر بالذكر أن لغ ة <strong>++C</strong> تف رق بي ن الح روف الأبجدية الصغيرة والكبيرةفم ثلا الأس ما ء : System SYSTEM , system, تع امل كأس ماء مخ تلفة ع نبعضها البعض بسبب اختلاف معاملة المترجم للحروف الصغيرة والكبيرة.‏PDF created with pdfFactory Pro trial version www.pdffactory.com


٢- الكلمات المحجوزةوه ي كلم ات قياس ية مع روفة مس بقا لم ترجم <strong>++C</strong> ، وتكت ب ع ادة بح روف صغيرةوله ا مع ان خاص ة به ا تؤديه ا ف ي ب رنامج <strong>++C</strong> ، وه ذه الكلم ات المحج وزة حس بالترتيب الأبجدي هي:‏،near Static asm Double long Sizeofdo int While new auto elseFor This Void Delete Goto ifconst Entry char Class Public CaseContinue Extern struct inline float PrivateVirtual Volatile Frinde enum near Staticcdecl Default inline Overload Unsigned TypedefSigned Pascal Operator Switch Template UnionRegister Protected far Catch char Constbreak Returnالجدول‎١-٢‎وين بغى التنب يه إل ى أن ه ذه الكلم ات المحج وزة ، لا يج وز إع ادة تع ريفها أو اس تعمالهالغير ما خصصت له.‏،وكم ا تلاح ظ م ن قائم ة الكلم ات المحج وزة أن لغ ة <strong>++C</strong> تع د لغ ة ص غيرة إذ ت تكونمن عدد قليل من الكلمات المحجوزة تقريبا ٥٢ كلمة محجوزة فقط.‏PDF created with pdfFactory Pro trial version www.pdffactory.com


• تمثيل الثوابت العددية Numeric Constantsيمكن تمثيل الثوابت العددية ، في لغة <strong>++C</strong> بثلاث صور هي:-‏9integer---الثابت العددي الصحيحهو عدد مكون من الأرقام من 0لا يحتوى على فاصلة عشرية.‏يمكن أن يحوى الإشارة"+" أو "-".aأمثلة صحيحة على الثابت العددي الصحيح:-‏0151000321-61والأعداد التالية غير صحيحة للأسباب المبينة إزاء كل منها:‏لانه يحتوى على فاصلة عشرية.‏لانه يحتوى على فارزة.‏لانه يحتوى على حرف أبجدي.‏لوجود فراغ بين العديدين.‏لوجود فراغ وأيضا لان العدد كبير.‏: 3.31: 1,000: J72: 2 4: 1999 1992 1992كم ا يمك ن تص نيف الأع داد الص حيحة ف ي لغ ة <strong>++C</strong> ، حس ب طوله االتخزينية لها في الذاكرة مثلا:-‏الثوابت الصحيحة 40000 , 19897 تسمى ثوابت صحيحة طويلة،.long intالثوابت -16 , 80 45 , تسمى ثوابت صحيحة قصيرة .short int.unsigned int،الثوابت 967 , 20000 تسمى ثوابت صحيحة بدون إشارةوالس عةوالف رق بي ن الثواب ت الطويل ة والقص يرة ه و ف ي ع دد الوحدات التخزينية المطلوبة لكلن وع ف ي الذاك رة فالطويل ة ت أخذ حيزا اكبر والقصيرة توفر عدد الوحدات التخزينيةفان استعمالها يوفرالمس تعملة أم ا الثواب ت الص حيحة ب دون إشارةق بلوح دة تخزين ية واح دة تس تعمل للاش اره ع ندما تذك ر كلم ة، int، unsigned int، unsigned،،PDF created with pdfFactory Pro trial version www.pdffactory.com


وذل ك بإزاح ة الق يمة إل ى ق يمة موج بة ب دون إش ارة ، ولك ل ن وع م ن الأن واع الس ابقةتطبيقاته المناسبة.‏b- الثابت العددي الحقيقيهو عدد مكون من الأرقاميجب أن يحتوى على فاصلة عشريةيمكن أن يحوى الاشاره أولا يجوز أن يحتوى على فارزةFloating-point Constants9 0"-""،""+"----أمثلة على ثوابت عدد حقيقي تستعمل الفاصلة العشرية بشكل صحيح-:421.510.60.0001-68.0والأمثلة الاتيه غير صحيحة للأسباب المبنية إزاء كل منها:-‏: لانه لا يحتوى علي فاصلة عشرية.‏: لانه يحتوى على فارزة.‏: لان يحتوى على فراغ.10004,000.212 83.4PDF created with pdfFactory Pro trial version www.pdffactory.com


Non-numeric)تمثيل الثوابت الرمزيةسلسلة من رموز اللغة أحرف أرقام رموز خاصة)‏ محصورة بينحواصر علوية مزدوجة ‏(علامات تنصيص أو اقتباس)‏•-ومن الأمثلة على الثابت الرمزي ما يأتي-:"first""my name is""30+50=80""my,no=123.04""Islam"وتلاح ظ أن نا س مينا أي ن ص موضوع بين حاصرتين مزدوجتين ثابتا رمزيا والصحي حأن تس ميته ثاب تا رم زيا ه ي من قبيل المجاز والاصطلاح لا الحقيقة واما كلمة رمزيف لان ال نص مك ون م ن ع دد م ن ال رموز وتس مية بع ض الكت ب بالثاب ت غ ير الع دد،،،:.Non-numericألا أنا لاوان اس تخدمت ارقام ا حس ابية داخلها ملاحظة/‏ك ل الثواب ت الرم زية ال واردة أع لاهوتس تخدم م ثل ه ذه الثواب ت ع ادةول يس له ا مع نى حس ابي تحم ل أي ق يمة حس ابية كمعلومات توضيحية مع نتائج البرنامج.‏،،،PDF created with pdfFactory Pro trial version www.pdffactory.com


...المتغيراتهي أسماء ‏(عناوين)‏ لمواقع في ذاكرة الحاسوب ، يخزن بها رموز أو أعداد.‏وبم ا أن أن واع المعلوم ات الم راد تخزي نها تك ون ع ادة مخ تلفة م ثل الق يم الص حيحة أوالحقيق ية أو الرم زية ال خ ف انك تحتاج أن تعلم المترجم في بداية البرنامج عن أنوا عالمتغ يرات الت ي ت ريد اس تعمالها ف ي ال برنامج فم ثلا ف ي الس طور التال ية تبي ن أنالمتغيرين x و y حقيقيان والمتغير k صحيح والمتغيرc,b,a رمزية.‏،،،Float x, y;X وy عددان حقيقيانInteger k;K عدد صحيحChar c,b,a;C,b,a رموزX=2.0;Y=10.6*x;K=100;A=t;B=f;C=4;،،لاح ظ الس طرين الأول والثال ث يح تويان عل ى اك ثر م ن متغ ير حي ث يفص ل بي ن كلمتغيري ن فاص لة وكذل ك يمك ن تحدي د أن واع المتغ يرات بذك ر التفصيل الدقيق للنو عم ن حي ث ط ول الس عة التخزين ية أي ه ل هو صحيح قصير أم طويل حقيقي قصيرأو مضاعف الخ،،...،PDF created with pdfFactory Pro trial version www.pdffactory.com


•-١وتقسم المتغيرات لنوعينمتغيرات عدديةوهي مواقع في الذاكرة تخزن بها أعداد-:.-٢متغيرات رمزيةوهي مواقع في الذاكرة تخزن بها رموز.‏أو TRUE=1-٣متغيرات منطقيةوتخزن بها قيمة منطقية أما 0= FALSEPDF created with pdfFactory Pro trial version www.pdffactory.com


الأدوات المستعملة في لغة <strong>++C</strong>يوجد في لغة <strong>++C</strong> ثلاثة أنواع من الأدوات وهي:‏الأدوات الحس ابية – الأدوات المنطق ية والعلاق ة – الأدوات الدق يقة وف يما يأت ي تفص يلبالأنواع الثلاثة:-‏الأدوات الحسابية،Arithmetic Operatorsتس مح لغ ة <strong>++C</strong> باس تعمال الأدوات الحس ابية م ن جم ع وط رح وض ري وقس مةليس لها أدوات مباشرة مثل الأداة hإلا أن عمل ية ال رف إل ى أ س كاللغ ات الأخ ر ى وانم ا ت تم علم ية ال رفع إل ى أس ف ي لغ ة <strong>++C</strong>ف ي فورت ران ف يبطريقة أخرىكم ا تخ تلف القس مة ف ي لغ ة <strong>++C</strong> ع نها ف ي Basic إذا أن أي ج زء كس ري ين تج ع نكم ا ف ي لغتي باسكال وكوبول فمثلا ناتج القسمة 8/3القس مة يهم ل مهمه ا ك ان كب يرا ويكون ناتج القسمة باستعمال الأداة / صحيح العدد.‏هو 2 لا الكسر 0.666 يهمل ويمكننا الآن أن نلخص الأدوات الحسابية المستعملة في لغة <strong>++C</strong> فيما يأتي:-‏،،،،،Basic والأداة **..وظيفتهاالأداةللطرح أو كأشاره سالبة- للجمع+ للضرب* للقسمة/ لباقي القسمة الصحيحة% للنقصان-- للزيادة+ + الجدول‎١-٣‎PDF created with pdfFactory Pro trial version www.pdffactory.com


،ويخ تلف أداء بع ض الأدوات الحس ابية حس ب ن وع المعط يات الص حيحة أو الحقيقة ،أو الرم زية فع ند معامل ة المعط يات الحقيق ية ل لأدوات الحس ابية يمك ن الق ول أنالعلم يات الأساس ية م ن جم ع وط رح وض رب تج ري بالط ريقة الت ي نع رفها إلا أنه ناك مح ذورا يج ب أن نذك ر ب ه وه و أن ت تعدي ق يمة النت يجة م ن أية عملية حسابيةالح دود المرس ومة ل نوع المتغ ير ال ناتج ، لان لك ل ن وع م ن أن واع المتغ يرات ح دودايع د تجاوزه ا خط أ ين تج ع نه خط أ ف ي الن تائج وع ند معامل ة المعط يات الص حيحةب الأدوات الحس ابية تعم ل الأدوات بالط ريقة الت ي ن توقعها وع ند تع دي الح دودالمس موح به ا ف ي الق يم الص حيحة ف ان ه ذا يعن ي أن خط أ ق د وقع ، overflow وفيهذه الحالة لن تتلقى من المترجم أية رسالة خطأ فمثلا إذا كان لدينا البرنامج التالي:‏،،،Main( ){int n = 33000;n = n * 3;}،،،،،،ع ند ط باعة النت يجة n النهائ ية ن توقع أن يك ون الج واب ، 99000 ألا أن الج واب ف يه ذه الحال ة ل ن ي تعد ى ، 30464 وه و الح د الاعل ى المس موح ب ه للق يمة الص حيحةوه ناك أم ر أخ رى ي تعلق بالقسمة فعندما نقسم 8 على 3 قسمة صحيحة 8/3 فان الناتجيك ون ص حيحا وه و فق ط وإذا م ا رغب ت أن تح افظ عل ى الج زء الكس ري ال ذيأهم ل واس قط يمك نك أن تح ول القس مة إل ى قس مة حق يقة 8.0/3.0 حين ئذ ف ان ال ناتجس يكون 2.667 له ذا الس بب أدخل ت لغ ة <strong>++C</strong> أداة باق ي ا لقس مة % ويس مىModulus Operator ويستعمل على النحو التالي:‏،7 % 3،2،، 7/31تعط ي الج واب وه و باق ي القس مة الص حيحة وم ن الجدي ر بالذكر أن كلا منباس كال وكوب ول تس تعملان م ثل ه ذه العمل ية فف ي باس كال تكت ب ه ذه العمل ية عل ىوكلم ة MOD ه ي اختص ار أم ا ف ي لغ ة <strong>++C</strong>فتستعمل الأداة % لتقوم بهذا العمل.‏، Modulus،ال نحو‎3‎ ، 7 modPDF created with pdfFactory Pro trial version www.pdffactory.com


الأدوات الأحادية والثنائيةUnary and Binary(Operatorsتع د جم يع أدوات الجم ع والط رح والض رب والقس مة وباق ي القس مة أدوات ثنائ يةbinary أي أنه ا ت أخ ذ ‏(ت تعامل مع قيمتي ن وتن تج قيمة واحدة فمثلا نتيجة 3*2 هيالق يمة 6 وه ناك الأداة الأحادي ة – ع ندما ت تعامل م ع ق يمة واح د فم ثلا (1992-) تم ثلالإش ارة ا لس البه وه ي ه نا أداة أحادي ة ، Unary والعمل ية ه نا ليس ت عمل ية ط رح كمانعلم.‏،الزيادة والنقصانIncrement and Decrementمن مزايا لغة <strong>++C</strong> أنها تستعمل الأداتين الحسابيتين + + وأو إنقاصها بمقدار ، 1 والمثال التالي يبين طريقة الاستعمال:‏-- لزيادة القيم بمقدار 1A++;معناه إضافة قيمة 1 إلى a ويمكن كتابتها بصوره مكافئة على النحو التالي:-‏وبالطريقة نفسها يمكن إنقاص 1 من قيمة a على النحو:-‏++a;A=a+1;--a;a--;أوA=a-1;وهو يكافئ الصورة،لك ن ه ناك ف رقا ف ي س رعة التنف يذ فالتعب ير ‏;‏a‏++أس رع م ن التعب ير a=a+1; وه ذههي الفائدة من جراء استخدام مثل هذه الأدواتومم ا ينبغ ي التنب يه إل يه ه نا أن ه ناك ف رقا بي ن ++a و a++ ، ص حيح أن ك لا م نالتعبيري ن يجم ع 1 إل ى لك ن ع ند اس تعمال a++ ف ي تعب ير م ن التعاب ير ف انa،.، aPDF created with pdfFactory Pro trial version www.pdffactory.com


،ت زداد ق بل اس تخراج ق يمة التعب ير ، بي نما ف ي حال ة ++a تس تخرج ق يمة التعب يرباس تعمال ق يمة a الحال ية ق بل زيادته ا بمق دار ، 1 وبع د ذل ك ت تم زي ادة a بمق دار 1 آيأن العمل ية الأول ى جم ع تقدي م والثان ية جم ع تأخ ير وينطبق هذا الكلام أيضا على–،. a-- و aمثال:‏Int x,y,x;X=y=x=0;X=++y + ++z;أولية جمع 1 إلىمتاخره إذ يتم جمعهاأولا إلى xz تأتيX=y++ + z++;X=++y + z++;X=y-- +--z;جمع 1 إلى y مؤجل بعدإعطاء قيمتها الأولى إلىxفي هذه الحالة تكون y=1 x=1 , z=1 ,في هذه الحالة تكون z=2 x=2 , y=2 ,لان ، xوبإمكانك كتابة الجملتين:‏Int x,y,zX=y=z=0في جملة واحد على النحو:‏Int x=y=z=0تجمع قيمتي z,y قبل أن تزداد كلمنهما بمقدار 1الآن z=3 x=3 , y=3 ,لان x تجمع y بعد زيادتها وتجمع آخر z قبل أنتزداد 1الآن z=1 x=5 , y=2 ,PDF created with pdfFactory Pro trial version www.pdffactory.com


أولية العمليات للأدوات الحسابية Precedence ofArithmetic Operationsيمك ن الق ول أن أول ية تنف يذ العمل يات كم ا يج ريها م ترجم <strong>++C</strong> بالنس بة ل لأدواتالحسابية هي على النحو التالي:‏أوالأداةأوأوأورقم الأولوية1 -- ++2 -3/ أو % * 4 - +5 =6 -- ++الزيادة أو النقصانالإشارة السالبةالضرب أو القسمة أو الباقيالجمع أو الطرح‏(المتأخرة بعد العدد)‏الجدول‎١-٤‎المساواةزيادة أو نقصان بمقدار 1ملحوظة:‏إذا تس اوت أولي تان م ثل الجم ع والط رح ف ي تعب ير ف تقدم العمل ية الأق رب إل ى يس ارالتعب ير وع ند اس تعمال الأق واس لأي تعب ير ف ان الأق واس ت أخذ الأولوي ة الأول ى ف يالتنف يذ ق بل ال زيادة أو النقص ان ( كم ا ف ي لغ ات ال برمجة الأخ ر ى والأمثلة الآتيةتبين مفهوم الأولوية الأسبقية،،،-:())،X + y / z * aيأخذ تسلسل أولويات عملياته الشكل والخطوات التالية:-‏العملية الأولى:‏ القسمةالعملية الثانية:‏العملية الثالثة:‏ جمع الناتج في الخطوة 2 إلى x فتكون النتيجة:‏،،y / za * (y/z)-١-٢-٣X + y / z * zلاح ظ أن نا بدأن ا بإج راء العلم يات الحس ابية م ن اليس ار إل ى اليمي ن وتعط ى ألا ولويهلأي ة عمل ية حس ب ق اعدة الأولوي ة فج اءت القس مة ف ي الم ثال ق بل الجمع كما جاءالضرب بعد القسمة وتلا ذلك الجمع كأخر عملية.‏،،PDF created with pdfFactory Pro trial version www.pdffactory.com


الأدوات العلاقية والمنطقيةRelational and LogicalOperationsي رجع اس م الأدوات العلاق ية إل ى العمل يات المختص ة بالق يم الت ي بي نها علاق ات وه وأج راء عمل يات مقارن ة منطق ية بي ن كم يات حس ابية أو رم زية وتك ون نتيجته منطقيةويك ثر اس تخدام التعاب ير المنطق ية ف ي الجم لوه ي أم ا نع مالشرطية والأمثلة الآتية تبين لك ما هو التعبير المنطقي:‏،.، (false) أو (true)،التعبير المنطقي:‏ =x y= جواب أما نعم أو لاوالتعبير المنطقي:‏ > 100.0 matrix جواب أما نعم أو لا.وف ي لغ ة <strong>++C</strong> تع امل النت يجة لا (false) عل ى أنه ا ص فر (0) وت أخذ النت يجة نع م(true) أية قيمة غير الصفر والمشهور أنهاويبين لنا الجدول التالي الأدوات العلاقية والمنطقية:‏. (1)> اصغر من< اكبر من أو يساوي= اصغر من أو يساوي= يساوي= = لا يساوي=! الجدول‎١-٥‎الأداةمعناهاAnd ‏(حرف العطف واو) Or حرف العطف أوأداة أحادية( &&( ||unary ‏(للنفي)‏ Not!الجدول‎١-٦‎إليك الآن هذه الأمثلةفان التعبيرالتعبيرالتعبيرالتعبيرالتعبير:a < 3aba!=ba= = b نتيجتهافرض أننتيجتهنتيجتهنتيجتهنتيجتهint a=b=3;أي 0false أي 1true أي 0false أي 0false أي 1true PDF created with pdfFactory Pro trial version www.pdffactory.com


الأدوات الدقيقة Bowties Operatorsتتم يز لغ ة <strong>++C</strong> ع ن س ائر اللغ ات الراق ية م ثل ف يجوال بيس ك وباس كال أنه ا تس تخدمأدوات دق يقة عل ى مس توى وح دة التخزي ن الأول ية [Bit] والمختص رة م نBinary) [bit]Digit*س ميت ه ذه الأدوات بالدق يقة أو أدوات ‏(الب ت)‏ لأنها ت تعامل مع وحدة التخزينالأول ية)‏ مباش رة فحص ا وض بطا وإزاح ة وتس تعمل ه ذه الأدوات مع المعطياتولا تستعمل مع غيرها من أنواع المعطيات..‏الصحيحة،، ، ،int والرمزية char فقط ،والجدول التالي يبين الأدوات الدقيقة ووظيفة كل منها:‏عملهاالأداة(not) آداه أ(and) حرف الواو ‏(و(or) حرف العطف ‏(و> إزاحة إلى اليمينالاستثنائية~ حادية( &( |(xor) ‏(أو)‏،^الجدول‎١-٨‎وكغيرها من الأدوات فان الأدوات الدقيقة تتبع قواعد الأولية وحسب الترتيبالتالي:‏أولويتهاالأداة~ الأولى>> الثانية&^أو


أداة النفي،-:((~)تعم ل ه ذه الأداة عل ى إب دال الص فر (0) بواح د(‏‎1‎‏)‏ أو العك س ومع نى ه ذا أنها تض ع0 مك ان 1 وكذل ك 1 مك ان ، 0 فم ثلا ل و ك ان لدي نا ق يمة x مم ثلة ف ي ال نظام الع دديالثنائي التالي ‏(من 8 بت00011010قيمة x0001101قيمةx‏~‏ 0،ومع نى ~ النف ي (not) ومع نى النف ي ه نا التضاد بين 0 و 1 في النظام العددي الثنائيفع ندما ت نفى 0 تثب ت ب دلا م نه 1 والعك س ص حي ح وه ذا يوض حه لك المثال السابقإذ تم ‏(نفي)‏ قيمة x بالبت ليصبح في جميع مكونات من البت.‏،~xPDF created with pdfFactory Pro trial version www.pdffactory.com


أداة الجمع &المثالي التالي يوضح كيفية جمع القيم عند تمثيلها بالنظام العددي الثنائي:‏العملية x&y;0001101قيمة x بالنظام الثنائي 000001001قيمة y بالنظام الثنائي00001000الناتج X&Y;، ويجمع 0+1 ليعطي 0 ويجمع 1+1 ويعطي 1T T&T Fحيث يجمع 0+0 ويعطي 0‏(انظر جداول الصدق السابقة)‏F&TFF&Fx|y;أداة الاختيار|‏إذا أردنا استعمال أداة الاختيار مع المثال السابق لقيمتيX وy على النحو00011010x00001001y00011011الناتج x|y;وبين 0 و‎0‎ هو . 0(حيث الاختيار بين 0 و‎1‎ هو ، 1 والاختيار بين 1 و‎1‎ هو ، 1) انظر جداول الصدق السابقةTT|FTT|TTF|TPDF created with pdfFactory Pro trial version www.pdffactory.com


أداة الاختيار الاستثنائي ^خذ المثال السابق نفسة لترى كيف تؤثر هذه الأداة00011010x00001001y00010011x^y; الناتج0 و‎0‎ نتيج ته ، 0^والاخت يار بين 1 و‎0‎ نتيجته ، 1 وبين 1 و‎1‎لاح ظ أن الاخت يار بي ن(XOR) تخ تلف ع ن أداة الاخت يارأن أداة الاخت يار الاس تثنائي ف ي أن الأول ى حال ة خاص ة م ن الثان ية إذ تك ون نتيج تها (1) true ع ندما يك ون أح دكم اطرف ي الاخت يار x أو y نتيج ته ، true وم ا ع دا ذل ك فنتيج تها دائم ا أما في حالة الاختيار العاملاحظت في هذا المثال | (OR)، (0) false(OR) فان نتيجة 1|1 هي 1.،نتيج ته ، 0PDF created with pdfFactory Pro trial version www.pdffactory.com


أدوات الإزاحة وق د ت بدو أدوات الإزاح ة غري بة على المبرمج الذي يستخدم لغات أخرى مثل Basic وال خ . حي ث ين تج ع ن اس تعمال إحداهم ا إزاح ة ق يمة المتغ ير الص حي حبال نظام الثنائ ي ‏(بالب ت)‏ يمي نا أو يس ارا ع ددا م ن الخان ات حس ب الطل ب وتم لاالخانات المفرغة من الجهة الموجبة أصفارا ومن الجهة السالبة تملا آحادا.‏،،.. Pascal)والأمثلة التالية توضح طريقة الاستعمال.‏مثال:‏الجمل ة ;22;:٢) بت (النتيجة من الإزاحة بمقدار خانتين لليمين تصبح قيمتها5 بالنظام العشري.‏وهذا يعني أنحيث 23 القيمة المزاحة.‏2 عدد خانات الإزاحة المطلوبة لليمين.‏لاحظ أن الخانتين المفرغتين بسبب الإزاحة لليمين قد ملئتا بمصفرين.‏23>>2; تعطي النتيجة . 5PDF created with pdfFactory Pro trial version www.pdffactory.com


مثال على إزاحة قيمة سالبة:‏Z = - 50


أدوات أخرى لم تذكرالأداة الشرطيةOther Operationsthe conditional operator،، if-then-elseوه ذه الأداة تتم يز به ا لغ ة ++c ع ن غ يرها إذ تح ل محل جملة شرطية مشهورة فيوتعت بر ه ذه الأداة أداة ثلاث ية لأنه ابيس ك وفورت ران وباس كال وه يتتعامل مع ثلاث كميات حسب صيغتها العامة التالية:‏Expression1 ? Expression2: Expression3فلو كان لدينا الجملة الشرطية التالية على سبيل المثال:‏If (b


أداة العنونة (&) وthe & and * Pointer (*)،Operatorالمؤش ر Pointer ه و ع نوان المتغ ير المؤش ر ف ي الذاك رة وللمتغ ير المؤش ر فوائ دجم ة ف ي عمل ية ال برمجة نذك رها ع ند ال تعرض له ا ف ي الفص ول القادم ة ب إذن االلهويك ثر اس تعمال هاتي ن الدالتي ن م ع المتغ يرات المؤش رة المحج وزة له ا ف ي أماك نخاصة في الذاكرةوتع د الأداة & ه نا أداة أحادية ت تعامل م ع كمية واحدة فقط ، حيث تقوم بإعطاء عنوانالطرف الأيمن للمعادلة للطرف الأيسر منها فمثلا العملية:‏،X=&y;،،.،تعط ي ع نوان y ف ي الذاك رة ووض عه ف ي مخزن ، x وهذه الجملة تختلف طبعا عنالجمل ة الحس ابية x=y الت ي مع ناها وض ع ق يمة y ف ي مخ زن x أم ا ع ند استعمال &ق بل y فمع ناها إعط اء ع نوان مخ زن y ف ي الذاك رة فق ط للمتغ ير x ول يس ق يمة yفل و كان ت ورق م ‏(ع نوان)‏ موض عها ف ي الذاك رة هو ، 120 تأخذ قيمة120 ع ند اس تعمالنا & م ع y وبالنس بة ل لأداة الثان ية * فه ي أداة أحادي ة أيض اولذلك لو كان لدينا الجملة التالية التي تستعمل الأداة * .،S=*x;،فان x، y=10ومكملة للأداة & ،،xفان ه يفه م م نها أن تح وى ع نوان ‏(موق ع)‏ المتغ ير y ف ي الذاك رة وان ه ذه الجملةتض ع ف ي مخ زن s ق يمة المتغ ير ، ص احب المخزن الأصل آي قيمة y وهي 10 كماف ي الم ثال الس ابق وبالتال ي ف ان ق يمة 10 تخ زن ف ي مخ زن s ف ي الموق ع ‏(الع نوان)‏120 لذل ك ن رى أن جمل ة x=*&y تكاف ئها الجمل ة x=y وه ذا يعن ي أن الأداتي نتعملان وكأن الواحدة معكوسة للأخرىومم ا يج ب الانت باه إل يه أن الأداة * تس تخدم أيض ا لعمل يات الض رب الحس ابي كم اتس تعمل الأداة & ك أداة AND دق يقة ول ذا لا يلت بس عل يك الأم ر بي ن الاس تعمالينالمختلفين.‏،،،،PDF created with pdfFactory Pro trial version www.pdffactory.com


أداة تعيين الطول sizeof،)، (unary)تع د ه ذه الأداة أداة أحادي ة وتس تعمل لتعيي ن ط ول المتغ يرات بالباي ت)‏وتخ تلف أط وال المتغ يرات حس ب أنواعه ا ول ذا طل ب تعيي ن ط ول متغ ير باس تعمالينبغي ذكر نوع هذا المتغير بين قوسي فمثلا:‏Int n;N=sizeof (n);،sizeof،، sizeof،حي ث س تكون نت يجة n ه نا تس اوي 2 باي ت ه ي ط ول المتغير n الصحيحطول الصحيح عادة هو وطول الحقيقي 4 بايت كما في المثال التالي:‏(int) لانFloat x;Z=sizeof (x);،2 بايت ،حيث ستكون نتيجةz هي 4 بايت ،وهي طول x الحقيقي.‏PDF created with pdfFactory Pro trial version www.pdffactory.com


الفاصلة (,) كأداةThe Comma Operator(binary)-١-٢وتح تل الأولوي ة الأخ يرة ف ي سلم الأداة المختلفة وتأخ ذوه ي أداة اس تثنائية الصيغة العامة التالية:‏Experssion1, Experssion2فعندما تفصل فاصلة بين تعبيرين فان تسلسل العمليات يأخذ الترتيب التالي:‏ثم تعطى للتعبير الثاني.‏تستخرج قيمة التعبير الأول ) علي يسار الفاصلة كق يمة نهائ ية للتعب ير كل هعل ي يمي ن الفاص لة تس تخرج ق يمة التعب ير الثان ي كما في المثال التالي:‏A=(b=2,b+1);(()،))حي ث يعط ى المتغ ير b ق يمة 2 ف ي التعب ير الأول يس ار الفاص لة)‏ ث م وض ع ه ذهالق يمة ف ي الأخ رى ف ي التعب ير الثان ي يمي ن الفاص لة)‏ فتص بح قيمة التعبير علىوتكون هذه القيمة نتيجة التعبيرين النهائيةاليمين.،b(b+1) تساوي 3B=8;A=(b=b-4,12/b);مثال آخر:‏ف ي ه ذا الم ثال ي تم إعط اء b الق يمة 8 أولاف ي التعب ير الأول داخ ل القوس ين الق يمةتعط ى للتعب ير الأيم ن ، حي ث ت تم القس مةالتي تعطي بالتالي للمتغير،، وتس اوي ، 4،(8-4) (b-4)(12/b) آي (12/4). aكله ، 3يعط ي bث م ع ند تنف يذ الس طر الثان ي وه ذهآيفتص بح نت يجة التعب يرPDF created with pdfFactory Pro trial version www.pdffactory.com


جمل التعريفجمل التعريف هي جمل تقوم بتعريف القيم.‏Int a;Dim a as integerمثال:‏يقابل هذه الجملة في فيجوال بيسكوتقوم بحجز مكان في الذاكرة المشار إليه،أنواع البيانات الممكن تخزينها في الذاكرة المستخدمة ل <strong>++C</strong>لتخزين رمز واحد فقط.‏لتخزين عدد صحيح.‏لتخزين عدد حقيقي.‏لتخزين عدد حقيقي كبير.‏لتخزين بيانات خالية.‏،،،،،char .١int .٢float .٣double .٤void .٥بالاسم a لتخزين قيمة عددية صحيحة.‏أن مع رفة أن واع الب يانات وكيف ية اس تعمالها تع د ض رورية لفه م لغ ة ++cفلاس تعمال المتغ يرات م ثلا نح تاج أن نعل ن ف ي بداي ة ك ل ب رنامج أو بداية الدوالع ن أن واع ه ذه المتغ يرات وي تم ال تعامل معه ا ، خ لال ال برنامج ف ي ض وء أن وا عمعطياتها فمثلا الإعلان عن التالية:‏،،تخ بر م ترجم ++c أن ي تعامل م ع ه ذه المتغ يرات ، عل ى أنه ا متغ يرات ص حيحةوكذلك جملة الإعلان التالية:‏تخبر مترجم ++c <strong>++C</strong>) compiler) أن هذه المتغيرات من النوع الحقيقي.‏Int a,b,x;Float m,y;PDF created with pdfFactory Pro trial version www.pdffactory.com


،،الثوابت الرمزية ذات الشرطة المعكوسةحي ث أن نا لا نس تطيع اس تعمال بع ض ال رموز الموج ودة ف ي لوح ة مفات يح الحاس بكثواب ت رم زية فق د اس تحدث لغ ة ++c ش فرات رم زية خاص ة تس تعمل ش رطةمعكوسة لها وهذه الشفرات مدونة في الجدول التالي:‏القيمة الصحيحة لهامعناها الشفرة بمقدار خانة واحدة" 8رجوع "\b13سطر جديد "n\" 9ترتيب أفقي "t\" 0للقيمة الخالية "0\" 13علامة رجوع "r\" 11ترتيب عمودي "v\" \ "\\"12تقديم صفحة "f/" الشرطة المعكوسة 92الجدول‎١-١٠‎ولبيان أهمية هذه الشفرات ، خذ المثال التالي:‏"first line\n second line"،ل و ط بع ه ذا ال نص ‏(الثاب ت الرم زي)‏ فان ه س يظهر ف ي س طرين متتالي ن عل ى ال نحوالتالي:‏First lineSecond line،وم ن الجدي ر بالذكر أن أه م تطب يقات المعط يات الرم زية واس تعمالاتها ، ه و معالج ةالنص وص وم ا يس تحق التس جيل والاه تمام ان ه يمك ن إج راء عمل يات عل ىالمعطيات الرمزية.‏،PDF created with pdfFactory Pro trial version www.pdffactory.com


الملاحظات والتعليقات في ++cتستعمل سائر لغات البرمجة جملا للتعليقات والملاحظاتالجملة التالية:‏Comments،وكذلك لغة <strong>++C</strong> مثلا10 rem this is Islamهي جملة ملاحظ في لغة بيسك،تقابلها جملة تعليق التالية في لغة <strong>++C</strong>:// this is Islam.،،،،التي توضح بعد شرطتين ‏(خطين مائلين)‏وتس تعمل جم ل التعل يق ف ي أي مك ان م ن ال برنامج لإبداء ملاحظة ما ، عند سطر ماف ي ال برنامج ولا تع د جمل ة تنف يذية بمعنى أنها لو حذفت من البرنامج ، لا يؤثر فيهذلك شيئا وعادتا ما يتجاهلها المبرمجينمثال:‏ لاحظ جمل التعليق التالية:‏this is comment///*an example on comment in c++ language *//*main() /* start your program{int x,y,z; //this line declares type of x,y,z}ومن الجدير بالذكر هنا ما يأتي:‏ ،لا يترك أي فراغ بين الشرطة من جهتي جملة التعليق.‏يقوم مترجم ++c بإهمال النصوص المستعملة في جمل التعليق أي أنها لاتنفذ بل هي جمل توضيحية تظهر مع قائمة البرنامج أو سطورا فقطيمكن وضع جملة الملاحظة والتعليق في أي مكان من البرنامج ما عداوسط اسم تعريفي أو كلمة محجوزة . keyword.،،/ والنجمة *، identifier،-١-٢PDF created with pdfFactory Pro trial version www.pdffactory.com


تشغيل c++6.0 visualRun visual c++6.0لتشغيل برنامج فيجوال سي ++ نتبع التالي:‏أبدا البرامجثم بعد ذلك ستظهر لنا الشاشة التالية:‏visualc++6.0نختار القائمة file من هنانخ تار م ن ه ذه الشاش ة كم ا ه و واض ح القائم ةNew لتظهر لنا الشاشة التالية..‏File ثم بع د ذل ك نخ تار م ن القائم ةPDF created with pdfFactory Pro trial version www.pdffactory.com


نطبق ما يوجد بالصورة بالأسفل ثم نختار موافق..‏التسمية الخاصة بالمشروعنختار هناثم ننقر okPDF created with pdfFactory Pro trial version www.pdffactory.com


نختار التطبيق الموجود بالأسفل ثم نختار إنهاء كما هو موضح بالأسفل..‏نختار هذا التطبيقثم ننقر finishPDF created with pdfFactory Pro trial version www.pdffactory.com


الآن ستظهر لنا شاشة الكود ونلاحظ بالأسفل الشاشة..‏بع د ذل ك نخ تار م ن القائم ة Build ث م نخ تار Execute .exe ليط بق ل نا المش رو عأو بالنقر من لوحة المفاتيح على الزر . F5..PDF created with pdfFactory Pro trial version www.pdffactory.com


طبعا بعد تنفيذ البرنامج ستظهر لنا النتائج كما في الشكل التالي:‏ط بعا أعزائ ي ه ذا ال برنامج الص غير ه و ب رنامج تلاحظ ون أن الك ود ت بعه خ اص بلغةC الام ول يس ++c لك ن م ا نعم ل عل يه ه و م ترجم يق بل اللغتي ن مع ا والم ترجم ه وونلاح ظ ان ه ت م ط باعة ع بارة World! Hello وه ي نت يجة تنف يذالدالة printf() الموجودة في سطور البرنامج.‏، Visual C++PDF created with pdfFactory Pro trial version www.pdffactory.com


أساليب الإدخال والإخراجInput/output Techniques،مقدمة introductionيت ناول ه ذا الج زء أس اليب إدخ ال الق يم الحس ابية والرم زية وأس اليب إخ راج وطباعةن تائج ال برامج والتعاب ير الحس ابية والرم زية وط باعة المعط يات المخ تلفة حس بالحاجة.‏لق د تعودن ا ف ي لغ ة بيس ك أن نس تعمل دوال مبن ية وجاه زة عند الطلب للقيام بالإدخالأو بالإخ راج م ثل وف ي ه ذا الص دد ف ان لغ ةم ثلت تعامل م ع الإدخ ال والإخ راج بط ريقة مخ تلفة،‏ حي ث توف ر اللغ ة ، ع دداكب يرا م ن دوال الإخ راج والإدخال ، حي ث يمكن للمبرمج أن يستدعيها ويستفيد منها، حس ب ن وع المعط يات والمتغ يرات ك يفما يناسبه وسوف نورد أن شاء االله في هذاالفصل أهم هذه الدوال واشهرها ل <strong>++C</strong> .،،،، (print)،،،،(read أو input)، C++PDF created with pdfFactory Pro trial version www.pdffactory.com


الإدخال والإخراج input\outputتوف ر لغ ة <strong>++C</strong> ، مجموع ة م ن ال دوال والروتين يات المع رفة ض من Iostream م ثلiostream.h للإدخال وسوف نعرف الملف cin للإخراج و coutالملف Iostream.h يعني:‏مختصر ل input/output آي الإدخال والإخراج.‏مكتبة قياسية خاصة بالإخراج والإدخال الخ..‏header file آي الملف الدليل.‏: io: Stream: HPrint 100مثال‎١‎‏:‏إذا أردت طباعة العدد 100 في لغة بيسك فالجملة:‏تؤدي عملية الطباعة،أما في لغة <strong>++C</strong> فان الدالة التالية تعمل ذلك:‏#include “ stdafx.h”#include “ iostream.h”main (){cout‏ت ؤدي إل ى إرس ال الع دد 100 إل ى وح دة الإخ راج أن ه ذا الأس لوب الجدي د ف يالإخراج يختلف عما في لغة،. cPDF created with pdfFactory Pro trial version www.pdffactory.com


#include “ stdafx.h”للانتقال لسطر جديد iostream.h” #include “main (){cout


مثال ٣:للاستفادة من إمكانيات الإيعاز n\ في عمليات الطباعة ‏:تأمل البرنامج التالي:‏عند تنفيذ البرنامج ترى الطباعة التالية على الشاشة:‏السطر الأولالسطر الثانيالسطر الثالث سطر فارغالسطر الرابعالسطر الخامس سطر فارغالسطر السادس سطر فارغ#include “ stdafx.h”#include “ iostream.h”main (){cout


طباعة القيم العدديةمثال‎٤‎‏:‏يقوم البرنامج التالي بطاعة العدد 446 كقيمة صحيحة على شاشة الحاسوب:‏#include “ stdafx.h”#include “ iostream.h”main (){cout


مثال‎٦‎‏:‏انظر ماذا يفعل برنامج <strong>++C</strong> التالي:‏#include “ stdafx.h”#include “ iostream.h”main (){int a=100;cout


مثال‎٨‎‏:‏إذا تطل ب الأم ر ط باعة المتغيري ن a الص حيح و x الحقيق ي الواردي ن ف ي المثالي نالسابقين في برنامج واحد فالبرنامج سيكون على النحو التالي:‏،،،#include “ stdafx.h”#include “ iostream.h”main (){int=100;float x=4.25cout


طباعة القيم العددية والرمزية ‏(النصوص)‏ في جملةواحدةمثال‎٩‎‏:‏سوف نقوم في هذا المثال بطباعة قيم عددية ونصية مع البعض كالتالي:‏#include “ stdafx.h”#include “ iostream.h”main (){int a=100;cout


مثال‎١١‎‏:‏إذا أردن ا أن تظه ر ن تائج الم ثال الس ابق ف ي س طرين ب دلا م ن س طر واح دالطباعة ستكون كالتالي:‏فجمل ة ،#include “ stdafx.h”#include “ iostream.h”main (){int a=100;float x=4.25cout


الإدخال بلغة <strong>++C</strong>Streamsيت ناول ه ذا الم بدأ معالج ة الإدخ ال حي ث يع د اس تخدام streams افض ل م ن دوالالإدخال للغة . Cوصيغة الجملة كالتالي:‏ونشاهد أنها عكس عملية الإخراج حيث الإخراج >> أما الإدخال >x;مثال خاطئ:‏Cin>>x;Cin>>a;وي تممثال‎١٢‎‏:‏سوف نقوم بإدخال عدد صحيح في هذا التطبيق ثم نقوم بطباعته كالتالي:‏#include “ stdafx.h”#include “ iostream.h”main (){int=a;cin>>a;cout


مثال‎١٣‎‏:‏اكتب برنامجا لإدخال عمرك ثم طباعته ، وطباعه نصف وضعفه؟#include “ stdafx.h”#include “ iostream.h”main (){int a;cin>>a;cout


مثال‎١٤‎‏:‏اكتب برنامجا لإدخال عدد ما وليكن العدد 7 ومن ثم طباعة جدول الضرب له؟#include “ stdafx.h”#include “ iostream.h”main (){int a;cin>>a;cout


مثال‎١٦‎‏:‏سنحاول الآن إدخال ثلاث قيم عددية ، ومن ثم طباعتها:‏#include “ stdafx.h”#include “ iostream.h”لتكن 10main (){لتكن 6.3int a;float x;double z;لتكن 2001.5cin>>a>>x>>z; // input all datacout


جمل التحكم والشرط والتكرارProgramControl,Conditional&Loop Statementsمقدمةintroductionق د نح تاج أن نن تقل م ن س طر إل ى آخ ر ف ي ب رنامج <strong>++C</strong> ، وق د نحتاج أن نقوم بتنفي ذبع ض الجم ل ع ند تحق ق بع ض الش روط وق د نح تاج أن نك رر عمل ية م ن عمل ياتالإدخ ال أو الإخ راج أو الحس اب ع ددا م ن الم رات وق د نح تاج أن نبن ي ش بكة م نتوزي ع الأوام ر عل ى ع دد م ن س طور ال برنامج ، حس ب مقتض يات بع ض الأح والوحس بما تقتض يه طب يعة المس ألة ف ي ه ذه الح الات:‏ نح تاج أن ن تعلم أس اليب الشرطوأس اليب ال تكرار وكيف ية ال تحكم ف ي مس ار ال برنامج وتع د أس اليب الش رط والتحكموالتكرار بمثابة القلب في جسم لغات البرمجة وبدونها لا يمكن تنظيم آي برنامج.‏وتوف ر لغ ة <strong>++C</strong> للم برمج ع ددا م ن الأس اليب وال دوال الفعال ة الم تعلقة بهذا الشأنوتم تاز ه ذه الأس اليب بأنه ا أس اليب بنائ ية أو بن يوية structured آي يمك ن تنظ يمعمل يات ال تحكم وال تكرار ف يها بأس لوب ذات ي م ن بداي ة العمل يات وح تى نهاي تها دونتدخ ل م ن الم برمج أث ناء ه ذه ا لعمل يات للأش راف عل ى التوج يه والتخط يط لك لخط وه م ن خط وات ال برنامج ويع رف بع ض الخ براء والمختصين البرمجة البنيوية:‏أنه ا ال برمجة الت ي لا تس تعمل جمل ة الانتقال ، GOTO لتوجيه البرنامج في كل خطوةوم ع ذل ك ف ان لغ ة <strong>++C</strong> ، توف ر جمل ة الان تقال ه ذه لك نها لا تس تعمل إلاللضرورة.‏وحي ث أن ج واب الش رط أم ا أن يك ون ص وابا true أو زائف ا false ف ان لغ ة <strong>++C</strong> ،تعط ي الحال ة الص ائبة ق يمة عددي ة تخ تلف ع ن الص فر وتعط ي ق يمة ص فر للحال ةال زائفة ) ع ند ع دم تحق ق الش رط أو الش روط ول ذا فان لغة <strong>++C</strong> توفر مرونة كبيرةفي استخدام عدد كبير من الدوال ، وفي توجيه البرنامج بطريقة فعالة وفائقة.‏،،،،،،،،(،،،،،،،،PDF created with pdfFactory Pro trial version www.pdffactory.com


الجمل الشرطيةتتعامل لغة <strong>++C</strong> مع ثلاثة أنواع من جمل الشرط وهي:‏١- جملة إذا الشرطية وأخواتها٢- جملة التوزيع٣- جملة أداة الشرط ?if statementsswitch statementجملة الشرط إذا وأخواتهاif statements-جملة الشرط إذا وأخواتهاتأخذ هذه الجملة الشكل العام التالي:‏If (condition) statement1;if statements،،تق وم جمل ة إذا الش رطية ه نا ب نقل تسلس ل تنف يذ ال برنامج إل ى الجمل ة ‏(أو سلس لةالجمل ة)‏ statement1 ع ندما ي تحقق الش رط ‏(أو الش روط)‏ condition وتك وننتيج ته وإذا ل م ي تحقق الش رط أي تك ون النت يجة ف ان التنف يذ ين تقلف ورا إل ى الجمل ة أو سلس لة الجم ل)‏ statment2 ويع د اس تعمالاخت ياريا أي يمك ن حذفه ا دون أن ت تأثر الجمل ة الش رطية تركي با واداء ويك ون ش كلهاالعام على النحو التالي:‏<strong>++C</strong> ف ي else، falseIf (condition) statement1;Else statment2;)، true،وف ي ه ذه الحال ة س تنفذ الجمل ة statement1 أن تحق ق الش رط condition وإلا ف انالتنفيذ ينتقل إلى سطر <strong>++C</strong> التالي لجملة . ifالصيغة الأولىوتأخذ البنية العاملة If (condition) statement1PDF created with pdfFactory Pro trial version www.pdffactory.com


مثال‎١‎‏:‏اكتب برنامجا بلغة <strong>++C</strong> لإظهار العبارة x is positive على شاشة العرض؟#include “ stdafx.h”#include “ iostream.h”main (){int x=5;if (x>0)cout


مثال‎٣‎‏:‏ق م بإنش اء ب رنامج لإدخ ال علام ة طالب فإذا كانت العلامة اكبر أو تساوي 90 فالتقديرأم ا إذا كان ت اك بر أو تس اوي 80 فال تقدير أم ا إذا كان ت اك بر أو تس اوي70 فال تقدير (C) أم ا إذا كان ت اك بر أو تس اوي 60 فال تقدير ‏)أم ا إذا كان ت اك برأو تساوي 50 فالتقدير ما عدا ذلك فالتقدير(‏F‏)؟D)( B)( E)(A)#include “ stdafx.h”#include “ iostream.h”main (){int mark;char grade;cin>>mark;if (mark>=90)grade='a';elseif (mark>=80)grade='b';elseif (mark>=70)grade='c';elseif (mark>=60)grade='d';elseif (mark>=50)grade='e';elsegrade='f';cout


الصيغة الثانيةوتأخذ البنية العاملة لجملة إذا .... وإلا(‏if..else‏)‏ الشكل العام التالي:‏If (condition){statmenet1;}else{statmenet1;}مثال‎٤‎‏:‏سوف نطبق المثال السابق (3) لكن بالشكل (if..else) أعلاه كما يلي:‏#include0“ stdafx.h”#include “ iostream.h”main (){int mark;char grade;cin>>mark;if ( mark>=90){grade='A';{elseif (mark>=80){grade='B';{elseif (mark>=70){grade='C';{elseif (mark>=60){grade='D';{elseif (mark>=50){grade='E';}cout


مثال‎٥‎‏:‏اكت ب ب رنامجا لإدخ ال طول ك وط ول زم يلك وإذا ك ان طول ك اك بر م ن طول زميلكاطبع طولك واحسب معدل الأطوال ثم اطبعه وألااطبع طول زميلك واطبع ضعف الطول ونصف الطول؟الحل/‏سنرمز لطولك t1 وسنرمز لطول زميلك t2،،،،#include “ stdafx.h”#include “ iostream.h”main (){int t1,t2;cin>>t1>>t2;if (t1>t2){cout


جملة التوزيع switch statementتأخذ جملة Switch الشكل العام التالي في لغة ++c :Switch (expression){Case constant1: statments1; break;Case constant2: statments2; break;..................................................................................................................................................................Case constantn: statmentsn; break;Default; last statements;}جملة أو جمل تنفذ عندماساوي التعبير قيمةconstant1جملة أو جمل تنفذ عندماساوي التعبير قيمةconstant2تعبير قيمته صحيحةيتم تنفيذها عند عدم تنفيذجميع الحالات الواردةأعلاه في بنية Switch#include “ stdafx.h”#include “ iostream.h”void main(){int s1;s1=2;switch (s1){case 2 :cout


جملة أداة الشرط ?،...وه ي أداة س ريعة مكاف ئة لبن ية إذا وإلا وق د م ر مع نا كيف ية اس تعمالها ف ي أولالكتاب وسوف نورد هنا صورتها العامة:‏Variable=(condition)? Result:result2;ومع ناها:‏ ان ه ي تم تنف يذ النت يجة الأول ى result1 ع ندما يك ون ج واب الش رطcondition م تحققا وإلا في تم تنف يذ النت يجة الثان ية result2 ع ندما يك ونجواب الشرطمثال‎٧‎‏:‏#include “ stdafx.h”#include “ iostream.h”void main(){int a,b;a=5;if (a>1) b=10;elseb=20;cout


التكرار وحلقات التكرارRepetition and Loopsتوف ر لغ ة <strong>++C</strong> ، كس ائر لغ ات ال برمجة ، عددا من أساليب التكرار المشروطالمشروط ومن هذه الأساليب:‏أسلوب التكرار باستعمال حلقة،Forوغيريمتلك أسلوب التكرار باستعمال for قوة ومرونة ، لا تتوفران في غيرها من اللغات.‏الصيغة العامة الأولىFor ( initial-value; condition; increment ) statement;شرط يقيدحركةوغالبا مايحوي قيمةنهائيةالقيمةالابتدائية لعدادحلقة ForForجملة آو يتمتكرارتنفيذها عددمرات تكرارForالزيادةالمنتظمةفي العداد..،تق وم جمل ة For ه نا مب تدئة بق يمة الع داد الابتدائية بتنفيذ الجملة statement1‎أول مرةوف ي الم رة التال ية ت زداد الق يمة الابتدائ ية للع داد بمق دار ال زيادة ث م ت نفذ جمل ةstatement1 م رة ثان ية وهك ذا ح تى يس تكمل الشرطconditionأمر إنهاء عملياتال تكرار والخ روج م ن حلق ة والأم ثلة التال ي توض ح كيف ية اس تعمال حلق اتالتكرار بجملةمثال‎٨‎‏:‏، For:For#include “ stdafx.h”#include “ iostream.h”main (){char x;for (x=1;x


Islam Islam Islam Islam Islam Islam Islam Islam Islam Islam10القيمة 1نلاحظ هنا انه تم تكرار كلمة Islam10 مرات بداية منمثال‎٩‎‏:‏اكتب برنامجا لطباعة قيمة العداد من 1 إلى ‎10‎؟#include “ stdafx.h”#include “ iostream.h”main (){int a;for (a=1;a


مثال‎١٠‎‏:‏اكتب برنامجا لطباعة الأعداد الفردية من 1 إلى ‎15‎؟#include “ stdafx.h”#include “ iostream.h”main (){int a;for (a=1;a


For ( initial-value; condition; increment ){statement;}الصيغة العامة الثانيةجملة أو اكثرشاهد الأمثلة التالية لنتعرف اكثر على الصيغة أعلاه:‏مثال‎١١‎‏:‏#include “ stdafx.h”#include “ iostream.h”main (){ int x,y,z;y=-4;for(x=1;x>y;x=x-2)}z=x;cout


مثال‎١٢‎‏:‏#include “ stdafx.h”#include “ iostream.h”main ()القيمة الابتدائية a,b,c,x; { inta=6;b=1;c=3;for (x=11;(a*c)>(x*b);x--){x=x+3;اكثر من جملة بينc=c-2;القطعتين Blockcout


حلقات التكرار المتداخلةNested(Multiple)forLoopsتأخذ صيغة حلقات التكرار المتداخلة الشكل العام التالي:‏For (...)For (...)For (...).………………………….…………………………Statements;فلو أخذنا حالة حلقتين متداخلتين فانهما تكتبان على الصورة التالية:‏For(...)For (...)Statements;تسمى الحلقةالخارجيةتسمى الحلقةinner الداخليةloopouterloopجملة أو جمل تكررحسب أوامرالحلقتينوتك ون ف ي ه ذه الحال ة الجمل ة ‏(أو الجم ل)‏ ج زءا مك ررا مرت بطا بالحلق ة الداخل يةوالحلقة الخارجية تتكرر حسب أوامر الحلقة الخارجية وهكذا،...PDF created with pdfFactory Pro trial version www.pdffactory.com


وفي حالة الثلاث حلقات المتداخلة ، فإنها تكتب على الصورة التالية:‏جملة أو جمل تتكرحسب أوامرالحلقات الثلاثFor (...)For (...)For (...)Statement;مثال‎١٤‎‏:‏الحلقة الخارجيةالحلقةالداخلية#include “ stdafx.h”#include “ iostream.h”main (){int i,j;for (i=1;i


مثال‎١٥‎‏:‏#include “ stdafx.h”#include “ iostream.h”main (){int i,j;for (i=2;i=3;j-=3)cout


أسلوب التكرار باستعمال حلقة While & Do، for،أس لوب ال تكرار باس تعمال حلق ة while أس لوب آخ ر يم اثل أس لوب حلق ة م عبع ض الاخ تلافات البس يطة وه و أس لوب ي ثرى لغ ة <strong>++C</strong> ، وي زدها ق وة وم رونةوالشكل العام لهذا الأسلوب:‏،While (conditions) statements;جملة يتم تنفيذهاحسب الشرطconditionsشرط أو اكثر ينظمعملية التكرار(ومعنى حلقة التكرار while هو الأتي:‏آي م ا دام الش رط أو الش روط م تحققا ‏(وجواب ه في تم تك رار تنفيذ الجملة أووين تقل تسلس ل تنف يذ ال برنامج إل ى الجمل ة الت ي تل ي حلق ةالجم ل. whileوالأمثلة التالية توضح ذلك:‏مثال‎١٦‎‏:‏، (true#include “ stdafx.h”#include “ iostream.h”main (){ int a;a=1;while (a


مثال‎١٧‎‏:‏#include “ stdafx.h”#include “ iostream.h”main (){ int a;a=1;do{cout


مثال‎١٩‎‏:‏اكت ب ب رنامجا يطل ب م ن المس تخدم إدخ ال ق يمة عددي ةيطبع * على سطر جديد؟الحل/‏،وطالم ا أن الق يمة المدخل ة +#include “ stdafx.h”#include “ iostream.h”main (){ int a;couta;while (a>=0){cout


Nested While Loops،حلقات While المتداخلةتش بة حلق ات While الم تداخلة حلق ات for الم تداخلةالمتداخلتين التاليتين:‏مثال‎٢٠‎‏:‏فم ثلا خ ذ حلقت ي ال تكرار#include “ stdafx.h”#include “ iostream.h”main (){int i=j=1;while (i


جملة الإيقاف Break،،م ن الاس م نس تطيع أن نلاح ظ أن وظ يفة Break ه ي إيق اف بن ية أو حلق ة تك رار ع ندتحق ق ش رط أو ش روط معي نة وع ند تنف يذها ي تم القف ز إل ى سلس لة الجم ل التالية للبنيةأو حلق ة ال تكرار وتس تعمل Break أيض ا ف ي إيق اف حلق ة ال تكرار لانهائ ي أوالخروج منها إلى الجمل التي تليها وكما في المثال التالي:‏مثال‎٢١‎‏:‏،#include “ stdafx.h”#include “ iostream.h”main (){int i;for (i=1;i


مثال‎٢٢‎‏:‏#include “ stdafx.h”#include “ iostream.h”main (){int number;for (number=1; number


جملة الاستمرارcontinueتعم ل جمل ة الاس تمرار continue عل ى تج اوز تنف يذ بق ية الجم ل ف ي ال تكرار خ لالالدورة الحالية والانتقال إلى الدورة الثانية:‏مثال‎٢٣‎‏:‏#include “ stdafx.h”#include “ iostream.h”main (){int x,n;do{cin>>x>>n;if (n


مثال‎٢٤‎‏:‏تطبع جميع الأرقام من 1 إلى 100 ما عدا الأرقام التي تقسم على 2 و 4 و‎6‎ بدونباق:‏#include “ stdafx.h”#include “ iostream.h”main (){int number;for (number=1;number


جملة الخروج، وتشبة end(exit(0)exit())،،تعم ل ه ذه الدال ة عل ى إيق اف أو الخ روج م ن ال برنامج ف ي مكان منهف ي لغ ة بيس ك وتك ون ق يمة الدال ة ص فرا ع ندما ي تم الخ روج م ن البرنامجب نجاح وألا ف ان ق يمة الدال ة تك ون exit(1) وتوق ف ال برنامج ع ند وج ود خط أ أو نح وذل ك وف ي ه ذه الحال ة وتل ك يع ود ال برنامج تنف يذه إل ى نظ ام التش غيلoperating،. systemمثال‎٢٥‎‏:‏#include “ stdafx.h”#include “ iostream.h”main (){chat ma;cin>>ma;if ( ma != ‘A’) exit(1);cout


جملة الانتقال،،gotoم ن المع روف أن معظ م لغ ات البن يوية الحدي ثة تح رص ف ي غال ب الأح يان ألاتس تعمل جمل ة goto م ن اج ل التأك يد عل ى الم برمج أن ي تعلم ب رامجه بطريقة بنيويةstructured ذات ية المداخ ل والمخ ارج والعمل يات دون تدخ ل م ن الم برمج بقولهاذه ب goto م ن ه نا أو اذه ب م ن ه ناك آي أن ال برنامج ف ي ه ذه الحال ة يعتمد علىنفسه:،،،،.مثال‎٢٦‎‏:‏#include “ stdafx.h”#include “ iostream.h”main (){int x;cin>>x;if (x


المتغيرات المرقمة والمصفوفاتArrays and Matrices،مقدمة introduction،أن ط رق ال تعامل م ع أس ماء المتغ يرات والثواب ت العددي ة والرم زية الت ي وردت ف يالفص ول الس ابقة تع د ص الحة لل تعامل م ع ع دد مح دود من هذه الثوابت والمتغيراتس واء ف ي عمل يات الإدخ ال والإخ راج أو ف ي العمل يات الحس ابية والمنطق ية وع ندمايص بح ع دد المتغ يرات كب يرا ج دا تص بح تل ك الط رق غ ير عمل ية فم ثلا ل و أردن افك م الح يز المطل وب م نإدخ ال مائ ة ق يمة للمتغ يراتال برنامج لعمل يات الإدخ ال والإخ راج والعمل يات الحس ابية والمنطق ية له ذه المتغيرات ؟ه ذا م ن جه ة وم ن جه ة أخ ر ى فأن نا نوف ر مخ زنا خاص ا لك ل متغير نتعامل معهأث ناء تنف يذ ال برنامج ولذل ك لحف ظ قيم ته ف ي مخ ون وم ن ث م لاس تعمال قيم ته ف يعمل يات أخ رى تال ية وم ن ناح ية ثال ثة ف ان م ن الصعوبة بمكان بل من المستحيلاستعمال اسم المتغير العددي أو الرمزي كمصفوفة ذات بعدين وثلاثة أبعاد ‏...الخ،،،،،،،، إل ي x100 .... x2,x1-،،:،،،للأس باب ال ثلاثة ال واردة أع لاه ، ج اءت فك رة استعمال متغير جماعي يضم تحت اسمهوي تم ترقم يهع ددا م ن العناص ر يس مى بالمتغ ير الرقم يوق د نس ميةبي ن قوس ين مربعي ن ] [ يوض ع بي نهما ق يمة الع داد الم رقم فه والدل يل index أح يانا ، ويمكن نا تش بيه المتغ ير الم رقم بقس م اله اتف لمؤسس ة م ا ت نظم تح ته ع دد م ن الأرق ام الفرعية للموظفين وكل رقم من هذه الأرقاممقس م واح د الآنو له مخ زن خ اص ف ي الذاك رة مس تقل ومتم يز ع ن الأرق ام الفرع ية الأخ ر ى كم ا يمك ن تش بيهان ه كغ يره م ن الأرق ام الفرع ية ت ابع لل رقم الع ام لمقس م المؤسس ة لك ن يض م ع ددا كب يرا م نالمتغ ير الم رقم بالج يش ال ذي يع امل كاس م متغ ير واح د فمثلا العناصر التالية ‏:(من اليمين إلى اليسار):‏العناصر ،،A[n]، subscripted variable، subscript،...a[2], a[1], a[0]،،a[ ]،،تابع للمتغير الجماعيوك ل عنص ر م ن ه ذه العناص ر له ع نوان ف ي الذاكر فالعنوان الأول يكونللعنصر الأول والثاني للثاني والثالث للثالث وهكذا.‏ويس تعمل المتغ ير الجماع ي ‏[الم رقم]‏ أو المص فوفة ف ي لغ ة ++c وغ يرها ، حج زجماع ي مس بق ف ي الذاك رة لجم يع عناص ره فل و ك ان يت بعه خمس ون عنص را فان هيحجز له 50 مخزنا على الأقل في الذاكرة،، address:،...،.،م ن الفوائ د المهم ة للمتغ يرات الم رقمة والمص فوفات ه و اس تعمالها ف ي الترتي بالتص اعدي والتنازل ي للعناص ر والق يم المخ تلفة وعمل يات ترتي ب الأس ماء الأبج دي،PDF created with pdfFactory Pro trial version www.pdffactory.com


،،النص وص الرم زية ، وف ي عمل يات ض رب المص فوفات وإيج اد معك وس المص فوفةوعملياتها الأخرى وفي التحليل العددي الخ.‏المتغير المرقم المصفوفة ذو البعد الواحد one-dimensional Arrayالمتغ ير الم رقم ذو ال بعد الواح د ه و مص فوفة ذات بعد واحد أو متجهفي الجبر على النحو الأفقي(vector) ويمثل...[a1 a2 ...a3]()أو العموديA1A2:::a3ويأخذ المرقم المتغير في ++c الشكل العام التالي:‏Type-specifier array-name[size];double -–intcharالعدد منالعناصرالاسم الجماعيمثل،وي بدأ الع داد الم رقم ع ادة م ن الص فر آي أن العنص ر الأول م ن المص فوفة []a ه ووهكذا فمثلا المصفوفة التالية:‏Int a[20];... a[1] والثاني a[0]، a اسمهاوالمصفوفة التالية:‏مصفوفة رمزيةلهاوهكذا...‏وقد حجز لها 20 موقعا لعشرين عنصرا من النوع الصحيحChar name[15];.،.اسمها name يحجز لها خمسة عشر عنصرا من النوع الرمزيPDF created with pdfFactory Pro trial version www.pdffactory.com


مثال‎١‎‏:‏مثال على عملية إدخال ذاتي لقيم عناصر متغير مرقم ) مصفوفة ( ذي بعد واحد#include “ stdafx.h”#include “ iostream.h”main (){int a[20];int I;for (I=0;I


مثال‎٢‎‏:‏مثال على عمليات إدخال ، وحساب ، وعمليات طباعة عناصر مصفوفة:‏#include “ stdafx.h”#include “ iostream.h”main (){int x[5], y[5];int I;for (I=0;I


إعطاء قيمة أولية للمصفوفة ذات البعد الواحدArrayInitializationمثال على إدخال عدة عناصر من مصفوفة الدرجاتومثال على إدخال قيم عناصر المصفوفة الرمزيةgrade[]Int grade[5]={80,90,54,50,95}name[]Char name[4]=“nor”لاح ظ أن المتغ ير الم رقم name[] مك ون م ن أربع ة عناص ر بي نما ت م إعط اؤه ثلاث ةعناصر فقط والسبب أن العنصر الرابع بالنسبة إلى المعطيات الرمزية يكون خاليا.‏مثال‎٣‎‏:‏#include “ stdafx.h”#include “ iostream.h”main (){int a[6]={40,60,50,70,80,90}int I;for(I=0;I


مثال‎٤‎‏:‏ق م بك تابة ب رنامج يق وم بإيج اد مجم و عالعلامات كالتالي:‏87,67,81,90,55،ومع دل علام ات الطال ب ف ي 5 م واد وه ذه#include “ stdafx.h”#include “ iostream.h”int m,i;main (){int a[5]={87,67,81,90,55}int s=0;for(i=0;i


عنوان عناصر المصفوفة في الذاكرةAddressing،Array Elements in Memoryذك رنا م ن ق بل أن آي متغ ير أو عنصر من متغير ذاتي مرقم يحتل موقعا من الذاكرةيس تعمل ع ادة مؤش را لك ل متغ ير أو عنص ر ل يكون دل يلا عل ى اس تعمال ه ذهالمتغ يرات والعناص ر بس هولة ويس ر والم ثال التال ي يوض ح ه ذه العمل ية بالنس بةللمصفوفة ذات بعد واحد.‏Int x[5];،،يمك ن تمث يل عناص ر المص فوفة x المعل ن ع نهاالتالي من اليسار إلى اليمين)‏الخامس الرابع الثالث،)م ع عناوي نها بالش كل التوض يحيالثانيالأولX[0] X[1] X[2] X[3] X[4]100 101 102 103 104عنوانه فيالذاكرةالعنصرx[0]103 102،،إذا فرض نا أن ع نوان موق ع العنص ر الأول ف ي الذاك رة ه و ، 100 فان عناوينالعناصر الأخرى تكون على التوالي 101يمك ن تش بيه العلاق ة بي ن ق يمة العنصر وعنوانه بالعلاقة بين علامة طالب ورقمهالجامعي إذ علامته هي قيمة نشطه كعنصر ليس لها علاقة برقم مقعده الجامعي.‏،104،،PDF created with pdfFactory Pro trial version www.pdffactory.com


المصفوفة ذات البعدينTwo-Dimensional Arrays،تش بة المص فوفة ذات البعدي ن ف ي ط ريقة تعامله ا المص فوفة ذات ال بعد الواح د إلا أنله ا عدادي ن(‏ (index2 دليلي ن أو مرقمي ن إحداهم ا ع داد للص فوف والأخ ر ع دادللأعمدة ويأخذ الإعلان عن المصفوفة الشكل العام التالي:‏Type-specifier arraey_name [index 1][index 2];،الدليل الثانيالدليل الأولاسم المصفوفةفمثلا المصفوفةInt x[2][3];int:وه ي مص فوفة ص حيحة العناص ر أبعاده ا ه ي ع دد الص فوف=‏‎2‎ ، وعدد الأعمدة3=لاحظ أن عدد الصفوف يوضع بين قوسين وحده ، وكذلك عداد الأعمدة .PDF created with pdfFactory Pro trial version www.pdffactory.com


مثال‎٥‎‏:‏شاهد هذا المثال الذي يستخدم 5 طلاب و 3 علامات:‏#include “ stdafx.h”#include “ iostream.h”main (){int m[5][3];int I,j;for(I=0;I3;j++)cin>>m[I][j];return0;}وبالنس بة لعناوي ن العناص ر المص فوفة م تعددة الأبع اد ف ي الذاك رة ، لا يخ تلف عم اذك رنا بالنس بة للمص فوفات ذات ال بعد الواح د ولذلك لو فرضنا في المثال السابق أنالعنص ر ك ان ع نوانه 100 م ثلا ف ان عناوي ن العناص ر التال ية:‏ حسب ترتيبهاالمذك ور أع لاه ه ي 102-101-100 لعناص ر الص ف الأول 105-104-103لعناصر الصف الثاني.‏،،x[0,0]PDF created with pdfFactory Pro trial version www.pdffactory.com


الدوالFunctions،مقدمة Introduction،()،تع رف الدال ة الاق تران عل ى أنها : جمل ة أو مجموع ة جم ل أو تعليمات ذات كيانخ اص تق وم بعمل ية أو مجموع ة عمل يات ، س واء عمل يات إدخ ال أو إخ راج أوعمل يات حس ابية أو منطق ية وتح تل الدال ة موقعا من البرنامج آي أنها جزء منه أويمكن القول أن برنامج ++c ، يتكون من مجموعة من الدوال.‏،،-١-٢ومن فوائد الدوال التالي:‏تس اعد ال دوال المخ زنة ف ي ذاك رة الحاس ب عل ى اختص ار ال برنامج إذ يك تفىباستعادتها باسمها فقط لتقوم بالعمل المطلوب.‏تس اعد ال دوال المخ زنة ف ي مكت بة الحاسب أو التي يكتبها المبرمج على تلافيعمليات التكرار في خطوات البرنامج التي تتطلب عملا طويلا وشاقا.‏تساعد الدوال الجاهزة على تسهيل عملية البرمجة نفسها.‏توفر مساحة من الذاكرة المطلوبة.‏اختصار عمليات زمن البرمجة وتنفيذ البرنامج بأسرع وقت ممكن.‏،-٣-٤-٥-٢-٣-٤-٥وللتدليل على أهمية الدوال في برمجة ++c خذ المثال التالي:‏لو أردنا كتابة خوارزمية لخطوات صنع كأس من الشاي فأننا نكتب ما يأتي:‏١- ضع الماء في غلاية الشاي.‏سخن الماء حتى يغلى.‏أضف شايا إلى الماء.‏أضف سكرا إليه.‏أطفئ النار.‏٦- صب شايا في كأس.‏:-١اف رض الآن أن نا ن ود طل ب ك أس م ن الش اي م ن مقه ى مج اور أن خط واتالخوارزمية التي نحتاجها الآن هي خطوه واحده فقط وهي:‏استدع كأس من الشاي.‏تخ يل الآن ك م وف رنا م ن الخط وات ل و اس تعملنا ال دوال الجاه زة أو الت ي يجه زهاالم برمج م ن ق بل ب دلا م ن خطواته ا التفص يلية وبخاص ة ف ي برنامج يتطلب حساباتوعمليات كثيرة وكم يكون البرنامج سهلا وواضحا وقتذاك.‏)(وتأخذ الدالة الشكل العام التالي:‏PDF created with pdfFactory Pro trial version www.pdffactory.com


Type-specified function-name (formal parameters;{function body}،،.،وق د ذك رنا م ن ق بل أن الدال ة ق د تع تمد عل ى متغ ير أو اك ثر وق د لا تع تمد عل ى آ يمتغ ير وف ي ك لا الحالتي ن يس تعمل بع د اس م الدال ة قوس ين () س واء ك ان بي نهمامتغيرات أم لامثال‎١‎‏:‏#include “ stdafx.h”#include “ iostream.h”max1(){cout


تطبيقات على الدوالمثال‎٢‎‏:‏شاهد هذا البرنامج وتتبعه أولا بالmain وانظر للنتائج:‏أعزائي سأشرح النتائج قبل إظهارها للتسهيل عليكم في الأمثلة القادمة:‏لنتعبر أن هناك ثلاث كواكب:‏كواكب main الرئيسيكوكب fax#include “ stdafx.h”#include “ iostream.h”int x,y;void max(){x=x+y;}void fax(){max();max();{void main(){y=10; x=0;max();fax();cout


مثال‎٣‎‏:‏#include “ stdafx.h”#include “ iostream.h”void x1(){cout


مثال‎٤‎‏:‏ق م بك تابة ب رنامج يق وم بق راءة ع دد ص حيح وم ن ث م طباعة ما إذا كان الرقم زوجي أمفردي من خلال دالة أو اقتران؟#include “ stdafx.h”#include “ iostream.h”int x;check(){if ((x%2)==0)cout


مثال‎٥‎‏:‏ق م بك تابة ب رنامج يق وم باس تخراج اك بر رق م م ا بي ن رقمي ن مدخلي ن من قبل المستخدموذلك من خلال دالة اسمها max ؟#include “ stdafx.h”#include “ iostream.h”int x,y;max(){if (x>y)cout


تقنية الأقراص و دوال الملفات الانتقاليةdisk FilesBuffered filwمقدمة Introduction،ص ممت ه ذه ال دوال لل تعامل م ع الملف ات الانتقال ية للأق راصsystem لمعالج ة النص وص كم ا ك ان م توفرا ف ي لغ ة <strong>++C</strong> ال نظام الأخ ر غ يرالانتقال ي unbuffered المش ابهة ل نظام يون يكس للإدخ ال والإخ راجوك ان ال نظام الأخ ير يس تعمل لل تعامل م ع المعط يات بنس ق ال نظام الثنائ يألا أن لج نة C ف ي معه د المقاي يس الأمريك ي الوطن ي للغ اتال برمجة ANISI-C Committee ق ررت مؤخ را الاس تغناء ع ن ال نظام غ يرالانتقال ي م ن أنظم ة ال تعامل م ع المعط يات الثنائ ية ف أوجدت ال بديل بحي ث يص بحبمق دور دوال ال نظام الانتقال ي ال تعامل م ع ك ل م ن النص وص text والمعط يات الثنائيةي تعاملف ي وق ت واح د أي أن آخ ر ص ورةبنظام واحد فقط هو نظام الملفات الانتقاليةونح تاج ع ند ال تعامل م ع دوال ه ذا ال نظام أن نستعمل ملف الدليل للإدخال والإخراجstdio.h ويلخص لنا الجدول التالي اشهر هذه الدوال:‏UNIX-like،، C م ن (version)،.،.، I/O، binary systembinary system)()اسم الدالةوظيفتهاتفتح لك ملفاتغلق لك ملفاوهي مثلرمزا لبنة تطبع تخرج وهي مثلإلى الملف رمزا تدخل لبنة في الملفن تبحث لك عن بعض الرموز لكن للملفاتمثل وظيفة لكن للملفاتمثل وظيفة تعطي النتيجة true عند وصول نهاية الملفعند حدوث خطأتعطي النتيجة ترجع الملف إلى بدايتهcharchar(،) ص (printfscanftrue()الجدول -١ ٥fopen()fclose()putc()getc()fseek()fprintf()fscanf()feof()ferror()rewind()PDF created with pdfFactory Pro trial version www.pdffactory.com


دالة فتح الملف () fopenمثال‎١‎‏:‏الرمز wلاستحداثنص جديد للكتابةنكتب آي اسم للتخزينبموقع الذاكرة مثلا f#include “stdio.h”main(){FILE *f;F=fopen(“C:\\matrix.txt”,”w”);Fclose (f);اسم الملف ونحدد موقعه(‏ مساره)‏في القرص Creturn0;}نلاح ظ أن نا قم نا ف ي الس طر الأول أع لاه بإنش اء موق ع للملف في ذاكرة الحاسوب طبعانكتب FILE بالأحرف الأبجدية الكبرى ثم بعد ذلك * وبعدها نطلق المسمى مثلا f()،.بع د ذل ك نق وم بعم ل الدال ة الخ اص بف تح مل ف ف ي ق رص disk وتعود تعطي قيمةبمؤشر الملف المعرف له وهوثم نق وم ب تحديد موق ع المل ف الم راد إنش اءه ويجب التحذير هنا انه يجب عدم كتابة اسممل ف م ن ملف ات ال نظام system لتجن ب ع دم ح دوث خلل ومشاكل بالجهاز مثلا نكتبكم ا أع لاه matrix.txt وه و مل ف نص ي ويج ب وض ع العلامتين \\ بعد كتابة القرصC ولا يص ح وض ع علام ة واح ده \ فق ط بع د ذل ك نكتب الرمز w لاستحداث الملفالجدي د ث م بع د ذل ك ف ي الس طر الأخ ير نق وم بإغلاق ه بالدال ة (f) fclose ويج ب ك تابةهذه الدالة كي يصبح البرنامج صحيحf طبعا.‏الآن ق م بتنف يذ ال برنامج بع د ذل ك ل ن يظه ر ل ك ش ي ق د تس تغرب م ا الف ائدة الآن اذهبعزيزي إلى القرص C وهو الذي قمت بإنشاء الملف فيه المسار أعلاه)‏وشاهد الملف الجديد)هذا هو الملفالجديدPDF created with pdfFactory Pro trial version www.pdffactory.com


جدول الأنماط ، حسب ما قررته ANSI مؤخرا:‏وظيفتهرمز النمطلفتح ملف النص للقراءة" لاستحدث ملف نص للكتابة" للإلحاق بملف نص" لفتح ملف ثنائي القراءة" لاستحداث ملف ثنا ئي الكتابة"للإلحاق بملف ثنائي" لفتح ملف نص للقراءة أو الكتابة" لاستحداث نص للقراءة أو الكتابة" لفتح ملف نص للقراءة أو الكتابة" لفتح ملف ثنائي للقراءة أو الكتابة" لاستحداث ملف ثنائي للقراءة أو الكتابة" لفتح ملف ثنائي لل قراءة أو الكتابة"الجدول -٢ ٥"r"w"a"rb"wb"ab"r+"w+"a+"r+b"w+b"a+bنلاحظ أن هذا الجدول يمكن استعماله لكل من ملفات النص والملفات الثنائية.‏PDF created with pdfFactory Pro trial version www.pdffactory.com


دالة الكتابة داخل الملفfprintf ()مثال‎٢‎‏:‏ق م بك تابة ال نص "++c " welcome to داخ ل المل ف ال ذي قم نا بإنش ائه ف ي الم ثالالسابق (1) وهو ملفmatrix ؟#include “stdio.h”main(){FILE *f;f=fopen(“C:\\matrix.txt”,”w”);fprintf (f,”welcome to c++”);return 0;}اظفنا هذا السطرالجديد للطباعةبداخل الملف(fprintf)لاح ظ عزي زي الق ارئ أن نا قم نا بوض ع الدال ة وه ي الدال ة الخاص ة بالك تابةداخ ل الملف ات بإمك انك ال رجوع للج دول ١-٥ الآن نف ذ ال برنامج وبع د تنف يذ ارج عللملف في القرص c وافتحه لتشاهد العبارة ++c welcome to قد كتبة بداخله.‏PDF created with pdfFactory Pro trial version www.pdffactory.com


دالة إغلاق الملف، fopen()fclose ()، fopen()وتعم ل عك س الدال ة ف تغلق المل ف ال ذي فتح ناه بالدال ة وك لالملف ات المطلوب ة م نك إغلاقه ا ق بل نهاي ة ال برنامج وف ي حال ة ع دم قيام نا ب إغلاقالمل ف ف ان ع ددا م ن المش كلات ق د تق ع وم نها ض ياع بع ض المعط يات وات لافالملف ووقوع أخطاء في البرنامج،،،.،مثال‎٣‎‏:‏#include “stdio.h”main(){FILE *f;f=fopen(“C:\\matrix.txt”,”w”);fprintf (f,”welcome to c++”);fclose (f)return 0;}قمنا بإغلاق الملف فيهذا السطر كما تلاحظPDF created with pdfFactory Pro trial version www.pdffactory.com


الدالتانputw() getw()تق وم معظ م م ترجمات ++c باس تعمال هاتي ن الدالتي ن الإض افيتين ل تقوما بعمليت يوهات ان الدال تان غ يرق راءة وك تابة الأع داد الص حيحة م ن وال ي ملف ات الأق راص وتعم ل هات ان الدال تانمعتمدي ن م ن ق بل معه د المقاي يس الوطن ي الأمريك ي والف رق الوح يد انهم ا ت تعاملان م ع ع دد ص حي حو تمام ا كالدالتي ن بدلا من رمزي.‏،، ANSIputc()getc()مثال‎٤‎‏:‏الدالة التالية تقوم بكتابةبمؤشر الملف) طباعة)‏: fالعدد الصحيح 1000 في ملف القرص المشار إليهPutw (1000,f);: fمثال‎٥‎‏:‏الدال ة التال ية تق وم بك تابة ق يمة المتغ ير الص حي ح x في ملف القرص المشار إليه بمؤشرالملفPutw (x,f);PDF created with pdfFactory Pro trial version www.pdffactory.com


مثال‎٦‎‏:‏الدالة التالية تقوم بقراءة عدد صحيح ، من ملف مشار إليه بمؤشر الملف : f#include “stdio.h”main(){FILE *f;int x;x=getw (f);printf (“%d”,x);return 0;}PDF created with pdfFactory Pro trial version www.pdffactory.com


النهايةPDF created with pdfFactory Pro trial version www.pdffactory.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!