Professional Documents
Culture Documents
:1 السؤال
يقوم بطلب الساس والس من المستخدم وايجاد الناتج++ قم بكتابة برنامج بأستخدام لغة السي-
مثال.
Enter base as an integer:
3
Enter exponent as an integer
2
Power =9
: الجواب
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int x; // base
int y; // exponent
int i; // counts from 1 to y
int power; // used to calculate x raised to power y
} // end while
ملحظه :التعليقات التي بعد علمة //مجرد تعليق لك انت اي ان البرنامج ل يعطيه اي اهميه
وقد وضحت هذه النقطه في الدروس السابقه يعني ليست من ضمن الكود للبرنامج ...
تستطيع استخدام تكرار داخل تكرار اي while loopداخل while loopوالمثال التالي سيوضح
الفكره.وايضا ينقسم التكرار في ال whileالى محدد )ثابت لعدد معين( وغير محدد يحدده المستخدم فالرقم
للتكرار في الغير المحدد ليس ثابت يتحكم فيه المستخدم وهذا الفضل حيث يكون اكثر مرونه .وسنوضح
الحالتين سنبدأبالمحدد ومن ثم الغير محدد.
مطلوب عمل برنامج بأستخدام لغة السي ++يقوم هذا البرنامج بحساب المتوسط لدرجات 500طالب ويجب
على البرنامج ان يطلب من المستخدم ادخال الدرجات ويتأكد البرنامج من ان الدرجه التي تم ادخالها بين
الصفر وال 100ول تتجاوز هذا الحد.
>#include <iostream
;using std::cout
;using std::cin
;using std::endl
)(int main
{
;Float grade,total=0,avg
;int count=1
)While(count<=500
{
;"cout<<"please enter the grade
;cin>>grade
)while(grade<0 || grade>100
{
;total+=grade
;count++
}//first while
;avg=total/500
الشرح:
نلحظ في هذا السؤال العدد محدد ل 500طالب اي ان التكرار سيكون 500مرة سنقوم بشرح الجزاء التي
تتعلق بدرسنا اليوم والبقية شرجناهم في دروس سابقه.
لحظ في البداية حجزنا خانة لمتغير اسميناه ال countلك يسير لنا العد ففي البدايه كانت قيمته واحد فمر
على ال whileتأكد من تحقق الشرط والشرط هو ان قيمة ال countل تزيد عن 500لننا نريد التكرار
500مره فقط,بعدها يطلب البرنامج من المستخدم ان يدخل له الدرجه ومن ثم ينتقل الى ال whileالداخليه
التي يقوم بالدخول لها اذا تحقق شرطها وهو ان تكون الدرجه التي ادخلها المستخدم اكبر من مئه او اصغر من
صفر ,طبعا اذا تحقق هذا الشرط هذا يعني ان المستخدم اخل درجه خاطئه فيطلب منه البرنامج اعادة ادخال
الدرجه كما ترون داخل ال whileالداخلية ول ينتقل خارج ال whileالداخلية ال اذا ادخل درجه صحيحه
هنا نضمن ان جميع الدرجات صحيحه ,فأذا ادخل المستخدم درجه في حدود 100-0هنا ينتقل المترجم الى
جمع الدرجه للحصول على المجموع وقد شرحنا هذا بالتفصيل في درس سابق ومن ثم يزيد قيمة ال count
بمقدار واحد.
ربما يتبادر الى ذهنكم ما هذا ;total+=gradeطبعا هذا يساوي total=total+gradeولكن اختصارا
كتبناها بالطريقة السابقه وايضا ;++countتعني ;count =count+1ولكن اختصرناها بالطريق السابقة .
دعونا نتدرب على هذه الختصارات:
بعد ان يجمع البرنامج الدرجه في ال totalويزيد قيمة ال countبمقدار واحد يعيد هذه الخطوات الى ان
يصبح مقار ال count=500عندها يخرج من ال whileويذهب ليقوم بقسم المجموع للدرجات على 500
للحصول على المتوسط ومن ثم يقوم بطباعته ...
لحظ جعلنا العمليه الحسابية ليجاد المتوسط خارج ال whileلننا نريد المجموع للدرجات واذا وضعنا
العملية ليجاد المتوسط ;avg=total/500ووضعنا ايضا ;cout<<"the average is "<<avg
هنا سيقوم البرنامج بأيجاد المتوسط وطباعته في كل مرة يدخل فيها لل whileيعني خمسمائة مرة وطبعا هذا
ل يعطينا المطلوب لذلك وضعناه بالخارج لك عندما ينتهي البرنامج من الحصول على المجموع يقوم بأيجاد
المتوسط وطباعته ....وهنا سيطبع مره واحده.
اتمنى ان تكونوا قد فهمتم كيف يكون التكرار محدد وهو يتمثل في تحديد قيمة للتكرار وفي مثالنا هذا كانت
500وجعلنا ال countكمؤشر يعد لنا 500مرة.
مطلوب عمل برنامج بأستخدام لغة السي ++يقوم هذا البرنامج بحساب المتوسط لدرجات عدد غير محدد من
الطلب يتحكم في هذا العدد المستخدم ويجب على البرنامج ان يطلب من المستخدم ادخال الدرجات ويتأكد
البرنامج من ان الدرجه التي تم ادخالها بين الصفر وال 100ول تتجاوز هذا الحد.
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
Float grade,total=0,avg;
int count=0;
while(grade!=-1)
{
while(grade<0 || grade>100)
{
} //second while
total+=grade;
count++;
}//first while
Arg=total/count;
:الشرح
نلحظ في هذا السؤال التكرار غير محدد اي يدخل المستخدم درجات الى ان يكتفي ويطلب انهاء
...البرنامج
لنهاء1- في البداية سيطلب البرنامج من المستخدم ادخال اول درجة أو,تابع معي البرنامج
أي, 1- البرنامج هنا جعلنا الشارة التي نعرف اذا اكتفى المستخدم من أدخال الدرجات ام ل هي
وسينتهي البرنامج1- عندما ينتهي من ادال الدرجات وتظهر له رساله ادخال الدرجه يدخل
.ويعطيه المتوسط
وأخترنا 1-لن ل يمكن ان توجد درجه بال 1-وتستطيع اختيار اي شيء ماعدا ان يكون من
ضمن الدرجات . 100-0
بعد ان يدخل المستخدم درجة الطالب يقوم البرنامج في ال whileبالتأكد من ان الدرجة ليست
1-واذا كانت 1-يقف البرنامج ويعطي المتوسط .اذا لم تكن 1-يدخل البرنامج داخل ال while
الولى ومن ثم يدخل داخل ال whileالثانية التي تتأكد من ان الدرجه من 100-0وان ادخل
المستخدم درجه خارج هذا النطاق يبقى البرنامج داخل ال whileويطلب من المستخدم ادخال
درجه صحيحه ومن ثم بعد ادخال درجة صحيحه ينتقل البرنامج الى جمع الدرجه مع المجموع
وزيادة ال countبمقدار واحد .قد تسأل نفسك هنا ل نحتاج countلتسيير البرنامج وتحديد
قيمة التكرار لن العدد غير محدد والمستخدم هو الذي يحدد العدد .لكننا وضعنا ال countهنا
لننا نريد معرفة كم عدد الدرجات التي ادخلت لننا نحتاج قيمة ال countلحساب المتوسط لن
المتوسط عباره عن مجموع الدرجات على عددها.مجموع الدرجات نحصل عليه من ال total
وعددها من ال countبعدها وضعنا
تخيل لو اننا لم نضع هذه الجمله اخر ال whileالولى لكان البرنامج بعد ان ينتهي من زيادة
ال countبواحد لرجع لل whileالولى وطبعا قيمتة ال gradeستبقى قيمة ال grade
الولى ولن تتغير وسيكون البرنامج في تكرار غير منتهي مما يسبب مشكلة كبيرة ولن يعطينا
المتوسط ابدا..لننا لم نعطي المستخدم مجال لدخال درجة أخرى.
لكن مع وضع هذين السطرين يسطلب البرنامج من المستخدم ادخال درجة جديده ويرجع لل
whileالولى ويتأكد ما اذا كان الشرط صحيح وان الدرجه ل تساوي 1-واذا كانت 1-يتوقف
ويعطي المتوسط.اما اذا كانت ل تساوي 1-دخل البرنامج الى ال whileالثانية وتأكد من ان
الدرجه في النطاق 100-0وبعدها جمع الدرجه الجديده مع المجموع السابق وزاد قيمة ال
countبواحد ويطلب البرنامج مرة اخرى من المستخدم ادخال درجة جديده فأذا كانت 1-
توقف واعطى المتوسط واذا كانت غير ذلك واصل ما قلناه سابقا وهكذا يستمر البرنامج حتى
يدخل المستخدم . 1-فقط عندها يتوقف ويعطي المتوسط وال يبقى مستمر في أخذ الدرجات
وجمعها .
بعد ادخال 1-يخرج البرنامج من ال whileويقسم المجموع للدرجات على عددها الذي يتمثل
في ال countويعطي المتوسط ويطبعه على الشاشة.
الفرق بين المثال الول والثاني اي بين التكرار المحدد والغير محدد ان في الول قيمة التكرار
تحدد في ال whileالولى أما في الثاني الشرط الذي يوقف البرنامج يوضع في ال while
الولى وطبعا في التكرار الغير محدد ل تنسى من وضح coutلك تخبر المستخدم بأدخال قيمة
جديده و cinلك تحفظ هذه القيمة في المتغير المخصص لها كما فعلنا في هذين السطرين
;")cout<<"please enter the student grade(enter -1 to end
;cin>>grade
....... أرجو ان يكون الفرق واضح لديكم
الن ننتقل لثال قمنا بله سابقا لكن بدون استخدام التكرار وكان لدخال رقم
واحد فقط طبعا كان برنامج غي مرن للنه بعد ان يعطيك نتيجة عدد واحد
ادخلته ينتهي عمله انظروا للبنامج بعد تطويره بأستخدام التكرار وقارنوا
بينهم وانظروا الفرق......
Question1: write a program that reads integers and determine whether it is odd or
even. (Hint: use the modulus operator .an even number is a multiple of two. any
.(multiple of two leaves a reminder of zero when divide by 2
.Make sure to make this program for non fix number
يقوم بأدخال اعداد صحيحه وفي كل مره يدخل المستخدم++C قم بكتابة برنامج بأستخدام لغة ال:3 السؤال
لتساعدك في الحل واي عدد% استخدم:عدد يقوم البرنامج بتحديد اذا كان العدد فردي او زوجي )ملحظه
( يكون الباقي دائما صفرا2 زوجي يقسم على
........ بهذه الملحظه اصبحت الفكرة جاهزة لكم
#include <iostream.h >
int main ( )
{
char flag=y
int number ;
while(flag!=n)
{
cout << " please enter the number : " ;
cin >>number ;
if (number % 2 == 0 )
cout <<" \n The number is even " ;
else (number % 2 == 1 )
cout << " \n The number is odd " ;
}
}
; return 0
}
نصل هنا لنهاية الدرس السابع وانهاء دراسة ال whileارجو ان تكونوا قد فهمتوها جيدا فهي جملة مفيده
جدا وسننتقل في الدرس القادم بأذن ال الى ال .. for loop
الى ذلك الحين دمتم بخير وعافيه والسلم عليكم ورحمة ال وبركاته.
§*)§®¤*~ˆ°سبحانك اللهم وبحمدك أشهد ان ل اله الانت استغفرك وأتوب أليك §*(§®°ˆ~*¤