السلام عليكم ورحمة الله وبركاته
درسنا اليوم سيكون حول أهم العمليات الحسابية التي يمكن أن ننجزها في برنامج كتوب بالسي
في درسنا السابق تطرقنا الى المتغيرات و اهميتها ودورها. الان نجي نشوف بعض التطبيقات على بعض أنواع المتغيرات
في غالب الأحيان نحتاج في الكود الى العمليات التالية :
- الجمع
- الطرح
-الجداء
- القسمة
- باقي القسمة
- زيادة بواحد increment
- نقصان بواحد decrement
الى اخر العمليات التي غالبا ما نحتاجها في البارمج
1- الجمع
بالنسبة لعملية الجمع, سأضع هنا كمثال البرنامج الذي كتبه أخونا Cyber-Zone في رده على الدرس الرابع ... وكان هو الوحيد الذي رد على التمرين ... ليس لصعوبة التمرين ولكن أرى في هذا أنه متحمس
لذلك سأستعمل نفس الكود
كود:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long a, b;
long res;
printf("Give Me Number\t:");
scanf("%ld", &a);
printf("\nGive an other Number\t:");
scanf("%ld", &b);
res = a + b;
printf("\nThe Result Is :\t%ld\n\n\n\n\n\n\n", res);
system("PAUSE");
return 0;
}
هذا البرنامج يعطيك حاصل جمع عددين
يمكن أيضا الطريقة التالية : بحيث نستغني عن المتغير res ونضع العملية مباشرة
كود:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long a, b;
printf("Give Me Number\t:");
scanf("%ld", &a);
printf("\nGive an other Number\t:");
scanf("%ld", &b);
printf("\nThe Result Is :\t%ld\n\n\n\n\n\n\n", a + b);
system("PAUSE");
return 0;
}
2- الطرح
بنفس طريقة عمل الجمع
كود:
printf("\nThe Result Is :\t%ld\n\n\n\n\n\n\n", a - b);
3- الجداء
بنفس الطريقة و يمكن لأي واحد يحط الألغوريتم على أي طريقة يريدها. لازم بس ينتبه أنواع المتغيرات و طريقة طباعة النتيجة على الشاشة
كود:
printf("\nThe Result Is :\t%ld\n\n\n\n\n\n\n", a * b);
4- القسمة
هنا نفس الطريقة. في مشكل أنه القسمة عل الصفر غير ممكنة, لذلك سنضطر الى استعمال أداة الشرط
كود:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long a, b;
printf("Give Me Number\t:");
scanf("%ld", &a);
printf("\nGive an other Number\t:");
scanf("%ld", &b);
if(b==0)
printf("\n Impossible!!!");
else
{
printf("\nThe Result Is :\t%ld\n\n\n\n\n\n\n", a / b);
}
system("PAUSE");
return 0;
}
هنا استعملنا أداة شرط if
معناه أنه إذا تحقق الشرط الذي بين القوسين أي ان المدخل b يساوي صفر فإننا نطبق ما بعد if مباشرة, أما إذا كان العكس فإننا نطبق ما بعد else
كود:
if (conditional_1)
{
...block of statements executed if conditional_1 is true...
}
else if (conditional_2)
{
...block of statements executed if conditional_2 is true...
}
else
{
...block of statements executed otherwise...
}
إليكم بعض العلامات التي تسعمل للشرط :
كود:
< smaller than
<= smaller than or equal to
== equal to
!= not equal to
>= greater than or equal to
> greater than
للجمع بين شرطين أو أكثر :
5- باقي القسمة
في بعض المرات نحتاج الى الحصول على باقي قسمة عدد على عدد معين... نستعمل لهذا الغرض اليغة التالية :
بهذه الطريقة result سيحتوي على باقي قسمة a على b
6- زيادة واحد increment
في الكثير من الأحيان نحتاج إلى تنفيذ نفس العملية على عدد معين من المتغيرات, من المستحيل أن نكتب نفس الشيء لكل واحد منها...
لذلك نلجأ غالبا إلى استعمال loop
نعرف هنا ب
while كود:
while (expression)
{
...block of statements to execute...
}
مثال :
كود:
int a=5;
int i=0;
while(i<a)
{
i++;
}
في هذا المثال عندما ندخل في هذه الحلقة... شرط الخروج منها هو أن يتحقق عكس الشرط الموجود داخل القوسين ... في حالتها هذه عندما يصبح i أكبرمن أو يساوي a
نحن قمنا بإعطاء i القيمة 0
عندما يدخل الحلقة سيجدا أن الشرط لازال متحقق بما أن 0 أصغر من 5
سيمر على i++ سيقوم بزيادة واحد على قيمة i الأصلية وهكذا دواليك إلى أن تصبح قيمة i تساوي 5 فعندها لن يحقق الشرط الذي بين القوسين وبالتالي سنخرج من while
بما أننا عرجنا عليها نعرف أيضا ب for
كود:
for (expression_1; expression_2; expression_3)
{
...block of statements to execute...
}
كود:
for(i=0; i<10; i++)
{
}
بنفس عمل while تقريبا تقوم for بعمل تكرار على الأوامر التي توجد داخل المعقوفتين الى حين أن يتحقق الشرط i<10
كما تلاحظون في المكان الأول حددنا القيمة البدئية للمتغر i وبعدها حددنا شرط البقاء داخل الحلقة الذي ان لم يتحقق نخرج منها
وفي المركز الثالث نحدد نوع العملية التي نقوم بها كلما تحقق الشرط
مثلا في الأول كانت قيمة i هي 0 ندخل ننفذ الأوامر الموجودة الى أن نصل الى المقوفة الأخيرة ... ثم نعود الى بداية for و نقوم بعمل زيادة واحد على قيمة i ليصبح 1 وبعدها نقارنها مع 10 وبما أنها أصغر من 10 نعود لنطبق الأوامر مرة أخرى .... وهكذا دواليك إلى أن نصل الى القيمة التي يصبح i يحمل القيمة 10 هنا نغادر for
7- نقصان واحد decrement
قياسا على ما قمنا به فوق سنقوم بنفس الطريقة /
كود:
int a=0;
int i=5;
while(i>a)
{
i--;
}
يكفي هذا القدر في درس اليوم... أرجو من المتتبعين أن يقوموا بالتطبيق التالي :
عمل برنامج يقوم بحساب المتتالية الحسابية لعدد معين نطلب من المستعمل ادخاله
يعني إن أدخل 5
نعطيه الخارج هو 1+2+3+4+5=15
في أمان الله
fin