قسم لغات البرمجة php java c++ جافا Visual Basic فيجوال بيسك c# Delphi دلفي API PERL HTML و TML JavaScript ASP XML Oracle اوركال MySql sql server Access

   

kandeel
:: مهندس ::
تاريخ التسجيل: Feb 2005
المشاركات: 13
نشاط [ kandeel ]
قوة السمعة:
قديم 24-05-2005, 05:09 PM المشاركة 9   
افتراضي



استاذى انا لسه بتعلم لغه برمجه جديد بس عايز اعرف اشتغل على الفيجوال بيسك و لا ال ++c
و ما الفرق بينهما

اعلانات

الصورة الرمزية حمزة أحمد
حمزة أحمد
:: عضو ذهبي ::
تاريخ التسجيل: Oct 2004
الدولة: أرض الكنانة
المشاركات: 251
نشاط [ حمزة أحمد ]
قوة السمعة:
قديم 25-05-2005, 09:29 PM المشاركة 10   
Post


استاذى انا لسه بتعلم لغه برمجه جديد بس عايز اعرف اشتغل على الفيجوال بيسك و لا ال ++c
و ما الفرق بينهما
السلام عليكم ورحمة الله وبركاته
الفرق بين لغة السي والفيجول بيزك ان لغة السي تتعامل مع نظام التشغيل dos اما الفيجول عموما فهي تتعام مع ال window
عموماً لكونك مبتدئ في تعليم البرجة فانا انصحك ان تتعلم اولاً الفيجول بيزك لانها تمتاز بالسهوله
وللعلم ان لغة الفيجول بيزك ظهرت اساساً للمبتدئين في البرمجة ومن ثم تعلم السي ++
وشكراً علي حسن اهتمانكم

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية حمزة أحمد
حمزة أحمد
:: عضو ذهبي ::
تاريخ التسجيل: Oct 2004
الدولة: أرض الكنانة
المشاركات: 251
نشاط [ حمزة أحمد ]
قوة السمعة:
قديم 18-06-2005, 07:59 PM المشاركة 11   
افتراضي


التعليقات comment

تلعب التعليقات دوراً كبيراً في كتابة البرامج علي الرغم من انها ليس لها اي علاقة بالمترجم (compiler) حيث ان المترجم يتغاضي عنها عند بدء تنفيذ البرنامج
وبوجة اخر فالتعليقات مفيدة للمبرمج وليس للمستخدم اي ان التعليقات لا تظهر الا في الكود وليس لها اي تاثير عند تشغيل البرنامج
وتعتبر التعليقات بمثابة الارشادات اي انها تفيد المبرمج في سبب كتابة لهذا الطود او بمعني اصح تذكرة بذلك
فعندما يقوم المبرمج بكتابة اي برنامج فنه حتماً ولا بد ان ينسي المبرمج الكود والفكرة الرئيسية التبي كتب بها البرنامج
فمثلاً عندما نكتب كود ما لعمل اي وظيفة ما في البرنامج ففي كل سطر نكتب الفائدة منه او سبب كتابتة بالغت المبرمج اي اللغة الانسانية وليست لغة الكمبيوتر او لغة البرمجة
والان سوف نطرح كيفية كتابة هذه التعليقات في لغة السي ++
توع العلامة// قبل التعليقات
مثلاً
كود:
// this statment to addition the numbers
واذا اردت ان تكتب اكثر من سطر فيوضع في بداية السطر الاول */ وفي نهاية السطر الاخير /*
مثلاً
كود:
/* this order   ..
.
.
.
.... */
وهكذا
واعلم ان التعليقات لتسهيل كتابة البرنامج

وأيضاً لتسهيل كتابة البرامج يفضل كتابة اسماء المتغيرات باسماء تدل علي وضيفتها لايس باي رمز حتي يكون البرنامج اكثر سهوله للقراءة وللفهم وليس بالمعقد
مثلأً
اذا ارت ادن تكتب متغير يعبر عن رقم ID فلا يكون x بل يكون id
هذا ولله التوفيق
************************************************


الصورة الرمزية حمزة أحمد
حمزة أحمد
:: عضو ذهبي ::
تاريخ التسجيل: Oct 2004
الدولة: أرض الكنانة
المشاركات: 251
نشاط [ حمزة أحمد ]
قوة السمعة:
قديم 18-06-2005, 08:07 PM المشاركة 12   
الدوال Function


الدوال Function
هذا الدرس يعتبر اتقال كبير في البرمجة بلغة السي بلس بلس
فما هي الدوال function ؟
الدوال function هي بعض الاوامر يتم كبسلتها تحت مسمي واحد وهو اسم الدالة function name حيث كلما كتب اسنها في الكود يتم تنفيذ هذه الاوامر
ومن هنا تسنتج ان الدوال تستخدم في الاوامر التي تتكرر اكثر من مرة في الكود
فمثلاً اذا ارت ان تكتب برنامج يرتب مجموعة ارقام تصاعدياً في سلسة ما (سيتم توضيع ما هي السلسلة فيما بعد) فعندما تجد الرقم x مثلاً اصغر من الرقم y ويسبقة في السلسلة فيجب تبديل قيمة الرقمان مع بعضهما البعض لذلك فانت تقوم بعمل الدالة التي تقوم بذلك وكلما تجد مثل حالة الرقمان x و y تنادي الدالة باسمها
وتعال نبدأ بهذه الدالة لشرح كيفية عمل الدوال في لغة السي بلس بلس

اولاً تكتب الدالة خارج نطاق main فوقها او تحتها
ولكن ان كتبت الدالة تحت نطاق main فيجب تعريفها فوق النطاق
ومن هنا سوف تتسال ولما لا تكتبها فوقها دائماً ؟
واجيبك ان الكتابة تحت ال main له مميزات عن الاخري سوف تعلما باذن الله .

والان نبدأ بكتابة الدالة exchange -التي تاخذ رقمان وتبدل قيمتهما - بغض النظر عن موقع كتابة الداله

كود:
void exchange(int x , int y)
{
	int z = y;
	y = x ;
	x = z ; 
}
نجد ان وظيقة هذه الدالة هي تبديل قيمة متغيران مثلاً اذا كانت قيمة x هي 5, وقيمة y هي 1 بعها نجد العكس اي x بـ 1 و y بـ 5

**ونبدأ بشرح كيفية كتابة الدالة function وخواصها
--في هذا المثال بدانا كتابة الدالة بـ void حيث هذا يدل ان الدالة لا ترجع قيمة اي لا نكتب return في نهايتها
بمعني ان الدالة ممكن ان تاخذ قيمة ما وترجع تربيعها وبالتالي يجب ان تكتب بدل void بـ int أو float أو double علي حسب البرنامج ولكن في المثال السابق لا تحتاج الي ان ترجع الدالة قيمه لانها لا تقوم بعملية حسابية

ملحوظة
(( اذا كانت الدالة ترجع قيمة ما مثلأً int يمكن ان توضع الدالة بعد علامة = حين استدعاءها
مثلاً
كود:
 x = square(y);
ولكن يجب ان يكون x لها نفس نوع القيمة التي ترجعا الدالة
مثلأص اذا لاكانت الدالة ترجع int فيجب ان تكون x من نفس النوع int
اما اذا كانت الدالة لا ترجع قيمة مثل المثال السابق فلا نستطيع ان تضعها بعد علامة = ))

-- بعد void نكتب اسم الدالة التي هي في المثال السابق exchange والذي سوف تستخدمة عند استدعاء الدالة
ويكتب بعد الاسم مباشراً (دون اي مسافة) بين قوسين () اسم المتغير الذي سوف ترسله للدالة ونوعة ونفصل بين اي متغيرين بالفاصلة ,
ففي المثال السابق تاخذ الدالة متغيرين x وy وكلاهما من نوع int
لذا تم كتابتهم بالهيئة الموضحة في المثال السابق

ملحوظة
(( عند استدعاء الدالة وكتابة المتغيرات لا يشترط ان يكونو بنفس الاسم وانما تستخدم هذه الاسماء في نفس كود الدالة فقط ولكن يشترط ان يكونو من نفس النوع
اي يجب ان يكونوا int في حالة المثال السابق
مثلاً عند استدعاء الدالة السابقة تكنب ما يلي
كود:
exchange( b , t ) ;
من الملاحظ اننا لم نكتب نوع المتغيرين b , t لكن كما ذكرنا يجب ان يكونا من نوع int
وايضاً لا يشطرط ان يكونوا لهما نفس الاسم المعرفين في الدالة الا وهما x , y
))

--وبعد ذالك تفتح القوس { الذي هو بداية نطاق الدالة function scope والتي يكون x ,y معرفان في هذا النطاق
ويكتب بعد هذا القوس اوامر الدالة function statments التي سوف يتم تنفيذها
واخيراً نختم الدالة بـ } الذي هة يعبر عن نهاية نطاق الدالة

ملحوظه
(( اذا كانت للدالة قيمة ترجعها يجب كتابة retern x; حيث x من النوع الذي ترجعة الدالة ))..

رجاء اي جزء غير مفهوم فلا تتاخر في السؤال فية لان هذا الموضوع مهم جداً وبة مصطلحات جديدة سوف نعتمد عليه فيما بعد


الصورة الرمزية حمزة أحمد
حمزة أحمد
:: عضو ذهبي ::
تاريخ التسجيل: Oct 2004
الدولة: أرض الكنانة
المشاركات: 251
نشاط [ حمزة أحمد ]
قوة السمعة:
قديم 04-08-2005, 10:14 PM المشاركة 13   
win الدرس الثاني في fuction الدوال


الدرس الثاني في fuction الدوال
ذكرنا فيما سبق عن كيفية كتابة الدالة وطرق صيغتها وذكرنا مثلاً علي ذلك وهي دالة Exchange التي تقوم بتبديل قيمة متغيران مع بعضهم البعض
وكتبناها كالاتي

كود:
void exchange(int x , int y)
{
	int z = y;
	y = x ;
	x = z ; 
}
ويبقي لنا ان نشير الي موضوعان من الموضوعات المهمة وهما:
1- طرق ارسال المتغيرات الي الدوال
2- اماكن كتابة الدوال ومميزات كتابتها اسفل دالة ال main ((البرنامج))

1- في المثال السابق إذا استخدمت هذه الدالة ففي البرنامج الرئيسي main ستجد قيمة x و y لم تتغير
بمعني
اذا كتبت هذه الدالة وفي ال main()
مثل هذا البرنامج
كود:
#include<iostream.h>
void exchange(int x , int y)
{
	int z = y;
	y = x ;
	x = z ; 
}
void main()
{

	int a = 8;
	int b = 9 ;
	cout<< a <<b<<endl;
	exchange(a,b);
	cout<<a<<b<<endl;
}
سيكون ناتج البرنامج
8 9
8 9
نجد ان قيمة a و b لم تتغير
واذا كتبت نفس البرنامج وكتبت cout في الدالة exchange كالاتي

كود:
#include<iostream.h>
void exchange(int x , int y)
{
	int z = y;
	y = x ;
	x = z ; 
	cout<<x<<y<<endl;
}
void main()
{

	int a = 8;
	int b = 9 ;
	cout<< a <<b<<endl;
	exchange(a,b);
	cout<<a<<b<<endl;
}
نجد ان تاتح البرنامج كالاتي
8 9
9 8
8 9
ومن هنا نستطيع ان نقول انه تم تبديل قيمتا x و y أو بمعني أصح قيمتا a و b
في الدالة exchange فقط وعند عودة المترجم الي الmain نجد ان قيمتهما رجعت الي اصلهما
فما سبب ذلك؟؟
يرجع ذلك الي وجود طرق لارسال المتغيرات من ال main الي الدالة function
ففي المثال السابق كنا قد ارسلنا المتغيرات بما يسمي ارسال بالقيمة byvalue حيث يقوم المترجم بارسال قيمة نسخة من قيمة المتغيرات ولا يرسلها ذاتها
وبالتالي عندما نعود الي الmain نجد ان قيمة المتغيرات الاصلية كما هي
ونستخدم هذه الطريقة في البرامج التي نحتاج الي قيمة هذه المتغيرات دون الحاجة الي التغير في البرنامج الاصلي في ال main مثلأً
ولكي نستخدم هذه الطريقة لا نزيد اي شيء عند المتغيرات التي سوف نرسلها كما في المثال السابق.

** أما بالنسبة للطريقة تسمي ارسال بالاصل byreference وواضح اننا نرسل المتغيرات نفسها وليس نسخة منها وإذا تم أي تغير في قيمة المتغير في الدالة سيتم التغير في قيمة المتغير الأصلي وحتي عند العودة من الدالة الي البرنامج الذي تم استدعاء الدالة عنده.
ولكي نستخدم هذه الطريقة يجب اضافة علامة & قبل اسم المتغير في تعريف الدالة فقط
وهذه النوع من الارسال هو الذي نحتاجة في المثال السابق حتي يحدث التغير المطلوب في البرنامج الرئيسي
ونعيد كتابة البرنامج كما ياتي
ونزيد فقط & قبل كلاً من x و y في تعريف الدالة فقط.

كود:
#include<iostream.h>
void exchange(int & x , int& y)
{
	int z = y;
	y = x ;
	x = z ; 
	cout<<x<<y<<endl;
}
void main()
{

	int a = 8;
	int b = 9 ;
	cout<< a <<b<<endl;
	exchange(a,b);
	cout<<a<<b<<endl;
}
ويكون ناتج البرنامج كما يأتي
8 9
9 8
9 8
ونلاجظ انه قد تم بالفعل تغير قيمة كلاً من a and b في ال main
انتبة::
((لا تكتب & عند استدعاء الدالة كما هو ملاحظ في المثال السابق اننا لم نكتبها عند الاستدعاء وكتبناها فقط في التعريف))
يوجد طريقة ثالثو من اراسال المتغيرات وهي ارسال بالعنوان حيث نرسل عنوان المتغير ولكن لن ندرسة الان وانما بعد دراسة المؤشرات

ملحوظة :: يمكن ان يكون نوع احد المتغيرات يرسل بالقيمة والاخر بالاصل اي ان تخلط بينهم مثل
int MyFunction( char & x , int y , float & z)


2- اماكن كتابة الدوال ومميزات كتابتها اسفل دالة ال main ((البرنامج))

كما ذكرنا من قبل انه يمكنك كتابةتعريف الداله اعلي أو أسفل الmain واشترطنا عند كتابتها أسفل الـmain أن نعرف اسمها أعلي الmain
ويوضح البرنامج السابق كتابتها أعلي الـmain
ونعيد الان كتابة البرنامج بكتابة تعريف الدالة exchange أسفل الmain

كود:
#include<iostream.h>
void exchange(int &  , int& ); // يشترط كتابة هذا السطر ولكن دون اسماء المتغيرات ونكتب نوعا فقط وطريقة الارسال
void main()
{

	int a = 8;
	int b = 9 ;
	cout<< a <<b<<endl;
	exchange(a,b);
	cout<<a<<b<<endl;
}
void exchange(int & x , int& y)
{
	int z = y;
	y = x ;
	x = z ; 
	cout<<x<<y<<endl;
}
كما هو موضح اننا يجب ان نعرف اسم الدالة والقيكة التي ترجعها(( التي هي في المثال void )) ويتم كتابة نوع المتغيرات التي سوف يتم ارسالها دون كتابة اسمائها كما هو موضح ونكتب ايضاً & إذا أردنا ان نرسل المتغيرات بالقيمة by reference

<إنتبه>
(((
* يجب ان يتوافق نوع المتغيرات في تعريف الدالة في الاعلي وكتابة اوامرها في الاسفل اذا كان المتغير الاول int يجب ان يتوافق في الاعلي والاسفل
* ويتوافق ايضاً نوع ارسال المتغير اذا كان با لقيمةby value أو بالأصل by referance
*وأيضاً نوع القيمة التي سترجعها الداله أو انها لا ترجع قيمة والتي هي في المثال السابق void
*نلاحظ انه بعد كتابة تعريف الدالة أعلي الmain يجب وضع الفصلة المنقوطة ;
)))

ميزة كتابة الدوال اسفل الـmain بإمكننا كتابة قيمة افتراضيه لاي من المتغيرات التي سوف نرسلها للدالة بحيث اننا يمكن لنا ان لا نرسل قيمة لهذه المتغير
مثلاً
كود:
void myfunction(int x)
لكي نجعل قيمة افتراضية ل x مثلاً 6 بحيث اذا لم يتم ارسال متغير او قيمة للدالة لx تعتبر قيمة x تتعامل الدالة مع x بالقيمة الافتراضية ولا يحدث اي خطأ برمجي
ولكي نحدد هذه القيمة الافتراضية
نأتي في تعريف الدالة أعلي الـmain
ونكتب
كود:
void myfunction(int x = 5);
نلاحظ ان في هذه الحالة نكتب اسم المتغير ويجب ان يتوافق أيضاً مع اسمه في كتابة الدالة أسفل الـmain

تمارين
1)) أكتب برنامج يحسب المعادلة x= x^2 + 3y^2 + 78z^4 باستخدام دالة تحسب مربع العدد الذي سوف نرسله لها فقط((نستخدم داله واحدة فقط))
العلامة^ تعني أس أي س^2 تعني س أس 2

2)) أكتب نفس البرنامج السابق ولكن الدالة لا تحسب مربع عدد فقط وانما نرسل لها العدد و قيمة الاس اي انها تحسب س^ص - س أس ص -
ونرسل لها س و ص أي x وy مثلاً


الصورة الرمزية حمزة أحمد
حمزة أحمد
:: عضو ذهبي ::
تاريخ التسجيل: Oct 2004
الدولة: أرض الكنانة
المشاركات: 251
نشاط [ حمزة أحمد ]
قوة السمعة:
قديم 04-08-2005, 10:17 PM المشاركة 14   
افتراضي


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


ابو جنل
:: مهندس ::
تاريخ التسجيل: Jun 2005
المشاركات: 25
نشاط [ ابو جنل ]
قوة السمعة:
قديم 09-08-2005, 11:14 PM المشاركة 15   
افتراضي


يعطيك الف الف عافية :rolleyes:


ويسلمو الديك على الموضوع


وشكرا

بس عندي ملاحظة انا اخدت في الجامعة c++ الكتاب الكامل للمولف ديتل وبصراحة انا حاسس انى

لم استفد من السي بلس بلس شيء وكمان شاشة التطبيق ليسة جميلة مثل شاشة الجافا مثلا .

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

شكرا جزيلا على الموضوع


الصورة الرمزية حمزة أحمد
حمزة أحمد
:: عضو ذهبي ::
تاريخ التسجيل: Oct 2004
الدولة: أرض الكنانة
المشاركات: 251
نشاط [ حمزة أحمد ]
قوة السمعة:
قديم 08-11-2005, 01:49 AM المشاركة 16   
افتراضي


جملة الإيقافbreak
من الاسم نستطيع أن نلاحظ أن وظيفةBreak هي إيقاف بنية أو حلقة تكرار عند
تحقق شرط أو شروط معينة ، وعند تنفيذها يتم القفز إلى سلسلة الجمل التالية للبنية
أيضا في إيقاف حلقة التكرار لانهائي ، أو Break أو حلقة التكرار ، وتستعمل
الخروج منها إلى الجمل التي تليها وكما في المثال التالي:

كود:
#include < iostream.h>
int main ()
{
int i;
for (i=1;i<100;++i)
{
cout<<i;
if (i= =10) break;
}
return0;
}
من الملاحظ في المثال السابق انه سوف يتم تنفيذ جملة break عند تحقيق الشرط i==10
وكما ذكرنا انه سوف يتم انهاء جملة التكرار for loop ويتم تنفيذ باقي البرنامج الموجود بعد حلقة التكرار for loop
وطبعاً يعتبر امر break امر مساعد فقط لاننا يمكننا الاستغناء عنة
ففي المثال السابق يمكن الاستغناء عن break كما يلي
كود:
#include < iostream.h>
int main ()
{
int i;
for (i=1;i<100||i==10;++i)
{
cout<<i;

}
return0;
}
وكما موضح عندما يصل البرنامج الي 10 سوف تنتهي حلقة التكرار



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 11:55 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)