freeCodeCamp/guide/arabic/cplusplus/tokens-variables/index.md

202 lines
9.6 KiB
Markdown
Raw Normal View History

---
title: Tokens Part 1
localeTitle: توكنز الجزء الأول
--- ### ما هي الرموز المميزة؟
الرموز هي أصغر الوحدات في البرنامج والتي تعتبر مهمة بالنسبة إلى المترجم. هناك أنواع مختلفة من الرموز:
* الكلمات الدالة
* العاملين
* Punctuators
* الحرفية
* معرفات
* **مزيج من الرموز تشكل تعبيرا**
### ما هي المتغيرات؟
* تعريف الكتب: تُسمى المتغيرات أسماء الذاكرة التي يمكن تغيير بياناتها.
* لكنني أود منك أن تفكر في متغير ليصبح شيئًا مثل مربع ، شيء من هذا القبيل: ![IMG](https://i.imgur.com/YdbgWHL.png)
لذلك ، على سبيل المثال: أنا أتحول إلى مكان جديد وأحتاج لترتيب الأشياء الخاصة بي في المربعات. وهكذا ، هناك شيئان في ذاكرتي ، **أي نوع من الأشياء سيتم تخزينها في الصندوق ، بحيث يكون الحجم خارج الصندوق معروفًا (نوع البيانات)** **وكيف يمكنني تحديد المربع؟ (تسمية المتغير)**
ومن ثم ، فإننا نعلم أن المتغير في C ++ يحتاج إلى _اسم_ _ونوع بيانات_ وأن القيمة المخزنة فيه يمكن تغييرها.
### أنواع البيانات في C ++:
عند التصريح عن المتغيرات في c ++ يجب أن يكون لها اسم ستقوم بإعادة كتابته لاحقاً ، قيمة (ثابتة أم لا) ونوع. سيخبر النوع المحول البرمجي بالقيم التي يمكن للمتغير استخدامها ، والعمليات المحتملة ، وسيحفظ مساحة معينة في الذاكرة. في c ++ يوجد نوعان من البيانات:
* نوع بسيط
* نوع البناء
### أنواع البيانات البسيطة
* منطقية - بولي يعمل مثل التبديل ، يمكن تشغيله أو إيقافه.
* حرف - شار يخزن شخصية واحدة.
* عدد صحيح - int يخزن [عددًا صحيحًا](https://en.wikipedia.org/wiki/Integer) .
* نقطة عائمة - تعويم يمكنهم استخدام الكسور العشرية.
* نقطة عائمة مزدوجة - مزدوجة دقة مزدوجة لنوع العوامة.
هنا يمكنك أن ترى بعض الأمثلة:
`bool GameRunning = true;
char a;
int x = 2;
`
#### يمكن أيضًا تعديل هذه الأنواع باستخدام معدِّلات مثل:
وقعت غير موقعة قصيرة طويل
### نوع البيانات الهيكلية
#### معرفات.
* المعرفات هي الأسماء المعطاة لمتغير أو فئة أو دالة أو وظيفة محددة من قبل المستخدم.
## قواعد تسمية المتغير:
* ابدأ التسمية بحرف من AZ أو az.
* يمكن أن تتبع الأرقام الحرف الأول لكن لا يمكننا البدء في تسمية بالأرقام.
* لا يسمح باستخدام المسافات أو الأحرف الخاصة ، بدلاً من ذلك ، استخدم UNDERSCORE \_.
#### التصريح عن المتغير:
بناء الجملة كما يلي < _نوع البيانات_ > < _اسم متغير_ > ؛ أو < _نوع البيانات_ > < _اسم المتغير_ > = < _القيمة_ > ؛ إذا أردنا أيضًا تهيئة المتغير.
فمثلا : `cpp int a ; //declaring a variable named 'a' of type integer. a=4; //initializing a variable int b = 5 ; //declaring and initializing a variable 'b' of type integer.`
**أمثلة على إعلان متغير:**
`int a9;
char A;
double area_circle;
long l;
`
**طرق خاطئة لإعلان المتغيرات** -
`int 9a;
char -a;
double area of circle;
long l!!;
`
* لا يمكن أن تبدأ أسماء المتغيرات برقم
* يمنع استعمال الرموز
* لا يسمح بالمساحات
يمكنك تخيل صناديق مختلفة ذات أحجام مختلفة وتخزين أشياء مختلفة كمتغيرات مختلفة.
**ملاحظات :**
1. **يتجاهل المحول البرمجي C ++ المسافات البيضاء ويتم استخدامها بشكل عام لتجميل الرمز بحيث يكون من السهل على أي مبرمج تصحيح الأخطاء أو فهمها.**
2. **إذا لم يتم تهيئة متغير ، فإنه يحتوي على قيمة للقمامة. اسمحوا لي أن أقدم مثالا على ذلك:**
### نطاق المتغيرات
جميع المتغيرات لها مجال عملها ، ومن خارج هذه الحدود لا تحتفظ بقيمتها ، وتسمى هذه الحدود نطاق المتغير. بالنسبة لمعظم الحالات ، بين الأقواس المجعدة ، حيث يتم الإعلان عن متغير متغير موجود ، وليس خارجها. سنقوم بدراسة فئات التخزين في وقت لاحق ، ولكن حتى الآن ، يمكننا تقسيم المتغيرات على نطاق واسع إلى نوعين رئيسيين ،
\*المتغيرات العالمية.
\* المتغيرات المحلية.
#### المتغيرات العالمية
المتغيرات العالمية هي تلك التي تم الإعلان عنها ذات يوم ويمكن استخدامها طوال فترة البرنامج بأي فئة أو أي وظيفة. يجب إعلانها خارج الوظيفة الرئيسية (). إذا تم الإعلان عنها فقط ، فيمكن تعيين قيم مختلفة في وقت مختلف في عمر البرنامج. ولكن حتى إذا تم إعلانها وتهيئتها في نفس الوقت خارج الوظيفة الرئيسية () ، فيمكن أيضًا تعيين أي قيمة لها في أي نقطة في البرنامج.
على سبيل المثال: المعلنة فقط ، لم تتم تهيئتها.
`#include <iostream>
using namespace std;
int x; // Global variable declared
int main()
{
x=10; // Initialized once
cout <<"first value of x = "<< x;
x=20; // Initialized again
cout <<"Initialized again with value = "<< x;
}
`
#### المتغيرات المحلية
المتغيرات المحلية هي المتغيرات التي لا توجد إلا بين الأقواس المجعدة ، والتي أعلن عنها. خارج أنها غير متوفرة ويؤدي إلى خطأ وقت الترجمة.
مثال:
`#include <iostream>
using namespace std;
int main()
{
int i=10;
if(i<20) // if condition scope starts
{
int n=100; // Local variable declared and initialized
} // if condition scope ends
cout << n; // Compile time error, n not available here
}
`
### متغيرات ثابتة
المتغير الثابت هو المتغيرات التي لا يمكن تغييرها. على سبيل المثال ، إذا كنت تحتاج إلى "pi" في التعليمة البرمجية ، فلا ترغب في تغييرها بعد التهيئة.
مثال:
`#include <iostream>
using namespace std;
const double PI = 3.14159253;
int main()
{
//Calculating the area of a circle, using user provided radius
double radius;
//input and output explained in other guide
cin>>radius;
//pi*r^2
double area = PI*radius*radius;
cout<<area<<endl;
}
`
### قيم القمامة في متغير
إذا لم يتم تهيئة متغير ، فإنه يحتوي على قيمة للقمامة. فمثلا:
لذلك من حيث المربعات ، يمكنك تخيل هذا على أنه -
![IMG](https://i.imgur.com/YdbgWHL.png)
\`\` \`حزب الشعب الكمبودي #تتضمن استخدام اسم للمحطة؛ انت مين() { كثافة العمليات cout << "Garbage value in a:" << a << endl؛ // يعلن المتغير المسمى 'a' من عدد صحيح و= 5؛ // تهيئة المتغير. cout << "New value in a" << a << endl؛
} \`\` \`
### الناتج هو:
`Garbage value in a : 0
New value in a : 5
`
كما ترى ، هناك بالفعل قيمة مخزنة في 'a' قبل أن نعطيها قيمة (هنا ، هي 0). يجب أن يظل هذا في ذهن كل مبرمج بحيث لا يتم إنشاء خطأ منطقي وطباعة قيم البيانات المهملة عند استخدام المتغيرات.
[جرب الرمز بنفسك! :)](https://repl.it/Mg7j)
#### الكلمات الدالة :
_الكلمات المفتاحية هي كلمات محجوزة تنقل معنى خاص إلى المترجم. **لا** يمكن استخدامها لتسمية c ++._ أمثلة على الكلمات الرئيسية: inline، operator، private int، double، void، char، template، using، virtual، break، case، switch، friend، etc.
**يتم استخدام كل من هذه الكلمات الأساسية لوظيفة خاصة في C ++.**
_الجزء المميزات 1 قد انتهى. أراك المعسكر في [الجزء 2](https://guide.freecodecamp.org/cplusplus/tokens-part-II) من الرموز المميزة :)_
**حظا سعيدا لكم جميعا**
**الترميز سعيدة! :)**
**لا تتردد في طرح أي استفسارات على صفحة GitHub [FreeCodeCamp](https://forum.freecodecamp.org/) أو [منتدى FreeCodeCamp.](https://forum.freecodecamp.org/)**