الأخ العزيز / الفارس أشكرك على مساعدتك لي واتمنى لك التوفيق والنجاخ إن شاء الله وأرجو أن تقبل مني هذه الهدية المتواضعة
وهي عبارة عن شرح للغة ++C
الفصل الأول
(الكائنات)
(Structures)
-مقدمة:
توفر لغة C++ لمستخدميها إمكانية تنظيم مجموعات من المتغيرات في صيغ و مجاميع خاصة تحمل أسماء جماعية، ويتم التعامل مع هذه المجاميع بالجملة من خلال اسم المتغير الجماعي الذي يمثلها وتختلف هذه المجاميع عن المصفوفات كون عناصرها من أنواع مختلفة من المعطيات.
وكل عنصر من هذه المجاميع يسمى عضواً "member".
وتستخدم بكثرة في إنشاء ومعالجة السجلات متنوعة المعطيات مثل سجلات الطلبة ودرجاتهم وسجلات العناوين والهواتف والبريد وغيرها…
-تعريف الكائنات ( Structure ):
Structure : تعني الكيان ، والكيان في لغة ++ C هو عبارة عن مجموعة من المتغيرات بينها علاقات تألف، ويمثلها اسم واحد، ويسمى كل متغير مشترك في بناء الكيان عنصراً أو عضواً، وتجمع عناصر الكيان أو أعضاءه علاقات منطقية مثل اسم الموظف وعنوانه وراتبه مع أنها تنتمي إلي أنواع مختلفة من المعطيات كأن تكون أعداد صحيحة،حقيقية أو غير ذلك.
-ملاحظة:تعرف الكيانات أيضاً باسم المنشآت.
-التركيب العام هو:
Struct اسم المتغير الجماعي
{
المتغير 1
المتغير 2
المتغير 3
} Struct1;
-ملاحظة: اسم المتغير الجماعي في الشكل العام للكائنات اختياري ولكن يفضل كتابته وذلك لتوضيح معنى البرنامج.
مثال توضيحي:
في المثال التالي كياناً لعنوان شخص ما كالاسم ، والشارع، وصندوق البريد، والمدينة:
struct address {
char name [20];
char street [30];
int p-o-box;
char city [15];
} information; (address information; (هذه الصيغة مقبولة وكأنها تشبه
يبين الجدول التالي الطول بالبايت المعطى لكل عضو من أعضاء الكيان، حسب ما هو معلن في الكيان نفسه ، علماً بأن المتغير الرمزي يأخذ طولاً مقداره بايت واحد والمتغير الصحيح طوله 2 بايت
المتغير الطول المحجوز من الذاكرة بالبايت
الاسم name 20
الشارع street 30
صندوق البريد P-O-Box 2 (لأنه عدد صحيح)
المدينة city 15
البلد country 15
ملاحظة: يمكننا بالطبع استخدام أكثر من متغير في آخر سطر من الكيان فمثلاً يمكن أن نستعمل السطر:
}struct1,struct2,struct3;
الذي يحتوي على ثلاثة متغيرات بدلاً من السطر التالي:
}struct1;
والذي يحتوي متغير واحد فقط.
ملاحظة: يمكن حذف اسم الكيان من التركيب العام أو حذف كلمة struct الموجودة في آخر سطر في التركيب العام ولكن لا يمكن حذف اسم الكيان و كلمة struct معاً .إي يمكن حذف أحدها وليس كليهما.
مثال: يوضح المثال التالي التركيب العام لكائنات ( Weather):
struct weather{
float temp;
float pressure;
float wind;
};
ملاحظة: ينصح مبرمج لغة C++ بالا يزيد طول كلمات ملفه عن خمسة آلاف بايت. وذلك لتجنب إي مشكلات تتعلق بترجمة البرنامج
*مصفوفة الكيانات ( Structure Arrays ):
تعتبر مصفوفة الكيانات من أهم تطبيقات الكيانات ، إذ يعلن عن الكيان أولاً ، ثم عن متغير المصفوفة
-مثال توضيحي:
struct address information[50];
وفي المثال السابق يقوم باستحداث 50 مجموعة من المتغيرات ، كل منها يمثل كياناً متكاملاً .
*كيانات داخل كيانات أخرى:
بإمكان إي كيان أن يحوي بداخله كيانات أخرى وتعتبر الكيانات الداخلية أعضاء أو عناصر للكيان الخارجي المحتوي للكيانات الداخلية. وقد تسمى هذه الكيانات اسماً آخر وهو الكيانات المتداخلة
Netsted Structure.
-مثال توضيحي:
struct record{
struct address;
char name;
float salary;
}struct record;
*الاستخدام العملي للكيانات:
الكيانات قوية جدا من الناحية البرمجية ومفيدة جدا في برمجه قواعد البيانات
و لعلك حتى الآن لم تفهم ما هي الكيانات وما هي الفائدة من استخدامات الكيانات ولذلك سوف نأخذ مثال عماي متكامل على استخدام الكيانات.
-المثال الأول: هو عبارة عن بطاقات خاصة بزبائن إحدى الشركات ، وكل بطاقة تحتوي على رقم الزبون واسم الزبون ومجال عمل شركته ، ورقم هاتفه ، وعنوانه الكامل.
--خطوات الحل: أولاً: سنبدأ بكتابة الشكل العام للكائنات ثم نقوم بتعريف المتغيرات:
struct card-st{
char Name[30];
char company[30];
char phone[20];
char street [25];
char city[25];
char state[3];
char zip[10];
};
وطبعاً كان بإمكاننا تعريف جميع تلك العناصر بصورة منفردة ، ولكن إذا تخيلنا أن علينا تكرار ذلك العمل من أجل مائة بطاقات مختلفة ، فإننا ندرك فائدة استخدام هذه البنى .
المثال الثاني: عن قاعدة البيانات الافتراضية التالية سوف ندرسها بالطريقة العادية وبطريقة هياكل البيانات لتعرف الفرق وتفهم الموضوع وفي نفس الوقت تدرك ميزات وفوائد هياكل البيانات
لنفرض أن هناك مصنع يعمل على فترتين ولكل عامل فيه سجل بيانات بالطبع لعامل الفترة الأولى والآخر لعامل الفترة الثانية ونفترض للتبسيط أن بيانات كل عامل تحتوي على اسمه ورقمه الوظيفي وراتبه اليومي حتى انه لو تغيب إحدى الفترات وضع راتب يومه بالقيمة صفر حتى يتم حساب راتبه الشهري بصورة صحيحة وسيكون الإعلان عن البيانات بالصورة التالية لنتفق عليها وفيها فائدة تكرار أشياء سبق الإشارة إليها في دروس سابقه
الصيغة المتغير أو وعاء البيانات
char [30] اسم الموظف افترضنا انه متغير حرفي سعته 30 حرف
int الرقم الوظيفي للموظف وهو عدد صحيح
float الراتب اليومي للموظف وهو عدد عشري لان الراتب من المؤكد انه سيحتوي على كسور
بيانات موظف الفترة الأولى
char [30] Name1;
int Code1;
float Wage1;
بيانات موظف الفترة الثانية
char [30] Name2;
int Code2;
float Wage2;
الصورة السابقة لتمثيل بيانات البرنامج مع اثنين من الموظفين يعملون لفترتين وكلما أدخلت بيانات اسم موظف الفترة الأولى سوف تستخدم المتغير Name1 وللفترة الثانية ستستخدم المتغير Name2 فماذا لو بدلت المتغيرين بالخطأ بالطبع سيحدث خلل كبير بالبرنامج دعنا نمثل ما سبق تماما بالطريقة الجديدة عن طريق استخدام هياكل البيانات
استخدام هياكل البيانات
struct OurDataBase
{
char [30] Name;
int Code;
float Wage;
}L1,L2;
انظر إلى الصورة السابقة كم هي مختصرة أنها رائعة وأنا أرى فيها اختصار مفيد ودعنا نرى كيف نصيغ ذلك بالجدول الذي تعودنا عليه للتوضيح
الصيغة التفسير
Struct هو الأمر الذي ندرسه الآن ومعناه الإعلان عن هيكل بيانات
OurDataBase اسم الهيكل سميه كما شئت
{ قوس بداية البلوك
ضع ما يحلو لك من أنواع بيانات داخل البلوك
} قوس نهاية البلوك
L1,L2; متغيرات اختياريه ترمز لمن سيشارك في استخدام البيانات المعلنة للهيكل
كما رأيت بالمثال لم نستخدم متغير اسم للموظف الأول وآخر للموظف الثاني بل استخدمنا متغير واحد وسوف يتشارك أي عدد حسب تصميم الهيكل في استخدام بيانات الهيكل ولنوضح ذلك
للتعبير عن اسم الموظف الأول أو موظف الفترة الأولى
L1.Name
للتعبير عن اسم الموظف الثاني أو موظف الفترة الثانية
L2.Name
للتعبير عن رقم الموظف الأول أو موظف الفترة الأولى
L1.Code
للتعبير عن رقم الموظف الثاني أو موظف الفترة الثانية
L2.Code
للتعبير عن الراتب اليومي للموظف الأول أو موظف الفترة الأولى
L1.Wage
للتعبير عن الراتب اليومي للموظف الثاني أو موظف الفترة الثانية
L2.Wage
هل رأيت كم هي بسيطة ربما احتوى هيكل البيانات على مائة متغير مثلا سوف تخزنهم وتسترجعهم بمنتهى السرعة كما سترى فيما بعد ويمكن أن يصبح تدوال البيانات السابقة داخل البرنامج سواء بالإدخال من مستخدم البرنامج أو بالتخصيص كما يلي
L1.Name = “Mohamad Hasan”;
L1.Code = 120;
L1.Wage = 13.50;
L2.Name = “Ahamd Ali”;
L2.Code = 270;
L2.Wage = 0;
بالطبع هذه فكرة برنامج ويمكن إضافة المزيد من التحسينات من خلال تحليل البيانات فمثلا جمع المتغير L1.Wage لمدة شهر سوف يعطيك راتبه الشهر وجمع القيم التي تساوي صفر للمتغير L1.Wage لمدة شهر سوف يعطيك عدد أيام غيابه خلال الشهر وهذا يبقى دور تحليل البيانات لاستخلاص نتائج ومخرجات – المثال السابق كان لتوضيح الفكرة فقط.
المثال الثالث:
مستخدماً الأمر Struct قم بعمل برنامج بلغة C++ لإدخال البيانات التالية:
رقم الصنف ItNo
اسم الصنف ItName
ثم يقوم بإظهارها بعد ذلك على الشاشة ؟
الحل:
#include
#include
main()
{
clrscr();
struct data
{
int ItNo;
char Name[10];
};
struct data st;
cout<<" Enter the student Number" ;
cin>>st.ItNo;
cout<<" Enter the student Name" ;
cin>>st.ItName;
clrscr();
cout<
سؤال: مستخدماً أمر الكيانات قم بعمل برنامج بلغة C++ لإدخال البيانات التالية:
رقم الموظف EmNo
اسم الموظف EmNa
الراتب Sal
ثم يقوم بإظهارها بعد ذلك على الشاشة ؟
-الاتحادات ( Unions ):
تعريف: يعرف الاتحاد على انه نوع من الكيان ، ويأخذ نسق وطريقة ترتيب الكيان نفسها .
الفرق بينهما: أن الاتحاد تتحد فيه عناصره بمخازن مشتركة في الذاكرة ، فهو لذلك يوفر عدد من الشواغر في الذاكرة ، باستعماله مخازن مشتركة من الذاكرة لعدد من العناصر التي تختلف في أنواع معطياتها.
-الشكل العام للاتحادات:
unions name{
تعريف المتغير 1;
تعريف المتغير 2;
………………..
}
مثال توضيحي:
unions record {
char name;
int number;
};
في المثال السابق يحتل العنصر الرمزي name بايتاً واحداً من الذاكرة ، بينما يحتل العنصر الصحيح number بايتين ، أحدهما مشترك نع العنصر name.
أسئلة على الفصل الأول
س1:عرف الكيانات ؟ وما هو التركيب العام للكائنات ؟
س2:عرف كل من المصطلحات التالية:
1-المنشآت
2-Structure
3-التراكيب البنائية
4-مصفوفات الكيانات
س3:أكتب التركيب العام لكائنات العنوان ( Address )؟
س4:أكتب التركيب العام لكائنات العنوان Address والذي يشمل على البيانات التالية:
Name
Number
Street
P-O-Box
City
Country
س5:أكمل الجدول التالي:
اسم المتغير حيز التخزين بالبايت حيز التخزين بالبت
Number 2 …………………..
Name 20 …………………..
City ………………….. 80
س6:علل:ينصح مبرمج لغة C++ بالا يزيد طول كلمات ملفه عن خمسة آلاف بايت؟
س7:هل يمكن أن يحتوي الكيان على مجموعة أخرى من الكيانات بداخله ؟ مدعماً إجابتك بمثال ؟
س8:هل يمكن استعمال المصفوفات داخل الكيانات ؟ مدعماً إجابتك بمثال ؟
المصفوفات
(Arrays)
-مقدمة عن المصفوفات:
قد تشترك بعض المتغيرات في صفة تجمع ما بين هذه المتغيرات وقد يصبح عدد المتغيرات كبيراً جداً، وبالتالي تصبح طريقة تعريف المتغيرات والتعامل معها بالطرق الاعتيادية غير عملية ، فمثلاً عندما نريد إدخال درجات مائة طالب على سبيل المثال: x1,x2,x3,……..x100 ، فكم سيكون مقدار الحيز المطلوب من البرنامج (أي عدد الخطوات المطلوبة ) لعمليات إدخال وإخراج هذه المتغيرات بالإضافة إلي العمليات الحسابية المراد إجراؤها على هذه المتغيرات. لهذا يتم استخدام متغير واحد لهذه العناصر بحيث يتم التميز بينها عن طريق الرقم الموجود ما بين القوسين [ ] والذي يدل على ترتيبه بالنسبة لبقية عناصر المصفوفة.
ويطلق على المصفوفات اسم المتغير المرقم ويمكن تشبيه المصفوفات بالجيش الذي يعامل كاسم متغير واحد ، ولكنه يضم عدداً كبيراً من العناصر ، فمثلاً العناصر التالية:
a[0] , a[1] , a[2] ,……a[n]
هي تابعة للمتغير الجماعي a[ ] ، وكل عنصر من هذه العناصر له عنوان في الذاكرة ، فالعنوان الأول يكون للعنصر الأول والعنوان الثاني يكون للعنصر الثاني وهكذا.
وتعتبر المصفوفات من الأدوات الهامة في لغات البرمجة لتخزين قيم عددية أو حرفية تحت نفس الاسم بمعنى آخر دعنا نرى المثال التالي لتخزين عدد
Int A;
A=5;
في هذا المثال لم نستطع أن نخزن في المتغير المعلن عنه وهو عدد صحيح سوى قيمة واحدة فقط ولو حاولت (بالطبع تتفق معي في هذا ) تخزين قيمة أخرى فسوف تلغي القيمة الأولى لتحل محلها القيمة الجديدة تقوم المصفوفات بعلاج هذه المشكلة مثال لذلك.
int A[50];
أعلن عن مصفوفة أعداد صحيحة تستطيع تخزين خمسون عدد صحيح كما يلي
A[0] = 5;
A[1] = 10;
.
.
.
A [49] = 300;
مع ملاحظة أن التعبير التالي سوف يعتبر خطأ جسيم مع لغة سي++
A[50] = 200;
رغم أن المصفوفة تتسع ل 50 رقم إلا أن المصفوفة تبدأ من العنصر A[0] وتنتهي بالعنصرA[49] وبذلك يكون مجموع العناصر 50 كما طلبت شاملا الرقم صفر وفي لغة سي++ دائما نبدء العد من صفر وليس من 1
-تعريف المصفوفة (Array) :
التعريف الأول: هي عبارة عن حجز مكان للمتغير بالذاكرة.
التعريف الثاني: هي عبارة عن مجموعة أو قائمة من القيم يشار إليها بنفس المتغير.
-أهمية المصفوفات:
تظهر أهمية المصفوفات في البرامج الكبيرة التي تحتاج إلي إدخال عدد كبير جداً من المتغيرات.
وتساعد في تقليل عدد سطور البرنامج وتوفير الوقت.
-ملاحظات هامة على المصفوفات:
1-كل مصفوفة تحجز أماكن متعاقبة في الذاكرة.
2-يميز كل عنصر من عناصر المصفوفة برقم العنصر.
3-رقم أو رمز العنصر يكون قيمة موجبة دائماً أو يساوي الصف ولا يمكن أن يكون قيمة سالبة.
-أنواع المصفوفات:
1-
ويمكن أن تكون المصفوفة ذات اتجاهين مثل
15 65 33 44
1 0 11 22
33 52 11 17
18 25 14 41
لتمثل بلغة سي ++ كما يلي
int A[4][4];
وافضل طريقة لتعبئة وتخصيص قيم لمصفوفة وللتعامل مع المصفوفات بصفة عامة هي عمل looping باستخدام for أو غيرها كما سبق ووضحنا ذلك وكمثال لملئ المصفوفة بالقيمة صفر
#include
#include
main()
{
int A[100];
int I;
for (I = 0 ; I < 100 ; I++)
{
A[I] = 0;
}
}
بالطبع الدوران السابق يغير قيمة العداد من صفر إلى 99 ووضعنا داخل البلوك تخصيص لعناصر المصفوفة وبدلا من وضع قيمة عددية لتشير لعنصر بالمصفوفة وضعنا رمز العداد حيث انه سوف يتغير مع الدوران الذي يحدث وبالتالي تتخصص القيم حسب الترتيب
ولتخصيص القيم صفر مثلا لمصفوفة ذات اتجاهين
#include
#include
main()
{
int A[10][10] , I , J;
for (I = 0 ; I < 10 ; I++)
{
for (J = 0 ; J < 10 ; J++)
{
A[I][J] = 0;
}
}
}
بوضع دورتين واحدة تدور على الصفوف حتى تنهيها وتعود لتغير الصف وهكذا كما سبق وتعلمت
ولنا في المصفوفات مآرب أخرى ، ولا تحتوي لغة سي ++ على تعريف ثابت وداخلي للمتغيرات الحرفية ولذلك يتم تلافي ذلك باستخدام المصفوفات ربما يعترض واحد من المتابعين لهذه الدروس بأن الأمر char يقوم بذلك نعم هو كذلك ولكنه يعرف المتغير على انه حرف واحد فقط ونحن سنتحايل عليه بالمصفوفات كما يلي
char Q;
Q = ‘A’;
عرفنا المتغير Q على انه حرف وبالتالي لا نستطيع تخزين فيه سوى القيمة A فإذا طلبت طباعة قيمة المتغير Q سيقوم البرنامج بطبع الحرف A فماذا لو أننا نريد تخزين عدة حروف تمثل اسم شخص إذا علينا بمصفوفة حروف كما يلي
char Q[40];
Q = “Mohamad Hasan”;
مثال: أكتب برنامج يقوم بإدخال خمسة أسماء في مصفوفة ثم يظهرهم على الشاشة ؟
#include
#include
#include
main()
{
clrscr();
char nam[5][10];
int y;
for(y=0;y<5;y++)
cin>>nam[y];
clrscr();
for(y=0;y<5;y++)
cout<<"n"<
سؤال: أكتب برنامج يقوم بإدخال عشرة أسماء في مصفوفة ثم يظهرهم على الشاشة ؟
مثال2:أكتب برنامج يقوم بإدخال درجات عشر طلاب في مصفوفة ثم قم بإيجاد أكبر و أصغر درجة والفرق بينهما ؟
#include
#include
#include
#include
main()
{
clrscr();
int max,min,range,i;
int q[9]={1,14,88,3,9,2,37,55,9};
for (i=0;i<9;i++)
cout<<"nt"<max=min=q[0];
for (i=0;i<9;i++)
{
if (q[i]>max)
max=q[i];
if(q[i]
}
cout<<"nmax="<
cout<<"nrange="<
}
سؤال :أكتب برنامج يقوم بإدخال درجات خمس طلاب في مصفوفة ثم قم بإيجاد أكبر و أصغر درجة والفرق بينهما ؟
مثال:أكتب برنامج يقوم بإدخال درجات عشر طلاب في مصفوفة ثم يقوم البرنامج بترتيب هذه الأرقام ترتيباً تصاعدياً ؟
#include
#include
#include
#include
main()
{
clrscr();
سؤال 1: أكتب برنامج يقوم بإدخال درجات خمس طلاب في مصفوفة ثم يقوم البرنامج بترتيب هذه الأرقام ترتيباً تصاعدياً ؟
سؤال 2: أكتب برنامج يقوم بإدخال درجات عشر طلاب في مصفوفة ثم يقوم البرنامج بترتيب هذه الأرقام ترتيباً تنازلياً ؟
أسئلة على الفصل الثاني
س1:عرف المصفوفات ؟ وما هي أهمية المصفوفات ؟
س2:ما هي أنواع المصفوفات ؟ وما هو التركيب العام لكل نوع منها ؟ "مدعماً إجابتك بالأمثلة"
س3:أمامك مجموعة من المصفوفات بلغة البيسك قم بتحويلهما إلي مصفوفات بلغة C++:
1- 10 DIM A(20)
2- 10 DIM B$(15)
3- 10 DIM A(2,5)
4- 10 DIM A$(3,5,1)
س4:أكتب برنامج يقوم بإدخال عشر أرقام في مصفوفة ثم يقوم بعرضهم على الشاشة ؟
س5:أكتب برنامج يقوم بإدخال عشرة أسماء في مصفوفة ثم يقوم بعرضهم على الشاشة ؟
س6: أكتب برنامج يقوم بإدخال درجات عشر طلاب في مصفوفة ثم قم بإيجاد أكبر و أصغر درجة والفرق بينهما ؟
س7: : أكتب برنامج يقوم بإدخال درجات عشرطلاب في مصفوفة ثم يقوم البرنامج بترتيب هذه الأرقام ترتيباً تصاعدياً ؟
الدوال ( Functions )
تعريف الدالة:
هي جملة أو مجموعة جمل أو تعليمات ، ذات كيان خاص ، تقوم بعملية أو مجموعة عمليات ، سواء إدخال أو إخراج ، أو عمليات حسابية أو منطقية ، وتحتل الدالة موقعاً من البرنامج، إي أنها جزء منه، أو يمكن القول أن برنامج لغة السي يتكون من مجموعة من الدوال.
الدوال أو الروتينات الفرعية وهي أجزاء من البرنامج مثل الدالة الرئيسية تقوم بعمل مهمة معينة تتكرر في برنامجك أو تستخدمها في برامج أخري أو حتى إذا كانت لا تتكرر من فوائدها
1-تقسيم البرنامج إلى أجزاء صغيرة تستدعى وقت اللزوم وذلك لتسهيل التعامل مع البرامج.
2-توفير المجهود والوقت والتفكير بعمل مكتبة خاصة بك تعيد استخدام الدوال التي استخدمتها في برنامج وذلك في برنامج آخر عند اللزوم
3-تقسيم العمل بين المبرمجين عند العمل في مشروع جماعي لإنتاج برنامج كبير
4-تساعد الدوال على تلافي عمليات التكرار في البرامج.
-مثال على الدوال:
#include
main()
{
int x , y , z;
for(x=1;x<13;x++)
{
for(y=1;y<13;y++)
{
z = x * y;
cout<
}
}
* أهم الدوال :
1-الدالة strlen:
-وظيفتها: إيجاد عدد الحروف داخل سلسلة نصية.
-المثال:
#include
#include
#include
main()
{
clrscr();
char *a="welcome to city";
cout<<"n"<
2-الدالة strcat:
-وظيفتها: دمج سلسلتين حرفيتين.
-المثال:
#include
#include
#include
main()
{
clrscr();
char *a="Computern" ;
char *b="Center";
strcat(a,
cout<}
3-الدالة strrev:
-وظيفتها: تقوم بعكس سلسلة حرفية .
-المثال:
#include
#include
#include
main()
{
clrscr();
char *a="welcome";
cout<<"n Before strrev:"<cout<<"n After strrev:"<}
4-الدالة strlwr
-وظيفتها: تقوم بتحويل حروف إي سلسلة نصية إلي حروف صغيرة
-المثال:
#include
#include
#include
main()
{
clrscr();
char *a="WELCOME";
cout<<"n"<
5-الدالة strupr
-وظيفتها: تقوم بتحويل حروف إي سلسلة نصية إلي حروف كبيرة.
-المثال:
#include
#include
#include
main()
{
clrscr();
char *a="welcome";
cout<<"n"<
6-الدالة strset
-وظيفتها: تستخدم بتحويل سلسلة معينة بحرف أو رمز معين.
-المثال:
#include
#include
#include
main()
{
clrscr();
char st[10]="123456789";
char sym=’c’;
cout<<"n Before strset:"<
cout<<"n After strset:"<
7-الدالة
-وظيفتها: تستخدم بتحويل سلسلة معينة بحرف أو رمز معين.
-المثال:
#include
#include
#include
main()
{
clrscr();
8-الدالة strcmp
-وظيفتها: تستخدم لمقارنة بين سلسلتين نصيتين.
-المثال:
#include
#include
#include
main()
{
clrscr();
char *a="ahmad";
char *b="jamal";
int comp;
comp=strcmp(a,
if (comp>0)
cout<<"n ahmad is greater than jamal”;
else
cout<<"n ahmed is less than jamal";
}
أسئلة على الفصل الثالث
س1:عرف الدوال وما هي فوائدها ؟
س2:أذكر ستة أمثلة على أهم الدوال الموجودة داخل مكتبة string ؟
س3:أكمل الجدول التالي:
الدالة الوظيفة
Strlen ………………………………………
……………………………………… لدمج سلسلتين حرفيتين
Strlwr ………………………………………
……………………………………… عكس سلسلة نصية
strupr ………………………………………
س4:ما هي وظيفة كل من الدوال التالية مع ذكر مثال على كل دالة منها:
1-strrev
2-strset
3-strlen
4-strlwr
واخيرا أرجو المعذرة إذا وجدت أخطاء إملائية أو أخطاء في التنسيق لإني كنت مستعجل وأعدك يا أخي الفارس وجميع رواد المنتدى بالعديد من الهدايا في كل من اللغات التالية ++c وVB و
باسكال و أكسس وغيرها من البرامج قريباً إن شاء الله وشكرا لكم
مع تحيات سمسم