الفصل الثالث

Download Report

Transcript الفصل الثالث

‫الفصل الثالث – المتغيرات والعمليات‬
‫الحسابية‬
‫‪Variables and Arithmetic‬‬
‫‪Operations‬‬
‫قوانين المتغيرات‬
‫‪ ‬يجب تعريف جميع اسماء المتغيرات‬
‫– االسم والنوع‬
‫‪ ‬يجب أال يزيد طول المتغير عن ‪ 31‬حرفا َ‬
‫– التحديد وجد لكي تتمكن المترجمات القديمة من قراءة البرامج‬
‫‪ ‬يمكن وضع قيمة للمتغيرات الرقمية وذلك باستخدام اشارة‬
‫ال يساوي‬
‫;‪variable_name = value‬‬
‫اشارة يساوي‬
‫‪Lesson 3.1‬‬
‫تسمية التعريفات‬
‫‪ ‬يجب أن يكون اول المتغير حرفا َ‬
‫– _ ‪a-z, A-Z or‬‬
‫‪ ‬االجزاء االخرى‬
‫– احرف ) _ ‪ (a-z, A-Z,‬أو ارقام ‪0-9‬‬
‫‪ ‬ال يمكن استخدام الكلمات المحجوزة والخاصة بلغة ‪C++‬‬
‫‪ ‬ال يسمح بوجود فراغات داخل اسم المتغير‬
‫‪Lesson 3.1‬‬
‫المصطلحات والكلمات المحجوزة‬
‫‪ ‬كلمات لديها معنى خاص بلغة البرمجة ‪C++‬‬
‫‪ ‬تتضمن تعبيرات عن بعض العوامل الرياضيه والترقيم‬
‫‪ ‬القائمة كاملة موجودة في الجدول ‪3.1‬‬
‫‪ ‬أمثلة‪:‬‬
‫‪– auto, bool, float, inline, union, delete‬‬
‫‪– namespace, private, void‬‬
‫‪Lesson 3.1‬‬
‫تعريف المتغيرات‬
‫‪ ‬يجب تعريف جميع المتغيرات‬
‫‪ ‬اسم المتغير ونوعه‬
‫‪ ‬يمكن تعريف اكثر من متغير من نوع واحد وذلك‬
‫باستخدام الفواصل‬
‫‪ ‬طريقة لمترجم ‪ C++‬لمعرفة الحجم المطلوب حجزه لكل‬
‫متغير‬
‫اسماء المتغيرات ;‪double radius, diameter‬‬
‫النوع‬
‫الفاصل‬
‫‪Lesson 3.1‬‬
‫قيمة المتغيرات‬
‫‪ ‬تخزين قيمة المتغير داخل الجزء المحجوز من الذاكرة‬
‫والخاص بالمتغير‬
‫;‪variable_name = value‬‬
‫‪ ‬يجب وضع اسم المتغير يسار عالمة ال يساوي‬
‫‪ ‬عالمة ال يساوي هي معامل القيمة‬
‫مالحظة‪ :‬عالمة ال يساوي = ال تعني يساوي!‬
‫;‪temperature = 78‬‬
‫‪ ‬أمثله‪-:‬‬
‫‪Lesson 3.1‬‬
‫المتغيرات ثابتة القيمه‬
‫‪ ‬استخدم المعامل ‪const‬‬
‫;‪const double PI = 3.14159‬‬
‫‪ ‬ال ولن يمكن تغيير قيمة المتغير داخل البرنامج الحقا‬
‫‪ ‬نصيحة للتوضيح‪ :‬استخدم اسم للمتغير الثابت القيمة مكون‬
‫من احرف كبيرة للتوضيح‬
‫– يجعل من السهل التعرف على المتغيرات الثابتة‬
‫‪Lesson 3.2‬‬
‫تنسيق االخراج على الشاشة (الطباعة)‬
‫‪ ‬اضافة معامالت لإلدخال واإلخراج الخاصة بالمعامل‬
‫‪ cout‬وذلك لتنسيق الطباعة‬
‫– تعرف المعامالت بإضافة الترويسه ‪iomanip‬‬
‫>‪#include <iomanip‬‬
‫‪ ‬طريقة االستخدام‪:‬‬
‫;)‪cout << manipulator(parameter‬‬
‫من قبل‬
‫المستخدم‬
‫المعامل‪3.2‬‬
‫الجدول‬
‫للتنسيقفي‬
‫متوفرة‬
‫القائمة‬
‫‪Lesson 3.2‬‬
‫) (‪setw‬‬
‫‪ ‬يحدد حجم الحقل‬
‫‪ ‬يضع المحتويات يمين الحقل‬
‫‪ ‬يقوم ‪ C++‬بتوسيع حجم الحقل اوتوماتيكيا في حال كان‬
‫الحجم صغيرا‬
‫;‪cout<<“number =“<<setw(7)<<num<<endl‬‬
‫= ‪number‬‬
‫‪5‬‬
‫*******‬
‫حجم الحقل‬
‫‪Lesson 3.2‬‬
‫) (‪setprecision‬‬
‫‪ ‬يحدد عدد الخانات العشرية بعد الفاصله‬
‫‪ ‬جميع الخانات العشرية تبقى محفوظة في الذاكرة‬
‫‪ ‬بعد تحديد عدد الخانات وفي حال استخدامها او عدم‬
‫استخدامها تبقى حتى يتم تغيير القيمة بأمر اخر‪.‬‬
‫;‪num = 5.3415‬‬
‫;‪cout<<“num = “<<setprecision(2)<<num‬‬
‫‪num = 5.34‬‬
‫‪Lesson 3.2‬‬
‫) (‪setfill‬‬
‫‪ ‬يحدد ملئ الفراغ في حقل معين‬
‫‪ ‬يجب وضع فواصل مفرده حول الرمز المراد استخدامه‬
‫وذلك بعد االقواس‬
‫;‪num = 5.34‬‬
‫;‪cout<<setw(10)<<setfill(‘*’)<<num‬‬
‫‪******5.34‬‬
‫‪Lesson 3.2‬‬
‫) ‪setiosflags(ios::‬‬
‫‪ ‬يستخدم لعدة تنسيقات وذلك حسب المعامل المستخدم داخله‬
‫‪ ‬جدول ‪3.3‬‬
‫‪ ‬أمثله‪:‬‬
‫محاذاة الحقل لليسار‬
‫;‪num = 5.34‬‬
‫)‪cout<<setiosflags(ios::left‬‬
‫;‪<< setfill(‘*’)<<setw(10)<<num‬‬
‫******‪5.34‬‬
‫‪Lesson 3.2‬‬
“‫طباعة عالمة ”الدوالر‬
‫ يجب استخدام تنسيقات االخراج‬
cout<<setprecision(2)
<<setiosflags(ios::fixed|ios::showpoint)
<<“Income = $” <<income;
Income = $7842.00
Lesson 3.2
‫االحرف كنوع من المعلومات‬
‫‪ ‬االحرف الالتينية الكبيرة والصغيرة‬
‫‪ ‬كذلك الرموز الحرفية )^ ‪ (!, #,‬و ”الفراغ“‬
‫‪ ‬المعامالت الخاصة ‪ (\n) Escape‬تعتبر كحرف واحد‬
‫‪ ‬االرقام من ‪ 0-9‬يمكن اعتبارها احرف‬
‫;‪char c1,c2‬‬
‫‪ ‬تعريف المتغير من نوع حرفي‪:‬‬
‫;’‪c1 = ‘g‬‬
‫‪ ‬لوضع قيمة‪:‬‬
‫واحد فقط‬
‫حرف‬
‫تحفظ‬
‫تحفظ بين قوسين مفردين‬
‫‪Lesson 3.3‬‬
‫حفظ االحرف ك ‪int‬‬
‫‪ ‬يقوم ‪ C++‬بوضع قيمة الحرف ” ‪“ASCII code‬‬
‫الخاص به‬
‫‪ ‬ال يقم بحفظ القيمة الرقمية اذا تم تعيين احد االرقام من ‪-9‬‬
‫‪ 0‬للنوع حرف ‪char‬‬
‫‪ ‬الجدول ‪ 3.5‬يوضح االحرف و قيمتها حسب قيمة‬
‫‪ ASCII‬العالمية‬
‫‪Lesson 3.3‬‬
‫العمليات الرياضيه‬
‫‪ ‬تشابه العمليات الحسابية الجبريه‬
‫‪ ‬العبارة الجبرية تحتوي على مجموعة من المعامالت‬
‫والعمليات‬
‫– المعامالت (المتغيرات‪ ،‬الثوابت‪ ،‬وأي قيمة اخرى)‬
‫– العمليات ) ‪(+, - , * , / , %‬‬
‫‪ ‬توضح نوع العمليه المراد تنفيذها‬
‫‪ ‬للزيادة (‪ )++‬و للنقصان (‪)--‬‬
‫‪Lesson 3.4‬‬
‫االخطاء الشائعة‬
‫‪ ‬متغيرات ال يوجد لديها قيمة‬
‫– يقوم برنامج ‪ C++‬بإضافة قيمة للمتغير‬
‫– ال تظهر رسالة خطأ او تحذير‬
‫‪ ‬وضع قيمة كبيره للمتغير من نوع ‪int‬‬
‫– قيمة المتغير من نوع ‪ int‬تتراوح مابين ‪ –32768‬و‪32767‬‬
‫– يأتي التحديد إلمكانية التخزين المحدودة لموقعين (‪ 2‬بايت) في الذاكره‬
‫– خطأ فائض (فيضان) ‪Overflow error‬‬
‫‪ ‬القسمة على صفر‬
‫‪Lesson 3.4‬‬
‫المعامالت السابقه والالحقة‬
‫‪ ++ ‬أو ‪--‬‬
‫‪ ‬عند وضعها قبل المتغير‪ ،‬تتم الزيادة او النقصان قبل تعيين‬
‫القيمة‬
‫‪i = i - 1; 1‬‬
‫‪k = i; 1‬‬
‫;‪k =--i‬‬
‫‪i = 2 and k = 1‬‬
‫;‪k = ++i‬‬
‫‪i = i + 1; 3‬‬
‫‪k = i; 3‬‬
‫‪ ‬عند وضعها بعد المتغير‪ ،‬تتم الزيادة او النقصان بعد تعيين‬
‫القيمة‬
‫‪i = 2 and k = 1‬‬
‫‪k = i; 2‬‬
‫‪i = i - 1; 1‬‬
‫;‪k = i--‬‬
‫‪k = i; 2‬‬
‫‪i = i + 1; 3‬‬
‫;‪k = i++‬‬
‫‪Lesson 3.5‬‬
‫العمليات الحسابيه الخاصة باألنواع المختلفة‬
‫‪ ‬تعيين قيمة رقم عشري ‪ real‬لمتغير صحيح ‪int‬‬
‫– حذف الجزء العشري من الرقم‬
‫‪ ‬تعيين قيمة رقم صحيح لمتغير من نوع عشري‬
‫– يتم اضافة فاصله عشرية للرقم‪ ،‬ويتم تخزين الرقم كرقم‬
‫عشري‬
‫‪ ‬تعديالت خاصة بالمعامل ‪cast‬‬
‫– يقوم بتحويل نوع ناتج قيمة معينة‬
‫‪static_cast‬‬
‫– اسم المعامل‬
‫‪Lesson 3.5‬‬
‫المعامل ‪static_cast‬‬
‫‪ ‬الصيغة العامة‪:‬‬
‫)القيمة( >النوع< ‪static_cast‬‬
‫‪ ‬اسم المعامل يحتاج لشرطة سفلية‬
‫‪ ‬نسخة مؤقتة من القيمة تحفظ بالنوع الجديد‬
‫‪ ‬يمكن استخدام أي من انواع المتغيرات المتوفرة في ‪C++‬‬
‫‪Lesson 3.5‬‬
‫اولويات العمليات الحسابية‬
( )
++, -++, -+
static_cast
%, *, /
+, +=, -=, *=
/=, %=
=
Lesson 3.5
parentheses
post-(in/de)crement
pre-(in/de)crement
positive sign
negative sign
cast
remainder/multi/div
add/subtract
math & assignment
math & assignment
assignment
unary
unary
unary
unary
unary
unary
binary
binary
binary
binary
binary
prefix
postfix
prefix
prefix
prefix
prefix
infix
infix
infix
infix
infix
L to R
L to R
R to L
R to L
R to L
R to L
L to R
L to R
R to L
R to L
R to L
1
2
3
3
3
4
5
6
7
7
7
‫انواع المتغيرات العشرية‬
‫‪ ‬االرقام العشرية‬
‫‪ float‬‬
‫– ‪ 4‬بايت تخزين في الذاكره‪ 6 ،‬ارقام عشرية‬
‫‪ double‬‬
‫– ‪ 8‬بايت تخزين في الذاكرة‪ 15 ،‬رقم عشري‬
‫‪double‬‬
‫‪ long‬‬
‫– ‪ 10‬بايت تخزين في الذاكرة‪ 19 ،‬رقم عشري‬
‫‪Lesson 3.6‬‬
‫أنواع المتغيرات الصحيحة‬
‫ أرقام صحيحة‬
 int, signed int, short int, signed short int
32767 ‫ الى‬-32768 ‫ من‬:‫ المجال‬،‫ بايت تخزين‬2 –
 unsigned
int, unsigned short int
65535 ‫ الى‬0 ‫ من‬:‫ المجال‬،‫ بايت‬2 –
 long
int, signed long int
2147483645 ‫ الى‬-2147483648 ‫ من‬:‫ المجال‬،‫ بايت‬4 –
 unsigned
long int
4294967295 ‫ الى‬0 ‫ من‬:‫ المجال‬،‫ بايت‬4 –
Lesson 3.6
‫الدوال الرياضيه‬
‫تحتاج الي ترويسة المكتبة ‪ cmath‬أو ‪cstlib‬‬
‫>‪ #include <cstlib‬أو >‪#include <cmath‬‬
‫‪ ‬الصيغة العامة‪ :‬اسم الداله (المعامالت)‬
‫‪ ‬يجب معرفة نوع وشكل المعامالت الخاصة بالدالة‬
‫– الدوال الدائرية تستخدم االرقام ‪ radian‬وليس الدرجات‬
‫كمعامالت‬
‫‪ ‬الجدول ‪ 3.11‬يحتوي على جميع الدوال الرياضيه‬
‫‪Lesson 3.6‬‬