السلام عليكم ورحمة الله وبركاته
طبعا من عنوان الموضوع
ابغى احد يفهمني switch وش فايدته وكيف عمله واذا ما عليكم امر امثله او تمارين عليه
وشكرا لكم
اخوكم الموقر
السلام عليكم ورحمة الله وبركاته
طبعا من عنوان الموضوع
ابغى احد يفهمني switch وش فايدته وكيف عمله واذا ما عليكم امر امثله او تمارين عليه
وشكرا لكم
اخوكم الموقر
عزيزي Switch تقوم مقام If Else .
مثال لها ..
int x;
cin >> x;
switch (x)
{
case 1 :
dosomething();
break;
case 2 :
dosomethingElse();
break;
.
.
.
};هي لا تقبل في الحقيقة سوى int و char .
أخوي... الموقر... switch جدا سهلة في الفهم والاستخدام... وان شاء الله حتحسها سهلة وبسيطه بعد ما تفهمها...وهذا شرح مبسط لها .. مع مثال .. وبتستفيد ان شاء الله.
_ swith is one of the selection or branch structures in c++...which gives the computer the power to choose from many alternatives.
The general form is:
swith (expression)
{
case value1: statements;
break;
case value2: statements;
break;
.
.
.
.
.
.
case valuen: statements;
break;
default: statements;
break; //اختياريه
}
// the next actionswitch, case, break, and default are reservied words.it means key words.
_ تستخدم جملة switch لنقل التحكم الى جملة أو كتلة جمل حسب قيمة متغير أو تعبير رياضي.
switch(exp)...the (exp) can be on of this:
1) رمز حرفي أو متغير يأخذ قيمة حرفيه. مثال:
char ch; cin>>ch; switch(ch)
2) تعبير منطقي له قيمة صحيحة int
3) تعبير حسابي له قيمة صحيحة int
4) اسم متغير له قيمة صحيحةint,long int
ملاحظه: لا يجوز استخدام أي متغيرات لها قيم حقيقية float, double
* كلمة case تستخدم للدلالة على القيم المختلفة والمحتملة للمتغير أو التعبير ، يليها إحدى القيم المحتملة للمتغير أو التعبير.
فإذا كانت القيم أعداد صحيحة .. فهي : موجبة/سالبة/صفر، اما اذا كانت القيم حرفية فنضعها داخل علامة الاقتباس المفرد ' ' .
أما اذا كان التعبير منطقي ، فالقيم المتوقعه هي 0/1 أو true / false .
بعد ذلك يليه الرمز : ثم بعده الجملة / الجمل ( كتل من الجمل block) التي يجب ان تنفذ في حالة تحقق القيمة . مع ملاحظة أن الجمل ( الكتل) لا توضع داخل { }
* كلمة أو جملة brek; تستخدم لنقل التحكم للجملة next action أي بعد انتهاء جملة switch وذلك بعد أن نكون قد نفذنا الجملة أو الحزمة السابقه لها .
أهميتها أنها تمنع إكمال تنفيذ جمل switch التي مع كلمات cases الأخرى. وتركها في الجزئية التابعه لـ default لن تسبب أية مشاكل . لأنه لايوجد cases بعدها.
- كلمة default هي كلمة محجوزة . وهي كلمة اختياريه . ويقوم الحاسب بتنفيذ الجملة/ الجمل التابعه لها عندما لا تتطابق قيمة المتغير / التعبير مع أي قيمة من القيم التالية لجمل( لكلمة) case.
* الأقواس {} تعني بداية ونهاية switch.
* في البداية يقيم /يحسب التعبير exp ومن قيمته نستطيع أن نحدد نوعية الجملة/ الجمل المطلوب تنفيذها والتي تتبع كلمة case .
مثال:
switch(x)
أو
switch(x+3)
وهذه أمثله على برامج باستخدام switch
الأول يأخذ العلامة الدراسية حرفيا .. ثم يخرج جملة تقول علامتك .
يعني مثلا تدخل حرف A يقوم يخرج لك grade is A يعني المستوى إمتياز.
#include<conio>
#include<iostream>
int main()
{
char grade;
cin>>grade;
switch(grade)
{
case 'A': cout<<"\n grade is A";
break;
case 'B': cout<<"\n grade is B";
break;
case 'c': cout<<"\n grade is C";
break;
case 'd': cout<<"\n grade is D";
break;
case 'F': cout<<"\n grade is F";
break;
default: cout<<"\n The grade is invalid";
}
cout<<"\n FINISH";
getch();
return 0;
}
/* the out put
B
grade is B
FINISH
*/هذه المخرجات طبعا هي على سبيل المثال.. وتقدر انت تختار اي حرف تاني غير ال B وتدخلو وتشوف ايش حيطلعلك .
ان شاء الله بتستفيد منو.
وهذا كمان برنامج تاني ممتاز .. ويفهم مزبوط:
#include<conio>
#include<iostream>
int main()
{
int x;
cin>>x;
switch(x)
{
case 0: cout<<"it is zero";
break;
case 3: cout<<"it is three";
break;
case 9: cout<<"it is nine";
break;
default: cout<<"it is not 0 or 3 or 9";
}
cout<<"\n we are done !";
getch();
return 0;
}وهذا برضو مثال كويس وحلو :
#include<conio>
#include<iostream>
int main()
{
int x,y;
cin>>x;
switch(x)
{
case 1:
case 2:
case 3: y=2*x;
cout<<"x="<<x<<"\t"<<"y="<<y;
break;
case 8: y=3*x+5;
cout<<"x="<<x<<"\t"<<"y="<<y;
break;
default: cout<<"\nAre you sure?!!";
}
cout<<"\nfinish";
getch();
return 0;
}
/* out put
2
x=2 y=4
finish
*/ان شاء الله تستفيد من هذه الأمثله .. لأنها اكثر شي يفهم... وحاول تنسخ البرنامج على الcompiler اللي هوا برنامج ال c++ وادخل مدخلات غير اللي انا كاتبتها.. وشوف كيف تتغير المخرجاتز.. موفق ان شاء الله
السلام عليكم ورحمة الله وبركاته
انا كنت استفسر عن هالشغله هذي
اخواني اعضاء المنتدى
انا اعرف ان ال switch هي نفسها if...else...if
بس انا عندي داله مكتوبه ب if..else...if وبخليها بال switch يطلع عندي error
وهذي هي الدالة:-
void Student::grade ()
{
float grd = ( markO + markT );
if ( grd <= 59.0 )
cout << "F";
else if ( grd <= 64.0 )
cout << "D";
else if ( grd <= 69.0 )
cout << "D+";
else if ( grd <= 74.0 )
cout << "C";
else if ( grd <= 79.0 )
cout << "C+";
else if ( grd <= 84.0 )
cout << "B";
else if ( grd <= 89.0 )
cout << "B+";
else if ( grd <= 94.0 )
cout << "A";
else if ( grd <= 100.0 )
cout << "A+";
}
معليش حبايبي ما اعرف احط الكود مثلكم
اقتباسالسلام عليكم ورحمة الله وبركاتهانا كنت استفسر عن هالشغله هذي
اخواني اعضاء المنتدى
انا اعرف ان ال switch هي نفسها if...else...if
بس انا عندي داله مكتوبه ب if..else...if وبخليها بال switch يطلع عندي error
وهذي هي الدالة:-
void Student::grade ()
{
float grd = ( markO + markT );
if ( grd <= 59.0 )
cout << "F";
else if ( grd <= 64.0 )
cout << "D";
else if ( grd <= 69.0 )
cout << "D+";
else if ( grd <= 74.0 )
cout << "C";
else if ( grd <= 79.0 )
cout << "C+";
else if ( grd <= 84.0 )
cout << "B";
else if ( grd <= 89.0 )
cout << "B+";
else if ( grd <= 94.0 )
cout << "A";
else if ( grd <= 100.0 )
cout << "A+";
}
سؤااااااال بانتظار اجابته على ناررر من عمالقة لغة السي
يا ريت اللي يعرف شو حلها يجاوبنا :)
هذا الموضوع مغلق.