W3lc0m3 Fighter.




Atlas Sy[3] Variables

Atlas Sy Offline
#1
Star 
السلام عليكم ورحمة الله وبركاته
معاكم أخوكم أطلس
نكمل معاكم مع موضوع متعلق بما قبله والي هو 
Variables
او بالعربي المتغيرات, لكن قبل ما نبدأ بيها فيه شوية مصطلحات عاوز اقولها عالسريع
عندنا فاللغة دي مصطلحات زي
whitespace,block,keyword

الوايت سبيس ده عبارة عن المساحة الي انت بتكتب فيها الكود وبردو هو المصطلح الي بيعبرلك عن المسافات و رموز الاسطر وبردو التعليقات
وده مش هيأثر على أكوادك طالما انت مش عامل ايرور فيها
بمعنى اخر انا لما اكتب جملة طباعة وبعدها اسيب الف سطر فاضي بعدها ارجع اكتب سطر طباعة 
الالف سطر الفاضية الي بينهم دول بيتم تجاهلهم بكل بساطة 
اما بالنسبة للبلوك,فهي اي شيء مابين القوسين بمعنى انك ممكن تعمل بلوك خاص بيك
مثلا
Code:
{
cout<<"Hello world!";
cout<<"Buy World!";
}
دلوقتي صار عندنا بلوك بيحتوي على جملتين للطباعة 
 دي هي الاكواد او الكلمات الي احنا بنتعملها فلغات البرمجة ودي بتبقى كلمات ثابتة  Keywords اما بالنسبة لل 
وباغلب برامج التعديل بيتم تلوين كل كلمة بلون معين
مثلا
include
مسؤولة عن تضمين المكتبات
 وبيتم تغيير لونها وغالبا لو لاحظت كلمة المفروض انها تتلون ما تلونت فاتأكد من الكلمة اكيد بيكون فيها غلط كتابي
طيب دلوقتي نجي لموضوعنا الي هو المتغيرات
المتغيرات دي بتبقى حاجات هتحتاجها كثر فكرتها انها هتحجزلك مكان معين من الميموري بتاعت الكومبيوتر وهتخليك تحط اسم معين عليه بحيث لما تكتب الاسم ده برنامجك يعرف انك بتتكلم على المكان الي تم حجزه
هيفيدنا بايه ده ؟
الفائدة هي انه كده هنقدر نخزن القيم والمعلومات بالميموري وندخل نستدعيها سواء لطباعتها او نعمل عليها حاجات معينة
كل متغير عنده حاجات اساسية
 النوع والاسم والحجم 
هنسيب النوع والحجم مؤقتا ونبدأ بالاسم
سي بلاس بلاس عندها شروط للاسماء دي 
اول شرط هو انه الاسم ميصحش يبدأ بأرقام
لازم دائما يبدأ بأحرف سواء أحرف كبيرة أو احرف صغيرة المهم مش ارقام ولو عاوز تضيف رقم للاسم ضيفه بالمنتصف او النهاية
تاني شرط هو انه الرموز والمسافات ميصحش تستعملها ضمن الاسم بتاع المتغير
  * & ^ % $
او غيرهم من الرموز ميصحش تستعملهم بالاسم طب ليه 
عشان الرموز دي ليها شغل خاص فاللغة ولما انت تكتبها الكومبايلر بتاعك مش هيعرف انت بتعمل ايه 
لكن عندنا استثناء وهو عبارة عن رمز الاندرسكور
_ يعني  الرمز ده 
 عادي تستعمله ضمن الاسم وفأي مكان زيه زي الاحرف
اوك نجي نحط اسماء ونختار ايهم هم الصح واي واحد منهم ميصحش
#Ghost
_Hell
AboAli20
SmSm0_100
Sa&mi8
4Ahmed0
اول واحد ميصحش ليه لأنه بيحتوي على رمز غير مسموح فبدايته
التاني مسموح
التالت مسموح
الرابع مسموح
الخامس ميصحش لان عندنا رمز مش مسموح ضمن الاسم
واخيرا السادس بردو ميصحش عشان عندنا رقم فالبداية وده مش مسموح
وكده حجزنا مكان من الميموري وسميناه بالاسم الي عاوزينه 
تمام كده فهمنا ازاي نحط اسم للمتغير بتاعنا نجي للنوع بقى
النوع ده بيحدد للمتغير بتاعك القيمة الي انت هتخزنها
يعني انت هتخزن رقم او حرف او كلمة او عدد بايناري كل واحد فمتغير خاص بيه مش هتيجي تخزن رقم و حرف فنفس المتغير لا ده مش مسموح او عالاقل حاليا مش مسموح لانه مستقبلا الفكرة دي هيكون ليها حلول
عندنا فاللغة البرمجية دي انواع متعددة بتحددلك خواص القيمة 
مثلا لو انا اختار نوع خاص بالارقام بيختلف عن واحد ثاني خاص بالكلمات مثلا
والحجم بردو نفس الفكرة المتغير المسموح عن الرقم حجمه مختلف عن المسؤول عن الحرف وكده
طب تمام 
اهم الأنواع الي هنحتاجها هم

int, char,string,bool,float

لثريد خاص بيه string وعندنا انواع تانية هنجيلها بعد دول وهنسيب
الجدول التالي هيوضحلك القيمة الي بتتخزن بكل نوع وحجم الميموري الي هياخده 

[img=80x80]You are not allowed to view links. Register or Login to view.[/img]
[img=80x80]You are not allowed to view links. Register or Login to view.[/img]
تمام دلوقتي نجي لنوع تخزين أهم المتغيرات دي

int : integers (-5,0,1,100,-90,-8,86)
char : characters (a,A,c,W,R,r)
float: floating point (2.5,2.14,8.02,0.3)
string: strings (Hello,Hi,Holland)
يعني بمعنى آخر
int: اعداد صحيحة سالبة او موجبة
char: احرف كبيرة او صغيرة
float: اعداد نسبية
string: كلمات او اي حاجة من ضمن الحاجات السابقة
تمام نجي شوية تطبيق

 main داخل ال 
نكتب
Code:
int AboAli = 10;

cout << AboAli;

كده احنا عملنا  متغير بيخزن الرقم 10 بمكان معين من الميموري وسمينا المكان ده ابو علي وبعدها بيطبعلي القيمة دي على الشاشة
يعني لما تيجي تعمل متغير بتحدد نوعه اول حاجة بعدها تحط اسم مسموح وبيحقق الشروط السابقة بعدها بتدخل القيمة بتاعته باليساوي واخير اكيد هنضيف سميكولون
بعدها هتقدر تطبع قيمته الي هي 10 بال
cout
وهيطلعلك رقم 10 على الشاشة
تمام طب لو عاوز اخزن حرف او كلمة او عدد فيه فاصلة ده ازاي ؟ 
نفس المبدأ لكن للاحرف لازم تضيف اشارات اقتباس فردية وللكلمات لازم تضيف اشارات اقتباس مزدوجة زي لما كتبنا
hello world
في الثريد السابق
 خلينا نكتب main داخل ال
Code:
int AboAli = 10;

char SmSm10 = ' x ';

string Myname = "Atlas";

float Value10_10 = 3.14;
تمام كده خزننا ال4 انواع الي احنا عاوزينها نيجي نطبعهم واحد واحد باستخدام اسماءهم الي حطيناها وال
cout
يعني كده 
Code:
    int AboAli = 10;

    char SmSm10 = ' x ';

    string Myname = "Atlas";

    float Value10_10 = 3.14;

    cout << AboAli;

    cout << SmSm10;

    cout << Myname;

    cout << Value10_10;
طب تمام لما تعرضهم عالشاشة هتلاحظ ان القيم كلها جت بنفس السطر وكمان هل ممكن اننا نستعمل جملة طباعة واحدة للكل ؟ 
اه تقدر وبردو تقدر تخلي القيم تنعرض باسطر مختلفة
بالنسبة عشان تخلي الجملة تعملك سطر جديد دي اسمها
endl
وتبقى اختصار لكلمة 
end line
يعني اخرة السطر ودي لما تضيفها هينتقل لسطر جديد وبعدها يطبعلك لو فيه حاجة تانية او بينقل سطر جديد لو مفيش حاجة بعدها
وبتنضاف زيها زي اي حاجة تانية
cout << endl;
يعني اطبعلي سطر 
دي اول حاجة
تاني حاجة انت هتقدر تطبع حاجات متعدد بنفس جملة الطباعة وده بيتم فقط باضافة ال
insertion operator
الي تكلمنا عنه انه بيجي مع الطباعة
<<
يعني كده
cout << AboAli << endl;
كده احنا بنقول اطبعلنا المتغير الي اسمه ابو علي بعدها اطبعلنا سطر جديد ودلوقتي هتلاحظ الفرق على الشاشة السودا عامل ازاي
تمام نجي نطبق الفكرتين على كودنا السابق هيبقى كده 
Code:
    int AboAli = 10;

    char SmSm10 = ' x ';

    string Myname = "Atlas";

    float Value10_10 = 3.14;

    cout << AboAli << endl << SmSm10 << endl << Myname << endl << Value10_10 << endl;

بمعنى انه هيطبع 10 بعدها حرف اكس بسطر جديد بعدها اطلس بسطر جديد بعدها 3.14 بردو بسطر جديد واخرا هينتقل لسطر جديد
كده احنا خلينا جملة وحدة تطبعلنا قيمة اكثر من منغير وبردو صار عندنا تحكم بالاسطر
طيب احنا هنقدر نخزن عدد بمتغير مسؤول عن الاحرف مثلا او مثلا عدد نسبي داخل واحد مسؤول عن عدد صحيح
هو فيه حاجة زي دي باللغة هذه واسمه
type conversion
مس هيخزنلك نفس القيمة ولكن هيعملك تحويل للقيمة 
ازاي دي بقى !
بص عالمثال ده

Code:
char letter = 65;

cout << letter << endl;

  مطبوع رغم انك فمت بادخال رقم موجب داخل متغير مسؤول عن الاحرف A و تطلعلك الشاشة السوداء هتشوف حرف F5 لما تضغط  
طب ايه الي حصل
 ASCII الموضوع ببساطة انه البرنامج عنده القدرة يتعامل مع الاحرف باستعمال اكواد الاسكي 
 بتاعها
الاسكي ده عبارة عن كود معين لكل حرف او رمز او اي حاجة في الكيبورد وده بيوحد التعامل معهم
 65 هو A وكود الاسكي الخاص بحرف ال
A ولما احنا دخلنا للمتغير فهم اننا بنقصد ال
 عنده القدرة يتعامل مع الاحرف مباشرة او باستعمال كود الاسكي الخاص بيها char اذا نوع ال
 a,A,0,Esc,Space خش الموقع ده وهتلاقي الارقام بتوع اسكي فاول عمود من الجدول, حاول تحفظ بتوع 
مبدأياً اما باقي الاحرف والارقام فقط بتزود عليها لحد ما توصلها
You are not allowed to view links. Register or Login to view.
تاني حاجة لو انا خزننا رقم صحيح داخل متغير اعداد نسبية او بالعكس
كده مثلا
Code:
int aboali = 2.5;

float lava = 15;
 هيخدمك ويحوللك الرقم النسبي لواصد صحيح يعني راح يحذف الفاصلة والارقام الي بعدها ويسيب الرقم الي قبل الفاصلة وده مش كويس type conversion هنا ال

عشان اوقات هتحتاج الفاصلة والارقام دي لذلك خزن كل رقم بالمتغير الانسب ليه
اما بالنسبة للعكس فهنا راح يضيفلك فاصلة ويحط بعده اصفار وكده بيبقى نسبي
طيب وصلنا لنهاية الثريد وعاوز منكم تتدربوا على الكود الي تحت ده
تكتبوا ايه الي هيطلع فالشاشة بالضبط 
(mainطبعا هتكتبوه داخل ال)
Hint: فيه عمليتين للتحويل هيحصلوا
Code:
int x = 100.25;    char letter = 90;

cout<<x<<letter<<endl;

//ASCII codes Bla bla Bla

cout<<endl<<"End";
:heart: دمتم في أمان الله :heart:
  Heart The only one who can satisfy the human heart is the one who made it  Heart
Reply

Mr.Apach3 Online
Team oF X-fighter
#2
عاش ياوحش الله ينور
[Image: 99eo08qkbwxc.jpg]
Reply



Possibly Related Threads…
02-10-2020, 03:02 PM
Last Post: Mr.Ban



Users browsing this thread:
2 Guest(s)



ABOUT Team of the X-fighter

All Right Reserved © Xp10.site