DarKc0de
12-09-2008, 02:00 AM
هذي الدروس منقولة من النادي البرمجي بجامعة الامام محمد بن سعود الاسلامية
للكاتب هتلرر
بسم الله الرحمن الرحيم
المصفوفات ARRAYS
الجزء الاول
المصفوفة:هي عبارة عن مجموعة من خانات الذاكرة المتتالية التي لها نفس الاسم ونفس النمط (عدد صحيح او عدد عشري او حرفي).
___________________________________________
نرجع للدروسي القديمة شوي عند التعريف عن متغير نقوم بحجز مكان لة بالذاكرة وتحديد نوعة(النمط)...
int num
قومنا بحجز 4 byte لانة عدد صحيح طبعا هي قليلا ما تختلف من جهاز الى جهاز
الحجز لا يكون مرتب يعني بجميع الذاكرة ..
يمكن يكون متغير في اليسار والثاني باليمين....في الذاكرة طبعا ....يعني نادرا ما يكونا جنب بعض
ولمعرفة حجم الانماك الاخرى قم بتجربة هذا الكود
cout << "sizeof(int): " << sizeof(int) << endl
<< "sizeof(float): " << sizeof(float) << endl
<< "sizeof(double): " << sizeof(double) << endl
<< "sizeof(char): " << sizeof(char) << endl
_______________________________________________________
نقدر نقول ان المصفوفة عبارة عن مجموعة من المتغيرات متلاصقة مع بعض تحمل نفس الاسم ونفس النوع.
#التصريح عن المصفوفة:
نستخدم العبارة التالية
int Matrix [50];
هنا تم التعريف عن مصفوفة من النوع int واسمها Matrix وحجمها 50 اي تحمل 50 عدد من النوع int .
ملاحظات:
نسمي الرقم الموضع بين القوسين بالدليل sub****** .
يجب الدليل ان يكون عدد صحيح او اي متغير يعطي قيمة صحيحة.
طيب نشوف المثال التالي وهو عبار عن تعريف مصفوفة في الذاكرة
int c[8];
وقمنا بأدخال اعداد عشوائية ...للمثال فقط.. نشووف الصوورة التالية وهي تمثيلة داخل الذاكرة (طبعا ميزة السي ++ تخليك تتحكم في الذاكرة على راحتك )
طيب نرججع ونشووف الصوورة
http://www.alimam.info/up/uploads/b8d1c9e1f6.png (http://www.alimam.info/up)
وعند الرغبة في الوصول الى احد الاعداد نختار اسم المصفوفة والدليل الذي يوجد به العدد الذي نريدة...
مثلا نريد طباعة العدد 65 يتم الوصول الية
cout<<c[6];
ملاحظات:
يبدا حجز المصفوفة من الدليل صفر وليس واحد
ويبقى الدليل الاخير دون استخدام وعند اسناد اي قيمة الى الدليل الاخير يعطينا المترجم خطاء(راح نتطرق لها مستقبلا)
ونستفيد من ذالك انة اذا تم التعريف عن مصفوفة حجمها 10 فان الدليل يبدأ من صفر الى 9
ننتقل الى الجزء العملي ..وناخذ كم مثال
في المثال التالي راح نكتب مصفوفة حجمها 10 ونمطها int ونقوم بأعطها القيمة صفر الى العناصر العشرة للمصفوفة
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
int n[10];
for (int i=0 ; i<10 ;i++)
{
n[i] = 0 ;
}//end of for
for (int j =0;j<10 ;j++)//to Print the Matrix n
{
cout<<setw(70)<<j<<setw(13)<<n[j]<<endl;
}
system("pause");
}
ومثل ما انت شايفين استخدام اللوب لعطاء قيم للمصفوفة واستخدام اللوب للطباعة
ملاحظة:
الجزء هذا ينوب عنة
for (int i=0 ; i<10 ;i++)
{
n[i] = 0 ;
}//end of for
ينوب عن هذا الكود
n[10] ={0};
ويمكن تخزين عناصر في المصفوفة عند تعريفها والمثال التالي يوضح الطريقة
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
int n[10]={88, 65,5555,4545,4345,354,454,344,3334};
for (int j =0;j<10 ;j++)//to Print the Matrix n
{
cout<<setw(7)<<j<<setw(10)<<n[j]<<endl;
}
system("pause");
}
ارجو من الجميع كتابة الاكواد داخل المترجم وتجربتها وتغيرها والعب فيها ....
اي استفسار لا يردك الاكيبورد.
للكاتب هتلرر
بسم الله الرحمن الرحيم
المصفوفات ARRAYS
الجزء الاول
المصفوفة:هي عبارة عن مجموعة من خانات الذاكرة المتتالية التي لها نفس الاسم ونفس النمط (عدد صحيح او عدد عشري او حرفي).
___________________________________________
نرجع للدروسي القديمة شوي عند التعريف عن متغير نقوم بحجز مكان لة بالذاكرة وتحديد نوعة(النمط)...
int num
قومنا بحجز 4 byte لانة عدد صحيح طبعا هي قليلا ما تختلف من جهاز الى جهاز
الحجز لا يكون مرتب يعني بجميع الذاكرة ..
يمكن يكون متغير في اليسار والثاني باليمين....في الذاكرة طبعا ....يعني نادرا ما يكونا جنب بعض
ولمعرفة حجم الانماك الاخرى قم بتجربة هذا الكود
cout << "sizeof(int): " << sizeof(int) << endl
<< "sizeof(float): " << sizeof(float) << endl
<< "sizeof(double): " << sizeof(double) << endl
<< "sizeof(char): " << sizeof(char) << endl
_______________________________________________________
نقدر نقول ان المصفوفة عبارة عن مجموعة من المتغيرات متلاصقة مع بعض تحمل نفس الاسم ونفس النوع.
#التصريح عن المصفوفة:
نستخدم العبارة التالية
int Matrix [50];
هنا تم التعريف عن مصفوفة من النوع int واسمها Matrix وحجمها 50 اي تحمل 50 عدد من النوع int .
ملاحظات:
نسمي الرقم الموضع بين القوسين بالدليل sub****** .
يجب الدليل ان يكون عدد صحيح او اي متغير يعطي قيمة صحيحة.
طيب نشوف المثال التالي وهو عبار عن تعريف مصفوفة في الذاكرة
int c[8];
وقمنا بأدخال اعداد عشوائية ...للمثال فقط.. نشووف الصوورة التالية وهي تمثيلة داخل الذاكرة (طبعا ميزة السي ++ تخليك تتحكم في الذاكرة على راحتك )
طيب نرججع ونشووف الصوورة
http://www.alimam.info/up/uploads/b8d1c9e1f6.png (http://www.alimam.info/up)
وعند الرغبة في الوصول الى احد الاعداد نختار اسم المصفوفة والدليل الذي يوجد به العدد الذي نريدة...
مثلا نريد طباعة العدد 65 يتم الوصول الية
cout<<c[6];
ملاحظات:
يبدا حجز المصفوفة من الدليل صفر وليس واحد
ويبقى الدليل الاخير دون استخدام وعند اسناد اي قيمة الى الدليل الاخير يعطينا المترجم خطاء(راح نتطرق لها مستقبلا)
ونستفيد من ذالك انة اذا تم التعريف عن مصفوفة حجمها 10 فان الدليل يبدأ من صفر الى 9
ننتقل الى الجزء العملي ..وناخذ كم مثال
في المثال التالي راح نكتب مصفوفة حجمها 10 ونمطها int ونقوم بأعطها القيمة صفر الى العناصر العشرة للمصفوفة
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
int n[10];
for (int i=0 ; i<10 ;i++)
{
n[i] = 0 ;
}//end of for
for (int j =0;j<10 ;j++)//to Print the Matrix n
{
cout<<setw(70)<<j<<setw(13)<<n[j]<<endl;
}
system("pause");
}
ومثل ما انت شايفين استخدام اللوب لعطاء قيم للمصفوفة واستخدام اللوب للطباعة
ملاحظة:
الجزء هذا ينوب عنة
for (int i=0 ; i<10 ;i++)
{
n[i] = 0 ;
}//end of for
ينوب عن هذا الكود
n[10] ={0};
ويمكن تخزين عناصر في المصفوفة عند تعريفها والمثال التالي يوضح الطريقة
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
int n[10]={88, 65,5555,4545,4345,354,454,344,3334};
for (int j =0;j<10 ;j++)//to Print the Matrix n
{
cout<<setw(7)<<j<<setw(10)<<n[j]<<endl;
}
system("pause");
}
ارجو من الجميع كتابة الاكواد داخل المترجم وتجربتها وتغيرها والعب فيها ....
اي استفسار لا يردك الاكيبورد.