1. الأداة if - else
الكتابة الخوارزمية | الكتابة في C |
إذا كان <عبارة منطقية> فإن <مجموعة أوامر1> وإلا <مجموعة أوامر2> |
if (<عبارة منطقية>) <مجموعة أوامر1> else <مجموعة أوامر2> |
إذا تحقق أو صح شرط العبارة المنطقية فإنه يجب تنفيذ مجموعة الأوامر1 وإلا فإنه يجب تنفيذ مجموعة الأوامر2
ملاحظات :
- إذا كانت هناك مجموعة أوامر فمن الأفضل وضعها بين اللامتين {}.
- إذا كان هناك أمر واحد فقط فيمكنك إبقاء أو حذف اللامتين {}.
أمثلة :
مثال 1 |
if (a > b) |
تكافئ |
if (a > b) max = a; |
مثال 2 |
if (EGAL)
|
تكافئ |
if (EGAL!=0) |
مثال 3 |
if (A-B) printf("A different B\n"); else printf("A = B\n"); |
تكافئ |
if ((A-B)!=0) printf("A different B\n"); else { printf("A = B\n"); }
|
مثال 4 |
if (A > B) { AIDE = A; A = C; C = AIDE; } else { AIDE = B; B = C; C = AIDE; } |
تكافئ
|
if (A > B) {AIDE = A; A = C; C = AIDE; } else {AIDE = B;B = C;C = AIDE;} |
2. الأداة if بدون else
الجزء else ليس ضروريا. يمكنك استعمال if بدون else : |
if ( <الإنشاء> ) |
احذر !
الأداة else تتبع أو تنفي آخر if تمت كتابتها.
if (N>0) /* الشرط الأول */ if (A>B) /* الشرط الثاني */ MAX=A; else /*نفي الشرط الثاني*/ MAX=B; |
تخالف | if (N>0)/* الشرط الأول */ { if (A>B)/* الشرط الثاني */ MAX=A; } else /*نفي الشرط الأول */ MAX=B; |
التمرين 5.1
نعتبر الشفرة التالية :
if (A>B) printf ("first choice \n");else
if (A>10) printf ("second choice \n");
if (B<10) printf ("third choice \n");
else printf ("forth choice \n");
أ) أعد تنظيم الشفرة (أو الأوامر) باستعمال المجموعة if - else (يعني ربط كل if بنافيتها else)
ب) حدد نتيجة البرنامج في كل حالة من الحالات التالية :
- A=10 وَ B=5
- A=5 وَ B=5
- A=5 وَ B=10
- A=10 وَ B=10
- A=20 وَ B=10
- A=20 وَ B=20
3. الأداة if - else if - ... - else
الكتابة الخوارزمية | الكتابة في C |
إذا كانت <شرط1> |
if ( <expr1> ) |
نعتبر المثال التالي :
#include <stdio.h>
if (A > B) printf("Press touche...\n"); /* اضغط على مفتاح*/ |
قم بتجربته في C لترى النتائج.
التمرين 5.2
نعتبر الشفرة التالية :
if (A>B)
if (A>10)
printf ("choice1 \n"); else if (B<10)
printf ("choice2 \n"); else
if (A==B) printf ("choice3 \n");
else printf ("choice4 \n");
أ ) أعد تنظيم الشفرة (أو الأوامر) باستعمال المجموعة if - else (يعني ربط كل if بنافيتها else).
ب) حدد قيم A وَ B للحصول على النتائج التالية :1 choice2 ,choice, ... على الشاشة.
ج) حدد القيم التي يمكن أن تأخذها A وَ B في حالة عدم الحصول على أية نتيجة تظهر على الشاشة.
د ) تأكد من صحة أجوبتك بمساعدة الحاسوب.
4.العوامل الشرطية
ملاحظة : هناك ميزة لـ C وهي اختصار الكتابات بأقل ما يمكن ( خير ما قل ودل).
الكتابة الخوارزمية | الكتابة في C |
<expr1> ? <expr2> : <expr3>
|
مثال 1:
MAX = (A > B) ? A : B; |
تكافئ |
if (A>B) MAX=A; |
مثال 2:
int A,B; printf("X = ");scanf("%i",&A); printf("Y = ");scanf("%i",&B); printf("Maximum = %i \n", (A > B) ? A : B); |
5. الأداة switch
تقوم هذه الأداة بتعويض تكرار الارتباط if...else..else if...else if وهكذا..
مثال 1:
char c; |
تكافئ |
char c; |
ملاحظات :
- case تعني الحالة المفترضة للمتغير
- break تعني الخروج من الأداة switch (وعكسها الأداة continue التي تعني تابع التنفيذ)
- default تعني في حالة لم توجد أي من الحالات المفترضة أعلاها فيتم تنفيذ الأمر printf("wada3an ");
- كما تلاحظ لا يوجد الأمر break في نهاية الأمر default، لأنه بطبيعة الحال سيتم الخروج من switch مباشرة دون اللجوء إلى الأمر break.
تذكر هذه الأداة جيدا لأننا سنراها إن شاء الله في الدروس المتقدمة المستوى...
7. الأداة goto
هذه الأداة تمكن من الذهاب إلى جهة معينة من المشروع مباشرة، كما أنها قليلة الاستعمال عند عامة المبرمجين.
ترتبط هذه الأداة بما يسمى العلامة: التي هي عبارة عن منطقة في المشروع تستعمل فقط للقفز إليها لمتابعة التنفيذ.
مثال 1:
if(a < b ) goto sisi; |
تمارين تطبيقية
التمرين 5.3
أكتب شفرة تأخذ ثلاث أعداد صحيحة ( A وَ B وَ C ) من لوحة المفاتيح ثم تحدد قيمة العدد الأكبر منها ، باستعمال :
أ ) if - else وَ متغير MAX للمساعدة.
ب) if - else if - ... - else بدون متغير للمساعدة.
ج ) العوامل الشرطية وَ متغير MAX للمساعدة.
د ) العوامل الشرطية بدون متغير للمساعدة.
التمرين 5.4
أكتب شفرة تأخذ ثلاث أعداد صحيحة ( A وَ B وَ C ) من لوحة المفاتيح . ثم رتبها تزايد يا أو تناقصيا :
استعمل ()scanf مرة واحدة فقط لقراءة الأعداد A وَ B وَ C.
أظهر النتيجة على الشاشة.
التمرين 5.5
أكتب شفرة تأخذ عددين صحيحين ( A وَ B ) من لوحة المفاتيح . ثم حدد إشارة حاصل ضرب A في B بدون استعمال عملية الضرب.
أظهر نتيجة الإشارة على الشاشة.
التمرين 5.6
أكتب شفرة تأخذ عددين صحيحين ( A وَ B ) من لوحة المفاتيح . ثم حدد إشارة مجموع A و B بدون استعمال عملية الجمع.
يمكنك استعمال الدالة ()fabs (القيمة المطلقة) من المجموعة <math.h>.
أظهر نتيجة الإشارة على الشاشة.
التمرين 5.7
أكتب شفرة تحسب أو تحدد مجموعة الحلول للمعادلة من الدرجة الثانية ax2+bx+c = 0 بمناقشة الصيغة التالية :
يمكنك استعمال متغير D يساوي b2-4ac لتحديد هل المعادلة تقبل حلا واحدا أو حلين أو ليس لها حل .
استعمل متغيرات من نوع int لأجل الأعداد A وَ B وَ C .
الأخذ بعين الاعتبار أن الأعداد A وَ B وَ C قد تكون منعدمة .
أظهر النتيجة على الشاشة مع جمل مفيدة
تأليف
المؤلف الأصلي: فرديريك فابر (Frédéric FABER)
البريد الإلكتروني: عنوان البريد الإلكتروني هذا محمي من روبوتات السبام. يجب عليك تفعيل الجافاسكربت لرؤيته.
الموقع الإلكتروني: http://www.ltam.lu/cours-c
ترجمة بتصرف: محمد عبد الرحمان