المتغيرات
هي أسما
ء (عناوين) لمواقع في ذاكرة الحاسوب ، يخزن بها رموز أو أعداد.

وبم ا أن أن وا
ع المعلوم ات الم راد تخزي نها تك ون ع ادة مخ تلفة م ثل الق يم الص حيحة أو
الحقيق ية أو الرم زية
... ال خ ف انك تحتاج أن تعلم المترجم في بداية البرنامج عن أنواع

المتغ يرات الت ي ت ريد اس تعمالها ف ي ال برنامج
، فم ثلا ف ي الس طور التال ية تبي ن أن
رمزية
. c,b,a صحيح ، والمتغير k حقيقيان ، والمتغير y و x المتغيرين
لاح
ظ الس طرين الأول ، والثال ث يح تويان عل ى اك ثر م ن متغ ير حي ث يفص ل بي ن كل
متغيري ن
، فاص لة وكذل ك يمك ن تحدي د أن واع المتغ يرات ، بذك ر التفصيل الدقيق للنوع
،
م ن حي ث ط ول الس عة التخزين ية ، أي ه ل هو صحيح قصير أم طويل حقيقي قصير
أو م
ضاعف ... الخ

Float x, y;
Integer k;
Char c,b,a;
X=2.0;
Y=10.6*x;
K=100;
A=t;
B=f;
C=4;
وتقسم المتغيرات لنوعين
:- ·

١
- متغيرات عددية
وهي مواقع في ال
ذاكرة تخزن بها أعداد .

٢
- متغيرات رمزية
وهي مواقع في ال
ذاكرة تخزن بها رموز.

٣
- متغيرات منطقية

TRUE=
أو 1 FALSE = وتخزن بها قيمة منطقية أما 0

PDF created with pdfFactory Pro trial version
www.pdffactory.com

C++
الأدوات المستعملة في لغة

ثلاثة أنوا
ع من الأدوات وهي: C++ يوجد في لغة
الأدوات الحس ابية
الأدوات المنطق ية والعلاق ة الأدوات الدق يقة وف يما يأت ي تفص يل
بالأنوا
ع الثلاثة:-

Arithmetic Operators
الأدوات الحسابية

باس تعمال الأدوات الحس ابية م ن جم ع وط ر
ح وض ري وقس مة ، C++ تس مح لغ ة

h
كاللغ ات الأخ رى ، إلا أن عمل ية ال رف إل ى أس ، ليس لها أدوات مباشرة مثل الأداة

C++
والأداة ** ف ي فورت ران ، وانم ا ت تم علم ية ال رفع إل ى أس ف ي لغ ة Basic ف ي
بطريقة أخر
ى ..

إذا أن أي ج ز
ء كس ري ين تج ع ن Basic ع نها ف ي C++ كم ا تخ تلف القس مة ف ي لغ ة

8/
القس مة يهم ل مهمه ا ك ان كب يرا ، كم ا ف ي لغتي باسكال وكوبول فمثلا ناتج القسمة 3

هو
2 لا الكسر 0.666 يهمل ، ويكون ناتج القسمة باستعمال الأداة / صحيح العدد.

فيما يأتي
:- C++ ويمكننا الآن أن نلخص الأدوات الحسابية المستعملة في لغة
الأداة و
ظيفتها

-
للطرح أو كأشاره سالبة

+
للجمع

*
للضرب

/
للقسمة

%
لباقي القسمة الصحيحة

- -
للنقصان

+ +
للزيادة

١
- الجدول ٣

PDF created with pdfFactory Pro trial version
www.pdffactory.com

وي
خ تلف أداء بع ض الأدوات الحس ابية حس ب ن وع المعط يات الص حيحة ، أو الحقيقة ،

أو الرم زية فع ند معامل ة المعط يات الحقيق ية ل لأدوات الحس ابية
، يمك ن الق ول أن
العلم يات الأساس ية م ن جم ع وط ر
ح وض رب ، تج ري بالط ريقة الت ي نع رفها ، إلا أن
ه نا
ك مح ذورا يج ب أن نذك ر ب ه ، وه و أن ت تعدي ق يمة النت يجة م ن أية عملية حسابية
الح دود المرس ومة ل نو
ع المتغ ير ال ناتج ، لان لك ل ن وع م ن أن واع المتغ يرات ح دودا ،

يع د تجاوزه ا خط أ ين تج ع ن
ه خط أ ف ي الن تائج ، وع ند معامل ة المعط يات الص حيحة
ب الأدوات الحس ابية تعم ل الأدوات بالط ريقة الت ي ن تو قعها
، وع ند تع دي الح دود
وفي
، overflow المس موح به ا ف ي الق يم الص حيحة ، ف ان ه ذا يعن ي أن خط أ ق د وقع
ه
ذه الحالة لن تتلقى من المترجم أية رسالة خطأ ، فمثلا إذا كان لدينا البرنامج التالي:

النهائ ية ن توقع أن يك ون الج واب
99000 ، ألا أن الج واب ف ي n ع ند ط باعة النت يجة
ه
ذه الحال ة ل ن ي تعدى 30464 ، وه و الح د الاعل ى المس موح ب ه للق يمة الص حيحة ،

8
فان الناتج / وه ناك أم ر أخ رى ي تعلق بالقسمة فعندما نقسم 8 على 3 قسمة صحيحة 3

يك ون ص حيحا وه و
2 فق ط ، وإذا م ا رغب ت أن تح افظ عل ى الج زء الكس ري ال ذي

8.0
حين ئذ ف ان ال ناتج / أهم ل واس قط ، يمك نك أن تح ول القس مة إل ى قس مة حق يقة 3.0

أداة باق ي ا لقس مة
% ويس مى C++ س يكون 2.667 له ذا الس بب أدخل ت لغ ة
ويستعمل عل
ى النحو التالي: Modulus Operator
7
، وم ن الجدي ر بالذكر أن كلا من / تعط ي الج واب 1 وه و باق ي القس مة الص حيحة 3

باس كال وكوب ول تس تعملان م ثل ه
ذه العمل ية ، فف ي باس كال تكت ب ه ذه العمل ية عل ى

C++
أم ا ف ي لغ ة ، Modulus ه ي اختص ار MOD 7 ، وكلم ة mod ال نحو 3

فتستعمل الأداة
% لتقوم بهذا العمل.

Main( )
{
int n = 33000;
n = n * 3;
}
7 % 3
PDF created with pdfFactory Pro trial version
www.pdffactory.com

Unary and Binary
الأدوات الأحادية والثنائية

Operators
تع د جم يع أدوات الجم ع والط ر
ح والض رب والقس مة وباق ي القس مة أدوات ثنائ ية

2
هي * أي أنه ا ت أخذ (ت تعامل م ع ) قيمتي ن وتن تج قيمة واحدة ، فمثلا نتيجة 3 binary

الق يمة
6 وه ناك الأداة الأحادي ة ع ندما ت تعامل م ع ق يمة واح د فم ثلا ( 1992 -) تم ثل
والعمل ية ه نا ليس ت عمل ية ط ر
ح كما ، Unary الإش ارة ا لس البه وه ي ه نا أداة أحادي ة
نعلم
.

Increment and Decrement
الزيادة والنقصان

أنها تستعمل الأداتين الحسابيتين
+ + و - - لزيادة القيم بمقدار 1 C++ من مزايا لغة
أو إنقاصها بمقدار
1 ، والمثال التالي يبين طريقة الاستعمال:

ويمكن كتابتها بصوره مكاف
ئة على النحو التالي:- a معناه إضافة قيمة 1 إلى

عل
ى النحو:- a وبالطريقة نفسها يمكن إنقاص 1 من قيمة
أو
وهو يكاف
ئ الصورة
وه
ذه a=a+ أس رع م ن التعب ير ; 1 ++a; لك ن ه ناك ف رقا ف ي س رعة التنف يذ ، فالتعب ير
هي الفائدة من جرا
ء استخدام مثل هذه الأدوات .

ص حي
ح أن ك لا م ن ، ++a و a++ ومم ا ينبغ ي التنب يه إل يه ه نا أن ه ناك ف رقا بي ن

a
ف ي تعب ير م ن التعاب ير ، ف ان ++a لك ن ع ند اس تعمال ، a التعبيري ن يجم ع 1 إل ى

++a;
A++;
A=a+1;
--a;
a--;
A=a-1;
a++ ت زداد ق بل اس تخراج ق يمة التعب ير ، بي نما ف ي حال ة
بمق دار
1 آي a الحال ية ق بل زيادته ا بمق دار 1 ، وبع د ذل ك ت تم ز ي ادة a باس تعمال ق يمة
أن العمل ية الأول
ى جم ع تقدي م ، والثان ية جم ع تأخ ير ، وينطبق هذا الكلام أيضا على
. a-- و a

مثال
:

وب
إمكانك كتابة الجملتين:
Int x,y,z
X=y=z=0

في جملة واحد عل
ى النحو:
Int x=y=z=0

Int x,y,x;
X=y=x=0;
X=++y + ++z;
X=y++ + z++;
X=++y + z++;
X=y-- +--z;
تأتي
z أولية جمع 1 إلى

متاخره إذ يتم جمعها
x أولا إلى

م
ؤجل بعد y جمع 1 إلى

إعطا
ء قيمتها الأولى إلى

x
x=1 , z=1 , y= في هذه الحالة تكون 1
x=2 , y=2 , z= في هذه الحالة تكون 2

قبل أن تزداد كل
z,y تجمع قيمتي ، x لان
منهما بمقدار
1
x=3 , y=3 , z= الآن 3

قبل أن
z بعد زيادتها وتجمع آخر y تجمع x لان
تزداد
1
x=5 , y=2 , z= الآن 1