1. الأداة while
الكتابة الخوارزمية | الكتابة في C |
طالما (<عبارة منطقية>) نفذ |
while ( <عبارة منطقية> ) |
شرح : طالما الشرط (العبارة المنطقية) محقق فيجب تنفيذ مجموعة الأوامر.
ملاحظات :
- إذا كانت هناك مجموعة أوامر فمن الأفضل وضعها بين اللامتين {}.
- إذا كان هناك أمر واحد فقط فيمكنك إبقاء أو حذف اللامتين {}.
أمثلة :
مثال 1 |
int I = 0;/* إظهار الأعداد من 0 إلى 9 */ |
مثال 2 |
int I;/* إظهار الأعداد من 0 إلى 9 */ |
مثال 3 |
int I=10;/* إظهار الأعداد من 10 إلى 1 */ |
مثال 4 |
while (getch()=='C') |
2. الأداة do-while
الأداة do-while مشابهة إلى حد ما للأداة while، إلا أن هناك بعض الاختلاف الطفيف:
-
فالأداة while تتحقق من الشرط أولا ثم تنفذ العملية، بينما do-while تنفذ العملية أولا ثم تتحقق من الشرط .(إذن تقوم بتنفيذ العملية على الأقل مرة واحدة).
الكتابة الخوارزمية | الكتابة في C |
نفذ |
do |
شرح : تنفيذ مجموعة الأوامر أولا طالما الشرط (العبارة المنطقية) محقق.
أمثلة :
مثال 1 |
float N; |
|
int n, div; |
مثال 3 |
#include <stdio.h> |
3. الأداة for
الأداة for في C هي الأداة العامة وجد المستعملة، لأنها قد تلعب دور while أو do-while.
الكتابة الخوارزمية | الكتابة في C |
من <البداية> إلى <العددN> نفذ |
for ( <العداد> ; <شرط التكرار> ; <البداية> ) |
طالما (<عبارة منطقية>) نفذ |
for ( <expr1> ; <expr2> ; <expr3> ) |
ملاحظة : الكتابتين التاليتين متكافئتين
for ( <expr1> ; <expr2> ; <expr3> ) |
<expr1>; |
أمثلة :
مثال 1 |
int I; /*I جذر مربع العدد */ |
مثال 2 |
int I,J; |
مثال 3 |
int n, tot; |
مثال 4 (شامل) |
/* a */
/* c */ /* d */ |
5. نصائح لاختيار الأداة المناسبة
استعمل while أو for إذا كانت مجموعة الأوامر لا تنفذ إلا إذا كان الشرط صحيحا.
-
استعمل do-while إذا كانت مجموعة الأوامر يجب أن تنفذ مرة واحدة على الأقل.
-
استعمل for إذا كانت مجموعة الأوامر مرتبطة بمتغير واحد أو أكثر حيث تتغير في كل تكرار.
-
استعمل while إذا كانت مجموعة الأوامر يجب أن تنفذ طالما أن هناك شرط خارجي محقق (كاستخراج المعطيات من الملفات).
تمارين تطبيقية
-
التمرين 6.1
أكتب شفرة تمكن من قراءة N عدد صحيح من لوحة المفاتيح ثم أظهر على الشاشة حاصل مجموعها، وحاصل ضربها ومتوسط مجموعها .اختر نوع القيم العددية لإظهارها على الشاشة. العدد N مطلوب إدخاله من لوحة المفاتيح .أنجز المشروع ،
- باستعمال while
- باستعمال do while
- باستعمال for
- أي الطرق الثلاث أنسب لهذا التمرين؟ لماذا؟
التمرين 6.2
أعد التمرين 6.1 بالطريقة الأفضل :
أعد كتابة مقدمة المشروع في حالة أن العدد N المطلوب إدخاله من طرف المستعمل يكون محصورا بين 1 وَ 15 .
التمرين 6.3
بدون استعمال القسمة التقليدية ، أحسب بواسطة الطرح المتتالي الخارج والباقي للقسمة الصحيحة لعددين صحيحين مطلوب إدخالهما من طرف المستعمل.
التمرين 6.4
أحسب العاملي n! = n(n-1)(n-2)....3.2.1 لعدد صحيح طبيعي n مع اعتبار أن 1=!0 .
- باستعمال while
- باستعمال for
التمرين 6.5
أحسب بواسطة الضرب المتتالي القيمة Xn لعددين X و n مطلوب إدخالهما من طرف المستعمل.
التمرين 6.6
أحسب حاصل الجمع للمتتالية التالية: |
1 + 1/2 + 1/3 + ... + 1/N |
التمرين 6.7
احسب حاصل الجمع والضرب ومتوسط متتالية للأرقام العربية غير المنعدمة مطلوب إدخالهما من طرف المستعمل، بحيث تنتهي المتتالية حين يدخل المستعمل الرقم 0 . وخذ فقط الأرقام (0، 1،...،9) عند إدخالها وإن كان غير ذلك فأنجز إشارة صوتية.
التمرين 6.8
أنجز شفرة تمكن من قراءة الأرقام العربية واحدا تلو الآخر حتى يتم إدخال الرقم 0 فيتم إظهارها عكسيا.
مثال : الدخول 1 ثم 2 ثم 3 ثم 4 ثم 0 ===> الظهور على الشاشة : 4321
التمرين 6.9
أنجز شفرة تمكن من قراءة عدد صحيح طبيعي ثم أحسب معكوسه .
مثال : العدد 1234 ===> الظهور على الشاشة : 4321
التمرين 6.10
أحسب قيمة الحدودية P ذات الدرجة n انطلاقا من العدد الحقيقي ذي النوع float :
P(X) = AnXn + An-1Xn-1 + ... + A1X + A0
قيم n والمعاملات An ،....،A0 مطلوب إدخالها من طرف المستعمل.
-
استعمل الدالة pow المنتمية إلى المكتبة <math.h> .مثال ( N=pow(X,10 تكافئ N=X10.
-
لتجاوز استعمال الأس أثناء الحساب استعمل طريقة Horner المعرفة كالتالي :
التمرين 6.11
أحسب القاسم المشترك الأكبر لعددين صحيحين طبيعيين باستعمال الطريقة الأقليدية.
التمرين 6.12
أحسب القيمة Un لمتتالية FIBONACCI المعرفة كالتالي :
U1=1 |
|
U2=1 |
|
Un=Un-1 + Un-2 | (n>2 بحيث) |
حدد الصف n والقيمة Un لأقصى حد للمتتالية ، إذا استعملنا :
- النوع int
- النوع long
- النوع double
- النوع long double
التمرين 6.13
أحسب جذر مربع X للعدد الحقيقي الموجب A بالتقريب المتتالي المعرف بالعلاقة الترجعية التالية:
XJ+1 = (XJ + A/XJ) / 2 X1 = A
التدقيق J مطلوب إدخاله من طرف المستعمل.
إليك أنواع المتغيرات : |
A عدد حقيقي موجب. |
J عدد صحيح طبيعي أصغر من 50. |
أظهر أثناء الحساب ، التقريبات التي تم حسابها على الشكل التالي :
The 3rd approximation of the square of ... is ...
The 3rd approximation of the square of ... is ...
The 3rd approximation of the square of ... is ...
. . .
التمرين 6.14
أظهر على الشاشة المثلث المتساوي الساقين المتكون من النجوم ذو N سطرا ( N مطلوب إدخاله من طرف المستعمل).
مثال :
Number of line : 8
*
***
*****
*******
*********
***********
*************
***************
التمرين 6.15
أنجز جدول الضرب ذو الرتبة N (علما أن N محصور بين 0 و 10) أظهره على الشاشة بهذه الطريقة :
X*YI 0 1 2 3 4 5 6 7 8 9 10
------------------------------------
0 I 0 0 0 0 0 0 0 0 0 0 0
1 I 0 1 2 3 4 5 6 7 8 9 10
2 I 0 2 4 6 8 10 12 14 16 18 20
3 I 0 3 6 9 12 15 18 21 24 26 30
4 I 0 4 8 12 16 20 24 28 32 36 40
5 I 0 5 10 15 20 25 30 35 40 45 50
6 I 0 6 12 18 24 30 36 42 48 54 60
7 I 0 7 14 21 28 35 42 49 56 63 70
8 I 0 8 16 24 32 40 48 56 64 62 80
9 I 0 9 18 26 36 45 54 63 62 81 90
10 I 0 10 20 30 40 50 60 60 80 90 100
تأليف
المؤلف الأصلي: فرديريك فابر (Frédéric FABER)
البريد الإلكتروني: عنوان البريد الإلكتروني هذا محمي من روبوتات السبام. يجب عليك تفعيل الجافاسكربت لرؤيته.
الموقع الإلكتروني: http://www.ltam.lu/cours-c
ترجمة بتصرف: محمد عبد الرحمان