المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [درس] بدء ++C لبرمجة الألعاب



GOGENDANTESS
24-09-2006, 05:33 AM
سم الله الرحمن الرحيم


اولا مبارك عليكم شهر رمضان المبارك و الله يعوده عليكم بكل خير و محبة و سلام :)

و حبيت اقولكم لعبة Sonic Xtreme NeXT قريب و تنزل نسخة الألفا :) و انا طلعت من فريق البرمجة لأني الحين قاعد اتعلم الDirectX و الحين انا صرت مدير العلاقات العامة Community Manager و مصمم الموقع :) و كاتب قصص :)



عشان جذي انا تفرغت لكم و بحط دروس مني لكم للبدء برمجة ألعاب في الـ ++C :) و إنشاء الله بس اخلص تعلم برمجة الـ ++C بالدايركت اكس احط دروس :)




مقدمة عن الـ ++C :

لغة ال++C صممها بيارن ستروسترب
http://www.bell-labs.com/history/unix/images/91-10608-EM.jpeg

في مختبرات Bill Gates كتحسين للغة الـ C خصوصا لغة الـ C ليست كاملة ككمال ++C. اشتغل عليها المهندس بيارن سنة 1979. بس ليش قرر المهندس بيارن تطوير لغة الـ ++C على حساب الـ C ؟؟؟
لأن الـ C لغة سريع جدا جدا جدا و قوية في نفس الوقت. فقد ظاف المهندس بيارن الكثير من المميزات إلى الـ C كالـ Functions و الـ Refrences و الـ Operator overfloating. و أول إطلاق رسمي تجاري للـ ++C كان في أكتوبر سنة 1985. الإسم الأول للغة الـ ++C كان The New C و تم تغييره إلى C with classes ثم إلى ++C .


بس ليش شركات الألعاب العملاقة مثل EA و Capcom و Blizzard تختار لغة صعبة بحتة لتصميم لعبة ؟
تخيل انك قاعد تصمم لعبة بلغة الآلة :
11010101010101010000111100

اكيد راح تكون اقوى لعبة بالعالم كله من الناحية البرمجية ، و راح تكون أسرع لعبة و أقوى لعبة أقوى من Final Fintasy و Resident Evil و Age of Empires. بس منو الفاظي اللي يبي يبرمج بلغة الآلة ؟؟:D


لكن تخيل تبي تبرمج اللعبة بلغة انزل من رتبة لغة الآلة برتبة او رتبتين!!! راح تكون بنفس القوة و السرعة و لكن اقل بقليل جدا :) و اهي الـ ++C :)

هذا سبب اختيار الشركات العملاقة للغة الـ ++C :
1-لغة سريعة : فالبرامج المكتوبة جيدا تكون سريعة بسرعة مذهلة !! احد من اهداف الـ ++C هو التشغيل على اكمل وجه. و لغة الـ ++C تتفاهم مع الهاردوير من غير عميل. يعني على طول من إيدك لي الكمبيوتر :)
2-مرونة اللغة : الـ ++C لغة ثنائية النماذج ، يعني يمكن تسوي برنامج بأكثر من طريقة و فيها تقدر تبرمج باستخدام الكائنات
3-لغة مدعومة جيدا: حيث هذه اللغة مدعومة جيدا من كل النواحي : الفيزيا ، 2دي ، 3دي و محركات الأصوات.


ماذا بعد ؟؟؟
لتستفيد من هذا الموضوع تحتاج لشيء واحد مجاني فقط !!!
Compiler و آخر و اقوى Compiler متوفر اهو DEV-C++ bloodshed و اهو مجاني بالكامل لا تسجيل و لا هم يحزنون و هذا رابط التنزيل مباشرة :) :
http://dw.com.com/redir?pid=10498828&merid=59072&mfgid=59072&ltype=dl_dlnow&lop=link&edId=3&siteId=4&oId=3040-2069_4-10498828&ontId=2069_4&destUrl=http://www.download.com%2F3001-2069_4-10498828.html





يالله نبدا بالدرس الاول بإذن الله :)





الدرس الأول : العمل مع المتغيرات و الثوابت :


1-كتابة أول برنامج لك في الـ ++C:

اكتب هذا الكود و سو له compile :


//Game Over
//Very first C++ program

#include <iostream>

int main()
{
std::cout << "Game Over!" << std::endl;
return 0;
}


نلاحظ اول سطرين السلاش ، و اهي علامة التعليق. باختصار الكومبايرلر ما يعطي هالأسطر اي أهمية و يتجاهلها. هذي الأسطر تفيدك إذا تحب تكتب تعليق قبل loop او شي عشان يذكرك :)

السطر الثالث انا ادخلت مكتبة iostream و اهي تنطق جذي :
آي أو ستريم

هذي المكتبة اهي تعطيك بالتحكم اب كائن cout و cin (يأتي شرح cin بالمستقبل بإذن الله)

السطر الرابع و اللي يحتوي على int main اهو هيكل البرنامج :) حيث int اختصار integer و اهو عدد صحيح ، و هذا يعني ان البرنامج يعمل و يرد بقيمة صحيحة ، و القوس } و { اهم بدء و إنهاء الوظيفة int main


السطر الخامس و اهو يعرض Game Over ، حيث cout تنطق ك: c out ، و مثل ما قريتها "out" و هذا يعني يطلع شي للخارج و اهو سطر Game Over و هنا نستخدم المشغل الخارجي :
>> و هذا يعني المعلومات خلف هذا السهم تابعة للكائن cout



السطر الأخير و اهو return 0; اهو يعني إنهاء البرنامج بدون اي مشكلة

2- العمل مع name space std


تخيل انت كل ساعة تبي تكتب الكائن cout راح تحتاج إلى كتابة std، تتوقع ما لها حل ؟؟ لها حل :) و اهي namespace std و اهو يجنبك بكتابة std كل مره :)



//Game Over 2.0
//Using namespace std;

#include<iostream>
using namespace std;

int main()
{
cout << "Game over" << endl;

return 0;
}



3- مشغلات العمليات الحسابية الأساسية :
علامة الضرب بالسي بلس بلس اهي : *
علامة القسمة : /
علامة الجمع : +
علامة الطرح : -


و في علامة زيادة للعمليات الحسابية و اهي % و اهي علامة للقسمة لكن تقسم على عدد على عدد ما يقبل القسمة عليه و يعطيك قيمة صحيحة بدون اي كسور او ارقام عشرية
يعني مثلا لو تفتح الآلة الحاسبة و تقسم 7 على 3 راح تعطيك
2.3333333333333333333333333333333


فهالعلامة تفيدك في حالة انك تبي حاصل العملية عدد صحيح :)


هذا برنامج توضيحي :


#include<iostream>

using namespace std;

int main()
{
cout << "7 + 3= " << 7 + 3 << endl;
cout << "7 - 3= " << 7 - 3 << endl;
cout << "7 * 3= " << 7 * 3 << endl;
cout << "7 / 3= " << 7 / 3 << endl;
cout << "7 % 3= " << 7 % 3 << endl;

return 0;
}




4- استقبال البيانات من المستخدم باستخدام الكائن cin



عرفنا كيفية اخراج معلومات على الشاشة ، الحين لازم نعرف اشلون نستقبل بيانات من المستخدم :)


أنواع المتغيرات
:
1- int : و هو عادة يكون عدد
2- char : و اهو حروف
3- bool : و اهو لعملية true or false



إعلان المتغيرات يكون كالتالي


int score;
char playAgain;
bool shieldsUp;



و بعدين تقدر تتلاعب بقيمة المتغير مثل ما تحب يعني مثلا تبي تعين قيمة البدء للمتغير fine من 7 يكون كالتالي :



int fine = 7;



و تعيين المتغير يكون قبل البدء باستخدامه ، يعني مو تسوي عملية حسابية تشمل المتغير مثلا number و بعدها العملية تعين المتغير number.... لأ المتغير يكون اولا :)


و لا تتعب نفسك تعين المتغيرات اول البرنامج ، تقدر تعين المتغير قبل ما تستخدمه :)


هذا برنامج يعرض متغيرات بدون التلاعب فيها :) :


//Declaring variables

#include <iostream>

using namespace std;

int main()
{
int score = 0;
int health = 6565.3;
int ammo = 5;


cout << "\nYour score is " << score << endl;
cout << "\nYour health is " << health << endl;
cout << "\nYour ammo is " << ammo << endl;

return 0;
}


الحين ايي دور إدخال البيانات ، طبعا قبل لا المستخدم يدخل بيانات لازم يكون في متغير تنحفظ داخله البيانات :)



//Getting data from the user

#include <iostream>

using namespace std;

int main()
{

int money;
cout << "\nHow much money you have ?" << endl;
cin >> money;

cout << "\nYou have << money << " in your account " << endl;
}


لاحظت اولا الـ n\ هذا يقول للبرنامج اكتب هالشي بسطر يديد :)

ثانيا : عينت المتغير money و قيمته الإفتراضية صفر ، فلما يدخل المستخدم قيمة راح تكون المعادلة :
money + 0

و شوف اسهم الـ cin تتجه إلى المتغير هذا يعني البرنامج ياخذ قيمة الإدخال و يعطيها للمتغير :)








تمرين اليوم :
سو لي برنامج ياخذ رقم من المستخدم و يجمعه مع 100 و يطلع النتيجة


مساعدة :
1- استخدم متغير واحد بإسم number
2-استخدم الكائن cout و cin


إذا خلصت البرنامج حط الكود اهني وانا اختبره :)





ملاحظة : إذا كنت تعاني من مشكلة سرعة إغلاق التطبيق اظف المكتبة


#include<conio.h>





اظف هالكود قبل return 0;




getch();




فيصبح شكل البرنامج العام :


#include<iostream>
#include<conio.h>

using namespace std;

int main()
{
cout << "Monatada.com" << endl;

getch();
return 0;
}

Son Of UAE
24-09-2006, 06:40 AM
مشكور أخوي على الموضوع القيم ... القليل منا يعتمد على السي ++ مباشرة في هذة الايام. انتقل الجميع إلى محركات خاصة لصناعة الألعاب. مقدمة سريعة رائعة و شرح مميز ... تابع إلى النهاية :biggthump
لاني اريد أعرف شو النهاية :D

PrinceOfSorrow
24-09-2006, 10:37 AM
شكرا على هذا درس ^^
فهو مفيد جدا جدا وخاصة انه للغة C++ تعتمد عليها الكثير من برامج
-------------------------------
بنسبة للعبتكم سونيك ؟ ليه أخترتو سونيك ؟ ليه مافكرتو تصممون ؟ شخصية خاصة ؟ TradeMark
ولا انت أشتركتو مع Sega ?

CHALLENGER
24-09-2006, 10:43 AM
السلام عليكم ... الله يبارك فيك

ما شاء الله هذه السلسلة إذا اكملتها سوف تأخذ الكثير من الأجر لأن الكثير هنا بودهم أن يتعلم برمجة الألعاب بواسطة C++ من خبير ,,,

و موفقين في لعبة سونيك و انا كلي لهفة لأحصل على نسخة الديمو

GOGENDANTESS
24-09-2006, 12:17 PM
العفو جميعا و بالنسبة للعبة سونيك خلصنا تقريبا الrendring للشخصيات و النسخة ألفا يتم التحضير لها

:)

و بالنسبة للدرس ما راح اكمل إلا إذا شفت واحد خلص التمرين

:D

snake_x86
24-09-2006, 06:14 PM
مشكور على الدروس و ان متابع انشاء الله لاني ضعيف بالسي! ..... نسبياً:D
الحين عندي سؤال و هو شو فائدة ال std؟
ممكن استخدمها و ممكن اتجنب استخدامها استخدمها! حتى بدون اضافة using namespace std;
و البرنامج dev C++ الصراحة رهيب

Son Of UAE
24-09-2006, 06:58 PM
مشكور على الدروس و ان متابع انشاء الله لاني ضعيف بالسي! ..... نسبياً:D
الحين عندي سؤال و هو شو فائدة ال std؟
ممكن استخدمها و ممكن اتجنب استخدامها استخدمها! حتى بدون اضافة using namespace std;
و البرنامج dev C++ الصراحة رهيب



فعلاً لاحظت هذا الشيء ...
و

#include <iostream>
لازم يكون

#include <iostream.h>

يمكن الامور تغيرت لاني درست السي سنه 2002 :D

snake_x86
24-09-2006, 09:29 PM
فعلاً لاحظت هذا الشيء ...
و

#include <iostream>لازم يكون

#include <iostream.h>يمكن الامور تغيرت لاني درست السي سنه 2002 :D
صح هذا اللي كنت احاول اتذكره!
الحالة الاولة تنفع بس لو اضفت using namespace std;
اما الحالة الثانية تنفع بالحالتين!

PeaceDevil
24-09-2006, 11:55 PM
واو
مشكور جدا جدا
إن شاء الله اواصل معك حتى النهاية
سأحاول ان أطبق تمرينك ^_^
و سأضعه هنا بعد غد إن شاء الله
:D

*تم دخول الموضوع للـFavorites
:D

سامي.خ
25-09-2006, 02:32 AM
آه يا لغة C++
كانت أمنيتي أتعلمها لكن مستقبلي المهني ما ساعدني
إن شاء الله أتعلمها عندكم

GOGENDANTESS
25-09-2006, 03:02 AM
مثل ما قلت لكم سبب .h اهو الدعم المتواصل للسي بلس بلس


يالله شباب وين الحل :D

CHALLENGER
25-09-2006, 11:16 AM
مثل ما قلت لكم سبب .h اهو الدعم المتواصل للسي بلس بلس


يالله شباب وين الحل :D

كذا بتقصو علينا انا قلت بخلي هذا الموضوع عندي في الارشيف لان ما عندي وقت ابدا بس ما دامك مصر انا رح احاول اتابع معك عل سريع و احل

Son Of UAE
25-09-2006, 02:12 PM
ممم .. اعتقد ان الموضوع يفيد الاعضاء على المدى الطويل وليس الان فلو توقفت فسوف تحرم الكثير من الناس من هذا الموضوع. حتى ولو لم يرد عليك أحد حاول ان تعطي ما عندك .. و كلنا نقدر الجهد المبذول. فأكثر الاعضاء حاول وضع دروس لتعليم البقية. ارجو عدم التقيد بوجود حل للتمارين ام لا ... :biggthump

ZAIME
25-09-2006, 02:58 PM
شكرا لك أخي .
بالتوفيق.

Mr. Black Man
25-09-2006, 06:59 PM
شكراً على مجهودك ;) ... إستمر حتى النهاية :)

CHALLENGER
25-09-2006, 07:25 PM
أخي العزيز , أنا قرأت الموضوع و طلع لسا شرحك في مرحلة مبتدئة جدا من السي ++ لذلك سوف اتكاسل و لن احل التمرين و انا الحمدلله وصلت لمرحلة متوسطة في السي++ و لكنني توقفت عندما بدأت دهاليز السي++ و لم استطع ان اركز لأني لم اكرس وقتي جيدا لهذه اللغة و لكني الآن تحت امرتك و انا طالبك حتى النهاية :)

GOGENDANTESS
25-09-2006, 10:02 PM
#include<iostream>

using namespace std;

int main()
{
cout << "Welcome\n\n" << endl;

int number = 0;

cout << "Please enter a number to add it to 100" << endl;
cin >> number;

cout << "\n The final answer is " << number + 100 << endl;

return 0;
}



:)

the next lesson is coming soon

CHALLENGER
26-09-2006, 11:18 AM
و أنا بالإنتظار و بينما تطرح الدرس التالي عندي شيء اناقشه بمقدمة درسك ألا و هو :
" في مختبرات Bill Gates كتحسين للغة الـ C خصوصا لغة الـ C ليست كاملة ككمال ++C. اشتغل عليها المهندس بيارن سنة 1979. بس ليش قرر المهندس بيارن تطوير لغة الـ ++C على حساب الـ C ؟؟؟ "

أنا أول مرة أعرف انه هذه اللغة خرجت من مختبرات العم بيل جيتس و لكني كنت شاكك بالأمر فكيف تطور ميكروسوفت السي # و هي بالأساس تطوير للسي + +

و أيضا انت قلت ان الـسي ++ لغة سريعة جدا فأرجو ان توضح الفروق بينها و بين السي شارب لأاني انا اعمل على اللغتين لكني مؤخرا اتجهت الى السي شارب لأسباب كثيرة :
تطوير برامج مرئية عبر الفيجوال ستوديو
تطوير صفحات الاي اس بي النشطة عبرها عوضا عن البيسك


و شكرا لك

GOGENDANTESS
30-09-2006, 02:44 AM
اخوي challenger لغة السي بلس بلس ما تقدر تقارنها مع أي لغى من حيث القوة :) و السي شارب اهي بنت السي بلس بلس :)


و إذا تبي تسوي عروض ثلاثية الابعاد و اشياء حرفنة بالسي بلس بلس تقدر بس يبيلك :
تقرا كتب + صبر :)


لغة السي بلس بلس مثل السلم من 100 درجة ما تقدر تحط ريلك على الدرج 100 مره وحده :) لازم خطوة خطوة :)

GOGENDANTESS
30-09-2006, 03:22 AM
الدرس الثاني : العمل مع مشغلات العمليات الحسابية الثانوية :

بسم الله الرحمن الرحيم




عرفنا بالدرس الأول اشلو نسوي عمليات حسابية أساسية مثل الضرب و الجمع و القسمة و الطرح. في هذا الدرس البسيط راح نتعلم اشلون نزيد قيمة متغير من دون إضافة رقم محدد إليه :)

يعني مثلا ، تخيل انك قام تبرمج لعبة رماية و طبعا كل ما البطل يطق طلقة يخسرها :) بدال لا تكتب في كل مره


bullets = bullets - 1;



يلزمك بس تحط علامة الناقص مرتين فيصير شكل البرنامج :



int bullets = 100;
cout << "You have: " << bullets;

--bullets;
cout << "\nYou've shot one time. You have: " << bullets;

و راح يكون الإخراج 99 طلقة :)



لكن ماذا عن الجمع ؟؟ نفس الكود بالظبط ما عدا تغيير علامة السالب :)




و لكن في جملة احسن من اللي فوق :)


تقدر تستعملها مع جميع العمليات الحسابية :) بما فيهم الضرب و القسمة :)




int pieces = 100;

pieces +=1; // إضافة واحد إلى المتغير بيسز

cout << "You have: " << pieces;

pieces -=1; // إنقاص واحد من المتغير بيسز

cout << "You have: " << pieces;

pieces *=2; // ضرب المتغير بيسز بالرقم 2

cout << "You have: " << pieces;

pieces /=2; // قسمة المتغير بيسز على 2

cout << "You have: " << pieces;








:)

nash2
30-09-2006, 03:33 AM
درس بسيط ومفيد :biggthump , شكراً لك .

من التراب
30-09-2006, 03:36 AM
هلا صراحه ما قريت الدرس :D
أنا في بداية السي ++ ( عالحديده )
لكني تقريبا محترف في الجافا ...

بجرب أحل التمرين على أساس أن البرمجه هي العلم واللغه هي الأداه ::



int number=System.in( );
int answer = 100 +number;
return answer;


ملاحظه :: ( ) System.in معناها المدخلات من الكيبورد نفسها في السي ++ ولا :D
----------- ياليت أعرف الي يقابلها في السي ++ ؟؟

الكود ينكتب في int main على ما أعتقد

إعتبرني طالب جديد ع السي ++ لكنه يحب يتفلسف .. تحملني :D

جزاك الله خير .... تابع الدروس

بالتوفيق :biggthump

GOGENDANTESS
30-09-2006, 05:58 AM
راجع الدرس الأول و راح تعرف اشلون تدخل باستخدام امر


cin >>


:)

CHALLENGER
30-09-2006, 08:28 AM
اخوي challenger لغة السي بلس بلس ما تقدر تقارنها مع أي لغى من حيث القوة :) و السي شارب اهي بنت السي بلس بلس :)


و إذا تبي تسوي عروض ثلاثية الابعاد و اشياء حرفنة بالسي بلس بلس تقدر بس يبيلك :
تقرا كتب + صبر :)


لغة السي بلس بلس مثل السلم من 100 درجة ما تقدر تحط ريلك على الدرج 100 مره وحده :) لازم خطوة خطوة :)

أها , ما دام هذا الكلام من شخص خبير خلاص أنا اعتمد على الله و ان شاء الله بمساعدتك أكمل الطريق يلي قطعته بلغة السي++ أخي العزيز GOGENDANTESS و إن شاء الله بس يصير عندي علم لا بأس به باللغة سوف اعلم غيري و هكذا سوف يتضاعف اجرك مرات عديدة

و لكن عندي سؤال :
الآن عندما تبدأ ببرمجة برنامج على الفيجوال سي # فأنا اعلم سهولة الأمر فقط يجب عليك ان تطلع على البرمجة كائنية التوجيه و تتطلع على بعض الدوال المناسبة لبرنامجك من خلال الـmsdn و تأخذ كم درس في قواعد البيانات و انت جاهز لعمل اي برنامج تقريباً ,,, فما ه والحال مع السي++ ؟

و انا سوف استمر باستعمال السي# لأني كما اخبرتك استخدمها ايضا في تطوير المواقع عبر الـasp.net .

أيضا نقطة :
انا اتجهت الى السي شارب لكي استغل هذه اللغة اولا ببرمجة برامج ثانيا بتصميم المواقع فهل يمكنني ذلك عبر السي++ (( اعرف مسبقاً انه بإمكاني عبر الـCGI و لكن نادرا ما ارى مواقع تستخدم هذه اللغة يا ترى لماذا :33: ؟؟؟ ))


اتعبتك بأسئلتي و لكن اظن انها مفيدة للجميع و الدرس الذي طرحته أنا اكملته و للآن لا يوجد جديد عليي :) الله يعطيك العافية

||صقر||
30-09-2006, 12:17 PM
و انا سوف استمر باستعمال السي# لأني كما اخبرتك استخدمها ايضا في تطوير المواقع عبر الـasp.net .

يا أخى السى شارب لغه المستقبل تعلمها أفضل ...هل تعرف ان السى بلس بلس أيام زمان كانت تهاجم لبطئها ..وكانوا يقولون ان السى أفضل وبعد ذلك تطورت الأجهزة وأصبحت السى بلس بلس هى السائده وهذا أيضا ما سيحدث مع السى شارب فأنتم تقولون انها بطيئه الآن لكن بعد كام سنه الأجهزة ستتطور وتصبح سريعه و عندها ستكون السائده.....

CHALLENGER
30-09-2006, 01:45 PM
يا أخى السى شارب لغه المستقبل تعلمها أفضل ...هل تعرف ان السى بلس بلس أيام زمان كانت تهاجم لبطئها ..وكانوا يقولون ان السى أفضل وبعد ذلك تطورت الأجهزة وأصبحت السى بلس بلس هى السائده وهذا أيضا ما سيحدث مع السى شارب فأنتم تقولون انها بطيئه الآن لكن بعد كام سنه الأجهزة ستتطور وتصبح سريعه و عندها ستكون السائده.....

لا أخي احمد اسمحلي بأن أكون ضدك (( شو قصتنا اليوم ضد بعضنا البعض :p )) فلغة سي# لغة تجارية بكل معنى الكلمة , و اصحاب اللينوكس يفهموا عليي :

سي++ == لينوكس
سي# == ويندوز


;)

||صقر||
30-09-2006, 01:52 PM
سي# == ويندوز


لا لا لا سى شارب تدعم تقنيه ال mono الجديده ابحث عنها ..

من التراب
30-09-2006, 02:16 PM
راجع الدرس الأول و راح تعرف اشلون تدخل باستخدام امر


cin >>


:)

:silly: المفروض كنت أقراء الدرس
مشكور على الدروس ..
;)

GOGENDANTESS
30-09-2006, 08:19 PM
اخوي تشالنجر إذا تبي تسوي غرافيكس بالسي بلس بلس عندك خيارين :
استخدام مكتبة الـ DirectX
استخدام مكتبة الـ openGL


و انا انصح بالدايركس اكس لأنه كتب اكثر عنه و الدايركست اكس خيار الشركات الكبرى :)


و ايضا مثل ما قلت تصمم مواقع بالسي بلس بلس بس ما عندي خبرة بمجال السي بلس بلس للمواقع :) بس اكيد في مكتبات خاصة لبرمجة المواقع بالسي بلس بلس

CHALLENGER
30-09-2006, 10:36 PM
اخوي تشالنجر إذا تبي تسوي غرافيكس بالسي بلس بلس عندك خيارين :
استخدام مكتبة الـ DirectX
استخدام مكتبة الـ openGL


و انا انصح بالدايركس اكس لأنه كتب اكثر عنه و الدايركست اكس خيار الشركات الكبرى :)


و ايضا مثل ما قلت تصمم مواقع بالسي بلس بلس بس ما عندي خبرة بمجال السي بلس بلس للمواقع :) بس اكيد في مكتبات خاصة لبرمجة المواقع بالسي بلس بلس

نعم و هو كذلك مع انني دخلت دخلت في الاوبن جي ال و لكن حانت مرحلة التشطيب و التركيز على اشياء معينة :biggthump

بانتظار بقية الدروس و ارجو ان تأخذ راحتك في طرح الدروس لكي لا تشعر بالضغط و اي مساعدة اقدر عليها أأمرني :)

RAAAAD
01-10-2006, 12:51 AM
بسم الله الرحمن الرحيم ..

مع أني عضو قديم في المنتدي .. إلا أن هذه أول مشاركة لي ..

أعتقد أنه آن الآوان للنهوض من كرسي المتفرج .. والمساهمة في ولو بالقليل ..

لقد أوضح صاحب المقال .. وأجاب على الأسئلة المطروحة .. وأريد أن أضيف القليل .. من بعد إذن
GOGENDATESS




الحين عندي سؤال و هو شو فائدة ال std؟

هي إختصار إلى الكلمة Standard .. ففي الدوت نت قام المصممين بدمج بعض المكتبات في بيئة التطوير, أي أصبح الدوت نت يحوي (المكتبات + المنصة + برنامج التنقيح + المترجم ) , وأيضاً إستخدام هذه المكتبات STD يعني أن المترجم الذي تستخدم مطابق للمواصفات القياسية


صح هذا اللي كنت احاول اتذكره!
الحالة الاولة تنفع بس لو اضفت using namespace std;
اما الحالة الثانية تنفع بالحالتين!

في حال إستخدمنا الـ std فإن الدوت نت سيعرف وبدون الحاجة إلى أن تشير إليه بأن iostream هي هيدر



" في مختبرات Bill Gates كتحسين للغة الـ C خصوصا لغة الـ C ليست كاملة ككمال ++C. اشتغل عليها المهندس بيارن سنة 1979. بس ليش قرر المهندس بيارن تطوير لغة الـ ++C على حساب الـ C ؟؟؟ "


المشكلة جائت من أجل مواكبة التطور ... حيث أن ظهور مصطلح الـ oop أرغم مطوريين الـ c على المواكبة ولأكن بلغة آخرى هي c++ ,, لأن هذا المصطلح يعني ((وبشكل سطحي)) عدم الدخول بالتفاصيل ,, ولغة السي لا ترضي بهذا الكلام .. فالذلك قاموا بإصدار c++



و أيضا انت قلت ان الـسي ++ لغة سريعة جدا فأرجو ان توضح الفروق بينها و بين السي شارب


فرق شاسع ما بين الإثنتين .. مثل الفرق ما بين vb.net و الـ vb, وعلى فكرة مبرمجين الجافا أقرب للشارب من مبرمجين السي بلس بلس ..



عندما تبدأ ببرمجة برنامج على الفيجوال سي # فأنا اعلم سهولة الأمر فقط يجب عليك ان تطلع على البرمجة كائنية التوجيه و تتطلع على بعض الدوال المناسبة لبرنامجك من خلال الـmsdn و تأخذ كم درس في قواعد البيانات و انت جاهز لعمل اي برنامج تقريباً ,,, فما ه والحال مع السي++ ؟

نفس الشئ, ولأكن هنا ستبحث عن دوال API




استخدمها ايضا في تطوير المواقع عبر الـasp.net .


نعم السي شارب هي أفضل لغة في عائلة الدوت نت وبالذات مع الـ ASP .. , وغير ذلك تجرى الآن بحوث في مايكروسوفت بعمل نظام تشغيل بالكامل ((بالإعتماد بنسبة 95 % على السي شارب)).. ,
وأيضاً إنتاج لغة XNA وهي لغة جديدة من أجل البرمجة بي الـ Xbox تعتمد على السي شارب ..


في النهاية أرجوا أن لا أكون ضيف ثقيل :o

snake_x86
01-10-2006, 01:43 AM
رعد...
معلومات جديدة!
تشكر عليها ....

في النهاية أرجوا أن لا أكون ضيف ثقي
العكس تماماً ... نورت المنتدى

سامي.خ
01-10-2006, 05:54 AM
للأسف ما راح أقدر أتابع الدروس أول بأول

CHALLENGER
01-10-2006, 08:18 AM
الأخ RAAAAD : ألف شكر على أجوبتك و أنت واحد من الكثيرين يلي كانوا يشوفوا مواضيعنا في القسم و قرروا يشاركوا أخيراً , شكرا على توضيح الأشياء المبهمة و أرجو ان تستمر معنا

PrinceOfSorrow
01-10-2006, 10:29 AM
حقا أستفدت من معلومات ألي جابها لنا ضيفنا العزيز رائد RAAAAD ^^
حياك في منتدى واتمنى انك لاتبخل بمعلوماتك الثمينة علينا ^^

GOGENDANTESS
01-10-2006, 10:42 AM
مشكور رااااااااااااد :) الظاهر انت بعد خبير بالسي بلس بلس

GOGENDANTESS
10-10-2006, 07:26 AM
الدرس الثالث : العمل مع العبارة If و عبارة else



بسم الله الرحمن الرحيم


:)


الكثير منا يخاف من عبارة If و else مع انهم وايد سهلين :)


شنو فايدة هالعبارة ؟؟
اسم العبارة يدل على مساماه :)


"إذا" (تحقق حق هالشرط)
نفذ هالشي

"آخر" (ما تحقق شرط "إذا")
نفذ هالشرط

و جذي تكون بالسي بلس بلس


If (statment true)
{
Commands
}

else //"If" isn't true
{
Commands
}





فمثلا انتي تبي المتغير number يكون بس قيمته العدد 2 ، مو ايي عد غيره يكون هذا البرنامج



<iostream>

using namespace std;

int main()
{

int number = 0;
cout << "Please enter number 2\n";
cin >> number;

if (number == 2)
{
cout << "You've entered 2!";
}
else
{
cout << "\nYou've entered a number other than 2, sorry!";
}


return 0;
}




لاحظ انا في عبارة If استخدمت == مو =

:) علامة = تستخدم فقط للمتغيرات و تعريف قيمهم الإبتدائية :)





الدرس القادم : العمل المشغلات المنطقية و استخدامهم مع عبارة الـ if و else

CHALLENGER
10-10-2006, 08:08 AM
شكراً على الدرس و ما اعرف انه كان في اشخاص يخافون من هالتعليمتين !!!

من التراب
10-10-2006, 10:44 PM
مشكور ع الدرس ... يالله تابع تابع

شكل السي++ سهله مثل الجافا ^.^

بالتوفيق

Son Of UAE
11-10-2006, 11:07 AM
مشكور أخوي على المتابعة :)

CHALLENGER === في كثير للأسف ... :D

CHALLENGER
11-10-2006, 01:35 PM
مشكور أخوي على المتابعة :)

CHALLENGER === في كثير للأسف ... :D

:D :D و الله موتتني ضحك ما اعرف ليش


حسيت انك منهم :biggthump

GOGENDANTESS
13-10-2006, 07:43 AM
الدري الرابع : العمل مع المشغلات المنطقية :



بسم الله الرحمن الرحيم :)



اليوم بإذن الله درسنا يكون عن المشغلات المنطقية ، كثير ما نستخدمها بالرياضيات خصوصا في المسائل الجبرية و اهي باختصار ثلاث :
1- يساوي
2-لا يساوي
3-أو
4-و


و هذي علاماتهم بالسي بلس بلس
1- يساوي : ==
2-لا يساوي : =!
3- أو : || (الزر shift مع \ )
4- و : &&




هالمشغلات فائدتهم عظيمة :) يعني إذا عندك برنامج اعتبر هالمشغلات العمود الفقاري للبرنامج :) باستخدامهم تقدر تحصل على قيم معينة بدلا من أي قيمة عشوائية يدخلها المستخدم :) يعني باختصار انت تتحكم بإدخال المستخدم و ليس العكس :)


افترض ان الرقم الأول من رقمك السري اهو 3 ، و الرقم الثاني 7
سو compile لهالبرنامج :



#include<iostream>
#include<conio.h>

using namespace std;

int main()
{
cout << "Welcome to the logical program!\n\n";

int number = 0;
int otherNumber = 0;

cout << "Enter your first secret number: ";
cin >> number;

cout << "\nEnter your second secret number: ";
cin >> otherNumber;

if(number == 3 && otherNumber == 7)
{
cout << "\n\nWelcome to your control panel!";
}
else
{
cout << "Log in failed, sorry.\n";
}

getch();
return 0;
}


راح تلاحظ ان مهما حاولت تدخل رقم غير الـ 3 كرقم اول و 7 كرقم ثاني ما يسمح لك البرنامج بالدخول :)


شوف الكود مره ثانية :)



if(number == 3 && otherNumber == 7)

انا اهني استخدم المشغل المنطقي : و
فالبرنامج يقول لنفسه : إذا و فقط المتغير number و المتغير otherNumber قيمهم 3 و 7 اسمح للمستخدم بالدخول إلى لوحة التحكم.



:)



تمرين :
شباب صج ودي اشوف واحد يحل هالتمرين عشان اشوف تقدم :)

افنرض انا المستخدم اسمه
Mohammad

و رقمه السري :
15

سو برنامج بحيث المستخدم يدخل الإسم المستخدم و الرقم السري و يشوف إذا واحد من البيانات صح يرحب في المستخدم




مفاتيح المساعدة :
1-استخدم المشغل المنطقي أو ||

GOGENDANTESS
03-11-2006, 06:31 AM
الدرس الخامس : استخدام عبارات Switch



بسم الله الرحمن الرحيم :)




كل الألعاب "بلا شك" تحتوي على قائمة ، تختار منها شنو تبي تسوي ، مثلا تخيل انك دخلت لعبة استراتيجية فتكون القائمة الرئيسية :
Play Online
Load Replay
Options


و جذي :)


و كل خيار ينفصل عن الثاني من حيث التنفيذ :)


من شنو تتكون عبارة switch ؟؟
تتكون من
متغير(عدد صحيح بلا شك )
كلمة switch
كلمة case ـ و اهي عبارة عن "في حالة اختيار الخيار واحد ، نفذ اوامره"
كلمة break ، و اهي تفصل ما بين كل حالة و حالة
كلمة default ، اهي في حالة إذا المستخدم ادخل رقم غير مظمون بالقائمة و إرسال رسالة خطأ


شوف هالكود :




#include <iostream>
using namespace std;


int main()
{
cout << "What you wanna play now?\n";
cout << "1-Solo Player\n";
cout << "2-Multiplayer\n";
cout << "3-Load Replay\n";
cout << "4-Options\n";

int choice; // تعريف متغير للقائمة
cout << "Enter your choice: \n";
cin >> choice;


switch (choice) //بدء القائمة ، ولاحظ حطيت المتغير اللي عرفته قبل و اللي يمثل الخيار

{

case 1:// في حالة إدخال الرقم واحد ، تطلع هذي العبارة

cout << "You picked Solo Player\n";
break;

case 2:
cout << "You picked Multi Player\n";
break;


case 3:
cout << "You picked Load Replay\n";
break;

case 4:
cout << "You picked options\n";
break;


default: // في حالة المستخدم ادخل رقم غير الواحد او أثنين او ثلاث او اربع تطلع هذي الرسالة تبلع ان الخيار خطأ
cout << "You've made illegal choice";

}

return 0;
}



ملاحظة : الرقم اللي يكون يم كلمة case يكون المتغير يتحكم فيه ، يعني المتغير choice لما يستقبل قيمة ، خل نقول المتغير choice استقبل قيمة 1 ، في هذي الحالة ، جملة switch راح تروح للحالة 1 ، يعني اختصارا تقدر تحط اي رقم يم كلمة case بس يكون صحيح حتى و لو صفر ، بس لازم تكون تقول للمستخدم ادخل الرقم 0 للخروج :)