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

قم بتسجيل الدخول او قم بأنشاء حساب جديد وانظم الى اسره المنتدى

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

قم بتسجيل الدخول او قم بأنشاء حساب جديد وانظم الى اسره المنتدى

اسره المنتدى بأنتظارك ويشرفنا انظمامك الينا
أخر المشاركاتأفضل الاعضاء هذا الشهرأفضل 10 اعضاء
Hex WorkShop 6.8.0 + Crack أمس في 5:51lidongdongasd@qq.com
Rappelz JoKeR Weapons : AlNisr 04.05.24 22:09hope54
ملفات سيرفر امل الشعوب - Rappelz Server Files : AlNisr 03.05.24 19:32rappelz705
Rappelz All Clients : AlNisr 03.05.24 16:23cigarette987
ملفات سيرفر أمل الشعوب 7.4 03.05.24 16:13cigarette987
[حصرياً] أقوى جي ام تول , Royal GM-Tool 03.05.24 2:25hope54
مشكلة تبديل السلاح وتعلق السيرفر - 1 : AlNisr 02.05.24 20:20namanslah
حصريا TP-Tool By TwilightPrince V8.0 02.05.24 16:17Asher1997
Arabic Rappelz Gm Tool 02.05.24 13:48Asher1997
شرح صنع لانشر امل الشعوب رسمي بصيغة bat 01.05.24 19:24Asher1997
6 المساهمات
3 المساهمات
2 المساهمات
1 مُساهمة
1 مُساهمة
1 مُساهمة
1 مُساهمة
1 مُساهمة
2853 المساهمات
2198 المساهمات
1672 المساهمات
1586 المساهمات
1365 المساهمات
1156 المساهمات
1097 المساهمات
996 المساهمات
588 المساهمات
567 المساهمات

اذهب الى الأسفل
2 مشترك

دروس تعليم لغة السى بلس بلس C++

المشاركة رقم: ( 1 )
GeNeRaL_Dz
GeNeRaL_Dz
تقني نشيط
تقني نشيط
المشاركات : 193
نقاط : 264
التقييم : 3
تاريخ التسجيل : 27/03/2013
19.01.14 10:41


 الدرس الاول 
لتعليم لغة السى بلس بلس C++

أولا وقبل البدء في تعلم البرمجة , علينا أن نوضح بعض الأشياء , مثل خصائص البرنامج الجيد :

1) البساطة والوضوح .
2 ) الدقة ( صحة الخطوات ) .
3 ) التوفيق .

والآن وبعد تعريف البرنامج الجيد نقوم بتعريف أنواع البيانات , والتي تنقسم إلى بيانات بسيطة , وبيانات مركبة .

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

البيانات المركبة : مثل المصفوفات , السلاسل الرمزية , وغير ذلك من البيانات المركبة المشابهة .

نقوم الآن بشرح وصف البيانات العددية , وهيا كالتالي :

المتغيرات Variables :

1 ) متغيرات صحيحة Integer variables :

ويتم تعريفها في البرنامج كالتالي <===<< ; int x,y,z

حيث ترمز كلمة int للمتغير الصحيح , وباقي الرموز هيا تعريف المتغير في البرنامج الرئيسي .

مثل :

;x=3
;y=-4
;z=0

2 ) متغيرات حقيقية Float variables :

ويتم تعريفها في البرنامج كالتالي <===<< ; float a,b,c

حيث ترمز كلمة float للمتغير الحقيقي , وباقي الرموز هيا تعريف المتغير في البرنامج الرئيسي .

مثل :

; a=5.5
; b=1.3
; c=-1.1

ملاحظة : هذا الرمز ; نقوم بوضعه كنهاية عند أي جملة رياضية أو منطقية أو علاقة مكتملة , كما سبق ولاحظنا في السابق , حتى يتعرف معالج البرنامج على نهاية هذه الجملة .

والآن نستعرض بعض الرموز التي تستخدم في تعريف المتغيرات :

c% ===== للحرف
s% ===== للسلسة الرمزية
f% ===== للعدد الحقيقي
d% =====للعدد الصحيح
x% =====للعدد الصحيح بالنظام السادس عشر
o% =====للعدد الصحيح بالنظام الثماني
n\ ===== القفز إلى سطر جديد
r\ ===== البدء من أول السطر
t\ =====التقدم سبع ( 7 ) مسافات

وسأتقدم بشرح طريقة استعمال كل رمز لاحقاً إن شاء الله .


والآن , نقوم بتعريف بعض الدوال والأكواد المستعملة في هذه اللغة , ونبدأ بدالة القراءة scanf .

الشكل العام للدالة في البرنامج :
;(Scanf(“Format”,&Varibale

Format : تعني تعريف نوع المتغير ( أحد الرموز السابق ذكرها , مثل f% ,أو d% أو غير ذلك من الرموز السابقة ) .

Variable : رمز المتغير الذي تم تعريفه ( وهو الرمز الذي تم تعريف المتغير به في بداية البرنامج ) .

وستتضح الرؤية بإذن الله عند شرح أول برنامج بسيط للتوضيح .

دالة الطباعة أو دالة الإخراج printf .

الشكل العام للدالة في البرنامج :

هناك شكلان لهذه الدالة , الأول شكل يقوم بطباعة جملة معينة فقط أو تعليق معين مثل :

;("printf("Comments

حيث Comments : أي جملة أو تعليق يرغب المبرمج في إضافته .

والشكل الآخر لدالة printf لا يختلف كثيراً عن الشكل الأول , إلا أنه مصحوب بقيم للمتغيرات أو نتائج معينة , مثل :

;(Printf(“Comments and Formats”,variable

حيث Comments : جملة أو تعليق مناسب لرسالة الطباعة .

Formats : نوع المتغير المطلوب طباعته .

Variable: رمز المتغير حسب تعريفه في البرنامج .


والآن نقوم بكتابة برنامج يقوم باستقبال قيمة عددية x,y مع إيجاد مجموعهما .


The Program :
كود:
#include <stdio.h>
#include <conio.h>

void main()
{
int x,y,sum=0;
clrscr();
printf(“Enter Value Of X = “);
scanf(“%d”,&x);
printf(“Enter Value Of Y = “);
ScanF(“%d”,&y);
Sum=x+y;
Printf(“ Sum = X + y = %d + %d = %d ”,x,y,sum) ;
getch();
}
[C]************[/C]

في المثال السابق قمنا بتعريف مكتبين هما :

مكتبة : <stdio.h> وهذه المكتبة مهمة حتى تقوم كل من دالتي scanf , و printf بالعمل .

وكتبة : <conio.h> وهذه المكتبة مهمة حتى تقوم كل من دالتي clrscr , و getch بالعمل , والأولى تقول بتنظيف الشاشة , والتانية تقوم بإيقاف الشاشة عند نهاية البرنامج حتى يتمكن المبرمج من رؤية نتائج برامجه .

طبعا كل مكتبة تحتوي على عدد من الدوال , ولا تعمل هذه الدوال من دون مكتابتها الخاصة , ويمكن للمبرمج معرف هذه المكتبات والدوال من المساعدة الخاصة بالبرنامج ( Help ) .

بعد تعريف المكتبتين قمنا بتعريف المتغيرات , وهيا :

x : المتغير الأول .
y : المتغير الثاني .
sum : حاصل جمع المتغيرين , وقمنا بتصفيره حتى لا يتم الأخذ بأي قيمة أخرى له قد تكون عالقة في ذاكرة الجهاز .

بعد تعريف المتغيرين قمنا بطباعة جملة توضيحية وظيفتها طباعة جملة على الشاشة توضح للمبرمج ضرورة إدخال قيمة للمتغير X , وهيا توضيحية .

وبعد ذلك قمنا بكتابة دالة scanf وظيفتها استقبال قيمة X وتخزينها في ذاكرة الجهاز .

ونفس الشيء بالنسبة للمتغير Y .

وبعد ذلك قمنا بإيجاد حاصل جمع كل من x,y , وتخصيص قيمة الجمع للمتغير sum في جملة رياضية منطقية .

وبعد ذالك قمنا بكتابة جملة طباعة printf , وظيفتها طباعة رسالة معينة عن جمع العددين , وحاصل هذا الجمع .

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


يتبع ,,


المشاركة رقم: ( 2 )
GeNeRaL_Dz
GeNeRaL_Dz
تقني نشيط
تقني نشيط
المشاركات : 193
نقاط : 264
التقييم : 3
تاريخ التسجيل : 27/03/2013
19.01.14 10:43


الدرس الثانى لتعليم لغة السى بلس بلس C++


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


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


أولا برنامج للمراجعة , يقوم هذا البرنامج البسيط بقراءة أربع قيم حقيقية , مع إيجاد متوسطها .


[L]The Program : [/L]
كود:
#include
#include

main()
{
float n1,n2,n3,n4,avg,sum=0;
printf(“ Enter four numbers : “);
scanf(“%f%f%f%f”,&n1, &n2, &n3, &n4) ;
sum=n1+n2+n3+n4 ;
avg=sum/4 ;
printf(\n Sum = %.3f \n Avg = %.2f”,sum,avg);
getch();
return 0;
}
حيث يقوم البرنامج بقراءة أربع قيم حسب الترتيب وهيا n1 , n2 , n3 , n4 , وبعد ذلك يقوم بجمع هذه القيم وتخصيصها للمتغير sum , وبعد ذلك يقوم بايجاد متوسط هذه القيم وتخصيص هذه القيمة للمتغير avg , ثم يقوم بطباعة ناتج البرنامج , وذلك بطباعة قيمتي كل من المجموع والمتوسط .

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

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

ونلاحظ أيضاً وجود الرقم 2. , وله نفس المعنى السابق .

ومن هنا نلاحظ أنه يمكننا التحكم في عدد الأرقام بعد الفاصلة في نتائج الأعداد الحقيقة , وذلك كما في المثال السابق .



الجمل والمؤثرات والتعبيرات في لغة الـ C :

1 ) التعبيرات Expressions :

2.5 >>>===> ثابت >>>===> Constent
X >>>===> متغير >>>===> Variable
x+y >>>===> تعبير حسابي >>>===> Arithmetic Expression
grade>=50 >>>===> تعبير منطقي >>>===> Logical Expression

2 ) الجمل Statements :

جملة التخصيص :
[L]
Variable = Expression ;
[/L]

وستتضح أكثر في الأمثلة التالية .



أ ) المؤثرات الحسابية Arithmetic Operators :

+ جمع
- طرح
* ضرب
/ قسمة
باقي القسمة

ب) المؤثرات العلائقية ( ذات العلاقات ) :

== يساوي
=! لا يساوي
> أقل من
=> أقل من أو يساوي
< أكير من =< أكير من أو يساوي جـ ) المؤثرات المنطقية Logical operators : && and || or ! not [c]***********[/c] عذراً لذكري لما سبق دون إيضاح , ولكن سأعمل على الإيضاح في الأمثلة القادمة إن شاء الله . مثال توضيحي : اكتب برنامج لقراءة أطوال أضلاع مستطيل n,m مع حساب : 1 ) محيط المستطيل V . 2 ) مساحة المستطيل A . [L] The Program : [/L] كود: #include
printf(\n Sum = %.3f \n Avg = %.2f”,sum,avg); 3 ) المؤثرات Operator :
#include


void main()
clrscr();
int n,m,v,a ;
printf(“Enter the value of N = “);
scanf(“%d”,&n);
printf(“Enter the value of M “);
scanf(“%d”,&m);
v=(n*2)+(m*2) ;
a=n*m ;
printf(“V = %d \t A = %d”,v,a) ;
getch() ;
}
يقوم البرنامج السابق بقراءة طولي ضلع المستطيل , وتخصيص القيمتين لكل من المتغيرين n,m .

وبعد ذلك يقوم بعملية حسابية , يحسب فيها محيط المستطيل , ومساحته .

ثم يقوم بطباعة ناتج هذه العملية كما في المثال .

ولكن توجد طريقة أخرى لاختصار البرنامج , دون التأثير في نتائجه , وهيا كالتالي :

[L]
The Program :
[/L]
كود:
#include

#include


void main()
clrscr();
int n,m ;
printf(“Enter the value of N = “);
scanf(“%d”,&n);
printf(“Enter the value of M “);
scanf(“%d”,&m);
printf(“\n V = %d \n A = %d”,n*2+m*n,n*m);
getch() ;
}
وقمنا في المثال السابق بنفس الخطوات السابقة , ولكن باستثناء أننا قد ألغينا العمليات الحسابية لكل من المحيط والمساحة في البرنامج الرئيسي , وقمنا بهذه العمليات في دالة الطباعة printf في نهاية البرنامج , وذلك اختصاراً لطول البرنامج في مثل هذه النوعية من البرامج البسيطة .

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

يتبع للدرس الثالث ,,


المشاركة رقم: ( 3 )
GeNeRaL_Dz
GeNeRaL_Dz
تقني نشيط
تقني نشيط
المشاركات : 193
نقاط : 264
التقييم : 3
تاريخ التسجيل : 27/03/2013
19.01.14 10:46


الدرس الثالث لتعليم لغة السى بلس بلس C++


درس اليوم يتحدث عن مؤثرات الزيادة والنقصان , وأولويات تنفيذ هذه المؤثرات , بالإضافة إلى بعض الأمثلة التوضيحية .


مؤثرات الزيادة والنقصان :

هذه المؤثرات هيا من أهم مميزات لغة الـ C , إذ أنها غير موجودة في أي لغة برمجة أخرى وهيا بسيطة الفكرة , سهلة الاستعمال , تحتاج إلى تركيز .

وتعرف بمؤثرات الزيادة والنقصان لأنها تزيد أو تنقص من قيمة المتغير , وهيا إما على صورة :

++ , --

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

مثال توضيحي على استعمال مؤثرات الزيادة والنقصان :

[l]The Program : [/l]
كود:
#include <stdio.h>
#include <conio.h>
main ()
{
 int I,j,k;
clrscr();
i=2; j=2;
k= ++i;
printf(“I = %d \t K = %d \n”,i,k);
k= j++;
printf(“J = %d \t K = %d”,j,k);
getch();
return 0;
}
في المثال السابق قمنا بتعريف ثلاث متغيرات صحيحة وهيا حسب الترتيب i,j,k

ثم ثمنا بتحديد قيمتي كل من i,j=2

وبعد ذلك قمنا بتحديد قيمة k=++i

والآن ندرس طريقة قيام المعالج بهذه العملية :
يقوم المعالج بتخصيص قيمة المتغير i للمتغير k ولكن سيصتدم بمؤثر زيادة للمتغير i لذا سيعمل على زيادة هذه القيمة قبل تخصيصها للمتغير k .

وتتم معالجة القيمة i , بما أنه جاء مسبوقاً بمؤثر زيادة ++ , فهذا يعني زيادة قيمة المتغير بمقدار واحد , ويصبح i=3

وبعد تحديد قيمة المتغير i , يقوم المعالج بتخصيص هذه القيمة للمتغير k , فيصبح قيمة هذا المتغير k=3

وهذه طريقة التعامل مع مؤثر الزيادة , ونفس الشيء بالنسبة لمؤثر النقصان ( غير أن مؤثر النقصان طرح وليس جمع ) .

وبعد ذلك تقوم دالة الطباعة بطباعة النتائج على الشاشة .

والآن ندرس الخطوة الثانية وهيا k=j++

في هذه الحالة , يقوم المعالج بتخصيص قيمة j للمتغير k , وقيمة j=2 , إذاً k=2 أيضاً

ولكن المعالج يصدم بعد ذلك بمؤثر زيادة بعد j , لذا يعمل على زيادة قيمة j بمقدار واحد فتصبح j=3

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

الأولوية دائماً لمؤثرات الزيادة والنقصان .


مثال آخر لتوضيح عمل المؤثرات في معادلة رياضية :
كود:
#include <stdio.h>
#include <conio.h>
main ()
{
int s1,s2,a=5,b=3;
clrscr();
s1= a + ++a ;
s2= b + b++ ;
printf(“S1 = %d \t S2 = %d”,S1,S2);
getch();
return 0;
}
في المثال السابق قمنا بتعريف أربع متغيرات , مع تحديد قيمتي متغيرين كما في المثال .

وبعد ذلك قمنا بعملية رياضية لـ S1 , والتي سنشرح معناها الآن :

يقوم المعالج في المثال بقراءة المعادلة , فيجد أمامه مؤثر الزيادة مصحوباً بقيمة a , فيعمل على تغير قيمة a , وزيادتها 1 لتصبح a=6

وبالتالي تصبح المعادلة
[l]S1= 6 + 6 [/l]

بينما في الحالة الثانية نقوم بحساب قيمة S2 :

حيث يقوم المعالج جمع b , مع b , وتخصيص القيمة الجديدة لـ S2 , وبعد ذلك يقوم بحساب قيمة b الجديدة من مؤثر الزيادة , وهيا b = 4 , ولكنها غير مطلوبة في البرنامج .

وبالتالي تصبح المعادلة
[l]S2 = 3 + 3[/l]

وسنجد أن نتائج البرنامج مساوية لكل من القيم السابقة .


بعض المؤثرات الجديدة :
كود:
x+=9;
العملية السابقة مساوية تماماً لعملية :
كود:
x=x+9;
وتعطي نفس النتائج بالضبط , ويمكن تجربة ذلك بنفسك .

وهيا ليست العملية الوحيدة , إذ يوجد بعض العمليات الأخرى مثل :
كود:
x-=10 ;
y*=5 ;
z/=11 ;
x%= 3;
والعمليات السابقة مساوية للعمليات :
كود:
x=x-10 ;
y=y*5 ;
z=z/11 ;
x=x %3;
ولكنها مختصرة , وهذه إحدى مميزات لغة الـ C .

مثال توضيحي على أحد العمليات السابقة :
كود:
#include <stdio.h>
#include <conio.h>
void main ()
{
int a,b;
clrscr();
a= 10 ;
b= 5 ;
a-=b ;
printf(“a = %d “,a);
getch();
}
في المثال السابق قمنا بتعريف متغيرين a,b , ثم بتحديد قيمتين للمتغيريت كما في المثال .

ثم قمنا بعملية رياضية كالتالي :
كود:
a-=b;
وهيا مساوية للمعادلة :
كود:
a=a-b;
وتعطي نفس النتائج دون أي فرق , ويمكنك تجريب المعادلتين والتأكد من نتائجك بنفسك .

طبعاً الأمثلة السابقة أمثلة توضيحية فقط , و سأوضح لكم بإذن الله أمثلة تطبيقية تستطيعون بها الاستفادة من جميع المؤثرات السابقة , وذلك بعد أن نأخذ بعض الدوال والجمل الجديدة في لغة الـ C , وسنوضح أكثر وظائف هذه الجمل وطرق عملها في البرامج في الدرس القادم إن شاء الله .

يتبع للدرس الرابع ,,


المشاركة رقم: ( 4 )
GeNeRaL_Dz
GeNeRaL_Dz
تقني نشيط
تقني نشيط
المشاركات : 193
نقاط : 264
التقييم : 3
تاريخ التسجيل : 27/03/2013
19.01.14 10:49


الدرس الرابع يتحدث عن بعض الجمل الهامة جداً في لغة الـ C ونستطيع تسميتها بجمل الاختيار والتبديل , وهيا شائعة الاستخدام في الكثير من البرامج , ومتشابهة من حيث الفكرة في كل لغات البرمجة , لما لها من أهمية في هذه اللغات .

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


والآن نقوم بشرح أول جملة .


الشكل العام لهذه الجملة :
كود:

   statement;
next statement;
نشرح الآن الشكل العام :

يتكون الشكل العام لهذه الجملة من الصيغة الرئيسية المتمثلة في if , والذي يعني إذا , وبعد ذلك كلمة نقوم بفتح قوس وإغلاق قوس , ومحتوى القوسين يكون شرط التنفيذ Condition , وهذا الشرط هوا الذي تتوقف عليه تنفيذ الجملة Statement إذا ما كان الشرط صحيح , أو ينتقل إلى الجملة Next statement إذا ما كان الشرط غير صحيح .

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

[l]The Program : [/l]
كود:
#include <stdio.h>
#include <conio.h>
main()
{
int number;
clrscr();
printf(“\n Enter the number : “);
scanf(“%d”,&number);
if ( number > 0 )
 printf(“The %d is positive number “,number);
getch();
return 0;
والآن نقوم بشرح البرنامج :

بعد أن قمنا بتعريف مكتبتين في السطر الأول والثاني نقوم بتعريف المتغير number في السطر الخامس , ثم نقوم بمسح شاشة الإخراج لمسح أي مخرجات قديمة عن طريق clrscr() في السطر السادس , ثم يقوم البرنامج بطبع رسالة معنى مضمونها هوا أدخل الرقم Enter the number , وبعد ذلك يقوم البرنامج باستقبال الرقم من لوحة المفاتيح وتخزينه في ذاكرة البرنامج , وبعد ذلك يقوم البرنامج باختبار هذا الرقم عن طريق جملة if , وذلك كما رأينا في البرنامج بمقارنة هذا الرقم مع الصفر مقارنة منطقية , فإذا كان الرقم أكبر من صفر يقوم البرنامج بطباعة رسالة إخراج معناها أن الرقم موجب , وإذا كان الرقم صفر أو أقل من الصفر يتجاهل طبع هذه الرسالة وينتقل إلى الجملة التالية والتي هيا جملة إيقاف الشاشة حتى ترى النتائج getch() , وبعد ذلك يصل إلى نهاية البرنامج .

[color=red ملاحظة : [/color] أرجو أن تقوموا بإدخال عدد موجب , وعدد سالب , وصفر حتى تتأكدوا بأنفسكم من صحة البرنامج وطريقة عمله , وتستوعبون فكرته .

قد يقوم البرنامج بتنفيذ أكثر من جملة في حالة صحة الشرط , وتتمل هذه العملية بوضع هذه الجمل بين قوسين { , وقوس } , وهوا ما يعرف في لغات البرمجة بالـ Block , أو الحصر .

الشكل العام في هذه الحالة :
كود:

{
 statement 1;
 statement 2;
 :
 :
 statement n;
}
ويمكن رؤية ذلك بعد تعديل البرنامج السابق بعض الشيء :

[l]The Program : [/l]
كود:
#include <stdio.h>
#include <conio.h>
main()
{
int number;
clrscr();
printf(“\n Enter the number : “);
scanf(“%d”,&number);
if ( number > 0 )
{
printf(“The number is bigger than zero ( %d > 0 )”,number);
printf(“The %d is positive number”,number);
}
getch();
return 0;

والآن ننتقل إلى جملة جديدة .



الشكل العام :
كود:

 statement 1;
else
 statement 2;

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

وسنشرح الجزء المختص بـ else , والذي هوا جديد علينا , ولكنه بسيط .

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

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

[l]The Program : [/l]
كود:
#include<stdio.h>
#include<conio.h>
main()
 {
  int n;
  clrscr();
  printf("Enter the number :");
  scanf("%d",&n);
  if ( n>0 )
   printf("The %d is positive number",n);
  else
   printf("The %d is negative number",n);
  getch();
  return 0;
 }

البرنامج السابق يقوم بنفس خطوات البرنامج الأول , ولكن عند وصوله في الجملة الشرطية يقوم بالتأكد من صحة الشرط , فإذا ما كان الشرط صحيح يقوم بطبع الرسالة أن العدد موجب Positive number , وإذا كان الشرط خطأ يتجاهل جملة الطباعة ويوجه إلى كلمة else , ويقوم بتنفيذ جملتها , والتي هيا في هذا البرنامج طباعة رسالة negative number .

3 ) جملة إذا المتداخلة Nested if statement :

الشكل العام :
كود:

{
 statement 1;
 statement 2;
}
else
 if ( condition 2 )
  {
    statement 3;
    statement 4;
   }

كما رأينا من الشكل العام لهذه الجملة أنه لا فرق بينها وبين جملة if – else statement , ولكنها تحتوي على الكثير من الشروط , ونستعمل هذه الجملة في حالة وجود عدد من الشروط التي تحتاج للكثير من جمل if وتكون مرتبطة ببعض .

وكمثال على ذلك نقوم بتنفيذ نفس البرنامج السابق ولكن بإضافة طباعة رسالة تفيد أن العدد يساوي صفر في حالة كون مساوي للصفر .
[l]The Program : [/l]
كود:
#include <stdio.h>
#include <conio.h>
main()
{
int number;
clrscr();
printf(“\n Enter the number : “);
scanf(“%d”,&number);
if ( number > 0 )
 printf(“The %d is positive number “,number);
else
if ( number <0 )
printf("The %d is negative number",n);
else
printf(“The %d is Zero”,n);
getch();
return 0;

وهذا البرنامج لا يختلف في شرحه عن البرامج السابقة إلا في أشياء بسيطة من الناحية الشرطية .

إذ أن البرنامج يقوم بالتحقق واختبار ما إذا كان العدد أكبر من صفر , في حالة صحة هذا الشرط يطبع رسالة تفيد بأن العدد هوا عدد موجب positive number , ويخرج من الجملة الشرطية دون المرور على باقي جمل else , وذلك لكونه صواباً من الأول .

وفي حالة كون الشرط الأول خطأ يتوجه إلى جملة else , ويقوم بالتحقق من الشرط الثاني , فإذا كان العدد أصغر من الصفر يقوم بطبع رسالة negative number , ويخرج من الجملة الشرطية دون المرور على else وذلك لكون الشرط صحيح .

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

والآن ننتقل إلى جملة التبديل , والتي هيا آخر مواضيعنا لهذا الدرس إن شاء الله .



الشكل العام :
كود:

 {
   case constant 1 : statement  ;
                                break ;
   case constant 2 : statement ;
                                break ;
   default : statement ;
                  break;
 }

تحل هذه الجملة بدل جملة if في الحالات التي تكثر وتتنوع فيها قيم المتغير , قد نقوم بعملية حسابية لمتغير من نوع صحيح , ويكون ناتج هذه العملية هوا قيمة جديدة للمتغير يتوقف عليها عدد من العمليات , لذا بدل استعمال جملة if في كل قيمة للمتغير , نستعمل جملة switch , وتقوم هذه الجملة بتبديل التعبير المعطى expression بالقيمة لهذا التعبير أو هذا المتغير والمتمثلة في الثوابت الجديدة constant , حيث أنه من الممكن أن يكون هنالك أكثر من ثابت , لذا قمنا بترقيمها , وعند تماثل قيمة المتغير مع قيمة الثابت يقوم بتنفيذ الجملة المقابلة لجملة الثابتة , والتي تتوقف عليها طريقة التعامل مع المتغير .
ووظيفة جملة break; هيا تنبيه المعالج إلى انتهاء معالجة هذا الجزء من المتغير , والانتقال إلى باقي البرنامج .

ووظيفة جملة default هيا أنها في حالة عدم تطابق التعبير ( المتغير ) مع أي من الثوابت المعطية في البرنامج constants , يقوم بالدخول على جملة default , ومعالجة المتغير في هذه الجملة .

والآن حتى تضح طريقة عمل هذه الجملة سنعمل على تطبيقها في برنامج يقوم بقراءة متغير x من النوع الصحيح , وإيجاد قيم المعادلات الآتية عندما تكون قيمة x كالتالي :

[l]
x= -6 >>>-------> y = ( x*x ) – x .
x= 1 or 5 >>>-------> y = ( x*10 ) / 2 .
x=2 >>>-------> y = x + x .
x=4 or -4 >>>-------> y = x*x .
x= أي قيمة أخرى غير السابق >>>-------> y = x + 11 .
[/l]

[l]The Program : [/l]
كود:
#include <stdio.h>
#include <conio.h>

void main()
{
 int x,y;
 clrscr();
 printf("\n Enter Value Of X = ");
 scanf("%d",&x);
 switch (x)
 {
  case -6: y=(x*x)-x ;
        printf("X=%d and (x*x)-x=%d",x,y);
        break;
  case 1: case 5:y=(x*10)/2 ;
       printf("X=%d and (X*10)/2=%d",x,y);
       break;
  case 2: y=x+x;
      printf("X=%d and X+X=%d",x,y);
      break;
  case -4:
  case 4: y=x*x;
      printf("X=%d and X*X=%d",x,y);
      break;
  default: y=x+11;
       printf("X=%d and X+11=%d",x,y);
       break;
 }
 getch();
}
شرح البرنامج :

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

في حالة عدم تساوي قيمة x مع أي من هذه الثوابت , يقوم بتنفيذ الجملة المقابلة لـ default , وحساب المعادلة الرياضية وطباعة الرسالة المعطاة .

ولكن قد يسألك أحدكم سؤال مهم , وهوا : ماذا يحدث إذا لم نكتب جملة break; في أحد جمل البرنامج ؟

كما سبق وشرحنا جملة break تحدد نهاية جملة case المخصصة لها , وفي حالة عدم كتابتها سيستمر البرنامج في تنفيذ كل الجملة حتى تقابله جملة break أخرى , أو يتفذ كل جمل البرنامج في حالة عدم وجود break نهايئاً . 3 ) جملة إذا المتداخلة Nested if statement . 1 ) جملة إذا if statement : if ( Condition ) if ( condition ) 2 ) جملة if – else statement ( لا تختلف كثيراً عن الجملة السابقة ) : if ( condition 1 ) switch ( expression ) 1 ) جملة إذا if statement . if ( condition ) 4 ) جملة التبديل Switch statement :
2 ) جملة if – else statement ( لا تختلف كثيراً عن الجملة السابقة ) . 4 ) جملة التبديل Switch statement .





نستعرض ثلاث أنواع من جمل التكرار , وهيا كالتالي .

1 ) جملة ( while statement ) .

2 ) جملة ( do … while statement ) .

3 ) جملة ( for statement ) .

نبدأ باسم الله في عرض أول الجمل وطريقة استعمالها :

جملة ( while statement ) :

الشكل العام للجملة :
كود:
while ( condition )
{
 statement 1;
 statement 2;
:
:
statement n;
}
والآن نشرح معنى هذا الكلام :

نلاحظ من بداية الشكل العام أن الجملة تبدأ بتنفيذ التعبير while , والذي يعني : عندما .

وتقول بالتحقق من الشرط Condition , فإذا وجد المعالج أن الشرط صحيح يقوم بتنفيذ باقي الجمل statements , وإذا وجد أن الشرط خطأ لا يقوم بتنفيذ باقي الجمل , ولا يمر على الجمل أصلاً في حالة الشرط الخطأ .

وحتى نعرف كيفية استخدام هذا الشرط وطريقة قيام المعالج بتنفيذه نقوم ببرمجة هذا البرنامج البسيط والذي يقوم بطباعة الأعداد من 1 ..... إلى 10 .

[l]The Program : [/l]
كود:
#include <stdio.h>
#include <conio.h>
void main()
{
clrscr();
int n=1;
while ( n<=10 )
 {
 printf(“n = %d \n “,n);
 ++n;
 }
getch() ;
}
والآن نشرح هذا البرنامج وطريقة قيام معالج اللغة بمعالجته :
يقوم المعالج في بادئ الأمر بتعريف المتغير الصحيح n , ويحجز له مساحة في الذاكرة , ويساوي قيمته بالعدد 1 .

ثم يقوم المعالج بالمرور على الجملة التالية , وهيا جملة while , ويقوم بالتحقق من الشرط , ولكن كيف ؟

يتم ذلك بأن يستعرض قيمة المتغير n , ويتحقق إذا كانت تساوي أو أقل من القيمة المعطاة في الشرط ( 10 ) وعندما يجد أن 1 أقل من عشرة يقوم بتنفيذ جمل الشرط , ويطبع قيمة n على الشاشة , ثم يقوم بتغيير قيمة n في الذاكرة , ويضع بدلها القيمة الجديدة الناتجة من الجملة ++n , والتي تعني زيادة العدد n مقداراً واحداً .

ويكرر البرنامج جملة التكرار while مرة أخرى , ويتحقق من الشرط , ويجد أن العدد 2 أقل من 10 , فيقوم بطباعة القيمة الجديدة لـ n على الشاشة , وزيادة القيمة الأولى عدداً صحيحاً واحداً .

وهكذا حتى يصل للعدد 10 , وهنا سيجد أن العدد n يساوي العدد 10 , ويقوم بطباعته كما سبق وذكرنا , ولكن عندما يزيد العدد n مقداراً واحداً , ستصبح قيمته 11 , وعند مقارنة هذه القيمة بالشرط سيجد أنها أكبر من الشرط ولا تساويه , لذا سيخرج المعالج من جملة التكرار , وسيتجه للجملة التالية لهذه الجملة , والتي هيا جملة getch() , والتي سبق وذكرنا فائدتها , ثم يتوجه إلى نهاية البرنامج .

هذه إخواني الأعزاء , أخواتي العزيزات جملة while باختصار وإيضاح .


2 ) جملة ( do … while statement ) :

الشكل العام :
كود:
do
{
 statement 1;
 statement 2;
 :
 :
 statement n;
} while ( condition ) ;
من المؤكد أنكم قد لاحظتم تشابه هذه الجملة مع جملة while السابقة , وهيا فعلا تتشابه معها تشابهاً جذرياً من حيث الأداء والشرط , ولكن تختلف عنها بعض الشيء , وهذا الاختلاف هوا كالتالي :

قد لا يمر المعالج على جملة while أبداً , وذلك في حالة عدم صحة الشرط من الأول .
بينما يمر المعالج على جملة do … while على الأقل مرة واحدة , حتى إذا كان الشرط غير صحيح .

كما أن جملة do … while تبدأ بتنفيذ جملة واحدة , أو عدة جمل , ويتم التحقق من هذه الجمل عند نهاية هذه الجملة , عن طريق الشرط .

وحتى تتضح الرؤية سنقوم بحل البرنامج السابق هذه المرة بجملة do while , حتى نستوعب الفرق الذي سيتضح في الشرط :

[l]The Program :[/l]
كود:
#include <stdio.h>
#include <conio.h>
void main()
{
clrscr();
int n=1;
do
 {
  printf(“n = %d \n “,n);
  ++n;
 } while ( n <= 10 ) ;
getch() ;
}
شرح البرنامج :

يقوم البرنامج بنفس الخطوات السابقة في البرنامج السابق حتى يصل إلى do , وهنا يقوم مباشرة بتنفيذ الجملة التالية لـ do دون التقيد بالشرط , لأن الشرط موجود في نهاية الجملة , وعند وصوله لنهاية الجملة يقوم بالتحقق من الشرط , فإذا وجد أن الشرط محقق , يكرر الجمل مرة أخرى , وإذا بطل الشرط , يخرج من جملة do … while نهايئاً , ويتجه إلى الجملة التالية .

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


3 ) جملة ( for statement ) :

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

الشكل العام :
كود:
for ( expression 1; expression 2; expression 3 )
{
 statement 1;
 statement 2;
 :
 :
 statement n;
 }

والآن نشرح هذه الجملة البسيطة المهمة :

يقوم المعالج عند معالجة جملة for بالتعرف على التعبير الأول expression 1 , ثم يقوم بمقارنته بالشرط في التعبير الثاني expression 2 , ثم يقوم عملية حسابية في التعبير الثالث expression 3 , ونلاحظ أنه يمكن الاستغناء عن التعبير الثالث , وكتابته كجملة ملحقة بجملة for , أي تحت جملة for , وسنشرح هذا في المثال التالي :

نقوم ببرمجة برنامج لطباعة الأعداد من 1 إلى 10 ( نفس البرنامج السابق ) ولكن بجملة for :

[l]The Program :[/l]
كود:
#include <stdio.h>
#include <conio.h>
void main()
{
clrscr();
int n;
for (n=1;n<=10;n++)
 {
  printf(“n = %d \n “,n);
  }
getch() ;
}
والآن نشرح البرنامج السابق :
يقوم هذا البرنامج بنفس وظيفة البرامج السابقة في هذا الدرس , أي طباعة الأعداد من 1 إلى 10 .

ولكن كيف يقوم المعالج بمعالجة جملة for ؟

يقوم المعالج بذلك كالتالي : عندما يصل جملة for , يقوم في بادئ الأمر بالتأكد من expression 1 , والتأكد من وجود تعريف للمتغير ووجود قيمة له , وبعد ذلك يقوم باختباره بالشرط في expression 2 , وإذا ما كان الشرط صحيح ينفذ باقي الجمل , وعند نهاية الحلقة يقوم بتنفيذ expression 3 , ثم يعيد التكرار مرة أخرى .

سؤال هل يمكن تجاهل كتابة قيمة المتغير expression 1 في جملة for ؟

نعم يمكن تجاهل ذلك في البرنامج , ولكن بشرط أن يكون المتغير معرف بقيمة معطاة في أول البرنامج , ونستطيع التأكد من ذلك بتكرار البرنامج السابق ولكن بعد إجراء التعديل السابق .

[l]The Program :[/l]
كود:
#include <stdio.h>
#include <conio.h>
void main()
{
clrscr();
int n=1;
for (;n<=10;n++)
 {
  printf(“n = %d \n “,n);
  }
getch() ;
}
نلاحظ في البرنامج السابق عدم كتابتنا للتعبير expression 1 , والذي كان فيما قبل n=1 , وقد استعضنا عن ذلك بوضع قيمة n في بداية البرنامج عند تعريفها int n=1 , ولكن نلاحظ أننا قد وضعنا الرمز ; الذي يدل على نهاية التعبير expression 1 , حتى وان لم يوجد هذا التعبير .

يتبع للدرس الخامس و الأخير ,,


المشاركة رقم: ( 5 )
GeNeRaL_Dz
GeNeRaL_Dz
تقني نشيط
تقني نشيط
المشاركات : 193
نقاط : 264
التقييم : 3
تاريخ التسجيل : 27/03/2013
19.01.14 10:54


الدرس الخامس لتعليم لغة السى بلس بلس c++

سندرس طريقة جديدة من طرق حفظ البيانات , وهذه الطريقة والحق يقال من الطرق المهمة للغاية , وهذا قول ناتج عن خبرة شخصية وتجربة عملية في لغات البرمجة  .

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

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

مصفوفة البعد الواحد :

الشكل العام للمصفوفة :
كود:
int array_name[index];
[c]Or[/c]
كود:
type array_name[index];
لا يخفى عليكم أعزائي أنني قد قمت بوضع شكلان عامان للمصفوفة , أحدهما بالصورة التقليدية كما تعودنا في الصورة الأولى , وذلك بتعريف المصفوفة كعنصر صحيح , أو حقيقي , , حيث أن array_name هوا عبارة عن اسم المصفوفة , ونستطيع ترميزه بأي رمز مثل ( x,y,z,xyz,array1 ) , ثم كلمة index , وهيا عناصر المصفوفة .

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

والآن وكما تعودنا نقوم بوضع مثال يوضح فائدة المصفوفة , وطريقة تعامل معالج لغة الـ C مع المصفوفة .

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

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

والآن , طريقة البرنامج كما يلي :

[l]The Program :[/l]
كود:
#include <stdio.h>
#include <conio.h>

void main()
{
 clrscr();
 int x[10],i,sum=0;
 for (i=0;i<10;i++)
 {
  printf("\n Enter X[%d] = ",i);
  scanf("%d",&x[i]);
  sum+=x[i];
 }
 printf("\n Sum = %d ",sum);
 getch();
}
والآن نشرح البرنامج بالتفصيل :

في أول البرنامج قمنا بتعريف متغيرات , منها [10]x , وهذا يعني أن اسم المصفوفة هوا x , وأن هذه المصفوفة تحوي داخلها عشرة متغيرات , وكل هذه المتغيرات من النوع الصحيح , وذلك لأننا قمنا بتعريف المصفوفة كمتغير صحيح , ثم قمنا بتعريف عداد للمصفوفة Counter , ورمزنا لهذا العداد بالرمز i , ثم قمنا بتعريف المتغير sum , وهوا اختصار لكلمة summation , والتي تعني مجموع , وهوا الذي سنحفظ فيه مجموع عناصر المجموعة .

والآن إلى الخطوة التالية , أرجو الإهتمام والتركيز في هذه الخطوة , حتى نوضع فائدة العداد :

نقوم بوضع المتغير i في جملة for , وذلك لأننا سنعرف i كعداد للمصفوفة , ونقوم بوضع قيمة ابتدائية لـ i وهيا صفر ( 0 ) , لأنه للحصول على 10 عناصر للمصفوفة أو أي عدد في لغة الـ C , تبدأ المصفوفة من المتغير [10]x , وتنتهي عند المتغير [10]x , وعند حسابنا نجدهم 10 عناصر .

والآن نقوم بتحديد الدورة التي سنقوم بها , في أول حالة سيقوم المعالج بوضع قيمة صفر للمتغير i , ثم يقوم بمقارنتها بالعدد 10 , فيجدها أقل منه , لذا يستمر في الدورة أو الحلقة , فيقوم بطباعة جملة
كود:
printf(“\n Enter x[%d] = “,i);
وهذه الجملة هيا مجرد جملة توضيحية للمبرمج , توضح له أنه عليه أن يقوم بإدخال قيمة المتغير المراد تخزينه في الصف [x[%d , حيث أن %d تتغير بتغير i .

ثم يقوم البرنامج باستقبال قيمة المتغير ويضعه في المصفوفة حسب التريب , يستقبله في الخانة [x[i , ونتيجة لذلك فأنه من المستحيل أن يضع قيمتين في نفس الخانة , لأن i تتغير وتزيد بمقدار واحد كل دورة i++ , وهذه فائدة العداد  .
ثم يقوم المعالج بالعملية الحاسبة التالية :
كود:
sum+=x[i];
وهذه العملية هيا نفس العملية :
كود:
sum=sum+x[i];
حيث شرحنا معناها في السابق , ونحيطكم علماً مرة أخرى بأن معناها أن المجموع سيقوم في كل دورة بإضافة قيمة العدد الجديد إلى المجموع , حتى نتحصل على المجموع الكلي .

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

طبعاً أرجو من الإخوة تجربة البرنامج حتى تتمكنوا من فهمه بطريقة أفضل , فالتجربة خير دليل على صحة البرنامج وأفضل طريقة لفهمه .


المصفوفات ذات البعدين :

الشكل العام :
كود:
int array_name[index1][index2]
نلاحظ زيادة قوسان جديدان , ومعناهما كالتالي :
[l]
array_name = اسم المصفوفة
index1 = عدد الصفوف
index2= عدد الأعمدة
[/l]

لأن المصفوفة الثنائية مكونة من صفوف وأعمدة , وليس صفوف فقط كالأحادية ذات البعد الواحد .

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

[l]The Program :[/l]
كود:
#include <stdio.h>
#include <conio.h>
#define row 2
#define col 2

void main()
{
 int i,j;
 int x[row][col];
 clrscr();
 for (i=0;i<row;i++)
  for (j=0;j<col;j++)
   {
    printf("\n x[%d][%d] = ",i,j);
    scanf("%d",&x[i][j]);
   }
  printf("\n");
  for (i=0;i<row;i++)
  {
   for (j=0;j<col;j++)
    printf("%d \t ",x[i][j]);
    printf("\n");
  }
  getch();
}
قد يبدو لكم البرنامج معقداً , ولكنه في الحقيقة بسيط وسهل , يحتاج إلى شرح بسيط وبإذن الله ستفهمونه .

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

الدروس من تأليف :/GeNeRaL_Dz 


المشاركة رقم: ( 6 )
hassuny
hassuny
تقني مقيم
تقني مقيم
المشاركات : 996
نقاط : 1131
التقييم : 19
تاريخ التسجيل : 17/08/2012
المزاج : شكرا للمتميز (توايلايت) على السفرام بدون جيم جارد
19.01.14 12:57


تسلم & لو ممكن شرح للغة السي شارب 


المشاركة رقم: ( 7 )
GeNeRaL_Dz
GeNeRaL_Dz
تقني نشيط
تقني نشيط
المشاركات : 193
نقاط : 264
التقييم : 3
تاريخ التسجيل : 27/03/2013
19.01.14 17:39


الله يسلمك حبي [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]   Twisted Evil 
سيتم وضع شرح على كيف كيفك استنى شوية بس .. bounce


المشاركة رقم: ( 8 )
GeNeRaL_Dz
GeNeRaL_Dz
تقني نشيط
تقني نشيط
المشاركات : 193
نقاط : 264
التقييم : 3
تاريخ التسجيل : 27/03/2013
19.01.14 18:31


تم تلبية طلبك اخووي [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

راجع قسم لغة البرمجة ~ ... تحيااتي ولا تنسا التقييم ^^


الرجوع الى أعلى الصفحة
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى