📚 ملوك البرمجة 💻
641 subscribers
427 photos
57 videos
551 files
174 links
جامعة ذمار ... كلية الحاسبات ونظم المعلومات ... قسم تقنية المعلومات ... " 29/9/2019 "


📚..|💻Information Technology (IT)🖥️ |..💡
Download Telegram
سؤال : الازاحة

#include <iostream>
using namespace std;
int main(){
const int value = 88;
cout<<(value>>2);
return 0;
}
المخرجات
Anonymous Poll
60%
22
40%
352
سؤال : الازاحه 2

#include <iostream>
using namespace std;
int main(){
const int value = 33;
cout<<(value<<3);
return 0; }
المخرجات
Anonymous Poll
69%
246
31%
4
سؤال : الضرب المنطقي

#include <iostream>
using namespace std;
int main(){
const int k=144,s=55;
cout<<(k&s);
return 0; }
المخرجات
Anonymous Poll
81%
16
19%
20
✒️ الدرس 5⃣

⬅️ أمر الطباعة >>cout

.................................
》أمر الطباعة cout :
بشكل عام, نستخدم الأمر cout لطباعة أي شيء نريد في الكونسول.
عند إستخدام الأمر cout يجب أن تضع العامل << قبل أي شيء تريد تمريره له حتى يتم طباعته.
مثال

main.cpp :
#include <iostream>

int main()
{
std::cout << "wecome to c++";
return 0;
}

سنحصل على النتيجة التالية عند التشغيل.
wecome to c++
》شرح الكود :
الأمر #include <iostream> الموجود في السطر الأول يحتوي على الأوامر الأساسية التي نحتاجها في التطبيقات التي تعتبر Console Application و التي سنستخدمها في أغلب البرامج مثل أمر الطباعة cout و غيره من الأوامر و الدوال الجاهزة التي ستمر معك لاحقاً في الدورة.
سبب وضع std:: قبل cout هو أن الأمر cout موجود فيه.
الدالة main() التي قمنا بتعريفها ابتداءاً من السطر الثالث يجب أن يكون نوعها int لأنها تمثل نقطة البداية في البرنامج.
وضع return 0; في السطر السادس و كآخر أمر في الدالة main() هو أمر متعارف عليه, و فكرته إرسال الرقم 0 لنظام التشغيل عند انتهاء أو إغلاق البرنامج بشكل طبيعي. هكذا سيتمكن نظام التشغيل من التفريق بين الإنهاء الطبيعي للبرنامج والإنهاء المفاجئ ( Crash ) الذي يحدث نتيجة خطأ ما.
》مبادئ الطباعة الأساسية :
عليك مراعاة المبادئ التالية عند استخدام الأمر cout.
لعرض رقم, ضعه كما هو.
لعرض قيمة متغير, ضعه كما هو.
لعرض حرف يجب وضعه بين ' '.
لعرض كلمة أو نص, يجب وضعه بين " ".
طباعة عدة أشياء دفعة واحدة بواسطة الأمر cout في C++
لدمج عدة أشياء مختلفة و عرضها باستخدام الأمر cout نضع الرمز << بين كل شيئين نريد طباعتهما.
》في المثال التالي, قمنا بإنشاء برنامج يحتوي على متغيرين name و year.
بعدها قمنا بعرضهما كجملة واحدة.
طباعة عدة أشياء دفعة واحدة بواسطة الأمر cout في C++
لدمج عدة أشياء مختلفة و عرضها باستخدام الأمر cout نضع الرمز << بين كل شيئين نريد طباعتهما.
》في المثال التالي, قمنا بإنشاء برنامج يحتوي على متغيرين name و year.
بعدها قمنا بعرضهما كجملة واحدة.
مثال
main.cpp :
#include <iostream>

int main()
{
char name = "Ahmed";
int year = 1990;

std::cout << "Hello my name is " << name << ", I born in " << year;
return 0;
}
سنحصل على النتيجة التالية عند التشغيل.
Hello my name is Ahmed, I born in 1990
》عرض المحتوى على سطر جديد C++
عند عرض المحتوى بواسطة الأمر cout يمكنك تحديد نهاية السطر من خلال وضع العامل endl و عندها سيظهر أي شيء تطبعه بعده على سطر جديد.
معلومة: endl إختصار لجملة End Line.
مثال
main.cpp :
#include <iostream>

int main()
{
std::cout << "welcome to " << std::endl << "C++ ";
return 0;
}

سنحصل على النتيجة التالية عند التشغيل.
welcome to
C++
》سبب وضع std:: قبل العامل endl هو أن العامل endl موجود فيه.
》أهمية الكلمة using في C++
في البداية, سنشرح الكلملة using بتفصيل ممل في درس لاحق نظراً لأهميتها في المشاريع.
الآن, إذا أردت أن تكتب الأمرين cout و endl بشكل مباشر بدون الحاجة لأن تكتب قبلهما std::, قم بتضيمن النطاق std مرة واحدة في الملف و عندها تصبح قادر على استخدام أي شيء موجود فيه بشكل مباشر.
لتضمين النطاق std في الملف main.cpp نكتب using namespace std; فوق الدالة main().
الآن, سنعيد نفس المثال السابق مع تضمين النطاق std بشكل مباشر.
》مثال :
main.cpp :
#include <iostream>
using namespace std; // std هنا قمنا بتضيمن النطاق

int main()
{
cout << "welcome to" << endl << "C++ ";
return 0;
}

سنحصل على النتيجة التالية عند التشغيل.
welcome to
C++

》النزول على سطر جديد بواسطة الرمز \n في C++
إذا أردت النزول على سطر جديد بدون الحاجة لكتابة << endl فيمكنك تمرير \n كنص.
ملاحظة: أغلب المبرمجين يفضلون تمرير \n بدل كتابة << endl لأنها مختصرة أكثر.

معلومة: \n إختصار لجملة New Line.

》في المثال التالي قمنا بتمرير \n كنص للأمر cout من أجل النزول على سطر جديد.
مثال
main.cpp :
#include <iostream>
using namespace std;

int main() {
cout << "welcome to\nC++ ";
return 0;
سنحصل على النتيجة التالية عند التشغيل.
welcome to
C++


⬅️ أمر الادخال <<cin

بالنسبة للإدخال فى لغة C++ فبواسطة الكائن cin , وهذا الكائن يستخدم فقط مع المتغيرات.
وعملية الإدخال هى عكس عملية الإخراج حيث أننا نستخدم معامل الإدخال <<cin


فمثلا لإدخال عدد صحيح من خلال لوحة المفاتيح
Cin>>x;
هنا ينتظر منك البرنامج إدخال قيمة عددية واحدة وحفظها في المتغير x
أما إذا أردنا إدخال أكثر من قيمة فيمكن أن يكون المثال كالتالي
Cin>>x>>y>>z;
وهنا يمكن إدخال ثلاث قيم

✒️ م . أحمد قطران

انتهى ....
🖋 الدرس 6⃣

👈 ان شاء الله يكون درسا اليوم تطبيق لم تم اخذه واي استفسار يكون عبر المجموعة ...

تطبيق (1 ):
المطلوب كتابة برنامج يقوم بطباعة قيمه عددية وليكن العدد 2009

1_// البرنامج الاول
2_/* هذا البرنامج يطبع العدد 2009 على الشاشه */
3_#include<iostream.h>
4_main()
5_{
6_cout<<"2009";
7_return 0;
8_}

فعند تنفيذ البرنامج يقوم البرنامج بطباعة العدد 2009
ونلاحظ في هذا المثال أننا قمنا بترقيم الأسطر وذلك لتبسيط شرح أسطر البرنامج ولا يتم الترقيم عند كتابة هذا البرنامج في بيئة Visual C++.
- السطر الأول والثاني أسطر ملاحظات لا يلتفت لها المترجم
- السطر الثالث #include<iostream.h> يتم فيه إخبار المترجم بأننا سوف نستخدم أوامر الإدخال cin او الإخراج cout
- السطر الرابع main() وتسمى الدالة الأساسية وكل برنامج يجب أن يحتوى على هذه الدالة ويمكن أن يتكون البرنامج من عدة دوال كما سندرس لاحقا.
- السطر الخامس { وهو عبارة عن قوس البداية للبرنامج.
- السطر السادس cout<<2009 وهو أمر طباعة العدد 2009
- السطر السابع return 0 وفيها نخبر الكمبيوتر أن الدالة لا ترجع بقيم وسيتم دراسة ذلك لاحقا.
- السطر الثامن } قوس النهاية وبه ينتهى البرنامج.

🖋 م . أحمد قطران

يتبع ....👇
تطبيق (2 ):

المطلوب كتابة برنامج لطباعة العبارة الآتية:
"This is my second program"
هذا هو البرنامج الثاني//
#include<iostream.h>
main()
{
cout<<"This is my second program";
return 0;
}
وعند التنفيذ تظهر الرسالة
This is my second program


يتبع .... 👇
⬅️ تطبيق (3 ):

البرنامج التالي يبين عملية تنسيق الخرج على الشاشة
#include<iostream.h>
main()
{
cout<<"One";
cout<<"Two\n";

cout<<"Three\n\n";
cout<<"Four";
return 0;
}
وعند تنفيذ البرنامج
OneTwo
Three
Four


يتبع .... 👇
⬅️ تطبيق( 4 ):

طباعة العدد100 والعدد 5.36
#include<iostream.h>
main()
{
int a=100;
float b=5.36;
cout<<a<<b;
return 0;
}
لاحظ الإعلان عن العدد الصحيح int a=100 والعدد الحقيقي float b=5.36


يتبع .... 👇
⬅️ تطبيق (5 ):

المطلوب كتابة برنامج لجمع عددين صحيحين
#include<iostream.h>
main()
{
int a,b,c;
cin>>a>>b;
c=a+b;
cout c;
return 0;
}
وعند تنفيذ هذا البرنامج يطلب منك البرنامج إدخال عددين ويضعهما في المخزنين a, b
ثم يقوم بجمع الرقمين ووضعهما في المخزن c
ثم يقوم بطباعة الرقم الموجود في المخزن c
ملاحظات على البرنامج:
يمكن إضافة بعض الرسائل التي تود أن تظهر عند تشغيل البرنامج ولذلك يمكن تطوير
البرنامج السابق كالتالي:
#include<iostream.h>
main()
{
int a,b,c;
cout<<"please enter two number\n";
cin>>a>>b;
c=a+b;
cout<<"the result is "<<c;
return 0;
}
وعند تنفيذ البرنامج تظهر الرسالة الآتية للسؤال عن الرقمين المراد جمعهما فعليك إدخال أى رقمين بجوار رسالة السؤال وليكن العددين 25 , 4 ثم اضغط مفتاح الإدخال enter يظهر سطر النتيجة بجواره نتيجة الجمع وهو العدد 29 هكذا
Please enter two numbers25 4
the result is 29
بعد إدخال العدد الأول أما أن نترك مسافة وندخل العدد الثاني أو نضغط على
مفتاح الإدخال وندخل الرقم الثاني.

يتبع .... 👇
تطبيق ( 6 ):

المطلوب حساب مساحة دائرة
#include<iostream.h>
main()
{
int r;
float area,pi=3.14;
cout<<"please enter radius\n";
cin>>r;
area=r*r*pi;
cout<<"\t the area is:"<<area;
return 0;
}

يتبع .... 👇
تطبيق (7)

#include<iostream.h>
void main()
{
int x=3,y=2;
float f;

f=(x*x-3*y)/(2*x-y);
cout<<"f="<<f;
}

المخرجات
f=0

لايجاد قيمة f
f=(x*x-3*y)/(2*x-y)
اولا البسط (3*3-3*2) = (9-6)=3
ثانيا المقام
(2*3-2)=(6_2)=4
اذا ناتج قسمة البسط على المقام =0.75 نهمل الجزاء العشري لن البسط من نوع int والمقام int والقاعده تقول int على int يساوي int فيصبح الناتج 0 .

يتبع ....👇
تطبيق (8)

#include <iostream.h>

int main()
{
int a=6 , b=7 ;
cout <<(a & b)<<"\n";
cout<<(a | b) <<"\n";
cout<< (!(a | b))<<"\n";
cout << (a<<2)<<"\n";
cout << (b>>1)<<"\n";
}

المخرجات من البرنامج
6
7 0 24 3

المخرج الأول ع يكون 6 لأن ع نحول ال6و7الى النظام الثنائي ونعمل بينهم عملية and....

6 = 0110
7 = 0111 &
----------------
0110 = 6

المخرج الثاني ع يكون 7ونفس التعليل ع نحولهم الى الثنائي ونعمل عملية or....

6 = 0110
7 = 0111 |
----------------
0111 = 7



المخرج الثالث ع يكون 0 أي عملنا عملية النفي لعملية الor .....

نفي ال 111ْع يكون 0


اما المخرج الرابع والخامس خذها بكل بساطه عند التزحيف الى اليسار بكل تزحيف اضرب في 2 في المثال زحفنا a الذي قيمة 6 بمقدار 2 فنضرب 6*2*2 يكون الناتج 24 .

وعند التزحيف الى اليمين نقسمه على 2 حسب عدد مرات التزحيف في المثال زحفنا b=7 الى اليمين بمقدار 1 نقسم 7 على 2 ينتج 3 ونهمل الباقي ....


🖋 م . أحمد قطران

انتهى ....
السلام عليكم ورحمة الله وبركاته

من اليوم إن شاء الله نكون نعطي درس و بعدها تمارين على نفس الدرس . تشارك الاجابات في المجموعه .
🖋 الدرس 7⃣

الجمل الشرطية:

👈 اولاً if

استخدام عبارة التحكم IF:
تقوم عبارة if باختبار شرط معين , إذا تحقق هذا الشرط يتم تنفيذ عملية أو مجموعة عمليات وإلا يتم تجاهل هذه العملية لذا فالصيغة العامة لعبارة if تكون كالآتى:
If (expression) Statement;
أو
If (condition) Statement1;

إذا لم يتحقق الشرط condition ينقل تسلسل تنفيذ البرنامج إلى الجملة statement1
أو تستخدم بشكل أعمق كالتالى:
If (condition) Statement1;
Else Statement2;

فى هذه الحالة ستنفذ الجملة statement1 إن تحقق الشرط وإلا فإن التنفيذ ينتقل إلى السطر التالى وتتحقق الجملة statement2.
حيث يعبر expression أو condition عن التعبير المستخدم (الشرط) ويوضع بين قوسين فإذا كانت قيمته لا تساوى صفر يكون الشرط صحيح ويتم تنفيذ العبارة statement.

للتعرف على طريقة تشغيل العبارة if ندرس المثال التالى:
برنامج بسيط بلغة C++ لإظهار العبارة "x is positive" على الشاشة

# include <iostream.h>
main()
{
int x ;
cout<<”Enter the test number X ”;
cin>> x ;
if (x>0)
cout << “ x is positive”;
return 0;
}

نتيجة البرنامج:
إذا أدخلت قيمة العدد المطلوب اختباره يساوى 7 وضغطت enter يعطى الرسالة
Press any key to continue x is positive
وإذا أدخلت قيمة العدد (-7) يعطى البرنامج رسالة press any key to continue


مثال (1):
يمكن استخدام الصيغة الكاملة if.......else
ليعطى البرنامج رسالة فى كلا الحالتين عند إدخال قيمة x موجبة يعطى رسالة القيمة موجبة وعند إدخال قيمة سالبة يقوم البرنامج بطباعة رسالة أن القيمة المدخلة سالبة كما هو موضح فى البرنامج البسيط التالى:

الحـــل:
# include <iostream.h>
main()
{
int x
cout<<”Enter the test number x ”;
cin>> x ;
if (x>0)
cout << “ x is positive\n”;
else
cout<<"x is negative\n";
return 0;
}

وعند تطبيق البرنامج السابق نجد أن البرنامج يطبع العبارة x is positive)) في حالة القيمة الموجبة ويطبع العبارة (x is negative) في حالة القيمة السالبة ولكن في كل من البرنامجين السابقين هناك خطأ منطقي لا يكتشفه المترجم عند الترجمة وهو ماذا لو تم إدخال قيمة x = 0
في هذه الحالة سيطبع البرنامج العبارة (( x is negative وهذا غير صحيح لأن الصفر لا يكون موجبا أو سالبا وهنا يجب على المبرمج الاهتمام وملاحظة مثل هذه الأخطاء وتجربة البرنامج أكثر من مرة وإعطاؤه عينات كثيرة من الأرقام المختلفة ولحل هذه المشكلة يمكن استخدام هذه الطريقة الموضحة بالبرنامج التالى:
# include <iostream.h>
main()
{
int x
cout<<”Enter The test number X ”;
cin>> x ;
if (x>0)
cout << “ x is positive\n”;
else if (x<0)
cout<<"x is negative\n";
else if(x= =0)
cout<<" x=0\n";
return 0;
}

ونلاحظ هنا أننا وضعنا أكثر من جملة if في هذا البرنامج وبالطبع يمكن كتابة البرنامج السابق بعدة طرق وكلما كانت الطريقة أقصروتقوم بالغرض المطلوب كلما كان هذا أفضل.
كما يجب أن تلاحظ علامة التساوي (= =) في جملة if الأخيرة.

🖋 م . أحمد قطران

انتهى ....
تمارين 1⃣

👈 بإستخدام if

1) اكتب برنامج لاختبار العدد زوجي ام فردي

2) اكتب برنامج يطبع تقدير الطالب حسب درجته .

3) اعيد تعريف الداله التاليه (قيمة مطلقه)
y=|x-1|

🖋 م . أحمد قطران
🖋 الدرس 8⃣

جمل الاختيار:
👈 عبارة switch:
تستخدم عبارة if إذا كان جواب الشرط عبارة عن احتمالين أو ثلاثة احتمالات على الأكثر أما إذا زاد عدد الاحتمالات على ذلك فمن الأفضل استخدام عبارة switch وصيغتها كالتالى:
Switch (condition)
{
case value1 ;
statement1;
break;
case value2;
statement2;
break;
case value N;
statementn;
break;
default:
statement def;
break;
}


ويمكن توضيح العبارة switch من الشكل التالي:


switch (expression)
{

case constant1: statement1; break;

case constant2: statement2; break;
...............................................
………………………………………
………………………………………
case constant:statement;break;

default last statements;
}

وكما نرى أن الاختيار المتعدد البدائل يبدأ بكلمة (Switch) يليها متغير الاختيار والذي تحدد قيمته الاختيار الذي سيتم تنفيذه، ويلي ذلك قوس بلوك كبير يحتوي داخله بلوكات صغيرة كل منها يمثل اختيارا من البدائل المطروحة وكل بلوك من بلوكات البدائل يبدأ بكلمة(case) متبوعة بقيمة لمتغير الاختيار والتي تمثل الشرط وبعد ذلك تأتي عبارة النتيجة.
ويختتم بلوك البديل بكلمة (break) والغرض منها هو منع الكمبيوتر من تنفيذ عبارة النتيجة التالية. وهنا يتبادر للذهن سؤال - ألم يتحقق الشرط الأول مثلا فماذا يدفع الكمبيوتر لتنفيذ بقية عبارات النتائج ؟
والإجابة عن هذا السؤال هى أن عبارة الإدخال من متعدد البدائل لا ترسل للكمبيوتر أمرا بالتوقف بعد تحقق أى شرط فيها لذا لزم الاستعانة بكلمة (break ).
وبعد نهاية بلوكات البدائل تأتي كلمة (default) متبوعة بعبارة أو بعبارات ينفذها الكمبيوتر في حالة عدم تحقق أى من الشروط السابقة.

👈 مثال (1):
برنامج لطباعة قيمة عندما يتحقق شرط من شروط متعددة باستخدام دالة case
#include < iostream.h>
void main()
{
int s1;
s1=2;
switch (s1)
{
case 2:cout<<"y";
break;
case 3: cout<<"x";
break;
case 4: cout<<"m";
break;
default: cout<<"w";
}
}
وتكون نتيجة البرنامج طباعة حرف(y) وذلك لتحقق الشرط الأول وهو s1=2

👈 مثال (2)
 #include <iostream>
using namespace std ;
void main (){
char a;
cin>>a;
switch (a) {
case 'A': {cout<<"exelant";
  cout<<endl;break;}
case 'B':{cout<<"v.good";
 cout<<endl;break;}
case 'C':{cout<<"good";
 cout<<endl;break;}
default:{cout<<"F";
cout<<endl;break;}
} }

الكود باستخدام جمله if:
 #include <iostream>
using namespace std ;
void main (){
char a;
cin>>a;
if (a=='A')
cout<<"exelant";
else if (a=='B')
cout<<"v.good";
 else if (a=='C')
cout<<"good";
  }

🖋 م . أحمد قطران

انتهى ...
تمارين 2⃣

👈 بإستخدام switch

1) اكتب برنامج لاختبار العدد زوجي ام فردي

2) اكتب برنامج يطبع تقدير الطالب حسب درجته .

3) اعيد تعريف الداله التاليه (قيمة مطلقه)
y=|x-1|

🖋 م . أحمد قطران
🖋 الدرس 9⃣

أداة الشرط:
👈 الاقتران الشرطي :
وهى أداة سريعة وهى مكافئة لعبارة (if......else)
وصورتها العامة هى:
Variable=(condition)? Result1:result2;
ومعناها: أنه يتم تنفيذ النتيجة الأولى result 1 عندما يكون جواب الشرط condition متحققا (true) وإلا فيتم تنفيذ النتيجة الثانية resulte2 عندما يكون جواب الشرط .(false)

وهو من مميزات ومسهلات البرمجة بلغة c++ فما هو الاقتران الشرطي وكيف كتابتة واستخداماته
صحيح انة يعمل عمل مشابة جدا لعمل if وذلك لانة يحتوي على شرط ؛
يكتب كالتالي :
(شرط)؟نعم : لا ;
ومن اجل فهم العمل بكل سهولة اليك المثال التالي اولا لنعرف متغير من اجل تطبيق الشرط علية


1. int x=5;
2.(x>3 )? cout<<"u are wellcom" : cout<<" 3.error" ;

لاحظ في السطر الثاني قام البرنامج بفحص ما داخل الاقواس وعلية قام بطباعة الجملة التي قبل علامة : لانها هي التي تنفذ في حالة تحقق الشرط واما ما بعدها فينفذ في حالة لم يتحقق شرط مثلما في المثال التالي

int x=1;
(x>3 )? cout<<"u are wellcom" : cout<<" error" ;

ستلاحظ طباعة كلمة error وذلك لان الشرط لم يتحقق لان قيمة x اصغر من 3
من هنا نعلم ببساطة هذه الجمله
لاكن دعنا نقوم بعمل مختلف على هذه الجملة مثلا
١. int x=10, y;
٢. y = (x>6) ? 3 : 8 ;
٣. cout << y ;


لاحظ في السطر الاول اسندنا قيمة للمتغير x ب 10 ولم نسند قيمة للمتغير y و لاكن قمنا باسناد إحدى القيمتين 3 او 8
وذلك مرتبط بقيمة الشرط فإذا تحقق الشرط تسند القيمة 3 للمتغير y واما ان لم يتحقق الشرط ستند القيمة 8 للمتغرy

بما انك استوعبت فكرة عمل هذه الجملة حاول معرفة عمل الجملة التالية

int x=12, y=10;
char z;
z=(y > x)? "u" : " r" ;
اكيد انك عرفت قيمت المتغير z والذي هو r

🖋 م . أحمد قطران

انتهى ....