; ópTO á¬Oñí ƒT½n áT½ áT½
Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out

ópTO á¬Oñí ƒT½n áT½ áT½

VIEWS: 0 PAGES: 41

  • pg 1
									                                                                      ‫1-2 الملف الدليلي‬

                             ‫‪ ‬تعتبر لغة ++‪ C‬اضخم لغة، وذلك لكبر حجمها وتعدد مك تباتها‬
‫‪ ‬عند التعامل معها من خالل انشاء برنامج ما يتم التعامل بك تابة الملفات الدليلية والراسية‬
 ‫‪ Header Files‬تسمي ايضا بملفات التضمين ‪Include Files‬‬
                                          ‫‪ ‬يتم ذلك في لغة ++‪ C‬من خالل العبارة التالية :‬

     ‫>‪#include <iostream.h‬‬

                   ‫‪‬تعني تحميل الملف الدليلى ‪ iostream.h‬الى ذاكرة الحاسوب حتى‬
                           ‫يتسنى للمترجم معرفة او ترجمة العمليات الخاصة بالدخال والخراج‬
                   ‫‪ ‬نالحظ ان هذا الملف له اسم التمديد ‪ .h‬اختصار ل ‪header file‬‬

‫‪Omer Ahmed Saeed‬‬
                                           ‫جامعة النيلين‬                ‫اعداد د: عمر احمد سعيد‬
                   ‫ماذا تعني العالمتين > < التي تحصر اسم الملف الدليلى‬
                                           ‫>‪<iostream.h‬؟‬

‫تعني ان المترجم يبدا البحث عن الملف الدليلي في الفهرس او المجلد )‪(folder‬الساسي‬
                              ‫الذي يحوي كل الملفات الدليلية ويسمي ‪include‬‬

‫عند استبدال العالمتين >< بعالمتي القتباس " " فيبدا البحث بالفهرس الحالي (الذي يحوى‬
                                                 ‫الملف المصدر) ويصبح على النحو التالي‬
‫"‪#include "iostream.h‬‬

‫في كلتا الحالتين فسيتم تنفيذ البرنامج ولكن الختيار المناسب يسرع للمترجم من خالل تحديد‬
                                                                  ‫موقع الملف الدليلي .‬

‫‪Omer Ahmed Saeed‬‬
                                        ‫جامعة النيلين‬                   ‫اعداد د: عمر احمد سعيد‬
                                                          ‫1-3 التعليقات ‪Comments‬‬

    ‫‪‬التعليق هو عبارة عن مالحظة او معلومة تك تب في البرنامج لتوضح فهم معين او فكرة محددة‬
‫‪‬عند تنفيذ البرنامج يقوم المترجم بتجاهل هذه التعليقات اثناء عملية التنفيذ، مما يعنى ان اي‬
                                    ‫تعبير تك تبه فهو صحيح حتى لو كان من الناحية اللغوية خطا.‬
‫‪‬لن هنالك صيغ محدده تتيحها لغة ++‪C‬تستطيع من خاللها فقط ان تك تب التعليق وهما‬
                                                                                 ‫صيغتان :-‬
                                                                                 ‫الصيغة الولى‬
                               ‫ورثتها من لغة ال ‪C‬وهي ان يكون التعليق محصورا بين العالمات‬
                                                                        ‫*/‬           ‫/*‬




‫‪Omer Ahmed Saeed‬‬
                                          ‫جامعة النيلين‬                    ‫اعداد د: عمر احمد سعيد‬
                                                                                   ‫ومثال لذلك‬
 ‫‪/*This is my first program to calculate the‬‬
‫/* )++‪area of the circle with C‬‬
‫ه ذه الص يغة تجع ل اس تخدام اس لوب التعليق ات ف ي ال ++‪ C‬م رن وس هل حي ث انه ا تت يح ك تاب ة اي‬
                  ‫*/‬         ‫تعليق في اي عدد من السطر شريطة ان يكون محصورا بين العالمات /*‬
                                                                                  ‫الصيغة الثانية:‬
              ‫ان يكون التعليق مبتدئا بعالمة // وينتهي بنهاية السطر ول يتعدى ذلك، ومثال لذلك‬
‫‪//This Program Will Display Message‬‬
                                                                                               ‫او‬
‫‪//This is my first program to‬‬
‫‪//calculate the area of the circle‬‬




‫‪Omer Ahmed Saeed‬‬
                                            ‫جامعة النيلين‬                    ‫اعداد د: عمر احمد سعيد‬
                                                                ‫1-4 المتغيرات ‪Variables‬‬
                             ‫تفق كل لغات البرمجة في الحد الدنى على اربع انواع من البيانات هي‬

                                    ‫‪‬العداد الرقمية اي العداد الصحيحة مثل 1-,053,5,1‬
                    ‫‪‬العداد الحقيقية اي التي بها خانة عشرية مثل 41.3 ,78.64 ,5.0‬
‫‪‬البيان ات الرميي ة ‪characters‬ونعن ي به ا ك ل مف اتيح الطباع ة م ن ح روت وعالم ات وارق ام‬
                                                               ‫(مخينة كانها حروت وليست اعداد)‬
‫‪‬البيان ات المنطقي ة )‪ (Logical‬او )‪ (Boolean‬وه ي الت ي تاخ ذ فق ط قيمت ي خط ا او‬
                                                                                       ‫صواب‬




‫‪Omer Ahmed Saeed‬‬
                                           ‫جامعة النيلين‬                    ‫اعداد د: عمر احمد سعيد‬
                                       ‫العداد العائمة (الحقيقية ‪floating point‬‬


                                              ‫تخين العداد الحقيقية في جياين من الكلمة‬
  ‫‪ ‬الجيء الول يخين فيه الكسر ويسمى المانتيسا )‪ (mantissa‬او الخانات الكسرية المؤثرة‬
                                                        ‫‪‬الجيء الثاني فيخين فيه القوة‬

                   ‫هنالك ثالثة انواع من الرقام العائمة في ++‪ C‬والجدول التالي يوضح ذلك.‬




‫‪Omer Ahmed Saeed‬‬
                                       ‫جامعة النيلين‬                  ‫اعداد د: عمر احمد سعيد‬
                                        ‫العداد الصحيحة (‪Integer Numbers‬ا‬


‫هنالك انواع مختلفة لالعالن عن العداد الصحيحة تختلف في حجم مواضع التخيين المخصصة لكل‬
                                                ‫نوع وفي امكانية تمثيل العداد السالبة‬

              ‫هنالك ثالثة انواع من العداد الصحيحة في لغة ++‪ C‬والجدول التالي يوضح ذلك.‬




‫‪Omer Ahmed Saeed‬‬
                                        ‫جامعة النيلين‬                 ‫اعداد د: عمر احمد سعيد‬
                                                     ‫البيانات الرميية ‪characters‬‬

                                            ‫يتم تمثيل الحروت حسب نظم الترميي المعروفة مثل‬

                       ‫‪‬نظام اسكي)‪ (ASCII‬هو النظام التشفير القياسي المريكي للمعلومات‬
‫‪‬نظام ابسدك )‪ (EBCDIC‬هو نظام اي بي ام )‪ (IBM‬يختلف عن النظام الول في انه‬
‫يبدا بترميي الحروت الصغيرة ثم الحروت الكبيرة ثم الرقام اما النظام الول فيقوم بترميي الرقام ثم‬
                                                            ‫الحروت الكبيرة ثم الحروت الصغيرة‬

                      ‫في لغة ++‪ C‬يتم تخيين الحرت في متغيرات من النوع ‪char‬كما يلي:‬
‫;‪char ch‬‬


‫‪Omer Ahmed Saeed‬‬
                                           ‫جامعة النيلين‬                    ‫اعداد د: عمر احمد سعيد‬
                                                           ‫البيانات المنطقية(‪)Boolean‬‬

‫ي تم تمثي ل البيان ات المنطقي ة بثنائي ة واح دة فق ط عن دما تك ون قيمته ا واح د تعن ى ص حيح او حقيقي ة‬
‫وعن دما تك ون قيمته ا ص فر تعن ي خط ا . وهنال ك بع م المع امالت الت ي تطب ق عل ي الح دود البولياني ة‬
‫مث ل (‪ )AND, OR , NOT , XOR‬وتس مي بالمع امالت المنطقي ة اي تعي د قيم ة‬
                                                                       ‫بوليانية كما في الجدول التالي‬




‫‪Omer Ahmed Saeed‬‬
                                               ‫جامعة النيلين‬                       ‫اعداد د: عمر احمد سعيد‬
‫عند ك تابة اي برنامج بلغة ++‪ C‬نحتاج لتخيين المعلومات الواردة للبرنامج في ذاكرة الحاسوب‬
‫تحت عناوين يطلق عليها اسماء المتغيرات وبما ان انواع المعلومات المراد تخيينها تكون عادة مختلفة‬
‫مثل القيم الحقيقية او الصحيحة او الرميية فاننا نحتاج ان نعلم المترجم في بداية البرنامج عن انواع‬
                                                            ‫المتغيرات التي نريد استخدامها فمثال:‬

‫نعرت المتغير بذكر السم ونوع البيانات التي يمكن ان يحملها هذا المتغير من اي سلسلة تحتوي على‬
 ‫احرت ‪ letter‬او ارقام او خط تحتي )_(‪ underscore‬بشرط ان ل يبدا اسم المتغير برقم‬

‫ان لغة ++‪ C‬تفرق بين الحروت البجدية الصغيرة و الكبيرة ،فمثال ‪Var ,var , VAR‬‬
                                                  ‫تتعامل كمتغيرات مختلفة تماما.‬




‫‪Omer Ahmed Saeed‬‬
                                            ‫جامعة النيلين‬                     ‫اعداد د: عمر احمد سعيد‬
‫يمكن تعريف المتغيرات في اي مكان في البرنامج لكن يجب تعريفها قبل استعمالها، كما يمكن‬
‫تعريف المتغيرات التي تنتمي الي نفس النوع في سطر واحد، بشرط ان نفصل بينها بفاصلة، والمثلة‬
                              ‫التالية توضح نماذج لتبيان كيفية تعريف المتغيرات او العالن عنها.‬
‫;‪int a,b,c‬‬

‫;‪short int i‬‬

‫‪short‬‬        ‫‪i; // same as "short int‬‬

‫;‪double f,g‬‬

‫;‪float k,l‬‬



‫‪Omer Ahmed Saeed‬‬
                                           ‫جامعة النيلين‬                    ‫اعداد د: عمر احمد سعيد‬
                                                    ‫1-5 عبارتي الدخال والخراج البيانات‬

‫تستخدم لغة ++‪ C‬عبارة ‪( cout‬تقرا ‪ )C out‬لك تابة المعلومات علي الشاشة وعبارة‬
                   ‫‪( cin‬تقرا ‪ ) C in‬لقراءة المعلومات من لوحة المفاتيح. فمثال العبارة التالية‬
‫;1‪cin>>var‬‬
‫تخين الرقم الذي يك تبه المستخدم من لوحة المفاتيح في متغير يسمي 1‪ var‬حيث يمثل الكائن‬
                                                                 ‫‪ cin‬لوحة المفاتيح‬
                            ‫يمكن استخدام عامل الحصول عدة مرات في نفس العبارة مثال‬
‫;3‪cin>>var1>>var2>>var‬‬



‫‪Omer Ahmed Saeed‬‬
                                                               ‫1-6 الدالة )(‪main‬‬
‫‪‬تعتبر الدوال من اهم مقومات البرنامج في لغة ++‪ C‬ونجد ان البرنامج يمكن ان يتالف من‬
            ‫دالة واحدة او اك ثر وانه لبد لكل دالة من اسم يدل عليها عند استخدامها واستدعائها .‬

‫‪‬الدالة )(‪main‬لها خصوصيتها في لغة ++‪ C‬فان المترجم يبحث عن هذه الدالة اول‬
    ‫لتنفيذها، اما اذا لم تكن موجودة فستظهر رسالة خطا ‪Error Message‬توضح ذلك.‬

‫‪‬القواس التي تلي الدالة )(‪ main‬فهي تعني ان هذا السم هو اسم لدالة فبدون هذه القواس‬
             ‫يترجمها المترجم علي اساس انها اسم لمتغير، فلهذا تعتبر هذه القواس مهمة جدا .‬



‫‪Omer Ahmed Saeed‬‬
                         ‫د. عمر احمد سعيد‬                     ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                                             ‫1-6 الدالة )(‪main‬‬
‫‪‬الدالة )(‪main‬او الدوال الخرى لها قيمة راجعة غالبا هي حقيقة قيمة الدالة فيتم ارجاع هذه‬
‫القيمة من خالل المر‪ ،return‬اما الدوال التي ليس لها قيمة راجعة فنستخدم 0 ‪return‬او‬
                  ‫قبل اسم الدالة نك تب كلمة ‪void‬التي تعني ان هذه الدالة ليس لها قيمة راجعة‬
                           ‫‪‬المثلة التالية توضح نماذج لتبيان كيفية تعريف الدالة )(‪.main‬‬
‫)(‪main‬‬
‫{‬                             ‫)(‪void main‬‬                   ‫)(‪int main‬‬
                              ‫{‬                             ‫{‬
  ‫.....‬
                                ‫.....‬                          ‫.....‬
  ‫.....‬                                                        ‫.....‬
                                ‫.....‬
  ‫.....‬                         ‫.....‬                          ‫0 ‪return‬‬
‫}‬                             ‫}‬                             ‫}‬

‫‪Omer Ahmed Saeed‬‬
                                                                           ‫(مث ال 1-1)‬
‫‪//This Program Will Display Message‬‬
‫>‪#include <iostream.h‬‬
‫)(‪main‬‬
‫{‬
  ‫; " ++‪cout << "welcome to C‬‬
‫}‬

   ‫اذا كان محرر لغة ++‪C‬يعمل في بيئة ‪( Dos‬نظام التشغيل) سوت يقوم الحاسوب بتنفيذ‬
                                                        ‫البرنامج ويعود سريعا للمحرر‬

‫‪Omer Ahmed Saeed‬‬
                       ‫د. عمر احمد سعيد‬                 ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
    ‫‪‬تتكون برامج لغة ++‪ C‬من عبارات او جمل وتنتهي كل عبارة‬
                                       ‫بالفاصلة المنقوطة ".";‬

      ‫‪‬تتكون السماء في لغة ++‪ C‬باي طول نريده من الرموز شريطة‬
         ‫ان يبدا السم بحرت من ‪ A-Z‬او ‪ a-z‬او "_" ، لكن المترجم‬
                                       ‫يك تفي فقط باول 36 رميا .‬



‫‪Omer Ahmed Saeed‬‬
                       ‫د. عمر احمد سعيد‬                  ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
‫ولكن اذا اردت تثبيت المخرجات علي الشاشة حتى يتسنى لك مشاهدتها ما عليك ال‬
‫اضافة عبارة )(‪ getch‬الي نهاية البرن امج وهي تحتاج الى الملف‬
                                    ‫الدليلى >‪#include <conio.h‬‬
                                             ‫المثال التالي يوضح هذا المفهوم.‬
                                                                   ‫(مث ال 1-2)‬
‫>‪#include <iostream.h‬‬
‫> ‪#include <conio.h‬‬
‫)(‪main‬‬
‫{‬
  ‫; " ++‪cout << "welcome to C‬‬
  ‫;)(‪getch‬‬
‫}‬
                                              ‫اخراج البرنامج‬
‫‪Omer Ahmed Saeed‬‬
                    ‫د. عمر احمد سعيد‬              ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                                                                  ‫1-7 الثوابت‬
‫قد نحتاج ان نستخدم قيما ثابتة عند ك تابة برامجنا ، وهذه القيمة ثابتة اينما استخدمت ضمن البرنامج‬
‫ول يجوز تعديلها (وال سوت نحصل علي رسالة خطا من المترجم) فمثال عند حساب معادلة الدائرة‬
    ‫فاننا نحتاج الى قيمة وهي قيمة ثابتة ولتعريف الثوابت في لغة ++‪C‬نستخدم الصيغة التالية :‬
      ‫;>‪const ConstType <ConstName> = <value‬‬

                                                                                ‫حيث ان:‬
                                          ‫‪ConstType‬يمثل نوع الثابت مثل ‪int‬‬
               ‫‪ConstName‬يمثل اسم الثابت(يخضع لنفس قواعد تسمية المتغيرات)‬
                                ‫‪Value ‬قيمة الثابت والتي يجب ان تتالءم مع نوع الثابت‬


‫‪Omer Ahmed Saeed‬‬
                          ‫د. عمر احمد سعيد‬                     ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                                                               ‫مثال لذلك‬
‫;41.3 = ‪const float pi‬‬
‫;54321 = ‪const int maxint‬‬
‫;01 = ‪const int x‬‬
‫;’‪const char ch=’a‬‬

       ‫يجوز ان نعلن عن اك ثر من ثابت اذا كانوا من نفس النوع بعبارة ‪ const‬واحدة مثال لذلك‬
‫‪const‬‬
   ‫, 41.3 = ‪float pi‬‬
             ‫;5.0001 = ‪x‬‬


‫‪Omer Ahmed Saeed‬‬
                        ‫د. عمر احمد سعيد‬                  ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
‫ول يجوز ان نعلن عن اك ثر من ثابت بعبارة ‪ const‬واحدة اذا كانوا من انواع مختلفة والمثال‬
                                                                                ‫التالي‬
‫‪const‬‬
     ‫, 41.3 = ‪float pi‬‬
     ‫;01 = ‪int x‬‬
‫ينتج عنه خطا، وذلك لن جملة الثابت لم تنتهي بعالمة ";" وعند تصحيح هذا الخطا كما في الشكل‬
                                                                                  ‫التالي‬
‫‪const‬‬
       ‫; 41.3 = ‪float pi‬‬
       ‫;01 = ‪int x‬‬
‫يعمل البرنامج بصورة صحيحة ولكن يعتبر ان ‪x‬متغير عادي وليس ثابت وبالتالي يسمح البرنامج‬
                                                                            ‫بتعديله،‬
‫‪Omer Ahmed Saeed‬‬
                        ‫د. عمر احمد سعيد‬                  ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
‫تعتمد لغة ++‪ C‬طريقة اخري للتصريح عن الثوابت ورثتها من لغة ‪C‬ويتم ذلك من خالل‬
                                   ‫الموجه ‪#DEFINE‬وذلك وفقا للصيغة التالية‬


‫;‪#DEFINE ConstName Value‬‬

                                                                       ‫مثال لذلك‬
‫;41.3 = ‪#DEFINE float pi‬‬
‫;54321 = ‪#DEFINE int maxint‬‬
‫;01 = ‪#DEFINE int x‬‬
‫;’‪#DEFINE char ch=’a‬‬


‫‪Omer Ahmed Saeed‬‬
                    ‫د. عمر احمد سعيد‬              ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                        ‫1-8 الفراغات البيضاء ‪White Space‬‬
‫يتخطى المترجم كل الفراغات الموجودة بالبرنامج اي يمكن ان تتجيا العبارات الى عدة‬
‫اسطر ويمكن ان نك تب عدد من العبارات في سطر واحد، نستفيد من هذه الميية عند‬
     ‫تنظيم برنامجنا. ال ان هنالك حالت ل يمكن استخدام الفراغات بصورة مطلقة وهي‬
‫‪‬الملفات الدليلية (‪ )Include Files‬التي ينبغي ان تكون في سطر واحد.‬
‫‪‬الثوابت الحرفية التي لها طول محدد وهذه الفراغات تحسب ضمن الطول‬
                                                ‫المصرح به في الثوابت الحرفية.‬
               ‫‪‬التعليقات التي تستخدم النمط الثاني الذي ينتهي بنهاية السطر.‬




‫‪Omer Ahmed Saeed‬‬
                     ‫د. عمر احمد سعيد‬               ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                                   ‫وعليه فان هذه الجملة‬
‫;6295141.3 = ‪const float Pi‬‬
                                          ‫يمكن ان تك تب علي النحو التالي‬
‫‪const‬‬
‫‪float‬‬
‫‪Pi‬‬
‫; 6295141.3 =‬
                                      ‫جملة واحدة تتجيا الى عدد من الجمل‬



‫‪Omer Ahmed Saeed‬‬
                   ‫د. عمر احمد سعيد‬      ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                               ‫1-9 سالسل الهروب ‪Escape Sequence‬‬
‫سالسل الهروب هي عبارة عن رموز تؤكل لها مهام محدده ضمن البرنامج، وتضم لغة ++‪ C‬عدد من‬
                                          ‫سالسل هروب كما هو مبين في الجدول التالي‬

                                                 ‫الوظيفة‬   ‫‪Escape Sequence‬‬
                    ‫سطر جديد (النيول الى السطر التالي)‬           ‫‪\n‬‬
                             ‫لترك مسافة طولها حقل واحد‬           ‫‪\t‬‬
                                     ‫لستخدام عالمة \‬                ‫\\‬
                                      ‫لستخدام عالمة ’‬               ‫’\‬
                                      ‫لستخدام عالمة “‬               ‫“\‬

                              ‫تعتبر سالسل الهروب "‪ "\n‬و "‪"\t‬من اك ثر السالسل استخداما‬

‫‪Omer Ahmed Saeed‬‬
                      ‫د. عمر احمد سعيد‬                      ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                          ‫1-01 المؤثرات ‪Manipulators‬‬
‫المؤثرات هي عبارة عن ادوات تستخدم مع عالمة << من اجل التاثير علي شكل المخرجات‬
                          ‫والجدول التالي يوضح بعم المؤثرات المستخدمة في لغة ++‪.C‬‬


 ‫س طر جدي د (الن يول ال ى الس طر الت الي) اي ل ه نف س ت اثير‬
                                                              ‫‪End Line‬‬   ‫‪endl‬‬
                                         ‫سلسلة الهروب ‪\n‬‬
 ‫لت رك مس افة كافي ة لظه ار قيم ة معين ة م ن خ الل تحدي د‬
 ‫ع رل الحق ل المناس ب و ‪ N‬عب ارة ع ن ع دد ص حيح يمث ل‬
                                                             ‫)‪Set Width setw(N‬‬
 ‫ع رل الحق ل المطل وب ويحت اج ه ذا الم ؤثر ال ى المل ف‬
                              ‫الدليلي ‪iomanip.h‬‬



‫‪Omer Ahmed Saeed‬‬
                      ‫د. عمر احمد سعيد‬                ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                             ‫فمثال اخراج العبارة التالية‬
‫;‪cout<<"Ahmed"<<endl<<"Khalid”<<endl‬‬
                                ‫يكون علي النحو التالي‬
‫‪Ahmed‬‬
‫‪Khalid‬‬

                                                 ‫واخراج العبارة التالية‬
‫;‪cout<<"Ahmed"<<setw(20)<<"Khalid”<<endl‬‬
                                 ‫يكون علي النحو التالي‬
‫‪Khalid‬‬           ‫‪Ahmed‬‬


‫‪Omer Ahmed Saeed‬‬
                   ‫د. عمر احمد سعيد‬   ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                      ‫1-11 العمليات الحسابية وعمليات المقارنة واولوياتها‬
‫تنفذ معظم البرامج التي نستخدمها عمليات حسابية وعمليات مقارنة ويتحدد ذلك من طبيعة المشكلة‬
                                ‫او المسالة المراد برمجتها.‬
                   ‫‪a  b or‬‬
                              ‫‪a‬‬                                         ‫اول : العمليات الحسابية‬
                              ‫‪b‬‬
                                                          ‫ويمكن ان نلخصها في الجدول التالي‬
       ‫التعبير بلغة ++‪C‬‬           ‫التعبير الجبري‬        ‫الرمي الحسابي‬            ‫اسم العملية‬
           ‫‪a+b‬‬                       ‫‪a+b‬‬                 ‫+‬                            ‫الجمع‬
          ‫‪a-b‬‬                        ‫‪a-b‬‬                 ‫-‬                           ‫الطرح‬
          ‫‪a*b‬‬                         ‫‪ab‬‬                 ‫*‬                          ‫الضرب‬
          ‫‪a/b‬‬                                            ‫/‬                          ‫القسمة‬
         ‫‪a % b‬‬                    ‫‪A mod b‬‬                ‫%‬                       ‫باقي القسمة‬
‫يبين الجدول العمليات الحسابية المالوفة بالضافة الى العامل الخامس وهو عامل باقي القسمة الذي‬
                                                              ‫يسمي المعامل ‪modulus‬‬
‫‪Omer Ahmed Saeed‬‬
                          ‫د. عمر احمد سعيد‬                   ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                                                ‫ثانيا : عمليات المقارنة‬
‫تجري عمليات المقارنة بين قيمتين وتؤدي الي نتيجة صحيحة او خطا وفقا لما كانت‬
                                  ‫علية عملية المقارنة، الجدول التالي يبين ذلك.‬

        ‫مثال لذلك‬   ‫‪a  b or‬‬
                               ‫‪a‬‬                             ‫المعنى‬              ‫الرمي‬
                               ‫‪b‬‬
        ‫‪D==C‬‬                                                ‫يساوي‬                  ‫==‬
        ‫‪C!=D‬‬                                               ‫ل يساوي‬                ‫=!‬
         ‫‪C>D‬‬                                                ‫اكبر من‬               ‫>‬
         ‫‪C<D‬‬                                              ‫اصغر من‬                 ‫<‬
        ‫‪C>=D‬‬                                       ‫اكبر من او يساوي‬              ‫=>‬
        ‫‪C<=D‬‬                                      ‫اصفر من او يساوي‬               ‫=<‬

‫يحدث خطا قواعدي عندما نضع فراغات بين الرموز المعبرة عن العمليات‬
‫التالية:=!,==,=>,=< او عندما نك تبها بصورة معكوسة مثل <=بدل عن =<.‬


‫‪Omer Ahmed Saeed‬‬
                          ‫د. عمر احمد سعيد‬          ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                                            ‫ثالثا : اولويات العمليات‬

‫يقوم مترجم اللغة بتطبيق القواعد الولوية المستخدمة في الجبر في العمليات‬
                                ‫الحسابية وعمليات المقارنة وذلك وفقا التي :‬
‫‪ ‬يتم حساب العمليات الموجودة داخل القواس اول، واذا كانت القواس متداخلة‬
‫يتم حساب القواس المتداخلة اول واذا كانت القواس متراصة يتم حسابها من‬
                                ‫اليسار الى اليمين فمثال يتم في التعبير التالي‬
‫;)2+))6/12(%)4+3(((<<‪cout‬‬

‫‪ ‬يتم حساب الضرب والقسمة وباقي القسمة ثانيا ولهم نفس الولوية ويجري حساب‬
              ‫هذه العمليات من اليسار الى اليمين . فمثال يتم في التعبير التالي‬
‫;4/6*3%71<<‪cout‬‬


‫‪Omer Ahmed Saeed‬‬
                     ‫د. عمر احمد سعيد‬              ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                         ‫يبين الجدول التالي اولويات العمليات الحسابية وعمليات المقارنة.‬
                     ‫التجميعية‬                                 ‫المعنى‬                    ‫العمليات‬
          ‫من اليسار الى اليمين‬                               ‫القواس‬                      ‫)(‬
          ‫من اليسار الى اليمين‬            ‫الضرب،القسمة،باقي القسمة‬                    ‫%,/,*‬
          ‫من اليسار الى اليمين‬                         ‫الجمع ، الطرح‬                    ‫-,+‬
          ‫من اليسار الى اليمين‬                         ‫ادخال، اخراج‬              ‫>>,<<‬
          ‫من اليسار الى اليمين‬                                ‫المقارنة‬       ‫=<,<,=>,>‬
          ‫من اليسار الى اليمين‬                               ‫المساواة‬            ‫=!,==‬
          ‫من اليمين الى اليسار‬                                ‫السناد‬                          ‫=‬


‫‪Omer Ahmed Saeed‬‬
                            ‫د. عمر احمد سعيد‬                        ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
            ‫1-21 الييادة والنقصان ‪Increment and Decrement‬‬
‫الييادة او النقصان تعني اضافة او طرح واحد من المتغير علي الترتيب، وكما هو معلوم يمكن ان نعبر‬
                                                 ‫عن هذا المفهوم من خالل التعبيرين التاليين :‬
         ‫‪x=x+1a; b or a‬‬
                           ‫‪b‬‬
         ‫; 1-‪x=x‬‬
                                ‫تتيح لغة ++‪C‬طرقا اخرى للتعبير عن الييادة او النقصان هي‬
     ‫)(زيادة بعدية // ; ++‪x‬‬
     ‫)(زيادة قبلية // ; ‪++x‬‬
                         ‫وهي تعادل او تكافئ التعبير 1+‪x=x‬بينما التعبير التالي 1-‪x=x‬‬
                                                                 ‫يعادل او يكافئ التعابير التالية‬
  ‫)(نقصان بعدي // ; --‪x‬‬
‫)(نقصان قبلي // ; ‪--x‬‬
‫تنفذ معظم البرامج التي نستخدمها عمليات حسابية وعمليات مقارنة ويتحدد ذلك من طبيعة‬
                                                             ‫المشكلة او المسالة المراد برمجتها.‬
‫‪Omer Ahmed Saeed‬‬
                           ‫د. عمر احمد سعيد‬                     ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
‫ونعني بالييادة او النقصان القبلي اتمام عملية الييادة او النقصان اول ومن ثم تنفيذ‬
‫العملية المطلوبة سواء كانت طباعة او غيرها من العمليات ، بينما الييادة او النقصان‬
                      ‫البعدي يقتضي اتمام العملية اول ثم اجراء الييادة او النقصان ثانيا.‬
                                                        ‫مثال يوضح مفهوم الييادة القبلية‬
‫;5=‪x‬‬
‫6: ‪cout<<++x; //output‬‬
‫نجد ان اخراج هذه الشفرة هو 6لن عملية الييادة تتم اول ثم اجراء عملية طباعة قيمة‬
                                                    ‫المتغير ثانيا، ولكن في المثال التالي:‬
‫;5=‪x‬‬
‫5: ‪cout<<x++; //output‬‬
‫تتم عملية طباعة قيمة المتغير وهي 5اول ثم من بعد ذلك تتم عملية الييادة للمتغير‬
                                               ‫دون طباعتها وعليه يكون اخراج الشفرة 5‬

 ‫‪Omer Ahmed Saeed‬‬
                          ‫د. عمر احمد سعيد‬                  ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
  ‫هل تدعم لغة ++‪ C‬مفهوم الضرب البعدي والقبلي ؟ اي هل يمكن ان نعبر عن الجراء‬
                                                       ‫;1*‪x=x‬باحد الطريقين:‬
       ‫)ضرب بعدي( // ; **‪x‬‬
       ‫)ضرب قبلي( // ; ‪**x‬‬

                                                ‫الجابة علي السؤال هي النفي،‬
‫لن عبارة **‪ x‬ليس لها معني ، قيمة ‪ x‬هي ‪ x‬نفسها لن الواحد هو عنصر او‬
 ‫قيمة محايدة للضرب وكذلك القسمة ، وبالتالي فان لغة ++‪ C‬ل تدعم هذا المفهوم .‬




 ‫‪Omer Ahmed Saeed‬‬
                         ‫د. عمر احمد سعيد‬                    ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
  ‫هل تدعم لغة ++‪ C‬مفهوم الييادة او النقصان بقيمة غير الواحد ؟ مثال هل يمكن ان نعبر عن‬
                                                     ‫الجراء ;2+‪ x=x‬باحد الطريقين :‬
  ‫; +++‪X‬‬                           ‫; ‪+++x‬‬
                                                              ‫الجابة علي السؤال هي النفي،‬
‫لن طريقة الييادة ا و النقصان جاءت لتقليل عملية التكرار والك تابة في لغة ++‪ ،C‬تخيل اذا كانت‬
‫++‪ C‬تدعم هذا المفهوم فاننا نعبر عن الجراء ;4+‪ x=x‬بالصورة التالية ;+++++‪x‬‬
‫لكن لحسن الحظ تمتلك لغة ++‪C‬طرق من اجل الختصار وتقليل التكرار فمثال نعبر عن الجراء‬
‫;01+‪ x=x‬بالصورة التالية ;01=+‪ x‬وبصورة عامة نعبر عن الجراء ;‪x=x+a‬‬
‫بالصورة التالية ;‪ x+=a‬وينطبق هذا الختصار علي كافة العمليات الخرى مثل الطرح والقسمة‬
                                                  ‫والضرب وباقي القسمة وذلك من خالل التي:‬
                                     ‫نعبر عن الجراء ;‪ x=x-a‬بالصورة التالية ;‪x-=a‬‬
                                      ‫نعبر عن الجراء ;‪ x=x*a‬بالصورة التالية ;‪x*=a‬‬
                                     ‫نعبر عن الجراء ;‪ x=x/a‬بالصورة التالية ;‪x/=a‬‬
                                     ‫نعبر عن الجراء ;‪ x=x%a‬بالصورة التالية ;‪x%=a‬‬

 ‫‪Omer Ahmed Saeed‬‬
                            ‫د. عمر احمد سعيد‬                       ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                                                      ‫(مث ال 1-5)‬
                                        ‫ادرس البرنامج التالي جيدا ووضح اخراجه‬
                            ‫البرنامج يوضح تاثير الييادة القبلية والبعدية للمتغير ‪x‬‬
‫>‪#include <iostream.h‬‬
‫>‪#include <conio.h‬‬
‫)(‪void main‬‬                                                        ‫الخراج‬
‫{‬
   ‫;01=‪int x‬‬
   ‫;‪cout<<x<<endl‬‬
   ‫;‪cout<<++x<<endl‬‬
   ‫;‪cout<<x<<endl‬‬
   ‫;‪cout<<x++<<endl‬‬
   ‫;‪cout<<x<<endl‬‬
   ‫;)(‪getch‬‬
‫}‬
‫‪Omer Ahmed Saeed‬‬
                   ‫د. عمر احمد سعيد‬                  ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
#include <iostream.h>
#include <conio.h>
void main()
                                                     )6-1 ‫(مث ال‬
{                                           ‫وضح اخراج البرنامج‬
   int x=10;
   cout<<x<<endl;
   x+=5;
   cout<<x<<endl;
   x-=3;                                             ‫الخراج‬
   cout<<x<<endl;
   x/=4;
   cout<<x<<endl;
   x*=7;
   cout<<x<<endl;
   x%=6;
   cout<<x<<endl;;
   getch();
} Omer Ahmed Saeed
                   ‫د. عمر احمد سعيد‬   ‫ –الجيء الول‬C++ ‫اساليب البرمجة بلغة‬
                                                                               )7-1 ‫(مث ال‬
‫ علما بان مساحتها تحسب وفقا‬r ‫ يقوم بحساب مساحة الدائرة التي نصف قطرها‬C++ ‫اك تب برنامجا بلغة‬
                                               area  r 2                       . ‫للمعادلة‬

 #include <iostream.h>
 #include <conio.h>
 const float pi=3.14;                                                       ‫الخراج‬
 void main()
 {
    float Area , r;
    cout<<"\nEnter the radius ";
    cin>>r;
    Area= pi*r*r;
    cout<<"Area ="<<Area;
    getch();
 }
  Omer Ahmed Saeed
                          ‫د. عمر احمد سعيد‬                 ‫ –الجيء الول‬C++ ‫اساليب البرمجة بلغة‬
                                                                                    ‫(مث ال 1-8)‬
  ‫اك تب برنامجا بلغة ++‪ C‬يقوم بحساب مساحة اي مثلث قائم الياوية ارتفاعه ‪ a‬وقاعدته ‪ b‬علما بان‬
                                                      ‫مساحة المثلث تحسب وفقا للمعادلة التالية .‬
‫>‪#include <iostream.h‬‬                       ‫‪area ‬‬
                                                           ‫1‬
                                                               ‫‪ab‬‬
                                                           ‫2‬
‫>‪#include <conio.h‬‬
‫)(‪void main‬‬
‫{‬                                                    ‫الخراج‬
          ‫;‪float Area, a, b‬‬
          ‫;": ‪cout<<"\nEnter the value of a‬‬
          ‫;‪cin>>a‬‬
          ‫;" : ‪cout<<"\nEnter the value of b‬‬
          ‫;‪cin>>b‬‬
          ‫;2/‪Area= a*b‬‬
          ‫;‪cout<<"Area = "<<Area‬‬
          ‫;)(‪getch‬‬
‫}‬
 ‫‪Omer Ahmed Saeed‬‬
                   ‫د. عمر احمد سعيد‬ ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                                                             )9-1 ‫(مث ال‬
 ‫ علما بان مساحة المثلث‬a,b,c ‫ يقوم بحساب مساحة اي مثلث اضالعه‬C++ ‫اك تب برنامجا بلغة‬
    abc
s 
         2
                        area ‫حيث‬s  a)(s  b)(s  c)
                               s(                         . ‫تحسب وفقا للمعادلة التالية‬
#include <iostream.h>
#include <conio.h>
void main()
{
      float Area, a, b, c, s;                                              ‫الخراج‬
      cout<<"\nEnter the value of a : ";
      cin>>a;
      cout<<"\nEnter the value of b : ";
      cin>>b;
      cout<<"\nEnter the value of c : ";
      cin>>c;
      s= (a + b + c)/2;
      Area= sqrt(s*(s-a)*(s-b)*(s-c));
      cout<<"Area = "<<Area;
      getch();
}
 Omer Ahmed Saeed
                        ‫د. عمر احمد سعيد‬                 ‫ –الجيء الول‬C++ ‫اساليب البرمجة بلغة‬
‫استخدمنا احد الدوال المك تبية الجاهية في اللغة وهي الدالة )‪ sqrt(n‬التي‬
‫تقوم بحساب الجير التربيعي للعدد وسوت ياتي شرح الدوال المك تبية الجاهية من‬
‫خالل دراسة الدوال في هذا الك تاب باذن هللا تعالي وتحتاج هذه الدالة الي الملف‬
                                                     ‫الدليلي >‪<math.h‬‬




‫‪Omer Ahmed Saeed‬‬
                     ‫د. عمر احمد سعيد‬              ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬
                                                             ‫(مث ال 1-01)‬
                                              ‫اك تب اخراج البرناامج التالي‬
‫>‪#include <iostream.h‬‬
‫>‪#include <conio.h‬‬
‫)(‪void main‬‬
‫{‬                                                       ‫الخراج‬
  ‫;"*****‪cout<<"*\n**\n***\n****\n‬‬
  ‫;)(‪getch‬‬
‫}‬




‫‪Omer Ahmed Saeed‬‬
                   ‫د. عمر احمد سعيد‬   ‫اساليب البرمجة بلغة ++‪– C‬الجيء الول‬

								
To top
;