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

مشاهدة النسخة كاملة : الدرس الثاني في دورة ++C - اساسيات



المظفر بالله
11-06-2008, 09:08 PM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين


بداية اود ان اعتذر عن تأخري في طرح الدرس لظروف خاصة وعامة , الخاصة اتركها لي اما العامة للأسف لم اجد التفاعل المطلوب او حتى اثبات الوجود , فارجوا من الاعضاء المسجلين ان يثبتوا وجودهم .


المهم الآن نبدا الدرس الثاني في دورة البرمجة بلغة ++C ...
واتمنى ان يكون هنالك اسئلة لكي تكتمل الصورة الصحيح الدرس مهم جدا والتركيز مطلوب , رغم انه بسيط لكن مستقبليا الاخطاء تقع خلال البرمجة تكون اخطاء باساسيات البرمجة ....

وقبل البدء :
1.البرنامج حين يبدأ بترجمته فانه يترجم من السطر الاعلى الى الاسفل , اي ان بداية البرنامج من الاعلى , معلومة بسيطة وسخيفة لكن ستفيدنا لاحقا...
2. كل جملة برمجية في لغة ++C تنتهي بفاصلة منقوطة ';' تقريباً!!!


اولا : الجمل وانواعها :


يقصد بالجمل هي مجموعة من الكلمات المرتبة بشكل متتالي و لها معنى وهنا بالبرمجة بالطبع , لكن هنالك اساسيات وقواعد لتصبح الجملة صحيحة , ولكل نوع طريقة والانواع الرئيسية هي :



جمل التعليقات Comment Statements


هي جمل لا قيمة لها فعليا في تنفيذ البرنامج ولا تؤثر فيه و وانما دورها يقتصر بمساعدة المبرمج على القيم بالبرمجة بشكل مريح ومنظم وذلك اثناء كتابة البرنامج , وتساعده في اكتشاف الاخطاء وموضعه وخصوصا الاخطاء المنطقية (سنتعرض لانواع الاخطاء في الدرس القادم ان شاء الله) .. اضافة لاهمية وجودها في الكود الذي نكتبه اذا كان طويل جدا وايضا اذا كان العمل مشترك او ان البرنامج هو برمجية حرة Open Source , فتخيلوا انه البرنامج يكون 10000 سطر ويطلب من مبرمج آخر ان يكمله او يحسنه , اعتقد لو يكتب الكود من البداية اوفر له وقتا وجهدا من اعادة قراءة الكود من اول وفهم كل جملة ماذا تقوم وما ناتجها ولمى وضعت , وتنقسم بدورها جمل التعليقات الى نوعين :



سطر مفرد Single Line

هي جمل التعليقات على هيئة سطر واحد وتنتهي هذه الجملة بمجرد ان تنزل سطر جديد اثناء كتابتك للكود , وطريقة كتابتها هو بكتابة "//" ثم اي شيء بعدها ,مع ملاحظة اننا بامكاننا وضعها إما في سطر جديد او بعد عبارة برمجية منتهية مثال:


// Hello this is My first Program
// This program written by : Al-Mothafar
void main()
{
cout<<"Welcome to C++"<<endl; // Print "Welcome to C++
}


اسطر متعددة MultiLines

وهي الاصح ان تسمى فقرات التعليق , هي مجموعة من الاسطر الممتابعة نعرفها ببداية ونهاية ولا يكفي فقط بداية والا سيعتبر كل التالي هي جملة تعليق , تبدأ بـ /* وتنتهي بـ */



/* Hello this is My first Program
This program written by : Al-Mothafar */
void main()
{
cout<<"Welcome to C++"<<endl; /* Print "Welcome to C++*/
}




جمل الادخال Input Stream

هي جمل وظيفتها تحويل البرنامج الى وضع الانتظار حتى تتم عملية الادخال من قبل المستخدم (المستخدم هنا سواء كان شخص او برنامج) , ما ان تتم عملية الادخال حتى تكون هذه الجملة قد انتهت وظيفتها وقامت بارجاع القيمة المدخلة الى البرنامج, يعود بعدها البرنامج الى وضع العمل , وهذه الجمل تنتهي بالفاصلة المنقوطة ';' , بالنسبة لاشارة الادخال Input Operator هي ">>" يتبعها اسم المتغير المراد تخزين القيمة فيه , مثال يوضح الامر :

cin >>x>>y>>z;ويمكننا الكتابة نفس العبارة بطريقة اخرى لاحظ:


cin >>x
>>y
>>z;


جمل الاخراج Output Stream

هي جمل وظيفتها اظهار النتائج والمعلومات مثل cout و clog و cerr و printf , وحالها في كتابتها شبيهة بالادخال الا ان الاشارة الاخراج Output Operator معكوسة "<<"

طريقة printf مختلفة تماما


cout<< "x =" << x << "and y = "
<< y <<endl;ولاحظوا ان هنا ان ما يحصر بين " " يُطبع كما هو ويستخدم لطباعة نص ولكن اذا اردنا طباعة قيم المتغيرات المخزنة داخلها فلا نضعها , لو فرضنا ان x متغير مخزن داخله الرقم 5 ففي الحالة هذه اذا كتبنا :


cout<< "x";يطبع x هكذا على الشاشة اما اذا كتبناها بالشكل التالي :


cout<< x;

سيطبع على الشاشة 5 اي القيمة داخل x وان شاء الله الى الامام تكون الصورة اكتملت ...


هنالك ايضا جمل برمجية وظيفتها القيام باغراض معينة نريدها في برنامجنا سنتعرض لها لاحقاً .



ثانيا : المتغيرات :
المتغيرات هي موقع في الذاكرة لها عنوان وهذا العنوان معرف بمسمى , تخزن القيمة بالذاكرة من خلال هذا المسمى اذ ان المسمى يؤشر على العنوان في الذاكرة , اي لو فرضنا ان المتغير x هو موقع في الذاكرة , حقيقة لا يوجد منطقة في الذاكرة اسمها x لكن يقوم النظام بحجز موقع في الذاكرة بحجم معين (حسب نوع x) يبدأ بالعنوان مثلا 0x00af5989 , وعند تخزين قيمة فانه يخزنها في هذا الموقع ... على العموم ما يهمنا الآن هو كيف نقوم بتعريف المتغيرات والطريقة الصحيحة لتعريفها , وما هي انواع المتغيرات اي الـ Data Type وما الفروق بينها وما احجامها على الذاكرة ...

المدى Rangeالحجم Sizeتوضيح Description النوع Typeمن -128 الى 1271 بايتلتخزين حرف او رقم صغيرصحيحcharمن 0 الى 2551 بايت لتخزين حرف او رقم صغيرصحيحunsigned charمن -32768 الى 327672 بايتلتخزين رقم صحيح قصير بإشارتهshort intمن 0 الى 655352 بايتلتخزين رقم صحيح قصير موجبunsigned short intمن -2147483648 الى 21474836474 بايتلتخزين رقم صحيح مع مراعاة الاشارةintمن 0 الى 42949672954 بايتلتخزين رقم صحيح موجب دائماunsigned intمن -2147483648 الى 21474836474 بايتلتخزين رقم صحيح طويل مع مراعاة الاشارةlong intمن 0 الى 42949672954 بايتلتخزين رقم صحيح طويل موجب دائماunsigned long inttrue او false1 بايتنعم/لا , يعني يحتفظ فقط بالقيم تكون true أو false bool3.4e +/- 38 (7 digits)4 بايترقم بفاصلة عشرية الى 7 منازلfloat1.7e +/- 308 (15 digits)8 بايترقم بفاصلة ضعف float اي 15 منزلةdouble1.7e +/- 308 (15 digits)8 بايترقم بفاصلة ضعف float اي 15 منزلةlong double1 wide character2 او 4 بايتللحروف الكبيرة wchar_T



المتغير long int يكتفى فقط التعريف عنه بـ long و المتغير short int يكتفى فقط بـ short وكلا الطريقتين صحيحتين ....

مصدر مفيد للاستزادة :
http://msdn.microsoft.com/en-us/library/s3f49ktz(VS.80).aspx (http://msdn.microsoft.com/en-us/library/s3f49ktz%28VS.80%29.aspx)

والآن بعد ان تعرفنا على الانواع , كيف نُعرف متغيرات من هذه الانواع , قبل ان نأتي لهذا يجب علينا ان نعرف قواعد بسيطة لكتابة المتغيرات وهي :
1. اسم المتغير مكون من مجموعة من الاحرف الانجليزية سواء كبيرة او صغيرة والارقام وايضا يسمح بإستخدام "_" اي السحطة السفلية .
2.اسم اي متغير يجب ان يبدأ بحرف او بـ"_" ولا يسمح بالارقام او الرموز الخاصة
3. اسم المتغير حساس لحالة الاحرف اي ان الحرف الكبير يختلف عن الصغير , مثلا x هو ليس نفسه X , وهذا خطأ كثير منا يقع وسيقع فيه اثناء البرمجة

* الصيغة العامة لكتابة المتغيرات

data-type variable-name;

اي نكتب اولا النوع ثم اسمه ثم فاصلة منقوطة ويمكننا تخزين قيم فيه مباشرة اثناء التعريف بشكل عام..

امثلة

int x = 5;
int x;
double y;
double y = 56.3;

كما ويمكننا تعريف اكثر من متغير بنفس العبارة مثال:

int x , y , z ;
لاحظوا الطريقة وهي الفصل بين المتغير والآخر بفاصلة ','
وطريقة اخرى

int _X =4 ,y,z =8 ;

ملاحظة ثالثة مهمة للغاية , لا يمكنك تعريف المتغير اكثر من مرة داخل نفس البلوك , ولا يمكنك استخدام نفس اسم المتغير لانواع مختلفة

يقصد بالبلوك هو ما يحصر بين } و { , مثال :


void main()
{
int y = 8 ;
cout<< y ;
{
int y = 9;
cout<< y ;
}
cout<< y ;
}
في هذا المثال الصحيح لاحظو انه يستخدم اسم المتغير اكثر من مرة لكن كل مرة في بلوك مختلف , سيطبع 8 ثم يطبع 9 ثم يطبع 8 , لاحظو كيف ترتيب البلوك ...


مثال خاطئ :

int a ;
char a;

مثال صحيح

int a;
char A;

مثال خاطىء :

char i;
float f;
double d;
char i;

مثال صحيح :


int i;
float f;
double d;
char c;



ثالثا : التعامل مع المتغيرات:

يتم التعامل مع المتغيرات من خلال تخزين القيم فيها او استدعاء قيمها , بعمليات حسابية او منطقية :
1. العبارات الحسابية او الاصح ان تبقى بدون ترجمة Assignment Statements:

وهي عبارات مهمتها القيام بمعالجة ما من خلال معادلة :
مثلا :

x = z + y;والاشارات هي الجمع '+' و الطرح '-' والضرب '*' و القسمة '/' و المود (باقي القسمة) '%' ....



لا توجد اشارة للقوة "الأس" في العمليات الحسابية ....
ولا يسمح باستخدام الاختصار في ازالة اشارة الضرب مثلا خطأ ان تكتب 2y لتكتب بالشكل الصحيح : 2*y مهم للغاية الانتباه لهذه النقطة

امثلة :

x = 5+2;
x = 2/5;
x = 4*8;
x = 9-6;
x = 5%2;


ربما كل العمليات معروفة ولكن اشارة المود % غريبة , ببساطة لو قلنا 5%2 , اي نقصد هنا باقي ناتج القسمة الناتجة عن قسمة 5 على 2 اي سيكون الناتج 1 ...

ويمكننا الاستعاضة عن الارقام باسماء المتغيرات بحيث يكون هذا المتغير يخزن قيمة , قد لا تكون معروفة لدى المبرمج , اي يتم اخذها خلال البرنامج او من ناتج عملية حسابية اخرى , مثلا :


void main()
{
int area , x , y ;
cin>> x >> y;
area = x * y;
cout<< "Area = " << area ;
}

ويمكن استخدام نفس المتغير في الحسابات , مثلا لو اردنا ان نزيد 5 على قيمة x , فإننا نكتب

x = x + 5;

رابعا : الأولويات الحسابية :

شيء مهم ان نعرف الاولويات وكيف نحددها في العمليات الحسابية , فهي ما اكبر سبب للأخطاء المنطقية , كيف ذلك ؟؟
ماذا سيكون قيمة x اي ناتج المعادلة التالية :



x = 4/2 + 9;وماذا سيكون قيمة x اي ناتج المعادلة التالية :



x = 9 + 4/2;في الحالة الاولى والثانية نفس الجواب ....


ربما تكون قصدت في المعادلة الثانية ان يتم جمع الرقمين 9 و 4 ثم القسمة على 2 , ذلك يتم بعد التعديل لتصبح بالشكل التالي :


x = (9 + 4)/2;اذن هنالك اولويات نتعاملمعها وهي حسب الترتيب التالي من الاعلى اولوية الى الاقل ,

الاقواس () ثم * و / و % ثم + و -
يعني بصيغة اخرى الاولوية تكون لفك الاقواس بداية ثم الاولوية للعمليات الضرب * والقسمة / و المود % ويحملن نفس الاولوية ثم للاشارتين الجمع + و الطرح - ..

وفي حال تساوي الاولويات يتم جمع الارقام من اليسار الى اليمين ..

امثلة على تساوي الاولويات

x = 1 + 2 + 3;
x = 4/2*6;
x = 9%3 *1;لاحظوا هنا
لو قلنا

x = 9%3 *1.5;فالناتج سيكون 0 ,
بينما

x = 1.5 * 9%3;سيكون الناتج 1 ...

اترك لكم التفسير .....


مبدئيا نقول ان هذه العبارة صحيحة

x = 1.5 * 9%3;لكن حقيقة هي خاطئة وتصحيحها يكون

x = (int)(1.5 * 9)%3;السبب انه المود '%' لا يأخذ متغير من نوع float او double في احد طرفيه ...
يجب ان يكون طرفيه من نوع int او long او short او char

...


بالنسبة لنواتج القسمة تهمل في المتغيرات من نوع long و int (المتغيرات التي تخزن ارقام صحيحة)
بالنسبة للمتغيرات من نوع double و float , قد ناتج القسمة في حال قسمة رقمين صحيحين , توضيح :
int/int = int
double/int = double
int/double = double
double/double = double

يعني في مثال للتوضيح اكثر :


double x = 5/2;
double x = 5.0/2;
double x = 5/2.0;
double x = 5.0/2.0;
في اول جملة وهي

double x = 5/2;يخزن في x القيمة 2 اي سيهمل الباقي , اما باقي التعريفات يتخزن القيمة 2.5 بشكل صحيح ولن تهمل المنازل العشرية

رابعا : النصوص Literal :
النصوص كـ String وكيف تعريفها سنأتي اليه لاحقا في مواضيع المصفوفات , لكن اقصد هنا النصوص التي نكتبها للطباعة المباشرة من خلال جمل الاخراج , مثلا

cout<<"My Name is : Al-Mothafar "<<endl;فيحق لك ان تكتب ما تشاء بين اشارتي الاقتباس " و " عدا المرموز \ و " و ' ...
السبب ان الرمز \ يستخدم Escape character
و " تستخدم في اقفال وبداية النص و ' تستخدم في طباعة الاحرف المفردة مثل
cout<<'x'<<end; ..

اما بالنسبة لما يسمى بـ Escape character فهي الرمز \ يتبع باحدى الحروف التي من شأنها عمل وظيفة ما او حدث ما وهي كالتالي :

الرمز Escape Sequenceالحدث\aصوت صافرة من داخل الجهاز\bBackspace \fFormfeed\nسطر جديد\rالعودة لبداية السطر\ttab \\لطباعة \ الباك سلاش\'لطباعة ' \"لطباعة " \xddلطباعة الرمز المقابل للرقم بالهيكسا (الرقم مكان dd )

امثلة :

cout<<"Welcome \rto My program"<<endl;
cout<<"Welcome \bto My program"<<endl;
cout<<"Welcome \tto My program"<<endl;
cout<<"Welcome \"to My program\" "<<endl;
cout<<"Welcome \'to My program\' "<<endl;
cout<<"Welcome \ato My program\""<<endl;
cout<<"03 = \d03"<<endl;
النواتج ستكون بالترتيب كالتالي:

to My program
Welcometo My program
Welcome to My program
Welcome to "My program"
Welcome to 'My program'
Welcome to My program
03 = ♥
وفي حال ان الحرف خطأ سيعطي تحذير ويطبع الحرف عادي ويتجاهل \ ...



وبهذا نكون انتهينا من الدرس الثاني بحمد الله
اتمنى ان يكون هنالك استفسارات واسئلة مبتكرة

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


x = 9%3 *1.5;فالناتج سيكون 0 ,
بينما

x = 1.5 * 9%3;سيكون الناتج 1 ...

ما ناتج العمليات التالية والمخزنة في المتغير x


double x = 4/ 6 + (6+2*9*(9/8));
double x = 9 % 6 / 5;
double x = 9 - 9 - 6 * 9;
int x = 9/2*9-(6*5/10);
اريد منكم كشف الاخطاء في العبارات التالية:


double x , int y ;
int x , y
int 8x , y;
double x = 9 ( 6 / 5 );
cout<<"Welcome to C++<<endl;
cout<<''Welcome to C++''<<endl;
يرجى رجاء حار ممن لديه خلفية مسبقة عدم تطبيق العبارات في اي مترجم او برنامج IDE ليعرف اين الخطأ , اريد فقط بالنظر , الله رقيب , اتمنى الصدق والجدية في هذا الموضوع, ولكن نظريا الكل يجيب , اتمنى ذلك

وأتمنى لكم التوفيق
:M22:

اخوكم المحب لكم في الله
المظفر بالله

اعتذر عن الخطأ التي نتج صراحة من قلة التركيز :M13:, بالنسبة لرابط الدرس الاول هو :

http://www.geek4arab.com/vb/showthread.php?t=2811

المظفر بالله
12-06-2008, 01:55 AM
هذا وان اصبت فمن الله وتوفيقه وان أخطأت فمن نفسي
والله الموفق

wanted
12-06-2008, 02:08 AM
والله انك بتقدم مجهود كبير يا مظفر

جزاك الله كل خير

والله يعطيك على قد نيتك ان شاء الله

achill2005
12-06-2008, 03:46 AM
السلام عليكم ورحمة الله وبركاته
ما اتنبهت لبداية الدرس إلا اليوم و إن شاء الله أنتبه و أقدر أتدارك

absous
12-06-2008, 05:44 AM
و الله بداية مفصلة، مشكور أخي المظفر بالله و ان شاء الله نستوعب الدرس
و إن كانت هناك استفسارات سنوافيك بها في أقرب وقت :good:

samerhalaby
12-06-2008, 08:42 AM
بارك الله بك أخي مظفر وجزاك الله خيراً

the best
12-06-2008, 11:26 AM
يعني انا ما اجاوب؟؟؟:M13::thinking:
والله اني اتذكرت اشياء كثيييييييييير اخذتها قبل 2 سنه:ops:
الله يبارك فيك ويوفقك:pray:

aldomiri
12-06-2008, 12:58 PM
الله يعطيك العافيه والله مجهود كبير جـــــــــــــــداً ,ان شاء الله تتوفق في بقيه الدروس

achill2005
12-06-2008, 01:01 PM
وبهذا نكون انتهينا من الدرس الثاني بحمد الله
اتمنى ان يكون هنالك استفسارات واسئلة مبتكرة

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

كود:
x = 9%3 *1;

res : x=0 * 1 = 0

فالناتج سيكون 1 , أخي المظفر أنظر في الأعلى أنا وجدت 0 يعني رجاءا اشرح لي المثال لأنك كما ترى فأنا لم أستوعبه
بينما
كود:
x = 1 * 9%3;
res : x = 1*0=0

سيكون الناتج 0 ...

ما ناتج العمليات التالية والمخزنة في المتغير x

كود:
double x = 4/ 6 + (6+2*9*(9/8));
res: double x = 0 +(6+2*9*1) = 6+18=24
double x = 9 % 6 / 5;
res : double x =3/5=0
double x = 9 - 9 - 6 * 9;
res : double x = 9-9-54 =-54
int x = 9/2*9-(6*5/10);
res : int x = 4*9 - (30/10) = 36 - 30= 6


اريد منكم كشف الاخطاء في العبارات التالية:


كود:
double x , int y ;
cor : double x; int y;
int x , y
cor: int x,y;
int 8x , y;
cor : int 8*x,y;
double x = 9 ( 6 / 5 );
cor double x = 9*1=9
cout<<"Welcome to C++<<endl;
cor : cout <<"Welcome to c++"<<end;
cout<<''Welcome to C++''<<endl;
cor : cout<<"Welcome to c++"<<end;

المظفر بالله
12-06-2008, 03:33 PM
بارك الله فيكم اخواني على الردود وان شاء الله فعلا تكون تحققت الفائدة
اخي achill2005 (http://www.geek4arab.com/vb/member.php?u=1209) شكرا على ملاحظتك واكتشاف الخطأ , اعتذر كانت هنالك فكرة اريد ذكرها لكن نسيت ونتج عنه هذا الخطأ تم تصحيح الامر وشكرا لك ....
:good:

عز الرافدين
12-06-2008, 04:58 PM
الله يعطيك العافيه ويبارك فيك ...:goood:

lionhmada
13-06-2008, 12:11 PM
شكرا لك على الدرس الرائع
لي عوده للدرس للقراءة بتركيز اكبر والاجابة على الاسئلة

المظفر بالله
13-06-2008, 12:26 PM
وانا في الانتظار :)

حســــــــام
13-06-2008, 03:39 PM
جزاك الله خيرا اخي مظفر الله لايضيع لك تعب

واشد بيد اخي Alfa Hunter على النقاشات الهادفه يعطيكم الف عافيه كلكم

لو اعرف لغة البرمجة كان دخلت بالنقاش معكم

ومايميز اي دورة سواء هنا او منتدى اخر هم المشاركين بالدورة وخاصة الذين لهم خبرة حتى

لو قليلة فتكون النقاشات حلوه وتفيدنا احنا كاشخاص مبتدئين

بسألك سؤال الحين هل بعد تعلم ++c

هل يمكن برمجة برامج جميع الهواتف النقالة خاصة صنع البرامج لأي هاتف نقال

وايضا هل يمكن برمجة البرامج على ليونكس والتعديل بالسورس او صنع برامج ليونكس

ان شاءالله تكون فهمتم السؤال

ملاحظة :

ياريت تضع روابط لاي درس في نفس الصفحة الاساسية للدورة لعدم التشتت

المظفر بالله
13-06-2008, 04:02 PM
جزاك الله خيرا اخي مظفر الله لايضيع لك تعب

واشد بيد اخي Alfa Hunter على النقاشات الهادفه يعطيكم الف عافيه كلكم

لو اعرف لغة البرمجة كان دخلت بالنقاش معكم

ومايميز اي دورة سواء هنا او منتدى اخر هم المشاركين بالدورة وخاصة الذين لهم خبرة حتى

لو قليلة فتكون النقاشات حلوه وتفيدنا احنا كاشخاص مبتدئين

بسألك سؤال الحين هل بعد تعلم ++c

هل يمكن برمجة برامج جميع الهواتف النقالة خاصة صنع البرامج لأي هاتف نقال

وايضا هل يمكن برمجة البرامج على ليونكس والتعديل بالسورس او صنع برامج ليونكس

ان شاءالله تكون فهمتم السؤال

ملاحظة :

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

واكيد من يحملون معلومات سابقة سيكونون بمثابة تكملة للدرس

بالنسبة للغة سي بلس بلس للآن تستخدم في برمجة الروبوتات , بالنسبة للهواتف الشخصية ايضا كذلك ولست متأكد من المعلومة هذه , بالنسبة لبرامج الاجهزة الخلوية فهي متنوعة منها ما هو سي بلس بلس ومنها ما هو جافا ومنها ما هو لغة اخرى لكن مبنية على السي بلس بلس ,

وبالنسبة للسؤال الثاني , نعم تستطيع ذلك وايضا تصميم برامج اللينوكس مفتوحة المصدر , لكن قد تبدو بسيطة في بداية الامر , لكن الامر حقا لا يأتي بالسهل , فيجب ان يكون مستواك محترف ومتقن لهذه اللغة , وهذا يأتي فقط بالجد والمثابرة وكما ذكرت هنا حب اللغة والاصرار عليها , ويمكنك الحصول على اي كود لترى ما يحتويه من عدة مواقع ومنها الموقع http://sourceforge.net , واحب ان اضيف ان هنالك لغات اخرى من الجيد تعلمها على يونكس بعد السي بلس بلس لو اردت احتراف هذا النظام وهي الـ بايثون والبيرل ... للأسف علمي فيهن هاتين اللغتين يساوي صفر !!!!!!

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

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

حســــــــام
13-06-2008, 08:51 PM
جزاك الله خيرا

شرح رائع ومفصل

بس الله يعين مع دوشة هل الحسابات والمتغيرات
وبعد يبالي انزل ++c من النت عشان التجارب

عندي سؤال
اذا سويت install لفيجول بيسك لويندوز اكسبي سيرفس باك2 مايسوي مشاكل
لاني كنت انزل الفيجول 6 لويندوز 98 شغال تمام بس مدري عن وضعه بالاكسبي

الله لايضيع لك تعب وشرح

المظفر بالله
14-06-2008, 01:58 AM
جزاك الله خيرا

شرح رائع ومفصل

بس الله يعين مع دوشة هل الحسابات والمتغيرات
وبعد يبالي انزل ++c من النت عشان التجارب

عندي سؤال
اذا سويت install لفيجول بيسك لويندوز اكسبي سيرفس باك2 مايسوي مشاكل
لاني كنت انزل الفيجول 6 لويندوز 98 شغال تمام بس مدري عن وضعه بالاكسبي

الله لايضيع لك تعب وشرح
على الويندوز اكس بي سيرفس باك2 وضعه تمام وعال العال , اما على SP1 فلا يعمل وفيه مشاكل كثيرة خصوصا عندما يصل ال مرحلة تسجيل المفاتيح الخاصة ......

شعوله
14-06-2008, 12:21 PM
شكرا لجهودك والله يعطيك عافيه

gogurles
14-06-2008, 07:09 PM
بسم الله الرحمن الرحيم
لك جزيل الشكر اخى المظفر
هناك استفسار :
لم استوعب معنى المود(%)
برجاء الاجابة عن السؤال و جازاك الله كل خير اخوك gogurles:goood:

المظفر بالله
14-06-2008, 07:52 PM
بسم الله الرحمن الرحيم
لك جزيل الشكر اخى المظفر
هناك استفسار :
لم استوعب معنى المود(%)
برجاء الاجابة عن السؤال و جازاك الله كل خير اخوك gogurles:goood:


حياك الله اخي
عملية المود اخي عملية بسيطة وليس فيها تعقيد , هي بكل بساطة بدلا من ان تأخذ ناتج القسمة تأخذ الباقي فقط للقسمة , يعني عندما تقوم بالقسمة مثلا 8 على 3 فإن الناتج سيكون 2 والباقي 2/3 ,احيانا نحتاج للباقي ولا يهمنا الناتج الكامل في بعض الحالات يتطلب منا فقط الباقي , وستتوضح الفكرة بالامثلة في الدرس القادم قريبا جدا ...

عندها لو اردنا الحصول على هذا الناتج بدون استخدام المود سيكون هنالك معادلات مطولة , بعبارة اوصح , امسك ورقة وقلم , وبطريقة القسمة المطولة ضع 8/3 في هذه المعادلة , 8/3 الناتج سيكون 2 و الباقي 2 ,,, مثال آخر مثلا 14/3 نقسم قسمة عادية لكن لا نضع الفاصلة ونضرب بعشرة لكي نحصل على ما بعد الفاصلة و لا نتوقف الى هنا ونأخذ آخر ناتج :



4
--------
14 | 3
--------
- 12
---------------
2



الناتج هنا 2
بجميع الاحوال ناتج المود يكون محصور بين الصفر الى الرقم المقسوم عليه ناقص 1
لو قسمنا اي رقم على 4 مثلا
فان ناتج المود اما 0 اذا كان من مضاعفات الرقم 4 مثل 4 و 8 و 16 و 36 ,,,
او 1 مثل 1/4 او 5/4 او 9/4 او 2 مثل 6/4 او 3 مثل 7/4 ....

هل توضحت الصورة وعرفت ما هو المود ...

بعبارة بسيطة هو باقي القسمة الصحيحة لاي رقم صحيح على اي رقم صحيح
اذا لم تتوضح مستعد اشرح لك اياها بأسهل مما ذكرته هنا ..... :)

حســــــــام
14-06-2008, 08:03 PM
اخي/ المظفر بالله

الله يثيبك ولا يضيع لك تعب

ومشكور لانك رديت باستفاضة لتصل المعلومة لنا سواء لي او لغيري

ان شاءالله سابحث عن مااخبرتني به

abcc
15-06-2008, 06:21 PM
ااه لو مانسيت النظاره
جزاك الله خير الدرس حقيقة منظم ومتعوب عليه ما بتفلسف واقول اني قراته كاملا بس سويت مسح وباذن الله باقراه كامل وباروق عليه قريبا.
واعانك الله على الدرس التالي

achill2005
16-06-2008, 08:23 PM
السلام عليكم
معلّمي هيا أنا متشوّق للدرس الثالث. لا تبطئ علي كثيرا لأنني أنسى إذا كانت الدروس متباعدة

المظفر بالله
16-06-2008, 08:32 PM
يجري التحضير للدرس الثالث وها انا اكتبه :)

taha moh
17-06-2008, 11:43 AM
جزاك الله الف خير

http://file7azm.info/do.php?img=807