لغة C الدرس الثالث

blog article

لغة C  الدرس الثالث : 

المكتبة الرياضية La librairie mathématique


 

صورة ذات صلةصورة ذات صلة  صورة ذات صلة صورة ذات صلة نتيجة بحث الصور عن انستجرام  



في لغة سي يوجد ما يسما بالمكتبات و المكتبات هي عبارة عن مجموعة من الدوال الجاهزة. هذه الدوال قد كتبت من طرف مبرمجين قبلكم و هي تساعدكم في عدم تكرار العمل الذي قاموا به.
لقد إستعملتم الدالتين printf & scanf من المكتبة stdio.h.
و ما يجب معرفته هو أن هناك مكتبة أخرى تسمى math.h, و التي تحتوي على العديد من الدوال الرياضية الجاهزة.

لإستعمال هذه المكتبة التي تحتوي على الدوال مفيدة من المهم عدم نسيان وضع هذا الأمر في أعلى البرنامج:

كود PHP:

#include   

نأتي الآن إلى تقديم أهم الدوال-سأقوم فقط بذكر أهمها و أكثرها إستعمالا-.

fabs

تقوم هذه الدالة بإعادة القيمة المطلقة لعدد, أي |x|.
بإختصار فهي تعيد لنا(تقوم بالإرجاع بعد إنجاز مهمتها) القيمة الموجبة للعدد المدخل:

كود PHP:

double absolu = 0, N=-27; 

absolu = fabs(N); // absolu = 27  

هذه الدالة تعيد متغيرا من النوع double إذا فالمتغير "absolu" يجب ان يكون من نفس النوع كذلك ...هناك دالة أخري تشبهها تسمى "abs" و الإختلاف في نوع المتغير الذي تعيده كل واحدة على حدة.

pow

هذه الدالة تقوم بحساب أس عدد ما. يجب تعريف قيمتين: العدد و الأس. هكذا:

كود PHP:

pow(العددالأس(القوة));  

sqrt

هذه الدالة تقوم بحساب الجذر المربع لعدد معين. تعيدقيمة من نوع double double.

كود PHP:

double resultat = 0, N = 100; 

resultat = sqrt(N); // resultat = 10  

sin, cos, tan

يقوم هؤلاء الثلاثة بحساب جيب و جيب تمام و ظل زاوية ما و يجب أن تكون القيمة المعطاة بالراديان.

هناك العديد من الدوال الأخرى لكن لكبر مستواها في الرياضيات لم أرد ذكرها فهي لا تستعمل كثيرا ...


دورات تدريبية عن بعد

   مع الأستاذة / جيهان حسين

دورة السوشيال ميديا والخيانة الزوجية
احجز معنا في دورة السوشيال ميديا والخيانة الزوجية أسباب وأعراض _ نتائج وعلاج 


إنتهى درسنا أصدقائي صديقاتي و الآن مع التمرين المخصص لهذا الدرس .

نص التمرين :

قم بعمل برنامج يطلب من المستخدم إدخال أربعة أرقام و يقوم بالتالي :

يظهر جمع و طرح و قسمة و ضرب الأعداد الأربعة .
يظهر الجذر المربع للجمع و الضرب و الطرح و القسمة
يقوم بجمع الجذور المربعة و يقوم بكتابتها و سط الشاشة .

هذا التمرين له هدف بتدريبكم على القيام بمعظم العمليات فهو يساعدكم على أن تصبحوا أكثر ليونة ... أنتظر إبداعاتكم إخواني ....

ترسل الإجابات على الخاص و يوضع الحل في الشهر القادم إن شاء الله ...

إنتظر الدرس القادم تحت عنوان : الإحتمالات Les conditions



رأينا في الدرس السابق أنه يوجد عدة لغات برمجية. البعض منهم يشبه الآخر: فمثلا لغة PHP قريبة جدا من C, عدا أنه يصلح للقيام بمواقع و ليس ببرامج

في الحقيقة لغة C وجدت منذ القديم, مما يجعل منها نموذجا للغات أخرى جديدة.
أغلبية لغات البرمجة لديهم في آخر المطاف صفات متشابهة, تتشابه في الأساسيات.

بالتحدث عن الأساسيات : نحن الآن داخل الخليط. رأينا كيفية إنشاء متغيرات, القيام بعمليات بإستعمالهم, سننتقل الآن إلى الإحتمالات.
بدون إحتمالات, برامجنا ستقوم دائما بنفس العمل, مما سيضفي عليها الكثير من الملل
 





الإحتمال "if... else"
booléens, قلب الإحتمالات

الإحتمال "switch"


الإحتمال "if... else"


تقوم الإحتمالات بمقارنة المتغيرات. فيمكننا أن نقول"إذا كان المتغير يساوي القيمة 50, قم بهذا"...و لكن سيكون من الممل أن لا نقوم بمقانة سوى التساوي ! يجب أيضا أن نقارن إذا كان المتغير أصغر من 50 , أصغر من أو يساوي 50, أكبر من, أكبر من أو يساوي ...

لا تقلقوا فلغة حضرت الكل
لتعلم كيفية إستخدام الإحتمال "if... else", سنتبع المخطط التالي:

1/ بعض الرموز التي يجب معرفتها قبل البدأ.
2/ المقارن if
3/ المقارن else
4/ المقارن "else if"
5/ عدة إحتمالات في نفس الوقت


قبل البدأ بكتابة إحتمال من النوع "if... else" في C, هناك على 3-2 رموز قاعدية يجب معرفتها. هذه الرموز تعتبر مهمة للقيام بإحتمال ما .


بعض الرموز التي يجب معرفتها قبل البدأ


إنتبهوا جيدا, يوجد رمزان "==" لمقارنة التساوي. خطأ شائع يرتكبه المبتدؤون الذي يتجلى في وضع رمز واحد =, الذي ليس له نفس الدلالة في لغة C.سنتحدث عن ذلك في الأسفل.



المقارن if


فلنهاجم الآن المهم بدون أي إنتظار
سنقوم بإحتمال بسيط, و الذي سيقول للحاسوب :

كود PHP:

إذا كان المتغير يساوي قيمة معينة
إذن قم بالآتي 

بالإنجليزية, الكلمة "إذا" تترجم "if". و هذا هو اللفظ المستعمل للقيام بإحتمال.
أكتبوا if. إفتحوا القوسين : داخل داخلهما يجب عليكم كتابة الشرط.

بعد ذلك إفتحوا { و أغلقوها بعيدا }. كل ما هو موجود داخل المزدوجتين سيتم تنفيذه فقط إذا تحقق الشرط الموجود داخل القوسين.

و نخلص بعد كل ذلك بهذا الكود:

كود PHP:

if(//شرطكم

  // الأوامر المراد تنفيذها إذا تحقق الشرط
}  

فلنضع مكان التعليق "شرطكم", سنكتب شرطا لكي نقارن متغيرا ما.
مثلا, يمكننا مقارنة المتغير "age" الذي يحتوي على عمركم. الآن سنقوم بمعرفة هل أنت راشد , أي هل عمرك أكبر من 18 سنة...

كود PHP:


if (age >= 18) 

  printf ("أنت راشد !"); 
}  

الرمز >= يعني أكبر من أو يساوي, كما رأيناه في الجدول أعلاه.

إذا وجد أمر واحد بين {} فهي تصبح إختيارية فيمكننا كتابة:

كود PHP:


if (age >= 18) 
  printf ("أنت راشد !");  


فلنجرب هذا الكود

إذا كنتم تريدون تجربة الأكواد السابقة و ذلك لمعرفة كيفية إشتغال if, يجب وضع الif وسط الدالة main و لا ننسى أيضا إستدعاء المتغير age و التي سنعطيها قيمة من إختيارنا.
قد تبدوا هذه التجربة سخيفة في نظر البعض لكنها مهمة جدا فهي ستساعد على ترسيخ مفهوم الإحتمال و كيفية إشتغاله .

إليكم كودا كاملا يمكنكم تجريبة:

كود PHP:


#include  
#include  

int main(int argc, char *argv[]) 

    long age = 20; 
  
    if (age >= 18) 
    { 
      printf ("Vous etes majeur !\n"); 
    } 
  
    system("PAUSE");     
    return 0; 
}  

هنا المتغير age يساوي 20 إذن فسيتم القيام بالأمر الموجود داخل {} أي أن الرسالة "Vous êtes majeur !" ستظهر على الشاشة.
حاولوا الآن تغيير قيمة المتغير age . غيروها مثلا للقيمة 10: الشرط سيكون خاطئا و بالتالي الرسالة لن تظهر .

إعتمدوا على هذا الكود لتقارنوا الأكواد القادمة...



المقارن "else"

else تعني و إلا...
الآن نعرف كيفية القيام بمقارنة بسيطة, فلنذهب بعض الشيئ بعيدا: إذا لم تنجح المقارنة (الشرط خطأ), يجب أن نقول للحاسوبنا أن يقوم بأمور أخرى instructions.

إذا سنكتب :

كود PHP:


إذا كان هذا المتغير== هذه القيمة
قم بهذا 
و إلا فقم بهذا...  

لا يجب علينا سوى إضافة else بعد } و سيصبح لدينا:

كود PHP:


if (age >= 18) // إذا كان العمر أكبر من أو يساوي

  printf ("أنت راشد !"); 

else // و إلا... 

  printf ("أنت قاصر !"); 
}  

أظن أن هذا الكود مفهوم للجميع...
إذا لم تفهم شيئا لا تترد في طرحه فنحن هنا لمساعدتك...


المقارن "else if"


else if تعني و إلا إذا...

رأينا كيف نقوم ب if و else. و تتيح لنا لغة سي أيضا جمعهما في تعبير واحد و هو else if...
و ذلك للقيام بمقارنة أخرى إذا لم يتحقق الشرط الأول.
else if توجد بين if و else


فنكتب:

كود PHP:


إذا كان هذا المتغير== هذه القيمة
قم بهذا 

و إلا إذا كانت == هذه القيمة
قم بالآتي

و إلا فقم بهذا...  

فيصبح لدينا كود على الشكل التالي:

كود PHP:

if (age >= 18) // إذا كان age أكبر من أو يساوي 18

  printf ("أنت راشد !"); 

else if ( age > 4 ) // و إلا إذا كان age أكبر قطعا من 4 

  printf ("لا زلت صغيرا..."); 

else // و إلا... 

  printf ("Aga gaa aga gaaa gaaa"); ) 
}  



يقوم الحاسوب بالإختبارات بالترتيب:

1. في الأول يقوم ب if الأول: إذا كان الشرط صحيحا يقوم بالأمر الموجود داخل المعقوفتين الأوليتين.

2. إذا لم يتحقق الشرط الأول يذهب ل"else if" و يقوم بإختبار جديد: إذا كان الشرط صحيحا ينجز الأمر الموجود بين المعقوفات.

3. و أخيرا إذا لم يتحقق أي شرط من الشروط السابقة يقوم بأوامر "else"


"else" و "else if" ليسا إجباريين.للقيام بإحتمال لا نحتاج سوى ل if على أقل تقدير
لاحظوا أن بإمكاننا إستعمال الكثير من "else if" فيمكننا كتابة:

كود PHP:

if(...) 
//الأمر1
else if(...) 
//الأمر2
else if(...) 
//الأمر3
else if(...) 
//الأمر4
else if(...) 
//الأمر5
else(...) 
//الأمر6 


عدة إحتمالات


قد يكون أيضا القيام بعدة إحتمالات في داخل if واحد. مثلا, تريدون أن تعرفوا إذا ما كان العمر أكبر من 18 و أصغر من 25 .

لهذا, يجب إستعمال رموز جديدة:


&&------> "و"
||------> "أو"
!------> "نفي"



&&

إذا كنا نريد أن نقوم بالإحتمال المذكور أعلاه, يجب كتابة:

كود PHP:


if (age > 18 && age < 25)  

العلامتان && يعنيان "و". الإحتمال سيقرأ بالعربية:"إذا كان العمر أكبر من 18 و العمر أصغر من 25".

||

للقيام ب "أو" يجب إستعمال الرمزين ||.
و للقيام بهما فهناك عدة طرق و ذلك حسب نوعية لوحة المفاتيح, إذا ما عليك سوى تجريب إحدى الطرق:

تخيلوا معي برنامجا يقوم بتحديد إذا ما كان الشخص يستطيع فتح حساب بنكي .
و كما تعرفون لفتح حساب بنكي يجب أن لا تكون صغيرا و لنقل مثلا لا يجب أن يقل عمرك عن 30 سنة أو أن يكون لديك الكثير من المال...
إحتمالنا لمعرفة هل الزيون قادر على فتح حساب بنكي أو لا سيكون كالتالي:

كود PHP:


if (age > 30 || money > 100000) 

  printf("مرحبا بك في سوبر بنك !"); 

else 

  printf("****أغرب عن وجهي أيها !"); 
}  


!

هذا الرمز الأخير و الذي هو علامة تعجب يعني في البرمجة "نفي".
يجب وضع هذا الرمز قبل الشرط و ذلك ليكون المعنى: إذا لم هذا الشرط صحيحا.

كود PHP:


if (!(age < 18))  

يمكن ترجمة الكود فوق بالتعبير التالي:
إذا لم يكن الشخص قاصرا.
لو حذفنا الرمز ! لكان معنى الترجمة كالتالي:
إذا كان الشخص قاصرا.


بعض الأخطاء التي يقع فيها الكثيرون

1/ نسيان العلامتين == ووضع واحدة مع أن معناهما مختلف
2/ زيادة النقطة الفاصلة بعد الإحتمال if.


أرجو من الجميع الإنتباه إلى هذه الأخطاء فهي ستسبب لكم الكثير من المشاكل في المستقبل.
 





Booléens,القلب النابض للإحتمالات.




سندخل الآن في المزيد من التفصيلات حول كيفية عمل الإحتمال if....else.
أضافت الإحتمالات شسئا يسمى ب booléen.

إنه شيئ جد مهم لذلك ففتحوا آذانكم جيدا(نسيت بل إفتحوا أعينكم).



بعض الأمثلة للفهم

إليكم هذا الكود الذيسأطلب منكم تجريبه:

كود PHP:

if (1) 

    printf("C'est vraiصحيح"); 

else 

    printf("خطأ"); 
}  

لكن ما مهنى هذا؟ لقد وضعت العدد فقط كشرط لهذا الإحتمال؟؟؟

ستفهمون بعد قليل ...
الآن قوموا بعمل تجربة أخرى لكن بكود مختلف:

كود PHP:

if (0) 

    printf("خطأ"); 

else 

    printf("صحيح"); 
}  


سترون أن النتيجة هي عكس الأولى.
الآن قوموا بعدة تجارب و ذلك بإستبدال 0 بأي قيمة أخرى مثل:4, 15, 226, -10, -36...

أي كلمة تظهر على الشاشة؟ نجد دائما "صحيح".


إستنتاج:إذا وضعنا الصفر الشرط يكون خاطئا و إذا وضعنا أي عدد آخر يخالف الصفر يكون الشرط صحيحا.

الشرح:

في الحقيقة ففي كل مرة تقومون بها ب if هذا الإحتمال يعيد لنا قيمة 1 إذا كان الشرط صحيحا و 0 إذا كان خاطئا.

مثال:

كود PHP:

if (age >= 18)  

لنفترض أن age يساوي 23. إذن فالشرط صحيح 23 أكبر من أو يساوي 18 فيقوم الحاسوب بتغيير age >= 18 بالعدد 1.
و كذلك بالمثل إذا كان الشرط خاطئا يعوضه ب 0.

التجربة بإستعمال متغير

فلنقم بالتجربة كيف نرسخ المفاهيم السابقة: قوموا بإرسال نتيجة الإحتمال إلى متغير, كما لو كانت عملية.

كود PHP:


long age = 20; 
int majeur = 0; 
  
majeur = age >= 18; 
printf("Majeur = : %ld\n", majeur);  

كما تلاحظون فإن قيمة المتغير majeur هو 1 
قوموا بنفس العمل لكن بأخذ age=10 مثلا هنا ستتغير القيمة إلى 0.

المتغير "majeur" يسمى booléen.

نسمي المتغير الذي يأخذ القيم 0 و 1 booléen.
كذلك:

0=خطأ

1=صحيح

لكي نكون دقيقين ف 0 يساوي خطأ و جميع الأعداد الأخرى التي تخالف الصفر صحيحة.
لكن و كما جرت العادة لن نقوم سوى بإستعمال 0 أو 1 .


بالنسبة لنا نحن متعلمي لغة سي فلا يوجد نوع خاص لهذا المتغير لكن تم إضافته في سي++ "bool" كنوع خاص .... و هذا ما سنراه إن شاء الله.


من الآن و صاعدا سأقوم بتغيير booléen ب bool.للإختصار.

لذلك فإن التوع المستعمل لل bool هو أي نوع ك: char-double-long-int ...
و لا تهتموا بالنوع فقط يجب معرفة كيفية إستخدام bool بطريقة حكيمة.


bool و الإحتمالات

كود PHP:


int majeur=1; 

if (majeur) 

  printf("أنت راشد !"); 

else 

  printf("أنت قاصر"); 
}  

بما أن المتغير majeur يحمل القيمة 1 الشرط صحيح .

إليكم إحتمالا آخر:

كود PHP:

if(majeur && man)  

هذا الإحتمال يترجم كالتالي: إذا كنت راشدا و كنت ذكرا.
إذن bool يبين إذا ما كان شيئ صحيح أو خطأ.
ما قمنا به حتى الآن قد يبدو لا فائدة منه لكن بالتعمق في البرمجة نجد أن له إستعمالات كثيرة و مفيدة جدااااا...
 



الإحتمال Switch


الإحتمال if ...else الذي رأيناه من قبل هو الأكثر إستعمالا.
لكن في بعض الأحيان نجد أنفسنا نقوم بالتكرار كمثال الكود أسفله:

كود PHP:


if (age == 2) 

  printf("Salut bebe !"); 

else if (age == 6) 

  printf("Salut gamin !"); 

else if (age == 12) 

  printf("Salut jeune !"); 

else if (age == 16) 

  printf("Salut ado !"); 

else if (age == 18) 

  printf("Salut adulte !"); 

else if (age == 68) 

  printf("Salut papy !"); 

else 

  printf("Je n'ai aucune phrase de prete pour ton age  "); 
}  


القيام ب switch

لتفادي القيام بعدة إحتمالات على متغير واحد, تم إبتكار طريقة إخرى للقيام بالإحتمالات.
هذه الطريقة تسمى switch و هذا مثال عليه:

كود PHP:


switch (age) 

case 2:
  printf("Salut bebe !"); 
  break; 
case 6:
  printf("Salut gamin !"); 
  break; 
case 12:
  printf("Salut jeune !"); 
  break; 
case 16:
  printf("Salut ado !"); 
  break; 
case 18:
  printf("Salut adulte !"); 
  break; 
case 68:
  printf("Salut papy !"); 
  break; 
default: 
  printf("Je n'ai aucune phrase de prete pour ton age  "); 
  break; 
}  

نكتب:

switch(المتغير1)

و ذلك للدلاة على أنني سأقوم بعمل الإحتمالات على المتغير1.
نفتح المعقوفات و نغلقها تحت.

و داخل المعقوفات نتعامل مع الحالات الممكنة: case 2, case 4, case 5, case 45...

يجب وضع الأمر break; بعد كل حالة و هو إجباري إذا لم تقوموا بذلك فالحاسوب سيقرأ جميع الحالات و يقوم بجميع الأوامر...
لذلك حذاري من نسيان هذا الأمر.

و لا ننسى الأمر default الذي يعمل عمل else إذا لم يحقق المتغير1 الحالات المذكورة يقوم الحاسوب بالقيام بأوامر default.

القيام بقائمة للأطعمة :


يقوم السويتش عادة بالقيام بالقائمات في الكونصول.
إذا إلى العمل.

المطلوب منكم:

أن تقوموا بعمل قائمة للأطعمة التي يقدمها مطعمكم و أن تعرضها على المستعمل فيختار منها ما يريد ثم تكتب لقد إخترت ما يلي... مثلا.

ماذا تنتظرون هيا للعمل



الحل:

كود PHP:


#include  
#include  

int main(int argc, char *argv[]) 

  long choixMenu; 
  
  printf("=== Menu ===\n\n"); 
  printf("1. Royal Cheese\n"); 
  printf("2. Mc Deluxe\n"); 
  printf("3. Mc Bacon\n"); 
  printf("4. Big Mac\n"); 
  printf("\nVotre choix ? "); 
  scanf("%ld", &choixMenu); 
  
  printf("\n"); 
  
  switch (choixMenu) 
  { 
    case 1:
       printf("Vous avez choisi le Royal Cheese. Bon choix !"); 
       break; 
    case 2:
       printf("Vous avez choisi le Mc Deluxe. Berk, trop de sauce..."); 
       break; 
    case 3:
       printf("Vous avez choisi le Mc Bacon. Bon, ca passe encore ca ;o)"); 
       break; 
    case 4:
       printf("Vous avez choisi le Big Mac. Vous devez avoir tres faim !"); 
       break; 
    default: 
       printf("Vous n'avez pas rentre un nombre correct. Vous ne mangerez rien du tout !"); 
       break; 
  } 
  
  printf("\n\n"); 
  
  system("PAUSE"); 
}  


و هاقد إنتهينا...
أظن أنكم لم تنسوا default في آخر السويتش...
في الحقيقة عندما تبرمجون يجب عليكم التفكير في جميع الإحتمالات.
ستجدون دائما من يضغط على الرقم 10 أو سيكتب مرحبا مع أنكم لم تنتظروا ذلك.

لذلك لا تضعوا ثقتكم في المستخدم يستطيع دائما إدخال أي شيئ لذلك يجب أخذ كل شيئ بعين الإعتبار.

بالنسبة للتمارين فسأضعها في درس خاص بها
بما أنكم أصبحتم تتقدمون...

سامحوني على تأخر الدرسو ذلك لظروف شخصية
فسامحوني لقد وجدت اليوم متسعا من الوقت فكتبت ما تبقى من الدرس...

إنتهى

 

 



صورة ذات صلةصورة ذات صلة  صورة ذات صلة صورة ذات صلة نتيجة بحث الصور عن انستجرام  


 

شارك المقالة