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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (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 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الثاني ( 2 ) (/showthread.php?tid=6497)



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

كاتب الموضوع : lo2i

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

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

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


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

  • التعامل مع المتغيرات النصية .
  • التعامل مع المتغيرات العشرية .
  • التعامل مع المتغيرات المنطقية .
جميعها تنطبق على المتغيرات والثوابت وسأوضح لاحقاً في الدرس!

---------------------------------------------------------------------------------

أولاً :- المتغيرات النصية :-


كما تكلمنا سابقاً يمكننا التعامل مع مكتبة ال string

اما الان فسوف نتعامل مع المتغير char التي يمكن من خلاله ان نسند اليه قيم حرفية

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

المبدأ الاساسي لهذا المتغير .


كود :
[color=#000000][COLOR=#0000bb]char name [/color][color=#007700][[/color][color=#0000bb]lengh[/color][color=#007700]]  = [/color][COLOR=#dd0000]"value"  
[/COLOR][color=#0000bb][/color][/COLOR]

مثال ..

كود :
[color=#000000][COLOR=#0000bb]char name [/color][color=#007700][[/color][color=#0000bb]5[/color][color=#007700]] = [/color][COLOR=#dd0000]"lo2i"  
[/COLOR][color=#0000bb][/color][/COLOR]

لاحظ معي هنا المتغير وكيفية استخدامه ..

في الكود الاول هذا هو المبدأ الاساسي لهذا متغير name هي اسم المتغير (( مازلنا ضمن الكود الاول )).

[lengh] يساوي كول السلسة الحرفية ..

و value هي القيمة التي يحب وضعها ضمن ال[SIZE=4] " "

----
نذهب للكود الثاني .
هذا هو
[/SIZE]
كود :
[color=#000000][COLOR=#0000bb]char name [/color][color=#007700][[/color][color=#0000bb]5[/color][color=#007700]] = [/color][COLOR=#dd0000]"lo2i"  
[/COLOR][color=#0000bb][/color][/COLOR]


قمنا بإنشاء متغير من خلال ال char واسمينا المتغير بـ name وطول السلسة الحرفية = 4
وقيمة المتغير = [SIZE=4]"lo2i"

----------
حسناً الان سوف ندخل كود نجعل المستخدم هو من يحدد قيمة المتغير من خلال ال cin

من خلال الكود التالي :_


كود :
[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]char yourname[/color][color=#007700][[/color][color=#0000bb]30[/color][COLOR=#007700]];
[/COLOR][color=#0000bb]cin [/color][color=#007700]>> [/color][color=#0000bb]yourname [/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"yourname is :_\t" [/color][color=#007700]<< [/color][color=#0000bb]yourname [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]

شرح الكود التالي ...

السطر الرابع : عرفنا المتغير باسم yourname واعطيناه طول 30
السطر الخامس : هنا يكمن دور المستخدم في ادخال القيمة للمتغير .
السطر السابع : يطبع لك قيمة المتغير الذي ادخلتها في السطر السابق .

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

الان نريد ان نعمل مثال لعمل اتصال بين السلاسل النصية

توضيح اكثر .. لنفرض ان ..
.................................................. ........
لدي متغير char باسم first_name
ولدي متغير char اخر باسم last_name
.................................................. ......

واريد ان ادمج الاسم الاول بالثاني بدون استخدام هذه الطريقة


كود :
[color=#000000][COLOR=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]first_name [/color][color=#007700]<<  [/color][color=#dd0000]"  "  [/color][color=#007700]<<[/color][COLOR=#0000bb]last_name  
[/COLOR][/COLOR]

هذه الطريقة سهلة وقمنا بأخذها سابقاً راجع دروس الدورة !

اريد طريقة استبدال ال " " بحروف معينة من ال char

كما هو موضح في الشكل التالي ...

لكل حرف من الحروف الموجودة يوجد رمز char معين له في الجهاز !

ولو قمت بمراجعة الجزء الاول من الدرس واطلعت على جدول المتغيرات الموجودة في اللغة

ستعرف ان المتغير char مكون من 0 - 256 حرف charecter

هذه هي الرموز وارقامها في ال ascii انظر الصورة


[/SIZE]




وهذا مثال لاستخدام حروف ال ascii في المتغير char

هناك طريقتين لبناء المتغير من خلال حروف ال ascii كما هو موضح في هذين الكودين


[SIZE=4]الطريقة الاولى :
- هي ذكر رقم الرمز من خلال حروف الاسكي ascii الموجودة في الجهاز

مثال :-



كود :
[color=#000000][COLOR=#0000bb]char a [/color][color=#007700]=[/color][color=#0000bb]32[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

كما تلاحظوا في الكود انا اعطينا للمتغير a قيمة الرمز 32 في حروف ال ascii

وللمراجعة يرجى مراجعة صورة رموز ال ascii

ملاحظة :-

الرقم 32 = space " "

الطريقة الثانية :- هي ذكر نوع الرمز من خلال وضعها بين علامتي ' '

مثال على ذلك:-


كود :
[color=#000000][COLOR=#0000bb]char a [/color][color=#007700]([/color][color=#dd0000]' '[/color][COLOR=#007700]);  
[/COLOR][color=#0000bb][/color][/COLOR]

وكما تلاحظ في الكود التال اننا قمنا بعمل فراغ space بين علامتي ال ' '

طيب ,, الان سوف نعمل مثال للذي قلنا عليه في الاعلى ونسيناه

نريد ان نضيف نص إلى نص اخر

الان نضيف المتغير النصي الاول إلى البرنامج من خلال الكود التالي


كود :
[color=#000000][COLOR=#0000bb]char first_name [/color][color=#007700][[/color][color=#0000bb]10[/color][color=#007700]]=[/color][color=#dd0000]"ahmad"[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

شرح :- متغير نصي من باسم first_name وطوله 10 وقيمته = ahmad
---
[/SIZE]الان نضيف المتغير النصي الثاني إلى البرنامج من خلال الكود التالي


كود :
[color=#000000][COLOR=#0000bb]char last_name [/color][color=#007700][[/color][color=#0000bb]10[/color][color=#007700]]=[/color][color=#dd0000]"osama"[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

[SIZE=4]شرح :
- متغير نصي من نوع char اسمه last_name وطوله 10 وقيمته = osama
----------------------------------------------------
نكتب الان الكود كاملاً لجمع النصين


كود :
[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]char a [/color][color=#007700]([/color][color=#dd0000]' '[/color][COLOR=#007700]);
[/COLOR][color=#0000bb]char first_name [/color][color=#007700][[/color][color=#0000bb]10[/color][color=#007700]]=[/color][color=#dd0000]"ahmad"[/color][COLOR=#007700];
[/COLOR][color=#0000bb]char last_name [/color][color=#007700][[/color][color=#0000bb]10[/color][color=#007700]]=[/color][color=#dd0000]"osama"[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]first_name [/color][color=#007700]<< [/color][color=#0000bb]a [/color][color=#007700]<< [/color][color=#0000bb]last_name [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/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]  char a [/color][color=#007700]([/color][color=#dd0000]' '[/color][COLOR=#007700]);  
[/COLOR][color=#0000bb][/color][/COLOR]

كما تكلمنا سابقاً نستطيع
[/SIZE]










ان نكتبها بطريقة ثانية من خلال ذكر رمز ال ascii من

ورقم رمز ال space في الجدول = 32 .

هذه طريقة ثانية لكتابة الكود



كود :
[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]char a[/color][color=#007700]=[/color][color=#0000bb]32[/color][COLOR=#007700];
[/COLOR][color=#0000bb]char first_name [/color][color=#007700][[/color][color=#0000bb]10[/color][color=#007700]]=[/color][color=#dd0000]"ahmad"[/color][COLOR=#007700];
[/COLOR][color=#0000bb]char last_name [/color][color=#007700][[/color][color=#0000bb]10[/color][color=#007700]]=[/color][color=#dd0000]"osama"[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]first_name [/color][color=#007700]<< [/color][color=#0000bb]a [/color][color=#007700]<< [/color][color=#0000bb]last_name [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/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]char a[/color][color=#007700]=[/color][color=#0000bb]32[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

يساوي هذا
كود :
[color=#000000][COLOR=#0000bb]char a[/color][color=#007700]([/color][color=#dd0000]' '[/color][COLOR=#007700]);  
[/COLOR][color=#0000bb][/color][/COLOR]

----------------------------------------------------------------------
[SIZE=4]التعامل مع المتغيرات العشرية :-

مثل :-
مثال على ال double

كود :
[color=#000000][COLOR=#0000bb]double num1 [/color][color=#007700]= [/color][color=#0000bb]12.12[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

مثال على ال long

كود :
[color=#000000][COLOR=#0000bb]long num1 [/color][color=#007700]= [/color][color=#0000bb]19.19[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

مثال على ال short

كود :
[color=#000000][COLOR=#0000bb]short num1 [/color][color=#007700]= [/color][color=#0000bb]19.19[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

مثال على ال float[/SIZE]

كود :
[color=#000000][COLOR=#0000bb] float num1[/color][color=#007700]= [/color][color=#0000bb]19.19[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

------------------------------------------------
[SIZE=4]
المتغيرات المنطقية :_

كما هو معلوم في اي لغة برمجية ولنفرض في البيسك مثلاً هناك متغير يعرف باسم boolean
اي متغير منطقي ويكون خذا المتغير اما true أو false
اما 0 او 1


true = 1
false = 0

-----

مثال على استخدام المتغير

يمكن تعريفها بثلاث طرق اذا كانت القيمة true
الاولى ..
كود :
[color=#000000][COLOR=#0000bb]bool marry[/color][color=#007700]([/color][color=#0000bb]true[/color][COLOR=#007700]);  
[/COLOR][color=#0000bb][/color][/COLOR]

الثانية ...

كود :
[color=#000000][COLOR=#0000bb]bool marry2 [/color][color=#007700]= [/color][color=#0000bb]true[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

الثالثة ..

كود :
[color=#000000][COLOR=#0000bb]bool marry3 [/color][color=#007700]= [/color][color=#0000bb]1[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

-=-=-=-=-
وثلاث طرق ايضاً اذا كانت القيمة false

الاولى ..

كود :
[color=#000000][COLOR=#0000bb]bool marry[/color][color=#007700]([/color][color=#0000bb]false[/color][COLOR=#007700]);  
[/COLOR][color=#0000bb][/color][/COLOR]

الثانية ...

كود :
[color=#000000][COLOR=#0000bb]bool marry2 [/color][color=#007700]= [/color][color=#0000bb]false[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

الثالثة ..

كود :
[color=#000000][COLOR=#0000bb]bool marry3 [/color][color=#007700]= [/color][color=#0000bb]0[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

---------------------------------------------------
وكما تعلمنا في دروس سابقة ان الدالة sizeof يمكنها ان تعرف قيمة المتغير في الذاكرة

وكما نعرف ايضاً ان المتغير الذي يكون من نوع bool اي منطقي ياخذ بايت واحد في عملية

التخزين بالذاكرة


وهذا مثال للتأكد : ....

كود :
[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]bool marry[/color][color=#007700]([/color][color=#0000bb]false[/color][COLOR=#007700]);
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]sizeof[/color][color=#007700]([/color][color=#0000bb]marry[/color][color=#007700]) << [/color][color=#0000bb]endl[/color][COLOR=#007700];
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]

--------------------------------------------
كيفية تعريف الثوابت في البرنامج !!

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


اولاً (1) :-

هذا ثابت يحمل اسمي وهو من نوع نص

كود :
[color=#000000][COLOR=#0000bb]int main [/color][COLOR=#007700]()
{
const [/COLOR][color=#0000bb]char name [/color][color=#007700][]=[/color][color=#dd0000]"lo2i"[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/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]

لاحظ معي قمت هنا بكتابة اجراء ال main فقط انت قم بتعريف باقي المكتبات كمات تعلمت سابقاً ..

كالعادة كلمة const هي التي تحجز مساحة في الذاكرة لقيمة ثابتة

لا اعتقد انها سوف تحتاج إلى شرح اكثر من ذلك !
------------------------
ثانياُ ( 2 ) :-

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

يوجد كلمتان محجوزتان في اللغة لتعريف الثابت في السي بلس بلس [/SIZE]

  1. const
  2. define
السطر الذي في المثال

كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#define name "lo2i & vb4arab";  
[/COLOR][color=#0000bb][/color][/COLOR]

نبدأ بالتعريف بكلمة [SIZE=4]define
ثم نحدد اسم الثابت لا حظ معي بدون تحديد نوع الثابت
هل هو رقم نص ,,رقم عشري ,, قيمة منطقية !

ثم نسند إليه قيمة من غير استعمال معامل الاسناد ( = ) كما هو موضح في المثال السابق ,,
----
انتهى الدرس

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


ماكان صواباً فمن الله وماكان خطأً فمن نفسي ومن الشيطان

[/SIZE]
والان جرب واعطيني النتيجة
====================
========
==

انتظروا الدرس الخامس !!