 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:
|
|
27-06-2019, 02:41 PM
المشاركة 16
|
|
التدريب رقم 11 :
برنامج لحساب مجموع الأعداد الطبيعية Natural Numbers . (تطبيق على حلقة for )
الأعداد الصحيحة الموجبة 1,2,3,4,… تُعرف بالأعداد الطبيعية.
يأخذ هذا البرنامج عددًا صحيحًا موجبًا من المستخدم (افترض إن المستخدم أدخل n) ، ثم يعرض هذا البرنامج قيمة 1+2+3+…..+n .
كود:
// Sum of Natural Numbers using for loop
#include <iostream>
using namespace std;
int main()
{
int n, sum = 0;
cout << "Enter a positive integer: ";
cin >> n;
for (int i = 1; i <= n; ++i) {
sum += i; //sum = sum + i;
}
cout << "Sum = " << sum<<endl;
return 0;
}
كود:
Output
Enter a positive integer: 50
Sum = 1275
يفترض هذا البرنامج أن المستخدم يقوم دائمًا بإدخال رقم موجب.
إذا أدخل المستخدم رقمًا سالبًا ، فسيتم عرض Sum = 0 ويتم إنهاء البرنامج.
التدريب رقم 12 :
برنامج للتحقق من السنة الكبيسة Leap Year ( تطبيق على عبارة if…else المتداخلة )
يتحقق هذا البرنامج من أن عامًا (عددًا صحيحًا) يدخله المستخدم هو سنة كبيسة أم لا.
كل السنوات التي تكون قابلة للقسمة تمامًا على 4 هي سنوات كبيسة leap years ، وسنوات القرن (السنوات التي تنتهي بـ 00) تكون سنة كبيسة فقط إذا كانت قابلة للقسمة تمامًا على 400.
على سبيل المثال: 2012 ، 2004 ، 1968 إلخ هي سنوات كبيسة ( تقبل القسمة على 4 بدون باقى ) ، لكن ، 1971 ، 2006 ، إلخ ، ليست سنة كبيسة ، تسمى سنة بسيطة (لا تقبل القسمة على 4 ) . وبالمثل ، 1200 ، 1600 ، 2000 ، 2400 هي سنوات كبيسة (سنوات قرن تقبل القسمة على 400 ) ولكن ، 1700 ، 1800 ، 1900 وغيرها ليست سنوات كبيسة ( سنوات قرن تقبل القسمة على 100 ولكنها لا تقبل القسمة على 400 ) .
تحتوي السنة الكبيسة على يوم إضافي يضاف للحفاظ على السنة التقويمية متزامنة مع السنة الفلكية.
في البرنامج أدناه ، يُطلب من المستخدم إدخال سنة وهذا البرنامج يتحقق مما إذا كانت السنة التي أدخلها المستخدم سنة كبيسة أم لا.
كود:
// Check if a year is leap year or not
#include <iostream>
using namespace std;
int main()
{
int year;
cout << "Enter a year: ";
cin >> year;
if (year % 4 == 0) // if exactly divisible by four ?
{
if (year % 100 == 0) // yes , if exactly divisible by 100 also
{
if (year % 400 == 0) // yes , if exactly divisible by 400 also
cout << year << " is a leap year."<<endl;//yes
else // no
cout << year << " is not a leap year." <<endl;// divisible by 4 and 100 and 400
}
else // no , not divisible by 100
cout << year << " is a leap year." <<endl;
}
else //no divisible by 4
cout << year << " is not a leap year." <<endl;
return 0;
}
كود:
Output
Enter a year: 2014
2014 is not a leap year.
في البرنامج أعلاه ، إذا كانت السنة قابلة للقسمة على 4 if (year % 4 == 0) ، عندئذ يتم التحقق مما إذا كانت قابلة للقسمة على 100 if (year % 100 == 0) . إذا كانت قابلة للقسمة على 100 ، عندئذ يتم التحقق مما إذا كانت قابلة للقسمة على 400 if (year % 400 == 0) . إذا كانت الإجابة نعم ، عندئذ تكون السنة سنة كبيسة. خلاف ذلك ، تكون غير كبيسة . إذا كانت السنة غير قابلة للقسمة على 100 ، فهي سنة كبيسة. إذا كانت السنة غير قابلة للقسمة على 4 ، فإنها ليست سنة كبيسة.
يمكن تنفيذ نفس البرنامج باستخدام الكود التالى :
كود:
#include<iostream>
using namespace std;
int main()
{
int year = 2016;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
cout<<year<<" is a leap year";
else
cout<<year<<" is not a leap year";
return 0;
}
في البرنامج أعلاه ، إذا كانت السنة قابلة للقسمة على 4 وand ليست قابلة للقسمة على 100 ، فهي سنة كبيسة. أيضا ، or إذا كانت السنة قابلة للقسمة على 400 ، فهي سنة كبيسة.( تكون السنة كبيسة إذا (قبلت القسمة على 4 وand لم تقبل القسمة على 100 ) أو or تقبل القسمة على 400 )
التدريب رقم 13 :
برنامج لإيجار المضروب Factorial (تطبيق على حلقة for )
مضروب عدد صحيح موجب n يساوي 1*2*3*...n . في هذا المثال سوف تتعلم حساب مضروب عدد باستخدام حلقة for.
لأي رقم موجب n ، يعطى مضروبه factorial بالعلاقة :
كود:
factorial = n! = 1*2*3...*n
لا يمكن إيجاد مضروب العدد السالب ومضروب 0 يساوي 1.
في البرنامج أدناه ، يطلب من المستخدم إدخال عدد صحيح موجب. ثم يتم حساب مضروب هذا العدد وعرضه على الشاشة.
كود:
// Find Factorial of a given number
#include <iostream>
using namespace std;
int main()
{
unsigned int n;
unsigned long factorial = 1;
cout << "Enter a positive integer: ";
cin >> n;
for(int i = 1; i <=n; ++i)
{
factorial *= i;// factorial = factorial * i;
}
cout << "Factorial of " << n << " = " << factorial<<endl;
return 0;
}
كود:
Output
Enter a positive integer: 12
Factorial of 12 = 479001600
هنا المتغير factorial من النوع unsigned long ، وذلك لأن مضروب factorial عدد يكون دائمًا موجب ، ولهذا السبب تتم إضافة النعت (الوصف) unsigned إليه. نظرًا لأن المضروب كعدد يمكن أن يكون كبيرًا ، يتم تعريفه على أنه long .
في البرنامج أعلاه ، يتم تشغيل حلقة for من 1 إلى n. لكل تكرار للحلقة ، يتم ضرب factorial فى i. القيمة النهائية للمتغير factorial هي نتاج ضرب جميع الأرقام من 1 إلى n .
التدريب رقم 14 :
برنامج لتوليد جدول الضرب Multiplication Table
مثال لإنشاء جدول الضرب لرقم (أدخله المستخدم) باستخدام حلقة for .
// Display Multiplication table up to 10
كود:
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "Enter a positive integer: ";
cin >> n;
for (int i = 1; i <= 10; ++i) {
cout << n << " * " << i << " = " << n * i << endl;
}
return 0;
}
كود:
Output
Enter an integer: 5
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50
يحسب هذا البرنامج أعلاه جدول الضرب حتى 10 فقط. تستخدم حلقة for للتكرار من 1 إلى 10 . فى كل تكرار لحلقة for يتم ضرب العدد n بمتغير الحلقة i ويتم عرض النتيجة .
البرنامج أدناه هو تعديل البرنامج أعلاه حيث يُطلب من المستخدم أيضًا إدخال النطاق الذي يجب عرض جدول الضرب به.
كود:
// Display multiplication table up to a given range
#include <iostream>
using namespace std;
int main()
{
int n, range;
cout << "Enter an integer: ";
cin >> n;
cout << "Enter range: ";
cin >> range;
for (int i = 1; i <= range; ++i) {
cout << n << " * " << i << " = " << n * i << endl;
}
return 0;
}
كود:
Output
Enter an integer: 8
Enter range: 12
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
8 * 10 = 80
8 * 11 = 88
8 * 12 = 96
التدريب رقم 15 :
برنامج لعرض سلسلة فيبوناتشي Fibonacci Series( تطبيق على حلقة for وحلقة while )
في هذه المثال ، سوف تتعلم كيفية طباعة سلسلة fibonacci (حتى الحد النونى nth term ، وحتى عدد معين).

تسلسل فيبوناتشي عبارة عن سلسلة حيث يكون الحد التالي next term هو مجموع الحدين السابقين. أول حدين من تسلسل فيبوناتشي هي 0 متبوعة بالرقم 1.
كود:
The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21
كود:
// Fibonacci Series up to n number of terms
#include <iostream>
using namespace std;
int main()
{
int n, t1 = 0, t2 = 1, nextTerm = 0;
cout << "Enter the number of terms: ";
cin >> n;
cout << "Fibonacci Series: ";
for (int i = 1; i <= n; ++i)
{
// Prints the first two terms.
if(i == 1)
{
cout << " " << t1<< ',';
continue;
}
if(i == 2)
{
cout << t2 << ',';
continue;
}
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
cout << nextTerm << ',';
}
cout<<endl;
return 0;
}
كود:
Output
Enter the number of terms: 10
Fibonacci Series: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
كود:
//Program to Generate Fibonacci Sequence Up to a Certain Number
#include <iostream>
using namespace std;
int main()
{
int t1 = 0, t2 = 1, nextTerm = 0, n;
cout << "Enter a positive number: ";
cin >> n;
// displays the first two terms which is always 0 and 1
cout << "Fibonacci Series: " << t1 << ", " << t2 << ", ";
nextTerm = t1 + t2;
while(nextTerm <= n)
{
cout << nextTerm << ", ";
t1 = t2;
t2 = nextTerm;
nextTerm = t1 + t2;
}
cout<<endl;
return 0;
}
كود:
Output
Enter a positive integer: 100
Fibonacci Series: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
|