مجتمع لينوكس المصري

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

شاطر | 
 

 [شرح] first part of pointer and arrays lessone

اذهب الى الأسفل 
كاتب الموضوعرسالة
taaz30



المساهمات : 114
تاريخ التسجيل : 28/11/2008

مُساهمةموضوع: [شرح] first part of pointer and arrays lessone   السبت ديسمبر 27, 2008 2:22 pm


ده حيكون تمهيد لدرس ال pointers الي حشرحه
مع العلم اني حتطرق يه لكل شيئ من اول النمله للصاروخ
المصفوفات الرقميه:1

درسنا اليوم عن ال مصفوفات وفايدتها وكيف التعامل معها وده حيكون الجزء الاول عشان بعد كده حندخلها ونوسعها مع المؤشرات
المهم تعريف المصفوفه ايه ؟
خلينا نجيب مثال كويس كده انت اليوم وراك جدول تصحيح كير بصفتك مدرس وحاطته وبعد ماخلصت عايز تجيب اسم الولد mohamed وتجيب درجته
بس للاسف الجداول عندك كتير جدا وممكن تتوه وانت بدور عليه وساعتها لاحتروح شغلك
طيب حل الموضوع دوت ايه ؟
انك تعمل قائمه تحت شعار واحد
__________________
|لا الوحده |
------------------------
وتحط تحت القائمه ديت ارقام


اقتباس:
__________________
|لا للوحده |
------------------------
|0:>>>>10
|1>>>>:ا20
|2>>>>:10
كويس كل واحده من العناصر الي جوه القائمة ديت بيحتوي علي بيانات من نفس نوع القائمه لا للوحده
وكل واحد فيهم بيشكل مكان للبيانات
وكل واحد فيهم بيحتوي علي بيانات
وكلهم تحت اسم واحد
حلو دلوقتي تعالي نشغلها علي البرمجه
من غير ماتعرف المصفوفات الطبيعي ايه؟
اقتباس :
char mohamd=10
int storm=10
وهكذا يعني حتضر تعمل مليون متغير رقمي عشان تحفظ حاجه واحده
طيب مهو بدل البهدله ديت تقدر تعمل كده
اقتباس :
int degrees[100
يعني القائمه ستورم تحتوي10درجات كل اسم اظنك فهمت تعريف المصفوفه واستدخدمها كويس كده؟
المهم يعني انت دلوقتي عايز تستفيد من الموضوع ده طيب ايه الحل ؟
ممكن تفكر وتعمل كده
اقتباس :
#include<stdio.h>
int count;
int storm[100]
main()
{
for(count=0;count<100;count++)
{
printf("Enter th %d\'s degree",count);
scanf("%d",&storm[count]);
{
/* printing the elements*/
for(count=0;count<100;count++)
{
printf("the persot %d\'s degree is",count+1,storm[count]);
{
{
تعالي نفهم بقي الي احنا عملناه واحده واحده
اقتباس :
printf("Enter th %d\'s degree",count);

هنا حتلاحظ مصيبه صغيره انه بيطلب منك ادخال الدرجه للشخص 0 وده مش موجود في الدنيا اللهم تجاوزا بعض الخلق الاغبياء الي مايستحقوش فاي حتي
نرجع لموضوعنا
حلها ايه ؟
اقتباس :
printf("Enter th %d\'s degree",count+1);



عدل سابقا من قبل taaz30 في الأحد ديسمبر 28, 2008 3:05 am عدل 1 مرات
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
taaz30



المساهمات : 114
تاريخ التسجيل : 28/11/2008

مُساهمةموضوع: رد: [شرح] first part of pointer and arrays lessone   السبت ديسمبر 27, 2008 2:43 pm


اظن مفهوم
ملحوظه اخري
عناصر المصفوفات كلها تبتدي ب 0 وتنتهي ب الرقم-1
يعني لو عندك مصفوفه فيها 10 عناصر يبقي المصفوفه بتاعتنا اذاي؟
اقتباس :
storm[0],storm[1].........storm[9]
مفهوم اظن
المهم
تعالي نشرح ديت ونشرح معاها حاجه كمان
اقتباس :
scanf("%d",&storm[count]);
انت هنا كانك بتعمل ادخال ل 10 متغيرات جميل وليكن م0 م1 م3 .....م9
حلو يعني نفس طريقة ادخال المتغيرات العاديه خالص
اقتباس :
printf("the persot %d\'s degree is",count+1,storm[count]);
ديت لطباعة قيم المصفوفه من 0 الي9 يعني عشر عناصر
ملحوظه مهمه جدا:
يمكنك استخدام محدد العناصر للمصفوفه وهو مابين []
ك:expresion يعني 3+5 مثلا
ك: array يعني مثلا
اقتباس :
array[storm[2]
معنهاا ديت انك اخدت القيمه المسنده للعنصر 2 في المصفوفه storm وليكن
10 يبقي كانك كتبت
اقتباس :
array[10]
وممكن تستعمل ثوابت بس لاحظ حاجه مهمه متقدرش تستعمل ال symolic constans لكن تقدر تستعمل ال lerial constants وحشرح معناهم الاتنين بس مش دلوقتي في الجزء التاني
يكفيك انك تعرف ان
اقتباس :
#define s 100 ديت letrial
const int a=5; ديت symbolic
يعني تقدر تعمل
اقتباس :
#define a 5
int array [a];
ومتقدرش
اقتباس :
const int a=5;
int array [a];
وممكن تسند قيم المصفوفه وانت بتنشئها كده
اقتباس :
int storm [4]={1,2,3};
مع العلم تسيب مكان لل
اقتباس :
0
ولو انك متعرفش انك عايز كام عنصر ممكن
اقتباس :
int storm[]={1,2,3,4,5}
اظن انك فهمت المصفوفات الرقميه ذات البعد الواحد
في مصفوفات باكثر من بعد
اقتباس :
int storm[5][5]
الرقعه اتسعت عليك ورئيسك في المدرسه عايز تعمل للطلاب في فصلك كل الدرجات تولع انت وهو يرتاح
متفرقش
التلميذ رقم :0:الماده رقم{0
{1
{2

التلميذ رقم :1:الماده رقم{0
{1
{2

التلميذ رقم الماده رقم{0
{1
{2
اظنك فهمت انا اقصد بكده ايه
وليكن
اقتباس :
array[3][3]={{1,2,3},{4,5,6},{1,2,3}};
يعني التلميذ رقم
اقتباس :
array[0][0]=1
array[0][1]=2
array[0][2=3]
اظنط فاهم برده ولاحظ اننا ماشيين علي رقم التلميذ:رقم الماده
وهكذا علي نفس المنوال مع باقي المصفوفه
اقتباس :
#include<stdio.h>
int array[3][3];
int c,f;
int degrees;
main()
{
for(c=0;c<3;c++)
{
for(b=0;b<3;b++)
{
printf("perso %d\' subject %d dgrees is",c,f);
scanf("%d",&degrees);
array[c][b]=degrees;
}

}


for(c=0;c<3;c++)
{
for(b=0;b<3;b++)
{
printf("\narray[%d][%d]=",c,f);
printf("%d",array[c][b]);
}
}
}
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
taaz30



المساهمات : 114
تاريخ التسجيل : 28/11/2008

مُساهمةموضوع: رد: [شرح] first part of pointer and arrays lessone   الأحد ديسمبر 28, 2008 3:16 am


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

int storm [3][3];
العوده:ههههههههههههههههههههههههه
المهم نشرح الصوره وبعدين المصفوفه
انا سبق وقولت ان الصوره ديت بتمثل مصفوفه
اقتباس :

int storm [3][3];
فاكر مثال
رقم التلميذ:رقم الماده
والصوره بتشرح ان كل عنصر في المصفوفه يحتوي علي عدد 3 عناصر
اقتباس :

#include<stdio.h>
int array[3][3];
int c,f;
int degrees;
طبعا كلنا عارف ايه هو الكلام ده استدعاء الدوال المكتبيه وتعريف المصفوفه وانا كنت قايل انها عادي كاي متغير وتعريف c f متغيرين رقميين
ركز كويس جدا معايا ماشي
اقتباس :

for(c=0;c<3;c++)
{
for(b=0;b<3;b++)
تعالي نسترجع for بتعمل ايه
واحد تسند القيمه وانا قولت ده مش شرط اساسي راجع موضوع for
وبعدين تتحقق من الشرط
وتنفذالقيمه الاخيره الي غالبا بتكون ازاده او نقصان
وبعدين تحققال statments
في الحاله ديت ال statments ايه؟
دوارة for تانيه
حتعمل نفس الموضوع وتنفذ statments الخاصه بيها
اصبح كالاتي for1:for2
راعي ان القيمه 0 هي اول قيمه ل for1 و for2 وبعدين الازاده مستمره
اقتباس :

for1=0>>>for2={0,1,2}
وراعي ان انا اقصد ب for2={0,1,2} القيمه المتزايده
وبعدين
color=red]for1=1>>>for2={0,1,2}[/color]
ثم
color=red]for1=2>>>for2={0,1,2}[/color]
تعالي بقي نطبق علي المصفوفه
اقتباس :

storm[0][0]
storm[0][1]
storm[0][2]
storm[1][0]
وهكذا اظنك فاهم
طيب بما ان for1 معاملها هو c
و for2 معاملها هو b
يبقي
اقتباس :

for(c=0;c<3;c++)
{
for(b=0;b<3;b++)
{
printf("perso %d\' subject %d dgrees is",c,f);
scanf("%d",&degrees);
array[c][b]=degrees;
}

}
انت بتدخل degrees تثلات مرات
وتساويها ب c=0 في اول تلات مرات و b = 0 1 2
وتساويها ب c=1 في ثاني تلات مرات و b = 0 1 2
وهكذا واظن انك فهمت
يعني

[
اقتباس :

deegres1=storm[0][0
storm[0][1]=degrees2
storm[0][2]=degrees3
storm[1][0]=degress4
وهكذا
شوف الصوره ديت
التلميذرقم0{الماده رقم 0=الدرجه الاولي

التلميذرقم0{الماده رقم 1=الدرجه الثاينه

التلميذرقم0{الماده رقم 2=الدرجه الثالثه


تعالي نطبع عناصرها بقي
اقتباس :


for(c=0;c<3;c++)
{
for(b=0;b<3;b++)
{
printf("\narray[%d][%d]=",c,f);
printf("%d",array[c][b]);
}
}
}
الدوراتين هم هم وبتتسمي nested loops
اقتباس :

printf("\narray[%d][%d]=",c,f);
ديت عشان نطبع

array[معامل تزاييد C ] [معامل تزايد b]

ثم
اقتباس :

printf("%d",array[c][b]);
طباعة القيم المسنده الي عناصر المصفوفه كلها
اقتباس :

storm[0][1]=degrees2
storm[0][2]=degrees3
storm[1][0]=degress4
لايمكنك امرار array ك argumetn ل functions
يعني مش في كده ابدا
اقتباس :

do_what_ver_this_do(array[10]);
ده مستحيل لان ال arrays عباره عن مصفوفة عناوين الي العناصر ولايمكنك عمل acces علي جميع عناصرها
نتطرق الي هذا الجزء مع المؤشرات
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
 
[شرح] first part of pointer and arrays lessone
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» مكتبة أفلام الاساطير والمغامرات القديمة والجديده في نسختها الثانية

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
مجتمع لينوكس المصري :: الأقسام التطويرية (البرمجية) في بيئة GNU/Linux :: .: المقالات والدورات البرمجية :.-
انتقل الى: