تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الثاني ( 2 )
#1
كاتب الموضوع : 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]
والان جرب واعطيني النتيجة
====================
========
==

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


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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الحادي عشر ( 11 ) - - المصفوفات (نظرة مفصلة) الجزء الأول (1) RaggiTech 0 2,828 19-10-12, 11:17 AM
آخر رد: RaggiTech
  الدرس الحادي عشر ( 11 ) - - المصفوفات (نظرة مفصلة) الجزء الثاني (2) RaggiTech 0 2,616 19-10-12, 11:15 AM
آخر رد: RaggiTech
  الدرس العاشر ( 10 ) - - جملة التكرار Do While وكيفية التعامل معها RaggiTech 0 7,372 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,978 19-10-12, 11:02 AM
آخر رد: RaggiTech
  الدرس السابع ( 7 ) -- الانتقال للعمل على مكتبة ال Stdafx والتعرف على ملفات ال Header RaggiTech 0 5,156 19-10-12, 10:59 AM
آخر رد: RaggiTech
  الدرس السادس ( 6 ) -- حل لمشكلة التعليق على ال Ctrl + F5 اثناء تشغيل البرنامج RaggiTech 0 2,645 19-10-12, 10:55 AM
آخر رد: RaggiTech
  الدرس الخامس ( 5 ) -- الجمل الشرطية if statement شرح تفصيلي RaggiTech 0 4,137 19-10-12, 10:37 AM
آخر رد: RaggiTech
  الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الأول ( 1 ) RaggiTech 0 3,908 19-10-12, 10:08 AM
آخر رد: RaggiTech
  الدرس الثالث ( 3 ) -- كتابة اول برنامج الــ HELLO WORLD و استخدام المكتبة String RaggiTech 0 2,456 19-10-12, 10:02 AM
آخر رد: RaggiTech

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


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