الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

للمبتدئين .. دراسة مزيدة ومنقحة

مغلقاستطلاع
بدأه الجيش في 6 يونيو 2003 · 25 رد · 2,340 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام

استطلاع

15 مشارك في التصويت

????????? .. ????? ????? ??????

??? .. ?????10 صوت · 67%
???4 صوت · 27%
????1 صوت · 7%
??0 صوت · 0%
?? ???? ?? ??? ???????0 صوت · 0%
#1 صاحب الموضوع

السلام عليكم ..

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

A Hello World project

Coding

Data types

Arthmetic Operations

Mixed Mode

Periority of operators

Selection

Libraries

Built in Functions

Logic Operators

Switch

Repeatitive Structures

Short Hand

Sentinal values

Nesting

Validation

String

Arrays

Top Down Design

Parameters

Data Structuer

Files

2D Arrays

Structs

Pointers

Linked Lists

Classes

Recursion

والله الموفق ..

#2

نتظرها انا حابه اتعلم المؤشرات

#3

بداية .. لابد وأن نعرف : Hello World

#include <iosream>

using namespace std;

int main()

{

cout<<"Hello World"<<endl;

return 0;

}

وبهذا نكون قد قدمنا الشكل العام للكود .

#4

الدرس الأول:

لابد وان نتعلم اولا بعض المبادئ الأساسية :

1- لغة السي بلس بلس من الغات الحساسة لحالة المفاتيح Case Sensitive أي أنها تستطيع التفرقة بين الحالتين lower case و upper case . وهذا يعني أن اي حالة أي حرف من حروف أي كلمة يمكن أن يتسبب في عديد من المشاكل .. مثلا عند كتابة كلمة #include بالشكل التالي :#Include أو #INCLUDE سوف يتسبب في خطأ syntax error .

#5

2- هناك كلمات معينة يحفظها السي لنفسه وتكون دوما ملونة بالأزرق – في فيجوال سي بلس بلس – وهي دائما lower case ولا يمكن استخدامها بغرض مخالف للغرض الذي انشأت من أجله. وهي:

asm, auto, break, case, catch, char, class, const, continue, default, delete, do, double, else, enum, extern, float, for, friend, goto, if, inline, int, long, new, operator, private, protected, public, register, return, short, signed, sizeof, static, struct, switch, template, this, throw, try, typedef, union, unsigned, virtual, void, volatile, while.

#6

3- نلاحظ ان معظم الكلمات متعارف عليها في اللغة الإنجليزية ويتم استخدامها ببساطة على العكس من بعض لغات البرمجة الأخرى التي تعد كلماتها أشبه بالطلاسم – إن لم تكن كذلك بالفعل – ويرجع ذلك لسبب بسيط وهو أن لغتنا السهلة من لغات البرمجة عالية المستوى High level language والتي تتسم بسهولة كتابتها على العكس من لغات البرمجة منخفضة المستوى Low level language .

#7

4- لغة السي بلس بلس من اللغات التي تسمح لك باستخدام دوال معدة مسبقا على أيد المبرمجين الذين قاموا بإنشاء مكتبات هائلة ووضعها طوع بنانك لتستدعيها وقتما تحتاج إليها .. على سبيل المثال دالة جيب الزاوية (جا sin) .. فلست في حاجة لأن تقوم ببرمجتها مستخدما قوانين نيوتن أو أيا كانت الوسيلة .. كل ما عليك أن تفعله هو أن تستدعي المكتبة الخاصة بالعمليات الحسابية (math.h) أو (cmath) و لكننا يجب أن نراعي أن بعض المكتبات تختلف باختلاف البيئة الخاضة باللغة (C++ Environment).

#8

5- هناك مجموعة من اللوائح والقوانين التي تنظم طريقة كتابة الكود من ترتيب الكلمات والجمل واستخدام الأنواع المختلفة من العلامات والأقواس والفصلات في أماكنها.. إلخ، حتى يستطيع المترجم الخاص باللغة ترجمتها للكمبيوتر .. بدون هذه اللوائح لن يستطيع المترجم ان يفهم ما تقوله وبالتالي فإنه لن يقوله بدوره للكمبيوتر. تخيل انك لا تجيد اللغة الفرنسية ومع ذلك تحاول أن تقدم نفسك بالفرنسية لمترجم يقوم بالترجمة من الفرنسية إلى الصينية فقط ولا يعرف سوى هاتين اللغتين، وهو يترجم كلامك لعملائك القادمين من الصين .. هذا المترجم لن يتعرف إلا على الكلمات الصحيحة فقط لأنه لابد من اتباع الطرق الصحيحة فاللغة لتكون معروفة للجميع. لحسن الحظ أن المترجم الخاص بلغتنا Compiler يقوم أولا بفحص الكود قبل بناء البرنامج ويحاول أن يجد الأخطاء بدقة ، ويعلمك به.

#9

والآن يمكننا أن نرى الشكل العام للكود:

#include <iosream>	//include the libraries needed 	 

using namespace std;	//the namespace here is called std (standard)

int main() 	 //main function

{

	cout<<"Hello World"<<endl;	//the output stream (to display)

	return 0;    //return statement

}

نلاحظ أن السطر الأول يحتوي على المكتبة (library) المسماة (iostream) ومعناها (Input/Output stream) ونلاحظ أنها من المكتبات المدمجة باللغة system library ولذا فأننا نستدعيها بالرمزين < > ونستخدم معها namespace تدعى std ويعني standard . هذين السطرين يدعا (Preprocessor Directives) . ثم ننتقل للدالة الرئيسية .. ويظهر في البداية رأس الدالة الرئيسية للبرنامج (Main program heading) وهو يوضح نوعها وما تستقبله من Arguments في بداية التشغيل. وفي قلب الدالة نجد قسمين: قسم التعريفات Declaration – غير موجود بالأعلى - و قسم الجمل Statement.

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

#10

اليوم سنكمل كيفية كتابة الكود:

لاحظ الكود التالي:

#include <iostream>

using namespace std



int main ()

{



int x;



cout<<" Please enter an integer number"<<endl;

cin>>x;

cout<<"The number you entered is "<<x<<endl;

cout<<"The number squared is "<<x*x<<endl;

cout<<"Thank you"<<endl;



}

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

#11

نلاحظ أن قسم التعريف موجود بالأعلى دائما رغم أننا يمكننا أن نعرف أي instance في أي مكان بالبرنامج .. ولكننا نهتم بأن يكون لنا style معين في كتابة الكود وهو المتعارف عليه , حتي يسهل قراءة الكود من قبل أي مبرمج.

ونلاحظ أيضا أن الجمل statements تنتهي بـفصلة منقوطة semi-colon وهي بالنسبة للمترجم compiler علامة هامة جدا وتعني انهاء الجملة statement termination وفقدانها يعني العديد من المشكلات في الأخطاء لأن الجمل ستصبح مشبكة و ذلك يعقد الأخطاء أكثر ويصعب تصحيحها.

#12

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

عموماً إن شاء الله بس أخلص إمتحاناتي راح أساعد المتصدين لمواضيع الشروحات بعد إذنهم طبعاً..............

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

هذا إذا سمحت ليي

#13

مشكورا يا أخي .. وبارك الله فيك ..

كما ترى فالدروس للمبتدئين وسوف نحتاج لجهود الجميع للشرح ويتم ذلك إن شاء الله بالتنسيق بيننا لتفادي التكرار .

وكما ترى فإن الشرح سيكون إن شاء الله مزيد وبالتفاصيل المملة لبناء قاعدة راسخة من المعلومات لدى المبتدئين.

وفقك الله في امتحاناتك ..

#14

آسف للتأخير وذلك بسبب ال Summer Session التي أدرس بها الآن...

نبدأ اليوم بسرد أنواع البيانات Data Types .... انظر الملف المرفق.

datatypes.zip

#15

الله يوفقك

#16

شكرا لك اخي الكريم

#17

مشكورة على هذه الدروس الطيبة والله يعطيك العافية

ونحن بإنتظار المزيد :)

#18

نتابع معا بالعمليات الحسابية Arthmetic Operations

الحاسب الآلي لا يستطيع القيام إلا بعملية حسابية واحدة فقط .. الجمع

بينما يقوم بتحويل العمليات الباقية (الطرح , الضرب , القسمة ،..) إلى صورة من صور الجمع المعقدة وبذلك يستطيع القيام بها ..

الجمع:

int a =2, b=3,c;



c = a + b;

في العملية السابقة قمنا بجمع قيمتي المتغيرين a , b ثم خصصنا الناتج ليصبح قيمة المتغير c .

يمكننا إجراء العمليات الحسابية كــexpression داخل جملة cout مثلا :

cout<<3+4<<" "<<a+b;

وتسير باقي العمليات على نفس المنوال

رمز الجمع +

رمز الطرح -

رمز الضرب *

رمز القسمة /

رمز باقي القسمة %

وباقي القسمة هي عملية نقوم فيها بإيجاد باقي قسمة عدد على عدد آخر .. بمعنى أن

3%2=1

12%4=0

5%101=5

101%5=1

وهكذا ....

#19

شكرا لك أخي الجيش على هذا الدرس الرائع

ولكن لدي سؤال أرحو منك الإجابة عليه ، الكود السابق أين يجب كتابته فعندما ضغطت على File ثم New

ظهرت لدي الكثير من الـ Projects فلم أعرف أي منها يجب إختيارها

ملاحظة : أنا مبتدء بالـ VC++

وشكرا لك .

#20

الأخ fadi2003

إذا كنت تستخدم فيجوال ستديو 6 فكل ما عليك أن تفعله هو أن تفتح ملف جديد من النوع C++ source file و امتداده cpp

اما بالنسبة للدوت نت (وهو على الأرجح البيئة التي تستخدمها) فاختر مشروع Managed C++ Empty Project من المجلد Visual C++ projects ثم اعطي المشروع اسما وحدد مجلد Source Files من Solution Explorer واضغط بالزر الأيمن للماوس واختر Add كي تضيف إما ملفا جديدا أو ملف سبق أن كتبته .. ويمكنك أن تكتب الكود في أي منسق نصوص حتى Notepad ولكنك لن تستطيع أن تعمل له Compile أو Build إلا في الفيجوال ستديو بالطبع.

#21

البرنامج الذي أستخدمه هو :Microsoft Visual C++ وقد استخدمت الـ Source File لأني لم أجد

( Managed C++ Empty Project) وكتبت الكود التالي :

#include

using namespace std;

int main()

{

cout<<"Hello World"<

return 0;

}

فأعطاني رسالة بوجود خطأ واحد , فأين هذا الخطأ .

وسؤال ثاني لوسمحت ما هو الفرق بين الـ C++ و الـ Vc++ وأيهما أفضل

وشكرا جزيلا لك .

#22

السلام عليكم أخي الكريم الخطأ في كتابتك للمكتبة iostream

#include 
using namespace std;
int main()
{
cout<<"Hello World"<return 0;
}
#23

أنا آسف .. الخطأ من عندي أنا في الكتابة

المكتبة iostream وتعني Input / Output Stream

أما بالنسبة للفرق فإن حرف الV يعني Visual أي مرئي ولأنك تستخدم الماوس والعالم من حولك يسير ببساطة شديدة ببضعة نقرات ونوافذ(Graphical User Interface).

نفس الفرق موجود بين البيسك والفيجوال بيسك .. البيئة الأولى نصية مثل الدوس والأخرى بالنوافذ وتستطيع أن تخرج مشروع يعمل بالنوافذ أيضا بدلا من الConsle Application التي نعملها حاليا في البداية. الخلاصة أن الفرق بينهما يماثل الفرق بين الويندوز (GUI) والدوس (Text Interface)

#24

نتابع معا بال Mixed Mode

ومنه نستطيع أن نتعرف على ناتج العمليات الحسابية الناتجة عن معاملين من نوعي بيانات مختلفين (من مجموعة الأرقام بالطبع numerals)..

و نختص بالذكر النوعين int و float فكل ما يسري على int يسري أيضا على جميع الأعداد وأنواع البيانات الصحيحة , وكل ما يسري على float يسري أيضا على جميع الأعداد وأنواع البيانات العشرية .

فمثلا : ما ناتج جمع (3+4) ؟ الناتج =7

جمعنا عددا صحيحا على آخر فيكون الناتج عددا صحيحا..

انظر جيدا للأمثلة التالية:

2+3=5

5.5+2.6=8.1

5.0+3.0=8.0

2+2.0=4.0

1+3.2=4.2

ومن هنا نلاحظ أن في جميع الحالات يكون الناتج عشريا إلا إذا كان المعاملين كلاهما عددين صحيحين.

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

6/3=2

6.0/3=2.0

6/3.0=2.0

6.0/3.0=2.0



7/2=3

7.0/2=3.5

7/2.0=3.5

7.0/2.0=3.5

نلاحظ أن عند قسمة 7 / 2 يكون الناتج 3 حيث يتم إهمال أي الكسر تماما ولا يتم تخزينه في قيمة العدد (لو أنه في متغير) في الذاكرة ..

ولو أننا قسمنا 2 / 7 لكان الناتج صفرا .. وتسمى قسمة عددين صحيحين بالقسمة الصحيحة (Integer Division)

#25

أولا أحب أشكرك على مجهودك الذي أقدره تمام في شرح اللغة من الصفر.

ودنا نساعدك ولكننا مبتدئين ،فأعانك الله ووفقك.

ولي سؤال بسيط بما أنك شرحة القسمة ياليت تشرح باقي القسمة لانه هي التي يحصل فيها اللبس ...%

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

هذا الموضوع مغلق.

مواضيع مشابهة