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

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



المظفر بالله
17-06-2008, 12:43 AM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين


تعلمنا في الدرس السابق اهم الاساسيات التي يجب ان تكون راسخة في ذهننا طوال برمجتنا , اساسيات من المفترض ان تراعى بكتابة البرامج دوما , وتعرفنا على انواع الجمل وقلنا ان النوع الرابع هي مجموعة اخرى من الجمل وظيفتها القيام بشيء ما تحدده فيما بعد , وذكرت اننا سوف نتعلم ما هي في الدروس التالية , وهنا نحن الآن بصددها , إن شاء الله , لكن بما انه اهم نقطة لترسيخ المعلومة هي التجربة والخطأ , سنتعلم اليوم البدء بإستخدام برنامج Microsoft Visual Studio 6.0 وكتابة اول برنامج عليه .... سيكون الدرس قصير وسهل وبسيط , وسيتم طرح الدرس الرابع مباشرة بعد هذا الدرس بدون اي فاصل زمني ....

1. نذهب الى قائمة ابدا ثم جميع البرامج ثم .... تابع الصورة التالية :

http://www.geek4arab.com/vb/imgcache/8415.imgcache (http://www.geek4arab.com/vb)


2. بعد ذلك سيفتح لا البرنامج , اذهب الى قائمة ملف ثم جديد او استخدم الاختصار Ctrl+N كما في الصورة التالية :

http://www.geek4arab.com/vb/imgcache/8416.imgcache (http://www.geek4arab.com/vb)

3. الآن نجد امامنا الكثير من الخيارات , لاحظ الصورة بالتتالي , نذهب ونظلل ما يؤشر عليه الرقم 1 , نحدد موقعالبرنامج في رقم 2 , ونسميه في الرقم 3 ثم اوكي الرقم 4 :

http://www.geek4arab.com/vb/imgcache/8417.imgcache (http://www.geek4arab.com/vb)

4. الآن نحدد مشروع فارغ , ثم اوكي , ثم تظهر لنا شاشة النتائج ثم انهاء :
http://www.geek4arab.com/vb/imgcache/8418.imgcache (http://www.geek4arab.com/vb)

....

http://www.geek4arab.com/vb/imgcache/8419.imgcache (http://www.geek4arab.com/vb)



5. نذهب مرة اخرى لقائمة ملف ثم جديد ... :

http://www.geek4arab.com/vb/imgcache/8416.imgcache (http://www.geek4arab.com/vb)

6. الآن نجد قائمة جديدة من الخيارات نختار ملف مصدري ... كما في الصورة :

http://www.geek4arab.com/vb/imgcache/8420.imgcache (http://www.geek4arab.com/vb)

7. ها نحن بدأنا العمل وقد كتبت برنامج , والصورة توضح كل عنصر من عناصر البرنامج المهم الآن ان نعرفها ....

http://www.geek4arab.com/vb/imgcache/8421.imgcache (http://www.geek4arab.com/vb)
http://www.geek4arab.com/vb/imgcache/8421.imgcache

8. عندما نريد عمل مشروع جديد او فتح مشروع آخر يجب ان ننتبه لعدة نقاط توضحها هذه الصورة :

http://www.geek4arab.com/vb/imgcache/8422.imgcache (http://www.geek4arab.com/vb)

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

اساسيات للتعامل مع البرنامج وبدء العمل

ان ما ذكرناه في الدروس السابقة ان البرنامج يبدأ من العلى الى الاسفل وذلك بالترجمة فقط , وقلنا سنستفيد من هذه المعلومة لاحقا , ونتركا لما بعد , لكن هنا نريد ان نذكر ان البرنامج يترجم من العلى الى الاسفل , لكن البرنامج يبدأ العمل اعتبارا من الـ main لاحظوا الصورة في النقطة 7 اعلاه , لقد قمنا بكتابة الكود داخل main وهذا يجب التقييد به , ولا يمكن ان نغير هذه القاعدة , وايضا يجب التقييد بحالة الاحرف , خطأ ان تكتب Main او MAIN او اي شيء آخر , اكتبها هكذا main

1. استدعاء المكتبات : ان اهم شيء لعمل البرنامج هو استدعاء المكتبات الضرورية لعملنا , وهذه المكتبات تحتوي الادوات التي نحتاجها , مثلا جملة الطباعة cout<< اذا لم تستدعي المكتبة ostream او iostraem فلن يعمل البرنامج , لذلك عملية الاستدعاء تكون بالشكل التالي : نكتب #include نتقيد بهذا الشكل بدون مسافات ثم نكتب بين <> اسم المكتبة ولا تنتهي بفاصلة منقوطة ...
اهم المكتبات التي شوف تحتاجها هي
iostream.h و windows.h وسنتعلم عن مكتبات اكثر اول بأول ...
مثال عن تعريف مكتبة

#include<iostream.h>


2. كتابة البداية main ... يوجد عدة طرق لكتابة النقظة الرئيسية للانطلاق main ولا تختلف (تقريبا) عن بعضها

اول طريقة


void main()
{
// Your code here كودك هنا
}
ثاني طريقة

int main
{
// Your code here كودك هنا
return 0;
}
طريقة ثالثة

main
{
// Your code here كودك هنا
return 0;
}


3. البرنامج لا يقبل الحروف العربية نهائيا (الا في طرق التوائية وذلك باستخدام "\xdd" التي تعلمناها في الدروس السابقة) , لكن ستقبقى المشكلة في عدم تعرف الدوس على العربية , لذلك لننسى هذا الامر ...

4. اكتب اول برنامج

الآن طبق الخطوا السابقة ونفذ الكود التالي (ارجع للخطو 7 اعلاه وانظر كيف عن طريق الازرار):

#include<iostream.h>
void main()
{
cout<<"Hello , This is my first Program"<<endl;
}لسهولة العمل والسرعة , لعمل بناء للبرنامج اضغط F7 ولتنفيذه Ctrl+F5 وإن شاء الله تكون الامور الآن تمام ...


ارجع للدروس السابقة وطبق ما فيها , لا بأس بالخطأ , طق الدروس التالية دائما ....

جرب , ابدع , إسأل , لا تتردد ليس ما هنالك شيء يخيف (الى الآن :haha:) وحظا موفق ....

ملاحظة , جرب اكتب برنامج لإيجاد مساحة الدائرة (قانون مساحة الدائرة وقوانين اخرى في المرفقات) , بحيث تدخل رقم من الكيبورد وتخزنه في متغير , ثم تطبع الناتج .....

جربوا ايضا مساحات واحجام اخرى , الآن لا تستخدموا القوانين الخاصة بالجيب والجتا والظل او الجذور ....

اسخدموا قيمة باي باعتبارها 22/7.0 او 3.1428 , لا تنسوا استخدام المتغيرات المناسبة وانتبهوا لنوعها int او float الخ ...

سؤال لماذا كتبت 22/7.0 ذكرنا هذه النقطة سابقاً...

للتربيع والتكعيب استخدموا الضرب المتكرر مثل X تربيع استخدموا x*x ....




مباشرة أذهب الى الدرس الرابع ان كنت مستعدا : تابع من هنا (http://www.geek4arab.com/vb/showthread.php?t=2953)
http://www.geek4arab.com/vb/showthread.php?t=2953
وأتمنى لكم التوفيق
:M22:

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


رابط الدرس السابق (الثاني) : http://www.geek4arab.com/vb/showthread.php?t=2897

achill2005
17-06-2008, 02:12 AM
السلام عليكم ورحمة الله وبركاته
فاجأتني و الله أخي. للحين عدت إلى المنزل فتحت الموقع فوجدت درسين عوضا عن درس. الوقت متأخر عندي, سأعود غدا و أنصّب الفيسوال باسيك و أتابع الدروس. بارك الله فيك:goood:

المظفر بالله
17-06-2008, 02:16 AM
السلام عليكم ورحمة الله وبركاته
فاجأتني و الله أخي. للحين عدت إلى المنزل فتحت الموقع فوجدت درسين عوضا عن درس. الوقت متأخر عندي, سأعود غدا و أنصّب الفيسوال باسيك و أتابع الدروس. بارك الله فيك:goood:
الحقيقة ما انتهيت من الدرس الرابع (كان الثالث :ops:) , قلت استنى اشوي لازم احط طريقة العمل على البرنامج لكي يبدأوا بالتطبيق والا لا يمكن ترسيخ المعلومة , فقمت بكتابة الدرس الثالث وتغيير الثالث الى الرابع .... لذلك اصبحا درسين

شعوله
17-06-2008, 02:43 AM
الله يعطيك العافية على تعبك

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

the best
17-06-2008, 02:15 PM
الله يبارك فيك اكثر شي بكره بالسي التطبيق بالمواد التانيه عادي

المظفر بالله
17-06-2008, 02:25 PM
طيب جربي , شو بتخسري ..... :M22:

achill2005
17-06-2008, 06:33 PM
السلام عليكم ورحمة الله وبركاته
:M13:
أخي المظفّر ما فهمت المشكل و هذه هي رسالة الخطأ
--------------------Configuration: lesson1 - Win32 Debug--------------------
Compiling...
Main.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\myproject\lesson1\Main.cpp(4) : error C2065: 'end' : undeclared identifier
Error executing cl.exe.

lesson1.exe - 1 error(s), 0 warning(s)





و هذا هو البرنامج البسيط جدا
#include<iostream.h>
void main()
{
cout<<"hello to my first program"<< end;
}

achill2005
17-06-2008, 06:34 PM
السلام عليكم ورحمة الله وبركاته
أنا عندي win xpsp3

المظفر بالله
17-06-2008, 07:51 PM
اخي في جملة الاخراك هي endl وليس end

cout<<"hello to my first program"<< endl;

وحياك الله اتمنى ان اجد تفاعل مع البقية

achill2005
17-06-2008, 08:07 PM
السلام عليكم ورحمة الله وبركاته
بارك الله فيك على المساعدة.. ممكن لأنني لم أر في السابق سواء في باسكال أو vb.net أو php إلا end
سيتم التجربة الآن

achill2005
17-06-2008, 08:13 PM
السلام عليكم ورحمة الله وبركاته
ما ف مشاكل
يعني في البداية بعد كتابة البرنامج أعمل بناء باستعمال f7
و بعدها أعمل استعمال البرنامج باستعمال CTRL+F5
سيتم عمل برنامج لقيس مساحة شعاع الدائرة

المظفر بالله
18-06-2008, 02:13 AM
بارك الله فيك :good:

واتمنى ان اجد من البقية مزيد من التفاعل وليس كلمات الشكر فقط

عز الرافدين
19-06-2008, 11:14 PM
أصحاب العقول العظيمة لديهم أهداف وغايات، أما الآخرون فيكتفون بالأحلام ....
:good:مشكور اخي المظفر بالله :good:

حســــــــام
21-06-2008, 01:13 AM
مشاءالله تبارك الله

تفاجاءت بكتابة الدرس الثالث والرابع

الواحد يلحق ايه ولا ايه

لكن الله يأجرك على تعبك وشرحك

لدى بعض الاستفسارات:

* نقاط التوقف مافائدتها

* هل عند كتابة الاوامر نبداء بكلمة void او هو متغير ؟؟ او حسب البرنامج الذي سنصممه

* ماهو وجه الاختلاف بين void و int وماهي الفائدة المرجوه منهمها

* انا اول مره استخدم لغة ++C ولم احضر دروس سابقه
"الا في طرق التوائية وذلك باستخدام "\xdd"
ياليت يتم ذكرها وشرحها اذا اسعفك الوقت ...

((والله اني انصدمت انه مايدعم العربيه طيب ماله حل))

* كيف يتم بناء ملف تنفيذي مدموج معه المكتبات اللازمة كما هو موجود في فجول بيسك
لاني بعد ماسويت له Build ظهرت معه ملفات وانا اريده ملف تنفيذي واحد مدموج معه المكتبات

* هل لغة ++C تعتمد على الواجهة السوداء واجهة الدوس

معليه كثرت عليك اسئلة

مرفق ملف

المظفر بالله
21-06-2008, 12:37 PM
مشاءالله تبارك الله

تفاجاءت بكتابة الدرس الثالث والرابع

الواحد يلحق ايه ولا ايه

لكن الله يأجرك على تعبك وشرحك

لدى بعض الاستفسارات:


حياك الله اخي
الصحيح يوجد اعضاء مستعجلين ويوجد مثلك يشوف انه نحن ماشيي بسرعة
لكن على كل الاحوال لكي نكون وسط اطرح الدرس ما بين 3 او 4 ايام بين كل درس وآخر
ولكن هنا اللي صار اني كتبت الدرس الرابع قبل الثالث , والسبب انه شفت انه لازم نبدأ بالتطبيق من الآن وليس من المعقول انه درس الثالث يأخذ فترة طويلة اله ....
على العموم المهلة هذه المة لانه درسين اصبحت اطول يعني الدرس الخخامس ان شاء الله بعد 6 او 7 ايام من طرح الدرس الرابع وحياك الله


* نقاط التوقف مافائدتها


نقاط التوقف , الصحيح اعتقد تقصد Breakpoint
شوف الموضوع هذا يفيدك
http://www.geek4arab.com/vb/showthread.php?t=1365



* هل عند كتابة الاوامر نبداء بكلمة void او هو متغير ؟؟ او حسب البرنامج الذي سنصممه

* ماهو وجه الاختلاف بين void و int وماهي الفائدة المرجوه منهمها


لا الاوامر لا تبدأ بvoid الذي يبدا بـ void او int الخ هو اسماء الدالات , سوف نتطرق لها وستتوضح الصورة في الدرس الخاص بالدالات فيما بعد , بس طول بالك اشوي
ومثل ما قلت انه في دروس لاحقة ستعرف الكثير هنالك



* انا اول مره استخدم لغة ++C ولم احضر دروس سابقه
"الا في طرق التوائية وذلك باستخدام "\xdd"
ياليت يتم ذكرها وشرحها اذا اسعفك الوقت ...

((والله اني انصدمت انه مايدعم العربيه طيب ماله حل))


اخي ببساطة الـ "\xdd" مثلما ذكرت انك تعطيها رقم بالهيكسا ويطبع لك الرمز المقابل , وكل حرف بالكيبورد له رقم مقابل له , يعني جرب اطبع
cout<<"\x03"<<endl;
شوف الناتج , جرب ارقام اخرى في كل مرة رح يطبع لك حرف غير او رمز غير , هذا الرقم هو ما يدعى بالـ ASCII كود للحرف او الرمز




* كيف يتم بناء ملف تنفيذي مدموج معه المكتبات اللازمة كما هو موجود في فجول بيسك
لاني بعد ماسويت له Build ظهرت معه ملفات وانا اريده ملف تنفيذي واحد مدموج معه المكتبات


فيه طريقة رح نتعلمها اخي , الامر موجود و لكن على مهل لانه لو اعملنا له Build الآن مش رح تشوف اشي سوى شيء اسود ظهر واختفى , اول اشي رح نثبت الشاشة ورح نتعلمها بعدين



* هل لغة ++C تعتمد على الواجهة السوداء واجهة الدوس


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



معليه كثرت عليك اسئلة

مرفق ملف

ولا يهمك وشفت المرفق
الله يعطيك العافية بس لو تتطبق الاسئلة
وحياك الله

حســــــــام
21-06-2008, 04:06 PM
اعذرني نبي نفهم :ops:

اولا : الا ترى معي ان العملية مجهدة ادور حرف حرف فقد جربتها

ثانيا: انا لايهمني ان تظهر الكلمات العربيه بالشاشة السوداء

الذي يهمني ان يظهر الكلام العربي على واجهة البرنامج كمثال حين نصمم بالفيجول نكتب الكلام بالعربي عندما نصمم النموذج

ثالثا : اي اسئلة اطبقها ؟؟

ارجوا ان يتسع صدرك ولاتكره الدوره بسببي :M19:

المظفر بالله
21-06-2008, 06:16 PM
اعذرني نبي نفهم :ops:

اولا : الا ترى معي ان العملية مجهدة ادور حرف حرف فقد جربتها

ثانيا: انا لايهمني ان تظهر الكلمات العربيه بالشاشة السوداء

الذي يهمني ان يظهر الكلام العربي على واجهة البرنامج كمثال حين نصمم بالفيجول نكتب الكلام بالعربي عندما نصمم النموذج

ثالثا : اي اسئلة اطبقها ؟؟

ارجوا ان يتسع صدرك ولاتكره الدوره بسببي :M19:

بالنسبة لـاولا , لماذا تتعب نفسك وانت تكتب بالانجليزية عادي , لكن ذه تفيد في حالة الاحر الخاصة مثل ♥ و ♦ و ♣ الخ
انظر الصورة التالية
http://www.geek4arab.com/vb/imgcache/8538.imgcache

حمل الاحرف من هنا
http://www.physik.fu-berlin.de/~goerz/misc/ascii.pdf

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

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

وحياك الله , :) :) :)

شعوله
23-06-2008, 04:00 AM
ملاحظة , جرب اكتب برنامج لإيجاد مساحة الدائرة (قانون مساحة الدائرة وقوانيناخرى في المرفقات) , بحيث تدخل رقم من الكيبورد وتخزنه في متغير , ثم تطبع الناتج .....



للأمانة ما طبقت الكود على برنامج الـ visual studio




http://www.geek4arab.com/vb/imgcache/8558.imgcache



**********************************************



سؤاللماذا كتبت 22/7.0 ذكرنا هذه النقطة سابقاً...





Because you want to be obtained double number

المظفر بالله
23-06-2008, 05:45 AM
:haha: :haha: :haha:
ما شاء الله
استخدمتي مكتبة math ,,, طيب ممتاز انك تفاعلتي معنا
طيب ليش ما طبقتيه على فيجوال ستيديو :ops:

مش مشكلة الكود تبعك نقدر نقول عنه تمام

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

2. استخدامك للمتغير area من نوع int سيطبع ناتج صحيح ويهمل اي عدد عشري مثلا لو كانت مساحة الدائرة 25.999999 سيطبع 25 ....

3. فيه خطأ بسيط ارعي لاسم المتغير radius ايش كاتبيته بالمعادلة لحساب لدائرة :hehe:

والله يعطيك العافية :good: :good: :good: :good: :good:

شعوله
23-06-2008, 03:48 PM
:haha: :haha: :haha:
ما شاء الله
استخدمتي مكتبة math ,,, طيب ممتاز انك تفاعلتي معنا
طيب ليش ما طبقتيه على فيجوال ستيديو :ops:

مش مشكلة الكود تبعك نقدر نقول عنه تمام

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

2. استخدامك للمتغير area من نوع int سيطبع ناتج صحيح ويهمل اي عدد عشري مثلا لو كانت مساحة الدائرة 25.999999 سيطبع 25 ....

3. فيه خطأ بسيط ارعي لاسم المتغير radius ايش كاتبيته بالمعادلة لحساب لدائرة :hehe:

والله يعطيك العافية :good: :good: :good: :good: :good:


طيب ليش ما طبقتيه على فيجوال ستيديو

لأني ما حملت البرنامج الى الأن أن شاء الله بحمله اليوم ....ما خلصت من أمتحاناتي إلا أمس

أعدت كتابة الحل ووضعته ضمن الملفات المرفقة

http://www.geek4arab.com/vb/imgcache/8641.imgcache

prinseesa
09-07-2008, 10:48 PM
ثاني طريقة

int main
{
// Your code here كودك هنا
return 0;
}
طريقة ثالثة

main
{
// Your code here كودك هنا
return 0;
}





مو المفروض
في الطريقة الثانية
int main()
والثالثة
main()

يعني وجود الاقواس()

مشكور مظفر على جهودك الله يعطيك العافية

هل ستتابع الدروس؟؟:thinking:

المظفر بالله
09-07-2008, 11:14 PM
اوبس نسيت :ops:
شكرا على التنبيه
الدروس ان شاء الله ساتبايعها لكن تم تاجيلها لاسباب كثيرة سيتم توضيحها ان رغبتم
لكن ان شاء الله ان كان في العمر بقية اكمل

بروفسورنت
15-08-2008, 09:54 AM
جزاك الله الف خير

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