قسم لغات البرمجة php java c++ جافا Visual Basic فيجوال بيسك c# Delphi دلفي API PERL HTML و TML JavaScript ASP XML Oracle اوركال MySql sql server Access

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 18-06-2019, 01:11 AM المشاركة 9   
افتراضي الدرس الثالث - الجزء الثانى - القرارات



الدرس الثالث - الجزء الثانى - القرارات

https://www.mediafire.com/file/cawl1...sions.rar/file

اعلانات

الصورة الرمزية مسلم11
مسلم11
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2009
الدولة: بلاد الشام
المشاركات: 3,679
نشاط [ مسلم11 ]
قوة السمعة:
قديم 18-06-2019, 01:50 AM المشاركة 10   
افتراضي


انما اقصد انني في اي لغة استطيع ان ابرمج بها اي متحكم للحصول على رسائل خطا مثلا هناك اجهزة تكتب على الشاشة رموز ( F1-D10-S34 ) وهكذا وكل رمز يمثل خطأ معين
فالرمز F1 يرمز الى ان البطاريات لا تشحن وهكذا.
وهل لنوع المعالجات اهمية او هل كل معالج مختص بامر ما ام بامكان اي معالج تنفيذ هذه الفكرة
شكرا لك على حسن تعاملك بارك الله بك

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 18-06-2019, 04:01 PM المشاركة 11   
افتراضي


انما اقصد انني في اي لغة استطيع ان ابرمج بها اي متحكم للحصول على رسائل خطا مثلا هناك اجهزة تكتب على الشاشة رموز ( F1-D10-S34 ) وهكذا وكل رمز يمثل خطأ معين
فالرمز F1 يرمز الى ان البطاريات لا تشحن وهكذا.
وهل لنوع المعالجات اهمية او هل كل معالج مختص بامر ما ام بامكان اي معالج تنفيذ هذه الفكرة
شكرا لك على حسن تعاملك بارك الله بك
أخى الكريم شكرا جزيلا لك

أعتقد : تقريبا بإمكان أى معالج تنفبذ الفكرة

مع تمنياتى بدوام التوفيق


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 18-06-2019, 04:19 PM المشاركة 12   
افتراضي


أسئلة للمراجعة
س1 : عامل العلاقة A relational operator
ا. يعين معامل operand إلى آخر.
ب. يسفر عن نتيجة منطقية Boolean .
ج. يقارن اثنين من المعاملات.
د. يجمع منطقيا اثنين من المعاملات.

ج1 : ب و ج

س2 : اكتب تعبيرًا يستخدم عامل علاقة لإعادة true إذا كان المتغير george لا يساوي sally.

ج2 :

كود:
george != sally

س3 : هل (-1) true أم false ؟

ج3 (-1) هو true ، فقط (0) هو false

س4 : إذكر اسم ووصف الغرض المعتاد من الثلاثة تعبيرات expressions في عبارة for .

ج4 : تعبير التهيئة أو البدء initialize expression يقوم بتهيئة متغير الحلقة أى تعيين قيمته الابتدائية ، وتعبير الاختبار test expression ويقوم باختبار باختبار متغير الحلقة (شرط تكرار الحلقة) ، وتعبير الزيادة increment expression وهو يغير متغير الحلقة.

س5 : في حلقة for مع جسم حلقة به عبارات متعددة ، يجب أن تظهر الفاصلة المنقوطة تلى :
ا. عبارة for نفسها.
ب. قوس الإغلاق في جسم حلقة متعددة العبارات .
ج. كل عبارة داخل جسم حلقة.
د. تعبير الاختبار.

ج5 : ج و د



س6 : صواب true أو خطأ false : تعبير الزيادة في حلقة for يمكن أن يقلل decrement متغير الحلقة.

ج6 : صواب true

س7 : اكتب حلقة for تعرض الأرقام من 100 إلى 110.

ج7 :

كود:
for(int j=100; j<=110; j++)
cout << endl << j;


س8 : يتم تحديد delimited كتلة من الكود بواسطة ...

ج8 : الأقواس {} braces (curly brackets)

س9 : المتغير المعرف داخل كتلة يكون مرئي
ا. من نقطة التعريف فصاعدا في البرنامج.
ب. من نقطة التعريف فصاعدا في الدالة .
ج. من نقطة التعريف فصاعدا في الكتلة.
د. طوال الدالة .

س10 : اكتب حلقة while والتى تعرض الأرقام من 100 إلى 110.

ج10 :

كود:
 int j = 100;
while( j <= 110 )
cout << endl << j++;

س11 : صواب true أو خطأ false : عوامل العلاقة لهم أسبقية أعلى من العوامل الحسابية.

ج11 : خطأ false .

س12 : كم مرة يتم تنفيذ جسم الحلقة في حلقة do ؟

ج12 : مرة واحدة على الأقل

س13 : اكتب حلقة do تعرض الأرقام من 100 إلى 110.

ج13 :


كود:
int j = 100;
do
cout << endl << j++;
while( j <= 110 );




س14 : اكتب عبارة if التي تطبع Yes إذا كان المتغير age أكبر من 21.

ج14 :


كود:
if(age > 21)
cout << “Yes”;

س15 : تؤدي دالة المكتبة exit() إلى خروج من
ا. الحلقة التي يحدث فيها.
ب. الكتلة التي يحدث فيها.
ج. الدالة التي يحدث فيها.
د. البرنامج الذي تحدث فيه.

ج15 : د

س16 : اكتب بارة if…else التى تعرض Yes إذا كان المتغير age أكبر من 21 ، وتعرض No خلاف ذلك .

ج16 :

كود:
 if( age > 21 )
cout << “Yes”;
else
cout << “No”;

س17 : دالة المكتبة getche()
ا. ترجع حرف عند الضغط على أي مفتاح.
ب. ترجع حرف عند الضغط على Enter.
ج. تعرض حرف على الشاشة عند الضغط على أي مفتاح.
د. لا تعرض حرف على الشاشة.

ج17 : أ و ج

س18 : ما هو الحرف الذى يتم الحصول عليه من cin عندما يضغط المستخدم على مفتاح Enter؟

ج18 : الحرف ‘\r’

س19 : else تتطابق دائمًا مع if ..... ، ما لم تكن if ......

ج19 : else تتطابق دائمًا مع if "السابقة أو السالفة" ، ما لم تكن if "محاطة بأقواس "

س20 : يتم الحصول على بناء else…if من if…else المتداخلة بواسطة .....

ج20 : بإعادة الصياغة (التشكيل) reformatting




س21 : اكتب عبارة switch تطبع Yes إذا كان المتغير ch هو 'y' ، وطباعة No إذا كان ch هو ‘n’ ، وطباعة استجابة غير معروفة Unknown response خلاف ذلك.

ج21 :

كود:
 
switch(ch)
{
case ‘y’:
cout << “Yes”;
break;
case ‘n’:
cout << “No”;
break;
default:
cout << “Unknown response”;
}

س22 : اكتب عبارة تستخدم عامل الشرط لتعيين التذكرة (مخالفات المرور) على 1 إذا كانت السرعة أكبر من 55 ، و 0 بخلاف ذلك.

ج22 :

كود:
ticket = (speed > 55) ? 1 : 0;

س23 : العاملان && و ||
ا. تقارن compare بين قيمتين رقميتين.
ب. تجمع combine بين اثنين من القيم الرقمية.
ج. تقارن بين اثنين من القيم المنطقية .
د. تجمع بين اثنين من القيم المنطقية.

ج23 : د

س24 : اكتب تعبيرًا expression ينطوي على عامل منطقي يكون صحيحًا true إذا كان limit الحد الأقصى 55 و and كانت السرعة speed أكبر من 55.

ج24 :


كود:
limit == 55 && speed > 55

س25 : قم بترتيب الأسبقية (الأعلى أولاً) للأنواع التالية من العوامل: منطقية logical ،أحادي unary ، الحساب arithmetic ، التعيين assignment ، العلاقة relational ، الشرط conditional .

ج25 : unary, arithmetic, relational, logical, conditional, assignment

س26 : عبارة break تؤدي إلى الخروج
ا. فقط من الحلقة الأعمق innermost .
ب. فقط من switch الأعمق.
ج. من جميع الحلقات و switches .
د. من أعمق حلقة أو switch .

ج26 : د

س27 : يؤدي تنفيذ عامل continue من داخل حلقة إلى انتقال التحكم إلى .....

ج27 : الجزء العلوي من الحلقة

س28 : عبارة goto تتسبب في انتقال التحكم إلى
ا. عامل operator .
ب. تسمية label .
ج. متغير variable .
د. دالة function .

ج28 : ب



الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 19-06-2019, 12:01 AM المشاركة 13   
افتراضي


تمارين Exercises

التمرين رقم 1 :

افترض أنك تريد إنشاء جدول بمضاعفات أي رقم معطى . اكتب برنامج يتيح للمستخدم إدخال الرقم ثم يقوم بإنشاء الجدول ، وتنسيقه في 10 أعمدة و 20 سطرًا. يجب أن يبدو التفاعل مع البرنامج كما يلي (يتم عرض الأسطر الثلاثة الأولى فقط):

Enter a number: 7
7 14 21 28 35 42 49 56 63 70
77 84 91 98 105 112 119 126 133 140
147 154 161 168 175 182 189 196 203 210
الحل :


كود:
 
// ex3_1.cpp
// displays multiples of a number
#include <iostream>
#include <iomanip> 					//for setw()
using namespace std;

int main()
{
unsigned long n; 				//number

cout << “\nEnter a number: “;
cin >> n; 					//get number

for(int j=1; j<=200; j++) 			//loop from 1 to 200
{
cout << setw(5) << j*n << “ “; 	//print multiple of n
if( j%10 == 0 ) 			//every 10 numbers,
cout << endl; 			//start new line
}
return 0;
}





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


الحل :

كود:
// ex3_2.cpp
// converts fahrenheit to centigrad, or
// centigrad to fahrenheit
#include <iostream>
using namespace std;

int main()
{
int response;
double temper;

cout << “\nType 1 to convert fahrenheit to celsius,”
        << “\n 2 to convert celsius to fahrenheit: “;
cin >> response;

if( response == 1 )
{
cout << “Enter temperature in fahrenheit: “;
cin >> temper;
cout << “In celsius that’s “ << 5.0/9.0*(temper-32.0);
}
else
{
cout << “Enter temperature in celsius: “;
cin >> temper;
cout << “In fahrenheit that’s “ << 9.0/5.0*temper + 32.0;
}
cout << endl;
return 0;
}




التمرين رقم 3 :
العوامل مثل >> الذى يقرأ الإدخال من لوحة المفاتيح ، يجب أن يكون قادرا على تحويل سلسلة من الأرقام digits إلى عدد number . اكتب برنامجًا يفعل نفس الشيء. يجب أن يسمح للمستخدم بكتابة ما يصل إلى ستة أرقام digits ، ثم عرض العدد الناتج باعتباره نوع long integer . يجب قراءة الأرقام digits بشكل فردي ، كأحرف ، باستخدام getche() .
يتضمن تكوين العدد number ضرب القيمة الحالية بـ 10 ثم إضافة الرقم digit الجديد. (تلميح: اطرح 48 أو ‘0’ للانتقال من ASCII إلى رقم عددى numerical digit .)


فيما يلى عينة من التفاعل :

Enter a number: 123456
Number is: 123456
الحل :

كود:
 
// ex3_3.cpp
// makes a number out of digits
#include <iostream>
using namespace std;
#include <conio.h> //for getche()

int main()
{
char ch;
unsigned long total = 0; //this holds the number

cout << “\nEnter a number: “;
while( (ch=getche()) != ‘\r’ ) //quit on Enter
total = total*10 + ch-’0’; //add digit to total*10
cout << “\nNumber is: “ << total << endl;
return 0;
}




التمرين رقم 4 :
المطلوب برنامج لإنشاء ما يعادل آلة حاسبة بأربعة وظائف . يجب أن يطلب البرنامج من المستخدم إدخال رقم number وعامل operator ورقم آخر. (استخدم النقطة العائمة.) يجب أن ينفذ العملية الحسابية المحددة : إضافة (جمع) أو طرح أو ضرب أو قسمة رقمين. استخدم عبارة switch لتحديد العملية. وأخيرا ، أعرض النتيجة.
عندما ينتهي الحساب ، يجب أن يسأل البرنامج ما إذا كان المستخدم يريد إجراء حساب آخر. يمكن أن تكون الاستجابة ‘y’ أو ‘n’ . قد تبدو بعض نماذج التفاعل مع البرنامج كما يلي:


Enter first number, operator, second number: 10 / 3
Answer = 3.333333
Do another (y/n)? y
Enter first number, operator, second number: 12 + 100
Answer = 112
Do another (y/n)? n

الحل :


كود:
// ex3_4.cpp
// models four-function calculator
#include <iostream>
using namespace std;

int main()
{
double n1, n2, ans;
char oper, ch;

do {
cout << “\nEnter first number, operator, second number: “;
cin >> n1 >> oper >> n2;

switch(oper)
   	{
case ‘+’: ans = n1 + n2; break;
case ‘-’: ans = n1 - n2; break;
case ‘*’: ans = n1 * n2; break;
case ‘/’: ans = n1 / n2; break;
default: ans = 0;
   	}

cout << “Answer = “ << ans;
cout << “\nDo another (Enter ‘y’ or ‘n’)? “;
cin >> ch;
} while( ch != ‘n’ );
return 0;
}





الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 26-06-2019, 11:50 PM المشاركة 14   
افتراضي


تدريبات متدرجة لمراجعة البرمجة بلغة ++C

التدريب رقم 1 :
برنامج لعرض عبارة ترحيب
برنامج بسيط لعرض العبارة Hello, C++ World! على الشاشة . نظرًا لأنه برنامج بسيط جدًا ، فغالبًا ما يستخدم لتوضيح بناء جملة syntax لغة البرمجة وهيكل البرنامج .

كود:
#include <iostream>
using namespace std;

int main() 
{
    cout << "Hello, C++  World!\n";
    return 0;
}

Output
Hello, C++ World!
التدريب رقم 2 :
برنامج لطباعة (عرض) عدد صحيح يتم إدخاله بمعرفة المستخدم .
في هذا المثال ، ستتعرف على طباعة العدد الصحيح integer الذي أدخله المستخدم باستخدام عبارة cout وعبارة cin.


كود:
#include <iostream>
using namespace std;

int main()
{    
    int number;

    cout << "Enter an integer: ";
    cin >> number;

    cout << "You entered " << number << endl;    
    return 0;
}

Output
Enter an integer: 23
You entered 23
يطلب هذا البرنامج من المستخدم إدخال عدد صحيح .
عندما يقوم المستخدم بإدخال عدد صحيح ، يتم تخزينه في المتغير number باستخدام cin.
ثم يتم عرضه على الشاشة باستخدام cout.


التدريب رقم 3 :
برنامج لجمع عددين صحيحين .
في هذا البرنامج ، يُطلب من المستخدم إدخال عددين صحيحين integers . بعد ذلك ، يتم تخزين مجموع هذين العددين الصحيحين في متغير وعرضه على الشاشة.

كود:
 
#include <iostream>
using namespace std;

int main()
{
    int firstNumber, secondNumber, sumOfTwoNumbers;
    
    cout << "Enter two integers: ";
    cin >> firstNumber >> secondNumber;

    // sum of two numbers is stored in variable sumOfTwoNumbers
    sumOfTwoNumbers = firstNumber + secondNumber;

    // Prints sum 
    cout << firstNumber << " + " <<  secondNumber << " = " << sumOfTwoNumbers                         <<endl;     

    return 0;
}


Output
Enter two integers: 4
5
4 + 5 = 9
في هذا البرنامج ، يُطلب من المستخدم إدخال عددين صحيحين. يتم تخزين هذه الأعداد الصحيحة فى اثنين من المتغيرات firstNumber و secondNumber على التوالي .
بعد ذلك ، يتم إضافة (جمع) المتغيرات firstNumber و secondNumber باستخدام عامل الجمع + وتخزينها في المتغير sumOfTwoNumbers.
أخيرًا ، يتم عرض sumOfTwoNumbers على الشاشة.

التدريب رقم 4 :
برنامج لإيجاد خارج القسمة Quotient والباقى Remainder
في هذا المثال ، سوف تتعلم كيفية إيجاد خارج (نتيجة) القسمة وباقي القسمة من معطيات المقسوم dividend (البسط) والمقسوم عليه (المقام) divisor.
في هذا البرنامج ، يُطلب من المستخدم إدخال اثنين من الأعداد الصحيحة (المقسوم عليه divisor و المقسوم dividend) ويحسب نتيجة (حاصل) القسمة quotient والباقي remainder .
لحساب خارج القسمة والباقي ، يجب أن يكون كل من المقسوم عليه divisor والقاسم dividend عددًا صحيحًا.

كود:
#include <iostream>
using namespace std;

int main()
{    
    int divisor, dividend, quotient, remainder;

    cout << "Enter dividend: ";
    cin >> dividend;

    cout << "Enter divisor: ";
    cin >> divisor;

    quotient = dividend / divisor;
    remainder = dividend % divisor;

    cout << "Quotient = " << quotient << endl;
    cout << "Remainder = " << remainder << endl;

    return 0;
}

Output

Enter dividend: 13
Enter divisor: 4
Quotient = 3
Remainder = 1
يقوم عامل القسمة / بحساب حاصل (نتيجة) القسمة quotient (إما بين المتغيرات الحقيقية العائمة float أو العدد الصحيح integer ). يقوم معامل المعامل modulus operator % (عامل الباقى) بحساب الباقي remainder عندما يتم قسمة عدد صحيح على آخر (لا يمكن استخدام معامل الباقى لمتغيرات النوع العائم).

التدريب رقم 5 :
برنامج لإيجاد حجم Size أنواع البيانات int, float, double , char ، على النظام الخاص بك
سوف يتم الاستعلام عن حجم 4 متغيرات من النوع int, float, double , char . يتم تقييم حجم كل نوع متغير باستخدام العامل sizeof .
لإيجاد حجم المتغير يتم استخدام العامل sizeof بالصيغة :
sizeof(dataType);


كود:
#include <iostream>
using namespace std;

int main() 
{    
    cout << "Size of char: " << sizeof(char) << " byte" << endl;
    cout << "Size of int: " << sizeof(int) << " bytes" << endl;
    cout << "Size of float: " << sizeof(float) << " bytes" << endl;
    cout << "Size of double: " << sizeof(double) << " bytes" << endl;

    return 0;
}


Output
Size of char: 1 byte
Size of int: 4 bytes
Size of float: 4 bytes
Size of double: 8 bytes


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


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 27-06-2019, 01:20 AM المشاركة 15   
افتراضي


التدريب رقم 6 :
برنامج تبديل(مبادلة) swap عددين
يحتوي هذا المثال على تقنيتين مختلفتين لتبديل الأعداد . يستخدم البرنامج الأول متغيرًا مؤقتًا temporary لمبادلة الأعداد ، بينما لا يستخدم البرنامج الثاني متغيرات مؤقتة.

كود:
// Swap Numbers (Using Temporary Variable)
#include <iostream>
using namespace std;

int main()
{
    int a = 5, b = 10, temp;

    cout << "Before swapping." << endl;
    cout << "a = " << a << ", b = " << b << endl;

    temp = a;
    a = b;
    b = temp;

    cout << "\nAfter swapping." << endl;
    cout << "a = " << a << ", b = " << b << endl;

    return 0;
}

كود:
Output
Before swapping.
a = 5, b = 10

After swapping.
a = 10, b = 5



لإجراء المبادلة في المثال أعلاه ، يتم استخدام ثلاثة متغيرات. يتم نسخ محتويات المتغير الأول إلى المتغير المؤقت temp. ثم ، يتم نسخ محتويات المتغير الثاني إلى المتغير الأول. أخيرًا ، يتم نسخ محتويات المتغير temp مرة أخرى إلى المتغير الثاني الذي يكمل عملية المبادلة.
يمكنك أيضًا إجراء المبادلة باستخدام متغيرين فقط على النحو التالي.


كود:
// Swap Numbers Without Using Temporary Variables
#include <iostream>
using namespace std;

int main()
{
    
    int a = 5, b = 10;

    cout << "Before swapping." << endl;
    cout << "a = " << a << ", b = " << b << endl;

    a = a + b;
    b = a - b;
    a = a - b;

    cout << "\nAfter swapping." << endl;
    cout << "a = " << a << ", b = " << b << endl;

    return 0;
}


خرج هذا البرنامج هو نفسه مثل خرج البرنامج الأول أعلاه .

التدريب رقم 7 :
برنامج للتحقق مما إذا كان العدد زوجيًا Even أو فرديا Odd .
في هذا المثال ، تستخدم عبارة if...else للتحقق مما إذا كان العدد الذي أدخله المستخدم هو زوجي أم فردى .
تسمى الأعداد الصحيحة التي تقبل القسمة تمامًا (بدون باقى) على 2 بالأعداد الزوجية.
وتُعرف الأعداد الصحيحة التي لا تقبل القسمة تمامًا على 2 بالعدد الفردي.
للتحقق مما إذا كان عدد صحيح هو زوجي أم فردى ، يتم حساب الباقي عندما يتم قسمة العدد على 2 باستخدام معامل الباقى % . إذا كان الباقي يساوي صفر ، فهذا العدد يكون زوجى even ، إذا لم يكن الباقى بصفر فإن ذلك العدد يكون فرديا odd.


كود:
// Check Whether Number is Even or Odd using if else
#include <iostream>
using namespace std;

int main()
{
    int n;

    cout << "Enter an integer: ";
    cin >> n;

    if ( n % 2 == 0)
        cout << n << " is even." << endl;
    else
        cout << n << " is odd."  << endl;

    return 0;
}

كود:
 Output

Enter an integer: 23
23 is odd.

في هذا البرنامج ، تم استخدام عبارة if..else للتحقق مما إذا كانت n%2 == 0 صواب true أم لا. إذا كان هذا التعبير صحيحًا true ، فإن n تكون زوجى even وإن لم تكن صحيحة فإن n تكون فردية odd .
يمكنك أيضًا استخدام عامل الشرط الثلاثى بدلاً من if..else statement. العامل الثلاثي عبارة عن تدوين قصير (مختصر) لعبارة if…else .


كود:
// Check Whether Number is Even or Odd using ternary operators
#include <iostream>
using namespace std;

int main()
{
    int n;

    cout << "Enter an integer: ";
    cin >> n;
    
    (n % 2 == 0) ? cout << n << " is even."<<endl :  cout << n << " is odd."<<endl;
    
    return 0;
}




التدريب رقم 8 :
برنامج للتحقق مما إذا كان الحرف هو حرف متحرك (لين) Vowel أو ساكن Consonant .
في هذا المثال ، تستخدم عبارة if…else للتحقق مما إذا كانت الحروف الأبجدية التي أدخلها المستخدم عبارة عن حرف متحرك أو ثابت.
تُعرف الخمسة حروف الأبجدية a و e و i و o و u على أنها أحرف متحركة vowels. جميع الحروف الهجائية الأخرى باستثناء هذه الحروف الهجائية الخمسة تعرف على أنها حروف ساكنة .
هذا البرنامج يفترض أن المستخدم سوف يدخل دائما حروف أبجدية .



كود:
// Check Vowel or a Consonant 
#include <iostream>
using namespace std;

int main()
{
    char c;
    int isLowercaseVowel, isUppercaseVowel;

    cout << "Enter an alphabet: ";
    cin >> c;

    // evaluates to 1 (true) if c is a lowercase vowel
    isLowercaseVowel = (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u');

    // evaluates to 1 (true) if c is an uppercase vowel
    isUppercaseVowel = (c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U');

    // evaluates to 1 (true) if either isLowercaseVowel or isUppercaseVowel is true
    if (isLowercaseVowel || isUppercaseVowel)
        cout << c << " is a vowel."<<endl;
    else
        cout << c << " is a consonant."<<endl;

    return 0;
}


كود:
Output
Enter an alphabet: u
u is a vowel.

يتم حفظ الحرف المدخل بمعرفة المستخدم فى المتغير c .
يتم تقييم المتغير isLowerCaseVowel بالقيمة true إذا كان c حرف صغير متحرك lowercase vowel ، وبالقيمة false لأى حرف آخر .
بالمثل يتم تقييم المتغير isUpperCaseVowel بالقيمة true إذا كان c حرف كبير متحرك uppercase vowel ، وبالقيمة false لأى حرف آخر .

إذا كان كل من isLowerCaseVowel و isUpperCaseVowel بالقيمة true ، فإن الحرف المدخل يكون متحرك vowel ، وإن لم يكن كذلك فإن الحرف يكون ساكن consonant .

التدريب رقم 9 :
إيجاد أكبر عدد بين ثلاثة أعداد

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




كود:
// 1: Find Largest Number Using if Statement
#include <iostream>
using namespace std;

int main()
{    
    float n1, n2, n3;

    cout << "Enter three numbers: ";
    cin >> n1 >> n2 >> n3;

    if(n1 >= n2 && n1 >= n3)
    {
        cout << "Largest number: " << n1<<endl;
    }

    if(n2 >= n1 && n2 >= n3)
    {
        cout << "Largest number: " << n2<<endl;
    }

    if(n3 >= n1 && n3 >= n2) 
    {
        cout << "Largest number: " << n3<<endl;
    }

    return 0;
}

كود:
Output

Enter three numbers: 2.3
8.3
-4.2
Largest number: 8.3



كود:
// 2: Find Largest Number Using if...else Statement
#include <iostream>
using namespace std;

int main()
{
    float n1, n2, n3;

    cout << "Enter three numbers: ";
    cin >> n1 >> n2 >> n3;

    if((n1 >= n2) && (n1 >= n3))
        cout << "Largest number: " << n1<<endl;
    else if ((n2 >= n1) && (n2 >= n3))
        cout << "Largest number: " << n2<<endl;
    else
        cout << "Largest number: " << n3<<endl;
    
    return 0;
}



كود:
Output

Enter three numbers: 2.3
8.3
-4.2
Largest number: 8.3
كود:
// 3: Find Largest Number Using Nested if...else statement
#include <iostream>
using namespace std;

int main()
{
    float n1, n2, n3;

    cout << "Enter three numbers: ";
    cin >> n1 >> n2 >> n3;

    if (n1 >= n2)
    {
        if (n1 >= n3)
            cout << "Largest number: " << n1<<endl;
        else
            cout << "Largest number: " << n3<<endl;
    }
    else
    {
        if (n2 >= n3)
            cout << "Largest number: " << n2<<endl;
        else
            cout << "Largest number: " << n3<<endl;
    }

    return 0;
}


كود:
Output

Enter three numbers: 2.3
8.3
-4.2
Largest number: 8.3


التدريب رقم 10 :
برنامج لإيجاد جميع جذور Roots معادلة تربيعية (من الدرجة الثانية) Quadratic Equation . (تطبيق على عبارة if…else )
يقبل هذا البرنامج معاملات coefficients المعادلة التربيعية من المستخدم ويعرض الجذور (كل من الجذور الحقيقية real والمركبة complex تعتمد على المميز discriminant ).
فى المعادلة التربيعية ax2+bx+c = 0 ( حيث a,b,c هى المعاملات coefficients ) ، تعطى جذورها بالصيغة التالية




الحد b2-4ac يعرف بمميز discriminant المعادلة التربيعية . المميز يخبر عن طبيعة الجذور :
• إذا كان المميز أكبر من الصفر ، فإن الجذور تكون حقيقية ومختلفة .
• إذا كان المميز يساوى الصفر ، فإن الجذور تكون حقيقية ومتساوية .
• إذا كان المميز أقل من الصفر فإن الجذور تكون مركبة ومختلفة .





كود:
// Roots of a Quadratic Equation
#include <iostream>
#include <cmath>
using namespace std;

int main() {

    float a, b, c, x1, x2, discriminant, realPart, imaginaryPart;
    cout << "Enter coefficients a, b and c: ";
    cin >> a >> b >> c;
    discriminant = b*b - 4*a*c;
    
    if (discriminant > 0) 
    {
        x1 = (-b + sqrt(discriminant)) / (2*a);
        x2 = (-b - sqrt(discriminant)) / (2*a);
        cout << "Roots are real and different." << endl;
        cout << "x1 = " << x1 << endl;
        cout << "x2 = " << x2 << endl;
    }
    
    else if (discriminant == 0) 
    {
        cout << "Roots are real and same." << endl;
        x1 = (-b + sqrt(discriminant)) / (2*a);
        cout << "x1 = x2 =" << x1 << endl;
    }

    else 
    {
        realPart = -b/(2*a);
        imaginaryPart =sqrt(-discriminant)/(2*a);
        cout << "Roots are complex and different."  << endl;
        cout << "x1 = " << realPart << "+" << imaginaryPart << "i" << endl;
        cout << "x2 = " << realPart << "-" << imaginaryPart << "i" << endl;
    }

    return 0;
}



كود:
Output

Enter coefficients a, b and c: 4
5
1
Roots are real and different.
x1 = -0.25
x2 = -1

فى هذا البرنامج يتم استخدام دالة المكتبة sqrt() لإيجاد الجذر التربيعى لعدد .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: 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,



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 11:55 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)