مشاهدة النسخة كاملة : تعلم C++ منهج جامعه
الكوماندر
19-04-2003, 12:21 PM
مشكور اخي THE LEGEND
بارك الله فيك.
شرح اكثر من رائع وممتاز.
منتظر باقي الشروحات عزيزي.
تقبل تحياتي.
الهاكر اليمني
23-04-2003, 08:32 AM
مشكور
THE LEGEND
03-05-2003, 07:34 AM
السلام عليكم ورحمة الله وبركاته
قبل ان نبداء بدرس الـ while او الـ loop
سوف نأخذ هذا المثال الاخير للـ switch
مثال
قم بعمل برنامج يقراء تاريخ الاشهر كأرقام ويقوم بتحويلها إلى حروف
مثلا إذا ادخلنا له 1 يتم عرضه بالبرنامج الى يناير وإذا ادخلنا 2 يتم عرض فبراير وهكذا
ولو ادخلنا رقم شهر غير موجود مثل 55 او اي رقم اكبر من الـ 12 يتم عرض رساله عفوا لا يوجد شهر بهذا الرقم
كود البرنامج
#include<iostream.h>
main()
{
int month;
cout<<"Pls enter the month";
cin>>month;
switch(month)
{
case 1:cout<<"january";
break;
case 2:cout<<"february";
break;
case 3:cout<<"march";
break;
case 4:cout<<"april";
break;
case 5:cout<<"may";
break;
case 6:cout<<"june";
break;
case 7:cout<<"july";
break;
case 8:cout<<"august";
break;
case 9:cout<<"september";
break;
case 10:cout<<"october";
break;
case 11:cout<<"november";
break;
case 12:cout<<"december";
break;
default : cout<<"inviled month";
}
return 0;
سنأخذ اليوم درس الـ while او الـ loop
ولابد من التركيز لفهمه فهو درس طويل وصعب نوعاً ما ......
الصيغه العامه
while (condition)
{
statement 1 ;
statement 2;
counter = counter +1 ;
}
او نستطيع تبديل السطر الاخير بهذه الجمله
counter++
كما اخذناها بالدرس السابق
سنأخذ مثال عليها
مثال 1- قم بكتابه برنامج يقوم بعمليه عد من الواحد إلى العشره
كود البرنامج
#include<iostream.h>
main()
{
int counter=1;
while (counter <=10)
{
cout<<counter<<endl;
counter = counter + 1;
}
return 0;
}
حيث قمنا بتعريف متغير واسميناه counter وادخلنا له قيمه 1 بحيث يبداء العد من الرقم واحد فلو لم نضع هذا الواحد فسوف يبداء البرنامج بالعد من الصفر ، ومن ثم قمنا بعمل شرط له وهو ان يكون اصغر او يساوي 10 فإذ تحقق الشرط يقوم البرنامج بقراءه ما داخل القوس { وبعد الانتهاء من تنفيذ ما بعد القوس { يقوم البرنامج بالرجوع إلى الـ while والتحقق من ان الناتج الجديد يسواي الشرط فإذا ساواه فانه يقوم بنفس العليه مره اخرى ولا يوقف البرنامج إلا عندما يكون الناتج لا يساوي شرط while ، وهنا في البرنامج اعطينا البرنامج شرط وهو counter <=10
..............
مثال 2- قم بكتابه برنامج يقوم بعرض الاعداد الزوجيه فقط من الـ 1- 100
كود البرنامج
#include<iostream.h>
main()
{
int counter=0;
while (counter <100)
{
counter=counter+2;
cout<<counter<<endl;
}
return 0;
}
عمليه للتسهيل فقط وشرح البرنامج بدقه
//هذه العلامه كما قلنا سابقا ومابعدها لا يوثر بالبرنامج وهي لأضافه اي تعليقات
#include<iostream.h>
main()
{
//عرفنا متغير هنا واسميناه counter واعطيناه قيمه صفرلكي يبداء بعد الصفر اولا ومن ثم الواحد
int counter=0;
// هنا طلبنا من البرنامج انه لابد ان يكون المتغير counter اقل من الـ 100
while (counter <100)
{
// وعند تحقق الشرط الذي في الاعلى وهو ان المتغير أصغر من 100يقوم البرنامج بتنفيذ التالي وبما اننا اعطينا المتغير قيمه صفر فسوف يقوم بحساب الاتي
0=0+2 (=2)
سوف يحمل المتغير الان قيمه 2
counter=counter+2;
// هنا سوف يعرض المتغير وهو 2
cout<<counter<<endl;
}
// الان البرنامج سوف يعود مره أخرى للـ while
// وسوف يتحقق من الشرط مره اخرى
while (counter <100)
// الان قيمه المتغير =2 هل 2 اقل من 100 نعم وسيتم تنفيذ الشرط وإضافه 2 إلى 2
counter=counter+2;
// 2=2+2 (=4)
// وسيتم عرض 4
وهكذا تستمر العمليه إلى العدد 100 وبعدها سوف ينتهي البرنامج
return 0;
}
مثال 3- قم بكتابه برنامج يقوم بقراءه اي رقم ومن ثم يتم جمع الارقام المدخله على عدده فقط
على سبيل المثال إذا تم ادخال العدد 4 اولا سوف يتيح البرنامج لك بإدخال اربع ارقام فقط ثم بعد ذلك يجمع الاربعه الارقام المدخله فقط دون جمع رقم 4 الذي ادخل في البدايه مثال
4
55
80
60
90
وبعدها سوف يعرض لك النتيجه 285
كود البرنامج
#include<iostream.h>
main()
{
int n,no,counter=1,total=0;
cout<<" pls enter any number";
cin>>n;
while (counter <=n)
{
cout<<" enter number";
cin>>no;
total = total + no;
counter++;
}
cout<<total;
return 0;
}
مثال 4- قم بإنشاء برنامج يقوم بقراءه عشره ارقام ، ثم يقوم البرنامج بعض اكبر عددين من هذين العشره الارقام
مثلا لو ادخلنا له
55
10
20
60
80
90
47
69
78
99
سوف يقوم بعرض 99 و 90 كأكبر رقمين
كود البرنامج
#include<iostream.h>
main()
{
int n,larg1,larg2=0,counter=1;
while (counter <=10)
{
cout<<" enter number";
cin>>n;
if (n>larg1)
{larg2=larg1;
larg1=n;
}
else
if (n>larg2)
larg2=n;
counter++;
}
cout<<"the first larger number is="<<larg1<<"the second larger number is ="<<larg2<<endl;
return 0;
}
مثال 5- قم بإنشاء برنامج يقوم بقراءه مضاعفات العدد المدخل
على سبيل المثال إذا تم إدخال الرقم 3 سوف يكون مضاعفه عباره عن 3+2+1 = 6
وإذا ادخلنا 5 سيكون بهذا الشكل 5+4+3+2+1 = 15
وهكذا
كود البرنامج
#include<iostream.h>
main()
{
int no,c=1,total=0;
cout<<"pls enter any number";
cin>>no;
while (c<=no)
{
total=total+c;
c++;
}
cout<<"the result="<<total;
return 0;
}
مثال 6 – قم بعمل برنامج يقوم بعرض الاتي هذا الجدول او الصفوف بإستخدام الامر WHILE
A A+2 A+4 A+6
3 5 7 9
6 8 10 12
9 11 13 15
12 14 16 18
15 17 19 21
كود البرنامج
#include<iostream.h>
main()
{
int coun=3;
cout<<"A\tA+2\tA+4\t+6\n";
while (coun <=15)
{
cout<<coun<<"\t"<<coun+2<<"\t"<<coun+4<<"\t"<<coun+6<<endl;
coun = coun +3;
}
return 0;
}
ملاحظه لابد من التركيز انك وضعت الـ { و } بعد الـ while
مثال 7- قم بإنشاء برنامج يقوم بعرض الاعداد من 1-100 بشرط ان تكون من مضاعفات العدد 5
مثال 5 و 10 و 15 الخ
كود البرنامج
#include<iostream.h>
main()
{
int counter=1,total;
while (counter <=100)
{
if (counter%5==0)
cout<<counter<<endl;
counter++;
}
return 0;
}
سنواصل حل المزيد من الامثله في الدرس القادم إن شاء الله
تحياتي للجميع
أحمد ماسك2
الكوماندر
04-05-2003, 10:44 PM
مشكور اخي احمد
بس لو تسرع قليلآ في الشرح لاني انتظر باقي الشرح من مده.
تحياتي لك عزيزي.
THE LEGEND
05-05-2003, 10:33 AM
السلام عليكم اخي الكوماندر
انا عارف انك تبي تقتلني علشان التأخير في كتابه المواضيع ولكن اعذرني والله لأن الماده هذه اخذتها زمان وانا الان احاول استرجاع بعض الامثله التي درسناها والتي تهمنا قبل ان نبداء بكتابه وتصميم البرامج المعقده
ولكن ولا يهمك سأحاول الاسراع اكثر
تحياتي
أحمد ماسك2
الكوماندر
05-05-2003, 12:29 PM
الشكر لك اخي احمد ماسك.
ترى والله شرحك ممتاز واحسن من المدرس اللي بيدرسنا في الجامعه.
ولاني ادرس هذه الماده حاليآ فانا من متابعي شروحاتك في هذه الماده.
تحياتي لك اخي الكريم.
همس النسيم
11-05-2003, 03:04 AM
السلام عليكم
اخي الكريم THE LEGEND او بمعنى اصح الاسطوره اعتقد هذا معنى اسمك اذا ما خانتي ذاكرتي
عموما موضوعك غايه في الروعه يدل على ان الاسم لم ياتي من فراغ
اهنيك يا اسطورة المنتدى
لك كل المنى
THE LEGEND
11-05-2003, 07:50 AM
اخواني الكوماندر وهمس النسيم
فعلا احرجتموني جدا جدا بهذا الكلام الجميل
وان شاء الله اكون عند مستوى ظنكم بي
وارجوا ان تعذروني على التاخير في كتابة المواضيع
تحياتي لكم جميعا
أحمد ماسك2
THE LEGEND
19-05-2003, 09:41 AM
بسم الله الرحمن الرحيم
سوف نكمل اليوم باقي امثله الـ loop
ولكن سوف نأخذ بدلا عن الـ while
امر جديد اسمه for
وهو يقوم بنفس العمل تماماً ولكن الـ for يوفر مساحه اقل في كتابه البرنامج مثلا
اخذنا في المثال الاخير في الدرس السابق
مثال 7- قم بإنشاء برنامج يقوم بعرض الاعداد من 1-100 بشرط ان تكون من مضاعفات العدد 5
مثال 5 و 10 و 15 الخ ؟
وقمنا بحله بـ while وكان الحل بهذه الطريقه
#include<iostream.h>
main()
{
int counter=1;
while (counter <=100)
{
if (counter%5==0)
cout<<counter<<endl;
counter++;
}
return 0;
}
ونلاحظ هنا الحل بـ for
#include<iostream.h>
main()
{
int counter;
for (counter=1; counter<=100; counter++)
if (counter%5==0)
cout<<counter<<endl;
return 0;
}
كما نرى في الحل الثاني وبعد كلمه for او نقوم بإعطاء قيمه للعداد counter ثم نقوم بغلقه بهذه العلامه ; والامر الذي يليه عباره عن الشرط وهنا اشترطنا انه لابد ان يكون العداد أصغر او يساوي 100 وبعد الشرط نغلقه ايضا بنفس علامه الاغلاق ; واخيراً نقومبعمليه حسابيه مبسطه counter ++ او counter=counter+1 ……
وفي هذا المثال الحلين كلاهما صحيح ولكن الـ for مرتب اكثر من الـwhile وسنلاحظ الفرق عندما نقوم بكتابه برامج معقده او طويله ...
كما اخذنا في الدرس الماضي في المثال رقم 6
مثال 6 – قم بعمل برنامج يقوم بعرض الاتي هذا الجدول او الصفوف بإستخدام الامر WHILE
A A+2 A+4 A+6
3 5 7 9
6 8 10 12
9 11 13 15
12 14 16 18
15 17 19 21
كود البرنامج while
#include<iostream.h>
main()
{
int coun=3;
cout<<"A\tA+2\tA+4\t+6\n";
while (coun <=15)
{
cout<<coun<<"\t"<<coun+2<<"\t"<<coun+4<<"\t"<<coun+6<<endl;
coun = coun +3;
}
return 0;
}
وكود البرنامج بـ for هو
#include<iostream.h>
main()
{
int c;
cout<<"A\tA+2\tA+4\tA+6\n";
for (c=3; c<=15; c=c+3)
{
cout<<c<<"\t"<<c+2<<"\t"<<c+4<<"\t"<<c+6<<"\n";
}
return 0;
}
...................
كما اخذنا ايضا في المثال رقم 5 في الدرس السابق
مثال 5- قم بإنشاء برنامج يقوم بقراءه مضاعفات العدد المدخل
على سبيل المثال إذا تم إدخال الرقم 3 سوف يكون مضاعفه عباره عن 3+2+1 = 6
وإذا ادخلنا 5 سيكون بهذا الشكل 5+4+3+2+1 = 15
وهكذا
كود البرنامج
#include<iostream.h>
main()
{
int no,c=1,total=0;
cout<<"pls enter any number";
cin>>no;
while (c<=no)
{
total=total+c;
c++;
}
cout<<"the result="<<total;
return 0;
}
والحل الاخر بـ for هو
#include<iostream.h>
main()
{
int no,c,total=0;
cout<<"pls enter any number";
cin>>no;
for (c=1; c<=no; c++)
{
total=total+c;
}
cout<<"the result="<<total;
return 0;
}
ايهما اسهل الـ for او الـ while ؟؟؟
مثال 3- قم بكتابة برنامج يقوم بـقراءه عدد غير محصور من الارقام ويتوقف فقط عند كتابة 9999 ، وبعد مايتوقف عن قراءه الاعداد المدخله له يقوم بإيجاد المعدل لهذه الارقام المدخله
كود البرنامج
#include<iostream.h>
main()
{
int no,c=0,sum=0;
float avg;
cout<<"enter no";
cin>>no;
while (no != 9999)
{
sum=sum+no;
c = c +1;
cout<<"enter number ";
cin>>no;
}
if (c!=0)
{
avg=sum/c;
cout<<"avrage ="<<avg;
}
else
cout<<"no avrage to be calculated";
return 0;
}
هذا هو حلها بالـ while
اريد ان اوضح ان سبب اننا وضعنا
if (c!=0)
هو للتأكد اننا فعلا ادخلنا ارقام قبل ما نكتب 9999
اي انه إذا فرضنا اننا لم نكتب if (c!=0)
وشغلنا البرنامج وكتبنا على طول 9999 لانها البرنامج ! هل تعلموا ماذا سيكون الناتج ؟
سوف يقوم البرنامج بإيجاد المعدل للرقم
كان ذلك درس الـ for
طبعا لم يتبقى لنا إلا الـ Array
و الـ string وبعدها نكون قد كملنا الفصل الدراسي الجامعي الاول من C++
ARRAY
الـ ARRAY عباره عن متغير مثل اي متغير اخر ولكنه يتميز بوجود عدة مساحات وفراغات في المتغير الواحد
فمثلا كنا نعرف المتغير في السابق بهذه الطريقة
int x;
ونسطيع إضافه رقم واحد فيه فقط
مثال ذلك إذا استخدمانه في while
int x;
While (x<5)
{
cout<<"enter number";
cin>>x;
}
cout<<x;
هل ستعلم ماذا سيكون الناتج لو ادخلنا الرقم 1 ثم ادخلنا 3 ثم 6
ما سيكون الناتج ؟
سيكون 3 اي اخر قيمه ادخلت فقط
وإذا نريد ان نعرف كل المدخلات التي ادخلت لابد ان نستخدم array
ولكي نقوم بذلك نقوم بالاتي
#include<iostream.h>
main()
{
int y[5],x;
for (x=0; x<5; x++)
{
cout<<"enter number";
cin>>x[y];
}
cout<<"you entered";
for (x=0; x<5; x++){
cout<<x[y];
}
return 0;
}
حيث قمنا بالاتي
// وهنا قمنا بتعريف متغيرين وقمنا بجعل الاول يحتوي على خمس فرغات
وستكون الفراغات عباره عن 0 1 2 3 4 حيث انها تبداء من الصفر
int y[5],x;
// كما هو معروف اعطينا للبرنامج قيمه لإكس ثم شرط ثم إضافه رقم واحد عند كل تكرار لهذه العمليه
for (x=0; x<5; x++)
{
// قمنا بعرض رساله تطلب من المستخدم ادخال اي رقم
cout<<"enter number";
// هنا سيقوم البرنامج في حفظ العدد الاول في الخانه رقم صفر التي تم انشاءوها عند تعريف المتغير
وفي المره التالية سوف يقوم البرنامج بتخزين العدد التالي في الخانه رقم واحد والعدد الذي يليه في الخانه اثنين وهكذا
cin>>x[y];
}
ننوه من انه لابد استخدام الـ loop لهذه العملية
ثم بعد ذلك كان لابد ان نعرض النتائج المدخله للبرنامج
// قمنا بكتابة هذه الجمله خارج الـ for
لكي لا تتكرر
cout<<"you entered";
for (x=0; x<5; x++){
cout<<x[y];
ملاحظه إذا لم نستخدم الـ loop في عرض الناتج واكتفينا فقط بإستخدام
cout<<x[y];
وعلى سبيل المثال ادخلنا 5 9 8 6 2
سوف يقوم البرنامج بعرض اخر رقم مدخل فقط وهو 2
لذلك لابد ان نستخدم الـ for
سوف نأخذ بعض الامثله للتعرف والتعمق أكثر
مثال 1- قم بكتابة برنامج يقوم بقراءة 10 درجات طلاب ثم يقوم بعرض المعدل العام لهذه الدرجات العشر المدخله ثم قم بعرضها
بهذا الشكل
Index Mark or number
1 50
2 90
3 80
وهكذا......
كود البرنامج
#include<iostream.h>
main()
{ int array[10],avg,total=0,c,w=1;
for (c=0; c<10; c++)
{
cout<<"enter the number";
cin>>array[c];
total=total+array[c];
}
avg=total/10;
cout<<"the avrage of the numbers is="<<avg<<endl;
cout<<"Index \t number"<<endl;
for (c=0; c<10; c++){
cout<<c<<"\t"<<array[c]<<endl;
}
return 0;
}
ارجوا ان تكونوا قد استفدتم من درس اليوم
مرفق مع درس اليوم لعبه مصصمه بال C++ مع الكودات
وتستطيع ان تعدل فيها ايضا
............
تحياتي
أحمد ماسك
THE LEGEND
19-05-2003, 09:53 AM
;)هذا الملف المرفق
الكوماندر
20-05-2003, 11:10 AM
اهلآ بك اخي الكريم THE LEGEND
شرح موفق وممتاز جدآ.
الله يبارك فيك عزيزيز.
تحياتي لك.
العمراوي
27-05-2003, 07:07 AM
مشكوور أخي على هذا الشرح ....
THE LEGEND
28-05-2003, 01:13 PM
السلام عليكم ورحمة الله وبركاته
اولاً بارك الله فيكم جميعاً على هذا التفاعل
ثانيا اعذروني على الاطاله في كتابه الدرس الاخير من المنهج
وان شاء الله سوف يكون جاهز في خلال هذه الايام
في انهايه تحياتي لكم جميعاً
أخوكم أحمد ماسك2
م/ محمد أسد
10-06-2003, 10:11 AM
مشكور
بس احب اسلك متى بنوصل لدروس البوينتر
تحياتي
أبو يمن
15-06-2003, 03:04 PM
بسم الله الرحمن الرحيم
شكرا على الموضوع ....
اطلب منك لو تعطينا ولو نبذه بسيطة عن البرمجة بالكائنات بـ C++ .
object orinted program OOP
وشكرا...
THE LEGEND
16-06-2003, 08:19 PM
السلام عليكم
ارجوا المعذره على الاطاله
ولكني امر بظروف صعبه جدا هذه الايام
بس ان شاء الله افضى شوي وطلباتكم من عيوني
تحياتي لكم جميعا
أحمد ماسك2
الكوماندر
11-07-2003, 06:27 PM
اخي THE LEGEND
اسأل الله ان تمر ضروفك بسرعه وسهوله لكي نراك و نرى باقي شروحاتك في مجلسنا الموقر.
وليكتمل الشرح
فربما يكون مرجع لشخص.
منتظرينك عزيزي.
تحياتي.
مُجَاهِد
20-07-2003, 04:44 PM
كاتب الرسالة الأصلية : المحقق كونان
مشكوور أخي على هذا الشرح ....
THE LEGEND
06-09-2003, 11:10 AM
السلام عليكم ورحمةالله وبركاته
في البداية ارجوا ان تعذروني على التاخير الذي دام حوالي الثلاثة الاشهر الماضيه وذلك لأني كنت في رحله لليمن لقضاء الاجازة ولم اتمكن من فتح الانترنت لضيق الوقت كما تعرفون .................
والجميع مشكور كل الشكر على الاهتمام بالموضوع ..... اخي ملاك الحب سوف نقوم بشرح البوينتر بالتأكيد بالدروس القادمة ان شاء الله واخي ابو ايمن ايضا ولا يهمك نعطيك كل المفيد في الكائنات OOP
في الاخير تحياتي للجميع ومشكورين كل الشكر على التعاون ...
اخوكم أحمد ماسك2
امير الحب
28-09-2005, 07:37 PM
مشكووور اخي الكريم
والله جهد عظيم وجبار
نسأل من الله ان يأجرك عليه
ونحن في انتظار المزيد من التقدم
vBulletin® v3.8.5, Copyright ©2000-2010, Jelsoft Enterprises Ltd.