تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الأول ( 1 )
#1
كاتب الموضوع : lo2i

السلام عليكم ورحمة الله وبركاته

(( وماأوتيتم من العلم إلا قليلاً ))

---------------------------------------------------------------------------------------------------------------------------------------
الدرس الرابع (ج1) في دورة السي بلس بلس
--------------------------------------------------------------------------------------------------------------------------------------


سنتعلم في هذا الدرس ان شاء الله :_

  • طريقة تعريف المتغيرات والثوابت في البرنامج .
  • انواع المتغيرات والثوابت .
  • شروط تعريف المتغيرات والثوابت .
  • الفرق بين ال singed و unsigned .
  • طريقة استخدام المتغيرات النصية مع المكتبة string
  • [SIZE=4]التعامل مع الدالة sizeof
    [/SIZE]
------------------------------------------------------

عند تعريف متغير في البرنامج ولنفرض انه من نوع int اي انه من نوع رقم فان الذاكرة تحجز
مكان في الذاكرة RAM تناسب حجم هذا المتغير

طريقة حجز المتغير في الذاكرة توضحها الصورة التالية





كما هو موضح في الصورة المتغير في الذاكرة هنا يقوم بحجز اسم المتغير ويعطيه عنوان address
=-=-=-=-=-=
تعريف اول متغير :-

كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]int age[/color][COLOR=#007700];
[/COLOR][color=#0000bb]age[/color][color=#007700]=[/color][color=#0000bb]22[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout[/color][color=#007700]<<[/color][color=#0000bb]age[/color][color=#007700]<<[/color][color=#dd0000]"\n"[/color][COLOR=#007700];
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]


في السطر الثاني قمنا بتعريف المكتبة std من خلال ال using وهذا يدل اننا سوف نستخدمها في البرنامج التابع لنا


في المثال السابق قمنا بتعريف متغير باسم age وهو من نوع رقم
وفي السطر التالي قمنا باسناد قيمة له وهي ال 22

طرق تعريف المتغيرات

اولاً :- تعريف المتغير واسناد القيمة لها في نفس السطر

كود :
[color=#000000][COLOR=#0000bb]int age[/color][color=#007700]=[/color][color=#0000bb]22[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]


ثانياً :- تعريف المتغير في سطر واسناد قيمة له في سطر اخر


كود :
[color=#000000][COLOR=#0000bb]int age[/color][COLOR=#007700];
[/COLOR][color=#0000bb]age[/color][color=#007700]=[/color][color=#0000bb]22[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]


[SIZE=3]
الصورة التالية توضح أهم انواع البيانات والقيم المسموحة اسنادها إليها
وحجم تخزينها في ذاكرة الجهاز .

[/SIZE]






تظهر الصورة انواع المتغيرات واحجامها في الذاكرة
والقيمة التي يمكن ان تُسند إليها .

من شروط تعريف المتغيرات في لغة السي بلس بلس
لاتختلف كثيراً عن شروط تعريف المتغيرات في اي لغة برمجة

  • عدم استخدام كلمات محجوزة
  • عدم استخدام النقطة
  • اطول عدد حروف للمتغير المسموح بها حوالي 2100 حرف
  • تعيين نوع المتغير
  • يجب ان يبدأ تعريف اسم المتغير بحرف وليس برقم
-----------------------------------------------------------------







كما هو موضح في الصورة التالية :-

اولاً:- نقوم بتحديد نوع المتغير (رقم ,نص ,منطقي)
ثانياُ:- نقوم بتسمية هذا المتغير (كما يحلو لك)
ثالثاً :- وهذه الخطوة غير اجبارية هي اعطاء قيمة له

ولاعطاء قيمة للمتغير هناك 3 حالات فقط

وفيما سبق يمكننا تعريف المتغيرات بثلاثة طرق في البرنامج
=-=-=-=-=-=
الطريقة الاولى :-

كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include <iostream>
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]int age[/color][COLOR=#007700];
[/COLOR][color=#0000bb]age[/color][color=#007700]=[/color][color=#0000bb]12[/color][COLOR=#007700];
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]

الطريقة الثانية :_

كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include <iostream>
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]int age[/color][color=#007700]=[/color][color=#0000bb]21[/color][COLOR=#007700];
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]

الطريقة الثالثة :-

كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include <iostream>
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]int age[/color][color=#007700]([/color][color=#0000bb]21[/color][COLOR=#007700]);
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]



----------------------------------------------------------
[SIZE=4]وفي الطرق جميعها يمكنك طباعة المتغير على الكونسول من خلال تعريف المكتبة :-


كود :
[color=#000000][COLOR=#0000bb]using namespace std[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

وكتابة هذا الكود بين { } من الاجراء main
[/SIZE]
كود :
[color=#000000][COLOR=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]age[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]


مكان المتغير age ضع اسم المتغير الذي تعاملت معه انت !

الفرق بين ال signed و unsigned :_

[SIZE=4]signed
:-
[/SIZE]
[SIZE=4]تستخدم مع الارقام والموجبة والسالبة
[/SIZE]
unsigned
:-

[SIZE=4]تستخدم مع الارقام الموجبة فقط

=-=-=-=-=-=--=-=

ملاحظة هامة جداً جدأً

عدم تحديدك لنوع الرقم هل هو signed ام unsigned

اي انك اخترت نوع ال signed .

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
وكلاهما يأخد نفس المساحة في الذاكرة.[/SIZE]
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=

التعامل مع مكتبة ال string :_

نقوم بتحضير المكتبة للتعامل معها من خلال الكلمة المحجوزة include

من خلال هذا الكود


كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include <string>  
[/COLOR][color=#0000bb][/color][/COLOR]



-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

هذه صورة توضح كل متغير وماهو المساحة التي يأخذها من الذاكرة :_







=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

[SIZE=4]التعامل مع الدالة[/SIZE] sizeof

عند تعريف متغير وعندما يأخد قيمة في الذاكرة والمتغير يعمل معك بنجاح
ولكنك احببت ان تعرف حجم المتغير بالذاكرة فما عليك إلا باستخدام هذه الدالة :-

[SIZE=4]دالة
sizeof :- تقوم باعطائك قيمة المتغير في الذاكرة

فمثلاً قيمة النوع
short في الذاكرة تساوي 2 بايت

ولمعرفة كل متغير وحجمه في الذاكرة اسعتن بالصورة السابقة !

الان لنفرض اننا نسينا كم تساوي قيمة الل
short في البرنامج

نكتب هذا الكود لمعرفة حجم المتغير في الذاكرة

[/SIZE]
كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]short name[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout[/color][color=#007700]<<[/color][color=#0000bb]sizeof[/color][color=#007700]([/color][color=#0000bb]name[/color][color=#007700])<<[/color][color=#0000bb]endl[/color][COLOR=#007700];
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]

[SIZE=4]

عند تجريب الكود السابق فسوف يظهر لك البرنامج رقم 2
استناداً لحجم المتغير في الذاكرة .

[/SIZE]
وهناك طريقة اخرى ايضاً لمعرفة قيمة المتغير تبعاً لهذا الكود


كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]short name[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout[/color][color=#007700]<<[/color][color=#0000bb]sizeof[/color][color=#007700]([/color][color=#0000bb]short[/color][color=#007700]([/color][color=#0000bb]name[/color][color=#007700]))<<[/color][color=#0000bb]endl[/color][COLOR=#007700];
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]


الاختلاف الجذري بين الكود الاول والثاني هو هذا المقطع فقط


كود :
[color=#000000][COLOR=#0000bb]cout[/color][color=#007700]<<[/color][color=#0000bb]sizeof[/color][color=#007700]([/color][color=#0000bb]short[/color][color=#007700]([/color][color=#0000bb]name[/color][color=#007700]))<<[/color][color=#0000bb]endl[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]



في الكود الاول قمنا بذكر اسم المتغير فقط

اما في الكود الثاني فقمنا بذكر نوع المتغير واسم المتغير

وكلاهما سيعطي نفس النتيجة
---------------------------------------------------

===

والان جرب واعطيني النتيجة
====================
========
==


انتظروا الدرس الرابع (ج2) !!


}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الحادي عشر ( 11 ) - - المصفوفات (نظرة مفصلة) الجزء الأول (1) RaggiTech 0 2,830 19-10-12, 11:17 AM
آخر رد: RaggiTech
  الدرس الحادي عشر ( 11 ) - - المصفوفات (نظرة مفصلة) الجزء الثاني (2) RaggiTech 0 2,619 19-10-12, 11:15 AM
آخر رد: RaggiTech
  الدرس العاشر ( 10 ) - - جملة التكرار Do While وكيفية التعامل معها RaggiTech 0 7,379 19-10-12, 11:07 AM
آخر رد: RaggiTech
  الدرس التاسع ( 9 ) - - جملة التكرار For وكيفية التعامل معها RaggiTech 0 3,135 19-10-12, 11:03 AM
آخر رد: RaggiTech
  الدرس الثامن ( 8 ) -- التعرف على جملة الـ Switch وكيفية التعامل معها RaggiTech 0 3,987 19-10-12, 11:02 AM
آخر رد: RaggiTech
  الدرس السابع ( 7 ) -- الانتقال للعمل على مكتبة ال Stdafx والتعرف على ملفات ال Header RaggiTech 0 5,169 19-10-12, 10:59 AM
آخر رد: RaggiTech
  الدرس السادس ( 6 ) -- حل لمشكلة التعليق على ال Ctrl + F5 اثناء تشغيل البرنامج RaggiTech 0 2,651 19-10-12, 10:55 AM
آخر رد: RaggiTech
  الدرس الخامس ( 5 ) -- الجمل الشرطية if statement شرح تفصيلي RaggiTech 0 4,139 19-10-12, 10:37 AM
آخر رد: RaggiTech
  الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الثاني ( 2 ) RaggiTech 0 2,651 19-10-12, 10:20 AM
آخر رد: RaggiTech
  الدرس الثالث ( 3 ) -- كتابة اول برنامج الــ HELLO WORLD و استخدام المكتبة String RaggiTech 0 2,459 19-10-12, 10:02 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم