منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الأول ( 1 ) - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113)
+---- قسم : دورة C++ (http://vb4arb.com/vb/forumdisplay.php?fid=135)
+---- الموضوع : الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الأول ( 1 ) (/showthread.php?tid=6495)



الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الأول ( 1 ) - RaggiTech - 19-10-12

كاتب الموضوع : 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) !!