نكمل اليوم ان شاء الله لموضوع ال variables اللي
بدأنا فيه في المحاضرة الماضية في
المحاضرة الماضية يا جماعة بدأنا في موضوع ال
variables تعريف المتغيرات وقلنا بشكل عام فادة ال
variables انها تخزين البيانات تمام انا اي برنامج
بيتعامل معاه بيدخزن بيانات بدي اتعامل مع بيانات
المكان اللي بحط فيه البيانات هي ال variables طيب
شوفنا المحاضرة الماضية و طريقة تعريف ال variable
ان انت بتحط ال data type و بعدين اسم ال variable
يعني مثلا integer هذا data type نوعه و بعدين اسم
ال variable x تمام و فاصلة منقطة هذا الشكل الأساسي
للتعريف ممكن تعرف أكتر المتغير في نفس السطح فاصلة
y فاصلة z ممكن تعملتضع قيم للمتغيرات في التعريف X
يساوي خمسة و Z يساوي سبعة ماشي يا جماعة هذا الكلام
اتكلمناه في المحاضرة الماضية و ممكن تعملهم على
أكتر من سطر التعريف يعني مثلا انت X Y Z و بعدين
ممكن تجي لل X و تضع فيها تلاتة و هكذا تمام ممكن
تعملها أكتر من سطر ممكن تعملها في سطر واحد و حكينا
أن ال variableبياخد قيمة واحدة لو حطيت فيه أكتر من
قيمة هياخد القيمة الأخيرة يعني x يساوي أربعة هي
قيمة ال x هتكون أربعة تمام؟ وفصلنا شوية في تسمية
ال variables يعني يقولنا أن ال variable اللي مافعش
اسمه يتكرر صح ولا؟ لما تعرف هاي integer y مثلا
هيطلعلك error لأن بيقولك أنت ال y معرف مرتين تمام؟
لازم اسم ال variable يكون .. هو عشان ذلك سموه
identifier مش name، صح؟ طيب، ال .. بينفعش اسم ال
variable يتكرر، تكرر، يعني ال Y موجودة مرتين،
فعشان ذلك احنا سمينا identifier يعني معرف، طبعا؟
ايضا capital و small ال capital مختلف عن ال small
بيعتبره متغير تاني هاي y capital هدا متغير غير ال
y ال small لكن احنا يقولنا يفضل أسماء ال variables
تكون دايما small لتر بس يفضل مش إشباري وقولنا
دايما سم ال variables بأسماء تدل على استخدامها
يعني مثلا انت مستخدم variable أعمار أو عدد الطلبة
اكتب number of students
number of students وعشان يكون مقروق أكتر حط الحرف
الأول من كل كلمة capital معادة البداية تكون small
letter هذا ملخص الكلام اللي حكيناه في المحاضرة
الماضية نكمل عليه ونفصل شوية في ال data types لحد
الآن ال data type اللي جربنا عليه هو ال integer
لكن في أنواع مختلفة لل data types عشان نتعامل مع
بيانات مختلفةهذه باختصار ال data types الموجودة في
ال Java ومعظم لغات البرمجة عنوان ال slide ايش؟
primitive types ايش يعني كلمة primitive؟
بالإنقليزي primitive يعني أساسي أو بدائي هذه فعليا
ال types أو الأنواع الأساسية الموجودة في ال Java
هل في أنواع غير هذه؟ أه في أنواع .. حاجات بنسميها
class type باختصار شديد أنواع هذه مكونة من الأنواع
هذهيعني هذه هي حجر الأساس زي العمارة الآن مش مكونة
من بلوكات تمام هذه أساس كل ال types الموجودة في
الجامعةفي types أنواع تانية مش موجودة هنا مثلًا
حاجة اسمها String String بنستخدمها للنصوص فعليًا
لما عملوا implementation لل String فهي String
مستخدمة من حروف صح و لا حروف مربوطة مع بعض ففعليًا
لما عملوا ال String استخدموا ال data type car تمام
القصد أن هذه الأساسية في حاجاتانبنت او استخدمت
الأنواع هذه خلينا نتعرف على الأنواع الأساسية
وبعدين هتتطرق لأنواع المركبة أو نسميها احنا ال
class types هذي نسميها ال primitive types الأنواع
الأساسية أشهر نوع احنا جربنا عليه حتى اللي هو مين
اللي هو انت بديش ابدأ باللي فوق بدي ابدأ من هنا من
ال integer تمام ال integer باختصار هو للأرقام
الصحيحة عدد صحيح طيب
الان مشكلة ال integer ليش ال integer مش كافي؟ ليش
عملوا أنواع تانية؟ بقول ال integer للأرقام الصحيحة
فقط هو ال range تبعه بالتعامل ما بين الرقم هذا و
الرقم هذا يعني إيش هدول الأرقام؟ هذا أصغر قيمة لل
Int وهذا أيش؟ أكبر قيمة لل Int واضح؟
هذا أصغر قيمة و هذا أكبر قيمة طب لو أحتاج قيمة
أكبر من هيك تمام؟ بظبطش معايا ال integer يعني مثلا
هي integer x يساوي حط طبعا أي رقم موجود مافيش
مشكلة بالسالب طبعا بيمشي الحال كسر بنفعش هيطلع خطأ
تمام ال integer بياخد الشلة الصحيح تعال زيد الرقم
شوية لحد تلان مافيش عندى مشكلة تمام زيد الخنات
أكتر هكسر إيش ال integer بطل جادل ياخد الرقم هذا
تمام لأن الرقم هذا أكبر منالـ maximum value
الموجود هنا ماشي يا جماعة طيب
ايش المتغيرات
التانية طبعا احنا مابنحفظش هذه يا جماعة مش واحد
يروح يحفظ كده كدهطبعا هو بيقوللي ال integer بياخد
مساحة في الذاكرة كده؟ 4 بايت يعني مجرد ما أنشئ
integer حجز في الذاكرة 4 بايت برضه مش حفظة هذه
طبعا الآن افرض انا بتعامل مع رقم اكبر من ال range
هذا عمليات حسابية بتكون نتائجها كبيرة جدا و ال
integer بكفيش معايا بروح في الحالة دي بلجأ لواحد
ايش اكبر منه اسمه ال long طبعا ال long بستوي على
ارقام اكبر يعني مثلا في مثلنا هذاأه لو أنا غيرت
هذه و عملتها long لأ integer number مصري طيب اعتقد
لازم هنا نكتب ال اه مش الحاجة يعني بس بضل ان انت
تكتب ال هنا عشان تقول ان هذا عبارة عن ايش رقم long
تمام يعني هو لما تكتب زي هيك بفهم ان هذا لسه
integerتمام؟ عشان يميز بتحط هنا حرف ال L تمام؟
كأنك بتقوله اعتبر ان الرقم هذا كله ايش اعتبره long
تمام؟ فلما كتبت L سكت تمام؟
ماشي يا جماعة لما تتعامل مع رقم كبير جدا اكتر من
نطاق ال integer حط L في الآخر عشان تقوله ان هذا
عبارة عن long تمام؟ طيب ال data type التاني
مابدناش نكبره عشان تاخد وقت في التكبير و التصغير
الانت واللونج للأرقام الصحيحة في كمان أنواع تانية
مش مستخدمة كتير يعني للعلم حاجة اسمها byte و short
هدول برضه أرقام صحيحة byte short integer long كلهم
للأرقام الصحيحة هذا أصغر واحد و هذا أكبر واحد ال
byte باختصار بقول فعليا في الذاكرة بتخذن كإيشكواحد
byte وبيكون ما بين 128 بالسالب إلى 127 بالموجب
يعني أكتر من هيك مابياخدش مثلا لو أنا قلت هنا byte
y يساوي 40 تمام مش مشكلة 128
هيك طلع عليه error 127 بمشي الحال
فعلياً هو بتخزن في الذاكرة ك إيش؟ ك one byte اللي
أكتر منه شوية short بتخزن ك إيش؟ ك two byte بتروح
ما بين ناقص 32 ألف و شوية إلى 32 ألف و شوية نفس
الحاجة نفس الفكرة هاي أنا قلت له short زد هاي مثلا
32 ألف تمام؟ جبله مافيش أي مشكلة لكن تقعد حط كمان
صفر هاي بيقول ليه؟ بيقبلهلأن احنا غالبا في البرامج
بنستخدم للأرقام العادية إنتجة هل بلزم تستخدم short
و byte ممكن تستخدمهم بس بتكون مقيد برقم صغير إنت
تستخدم ال short و ال byte يعني إنت طبعا إيش الميزة
لإستخدام ال short و ال byte صح هو عدد صغير
مبياخدوش مساحة في الذاكرة فلو أنت عارف إن البرنامج
بتعملش مع أرقام كبيرةممكن تستخدم ال short عساس ايش
تقلل استخدام الذاكرة ال integer انت سواء حاطيت فيه
صفر او حاطيت فيه رقم كبير بمجرد ما تنشق integer
هيحجز في الذاكرة قداش اربعة بايت هاي الفكرة في ال
integer انه بيحجز اربعة بايت ال long برضه انا مش
محتاج long محجزش long ليش انا احجز long و احط فيه
مثلا خمسة و ستة و هو بياخد تمانية8 باين واضح يا
جماعة الفكرة هذه طيب هدولة الأربعة ال data types
اللي مستخدمة من الأرقام الصحيحة سواء سالمة أو
موجبة نجي الآن لنوعين أشداد من ال data types هم ال
float و ال double ال float هي مكتوب هنا لإيش ال
floating point floating point number هي الأرقام
اللي فيها كثور تمام هدعرفها ال float لما أقولك أنا
floating point number
هي الأرقام الكثرية او العشرية نما بقولك floating
point numbers هي الأرقام الكثرية او العشرية ال
floating point numbers بستخدملهم two data types في
واحد اسمه float واحد اسمه double ايش بيفرجوا عن
بعض زي فكرة ال integer و ال long ال doubleأكتر ..
أكتر من ال float إيش يعني أكتر؟ يعني بياخد أرقام
صحيحة أكبر و بياخد أرقام كسرية كمان إيش أكبر يعني
لو بدك أنت كسر جزء من تريليونات مثلا كثور صغيرة
جدا ممكن .. الناس اللي بتعاملوا بال .. مثلا ال ..
ال .. ال nano technology و الحاجات هذه بلزمهم يعني
أرقام دقيقة جدا فممكن تستخدم .. لو أنت بحتاج أرقام
دقيقة جدا تستخدم ال doubleلو كسورة اعتيادية مثلا
لحد منزلة رقم ستة او سبعة ال float ماله بيكفي في
الحالة هذه تعالى نجربهم ال float و ال double لأن
هبدأ انا بال double لسبب رجعتها تعرفوا لو انا قلت
مثلا double مثلا price ايش يعني price سعر تمام و
بضع فيه قيمة مثلا هي تلاتة و نصطبعا هي كجبل عادي
يعني طب ممكن تحط تلاتة فيه مافيش مشكلة بس هتكون
قيمته تلاتة فاصلة Zero يعني هو لحاله لو حطيته صحيح
ايش الكثرة بيحطه بيحطه صفر ماشي يا جماعة هي حتى
عشان نتأكد system.out.println ده امر الطباع اللي
هناخده قدام شوية لو جيتله طباع ال price
طبعا ال price كده؟ 3.0 طبعا
بياخد أرقام كبيرة جدا ال W يعني ان انت لو حطيت
كثور هذا كله ايش كله بيقبله طب النوع التاني اللي
هو ال float
float distance ايش يعني distance المساحة بدي اقول
مساحة مثلا اربعة مساحة الدار هذه اربعة و نص الان
ايش شايفين ايش صار عندي صار عندي خطأ هنا بلحظة طب
ليش طلع خطأ هو بقول ليه هذا هنفصل فيها قدامي شوية
اذا انا كتبت يا جماعة رقم كثري و ماحطيتش جنبه حاجة
زي هيك باعتبر by default انه double يعني انا
الاربعة و نص هذه لما كتبتها اعتبر ان هي نوعها
double بقولي تعالي انت بتحاول تحط double في float
هذا يا جماعة float صح هذا الرقم بما انه انا كتبت
جنبه حاجة اعتبره double فايجي احنا بيحط double في
float بقولي بظبطش لازم يكونوا من نفس النوع طبعا
فكيف بتخليه يميز ان هذا عبارة عن float بتحط Fبمعنى
باختصار يا جماعة إذا الكثر ما كتبتش جنبه أي حرف
بيعتبر انه double زي بالظبط الرقم الكبير اللي
شوفناه قبل شوية لما ما كتبتش جنبه أي حرف بيعتبره
integer لكن عشان أقوله إنه double إيش حطيت جنبه ال
هذا نفس الحاجة أنا ما كتبتش جنب الرقم أي حاجة
فاعتبر إنه double كون بقى اللي بفهم هاي وحط على
الخطأ إيش بقول Incompatible typesمهم يا جماعة نفهم
الأخطاء تمام عشان ما تشوف أحمر خلاص يعني في عندي
خطأ لأ حط المؤشر على الخطأ و حاول تقرأ و تشوف ايش
هو ايش تفصيله هو بحكيلي هنا لما حطيت ال mouse عليه
بقولي incompatible types incompatible types ايش
يعني كلمة incompatiblecompatible معناها متوافق
incompatible معناها غير متوافق فهذا إيش بتثير معنا
العبارة هذه أنواع غير متوافقة هاي واضح إنه عندك
أنت الأربعة و نص اعتبارها double فإيجا بدو يحطها
في float جالك لا أستنى أنا هيك لخبطنا انت تمام
وعشان ما لخبطش حطيت بس هنا جنبها F طبعا
في ال double بكتوبش حاجة لأنه by default هو
بيعتبرهاdouble ايش يعني by default يعني لو ما
كتبتش حاجة باعتبرها double و لو كتبت دي برضه
معلومة مش غلط دي معناها كأنك بتقوله هذا ايش double
بس هذا مش لازمة لأن هو قولنا لو ما كتبتش حاجة
باعتبرها double واضح يا جماعة طيب يبقى احنا الكثور
ايش ممكن نستخدم double او floorالكثر لو حطيت فيه
رقم صحيح مافيش مشكلة بيقبله عادي طبعا لو حطيت كسور
هو أصلا معمول للكسور لو حطيت رقم صحيح الكثر بحطه
صفر ال double دقته أكتر من ال float يعني أنت لو
بدك تستخدم كسوركبيرة جدا روح استخدم double لو مش
محتاجك تصير كبيرة استخدم float تمام يعني مثلا انت
كل حساباتك على منزل 2 عشريتين او تلاتة ليش هروح
استخدم double واحجز مساحة كبيرة في الذاكرة بروح
باستخدم float
خلّى هدول عندى هنا لأن هى car عرفت انا بتعرف لان
متغير جديد تمام بده احط ال data type data type car
تمام بده اسميه c1 اللى انا بده احط فيه قيمة وليكن
مثلا ايش a capital طبعا بتحطها بين single
quotations single quotations زى هيك هيك انا عرفت
متغير اسمه c1 من نوع car حطيت فيه قيمةA1 طبعا
لا يمكنك أن تضع أكتر من حرف لأنه يقبل حرف واحد car
بس يقبل حرف واحد لازم تضعه بين single quotation
لاحظ أنه مافي عندي أي data type هنا في الشاشة هذه
للنصوصيعني هل انا بده اكتب كلمة hello يعني هل انا
منطق ان استخدم car لل hello معناه كام car بدي ال
hello ست حروف خمسة تمام واحد اتنين تلاتة اربعة
خمسة تمامبدي خمسة car مش منطق انا بتعامل مع نصفي
ألف character ولا خمس ألاف character بدي خمس ألاف
متغير لأ عشان ذلك اعمله متغير تاني هنتكلم عليه
اسمه ال string ليش مش موجود هنا لأن ال string مش
primitive type مش أساسي تمام هو انبنى باستخدام ال
car هنا هو بغطيلك الحاجات الأساسية يا جماعةأخر نوع
من الأنواع اللي هنتكلم عليه اليوم طبعا احنا بنلخص
الأنواع بس هيكون عليها تطبيقات قدام اللي هو الـ
Boolean الـ Boolean جمع ال data type مهم جدا اسمه
Boolean لأن
احنا في الحياة الواقعية او في البرامج كتير بنحتاج
لقيمة تكون اه او لأtrue or false الشخص هذا متزوج
ولا لأ موظف متزوج ولا لأ هذه بيانات بنا نحفظها
احنا في البرامج بتاعتنا كيف بنا نحفظ الموظف متزوج
او لا تمام في اكتر من الخيار الخيار الاول ممكن يحط
رقم اذا كان متزوج واحد مش متزوج صفر تمام ممكن صح
ولا لا يا جماعة او واحد اتنين مثلا برضه
وين بتلزم طالب خريجي او مش خريجيأي حالة في الحياة
الواقعية فيها احتمالين ا او لا ممكن نمثلها
باستخدام true او false صح قولنا ممكن تستخدم انت
integer واحد او صفر بس هذا مش حال منطقي ليش لان
انا كمبرمج اتفجت ان واحد خريج وصفر مش خريج مثلاطب
ما هو ممكن يجي واحد تاني بعدي يشوف البرنامج
مايفهمش إيش يعني واحد وإيش يعني السفر ممكن تكون
العكس صح ولا؟ يعني انت لو انت اتفقت ان تستخدم واحد
متزوج و السفر مش متزوج واحد خريج و السفر مش خريج
انت هيك فاهمهم لكن اللي يجي واحد تاني شاف واحد طب
ايش الواحد هنا معناها خريج ولا مش خريج انت فاهمها
هيك بس غيرك لأ طبعا إلا لو حطيت comments تشرح
الموضوع هذا فالأفضل من أنك تستخدم أرقام انك تستخدم
true او false ابني ييجي مثلا طلع معايا هنا عندي
برنامج بدي أخزن فيه بيانات موظفين من ضمن بيانات
الموظف ان هو متزوج او لأانت دائما يا جماعة مرة
تانية بقول عشان تعرف ايش البرنامج محتاج متغيرات
فكر ايش الحالة اللي بتتعامل معها شوف ايش البيانات
اللي محتاجها وبناء عليها فكر في المتغيرات اللي
لازمة مثلا موظف له اسم ورقم وظيفي وعمر وعدد ابناء
ومتزوج او لاتمام؟ امسك كل واحدة من هدوله وشوف ايش
ال data طيب اللي وناس ويله اسم بده string لسه
ماتكلمناش عليها الرقم تبعه بده مثلا integer هل
لازمك float ..شرق من موظفش فيه قصور مثلا صح ولا يا
جماعة فبلزمك integer عدد
الأبناء integer تمام؟ او ممكن تستخدم shortلأن ماهي
أكتر قيمة .. مافيش حد بيخلف أكتر من 32 ألف و حد،
صح؟ فممكن تستخدم short مثلا أو byte أو integer
للعداد الصحيح متزاوج أو لأهذه حاجة تحتمل حالة من
الحالتين فقط ففي الحالات هذه عندما يكون بس عندها
خيار من خيارين ممكن تستخدم الـ Boolean بتعرف متغير
اسم من نوع Boolean إيش نسميه؟ شوف لاحظ دايما سمي
بأسماء تدل على معناها بدا أسم المتغير Ismarid هذا
اسم المتغير أنا سميته Ismaridهك انا عرفت متغير
اسمه ismailish ايش قيمته لحد تلان مش محدد تمام
بتعطيله قيمة بنقول ايش مثلا false لما
يصير متزوج بروح بغيرها و بحطها true Boolean
graduated ايش يعني graduated اتخرج او لألأن false
معناها ما تخرجش لاحظ ان ال true تكتب small letter
ناشي يا جماعة لما يتخرج بحط القيمة هذه true وضح
ال boolean يا جماعة
طبعا هاي بيحكيلي هنا أن البوريان في الذاكرة بتخزن
كواحد بت هل بلزمني أكتر من واحد بت انتوا أخدتوا في
المقدمة ال bit عبارة عن صفر أو واحد طيب نكمل على
اللي بعده لأن اللي بعده معظمها معلومات أنا حكيتها
تمام فبدأ أمر عليها سريعاهنا بيحكي ال Java
Identifiers ايش هال Java Identifiers الأسماء اللي
بستخدمها للمتغيرات حكينا يا جماعة ان ال Identifier
يحتوي على حروف ممكن يحتوي على أرقام بس مايبدأشبرقم
صح ولا لأ انت ممكن يكون عندك متغير اسمه x1 بس مش
1x تمام ممكن يكون فيه underscore ممكن يكون فيه
dollar sign تمام و هنا بيقول the first character
cannot be a digit اول character بينفعش يكون digit
بينفعش يكون رقم هذا كلام حكينا identifiers
may not contain any spaces حكينا بينفعش يكون في
اسم مسافات بينفعش يكون فيه dotsمنفعش يكون فيه نجمة
تمام؟ ليش منفعش الحاجات هذه؟ لأن كل ال characters
هذه مستخدمة استخدامات أخرى يعني
مثلا هذا غلط اسم متغير لأنه ببدأ برقم وفيه إيش فيه
ال space
score هذا بينفعش اسم متغير عشان فيه ايش dot لو
شيلت ال dot و ربطها بيمشي الحال هذا برضه بينفعش
عشان فيه dot و فيه نجمة identifiers
can be arbitrarily long ممكن يكون طويل اسم المتغير
عادى جدا number of children تمام حط اسم اللي بدكيه
المهم انا بعنيني ان الاسم يكون معبر مش مشكلة لو
كان طويل شوية بس يكون يدل علىمعنى المتغير since
java is case sensitive أخدنا المحاضرة الماضية case
sensitive ان ال java بتميز حالة الأحرف capital
بختلف عن small stuff stuff و stuff هدب مكتوبة بطرق
مختلفة كلها بيعتبرها مختلفة يعني لو عرفت متغيرات
بالأسماء التلاتة هذه بمشي الحال بس احنا بنفضل
دائما أن أسماء المتغيرات تكون small letter
الكلمات المحجوزة هي كلمات مستخدمة في لغة البرمجة
لها دلالات
هذه الكلمة محجوزة ولا لأ؟ الكلمة اللي يفهمها
الكميوتر أنها true بنفع تعمل متغير اسمه true؟ لأ
ابعد عن الكلمات المحجوزة في التسمي، تمام؟ بنفعش
تعمل متغير اسمه if، لأن هذا لها معنى، بنفعش تعمل
متغير اسمه integer، يعني بنفعش تقولي والله انت انت
و يقولون هذا اسمه وهذا نوعه مانفعش انت يعني ماضلش
أسماء في الدنيا إلا ال N إذا حابب يكون فيها N اضيف
حرف تاني أي حاجة تمام يعني هيك صار أيش انت لما
اضيف أي حرف صار كلمة كلمة تانية تمام كلمات زي
public مثلا برضه هي كلمة محجوزة طبعا احنا ماحفظش
كلمات محجوزة هتتعرف عليها لحالك مع المحاضرة
naming conventions ما هي كلمة naming conventions
naming يعني تسمية conventions هي الحاجات المتعارف
عليها بالتسميةباختصار شديد ال naming conventions
او الحاجات المتعارفة عليها بتسميها انا حكيت بعضها
و انا مشرحها زي مثلا احنا نقول ان المتغير لازم
يبدأ ب small letter لو عندك المتغير نفسه مكوّن من
اكتر من كلمة خلي اول حرف small و اول حرف في
المتغير كل small و بعدين اول حرف في كل كلمة
capital
طيب هنا بتطرق لحد اسمها class type احنا قلنا أنواع
المتغيرات يا جماعة في نوعين في primitive ايش يعني
primitive الأساسي اللي هي الأنواع اللي اتكلمنا
عليها ال byte و ال short و ال integer و ال long و
ال float و ال double و ال char و البولين هدول
الأساسية في أنواع متقدمة اللي بيسميها احنا ال
class type تمام لسه ماتطرقناش إلها زي مثلا في نوع
اسمهالـ class type دائما عندما يبدأ ال data type
نفسه بcapital لسه ماجربناش احنا اي class type بس
بتكون عارف ان ال class type دائما ببدأ بcapital
وقولنا ان ال class type باختصار هو مكوّن من ال
primitive types يعني هم زي البيت اللي انبنى من
ايش؟ من الطوب الصغير الطوب هذا ايش؟ primitive صح؟
البيت كله class type
طيب لأن هنا بيطل ملاحظة بيقول multi word names are
punctuated using uppercase letters multi word
names ايش ال multi word متعدد multi word names
الاسماء اللي من كلمات متعددة زي مثلا number of
children مش هذي يعني متغير اسم من كلمات متعددة
تمامبقول في الحالة هذه are punctuated تفصل
باستخدام uppercase حروف
كبيرة هذا الجملة اختصار اللي حكيته انه لما يكون
عندك اسم متغير اكتر من كلمة خلّي كل حرف capital من
او من كل كلمة هذه معناه الجملة الأخيرة هذه طيب
where to declare variables وين تعرفالمتغيرات قولنا
declare ايش يعني هنا عرف المتغيرات بكرا لما تيجي
الكلمة declare في الامتحان ما تقوليش ايش معناها
طبعا declare يعني وين تعرف المتغيرات حكينا دائما
القاعدة يا جماعة العامة بتعرف المتغير قبل ماتستخدم
تمام؟ وهنا بيحكي لك استخدمه او عرفه دايما ما بين
القوسين هاي مثلا هاي ال main مش احنا كل ال code
تبعنا بنكتبه ما بين القوس اللي بيفتح و بسكر هذا
عرفه في اي مكان داخل القوسين هدول لكن المهم ان
التعريف يجي قبل الاستخدام ماشي يا جماعة؟طيب هذه ال
primitive types حكينا عنها بالتفصيل تمام هى ال
integers هى ال float أمثل عليها تمام شوف مثلا ال
car type لأن هى ال integer types هى كله أرقام
صحيحة زى ما أحنا شايفين ال floating point types
الأنواع الكثرية زى ال float و ال double بكون فيها
كثور تمام فاصلة تسعة وتسعين خمسة فاصلة صفر
character type هو الحروف و دائما تكتب بين single
quotations هذي ايه small هذي ايه capital هذي مثلا
إشارة السلم هذا character برضه ليش هذا character
ليش هذا character مسافة character زيها زي أي حرف
تاني البولي اللي اتكلمنا عليه يقول إنه يحتمل
قيمتين بس اللي هو true و falseطيب نيجي الآن لحاجة
اسمها ال assignment statements اتطرقنا
احنا انا في الأمثلة بس دلوقتي خلينا نشوفها بشكل
عامل الان
integer x و بعدين حكيت له x يساوي عشرينالان هذه يا
جماعة ال يساوي اللى انت شايفينه هنا هذه في لغة
البرمجة مش يساوي تمام في لغة البرمجة مش يساوي ده
الشي اللى انت اتعلمته وانت صغير ان هذه يساوي هرجيت
في البرمجة ايش هنغيرهاهدف في لغة البرمجة معناه
بنسميها assignment ايش يعني كلمة assignment
بالعربي؟ تكليف انا لما اكلف I assigned you to do
something انا كلفتك بكذا، اتمنى؟ assignment معناه
تكليف يعني انا اعطيتك حاجةفي البرمجة اليساوي على
فكرة هي بتكون ايش هذه يساوي في البرمجة ان هو في
اتنين يساويز عن بعض هذه بيفهمها ال compiler ايش
يساوي لكن هذه اليساوي واحدة هتستغرب انها مش يساوي
طب ايش معناها اذا هي مش يساوي هذه بنسميها
assignment statement يعني عبارة التكليف عبارة
التكليف هذه باختصار بقول ليه لما يكون عندك x يساوي
عشرين فعليا بشوفاللي على يمين اليساوي هذا مش هذا
اللي على يمين اليساوي تمام و بياخده و بيحطه وين؟
في الشمال يعني انا لما اقول X يساوي عشرين بيجيب
القيمة اللي على اليمين و بيحطها وين؟ على الشمال
تمام هاي معنى اليساوي هذا
الان X حطيت فيها عشرين ممكن تقول X يسوى أربعة زائد
خمسة بنفع او لا بنفع عشان التجربة نقول ده من اعمل
system.out.println X ايش بده اعمل انا؟ بده اطبع
قيمة ال X ايش العبارة دي هتعمل؟ هتجمع أربعة زائد
خمسة و تحط الناتج في ال X سارت قيمة ال X ايش؟ تسعة
هيرن و هيتكتب ليه؟تسعة تمام طيب تعالى نشوف مثال
تانى x
يساوي أربعة integer y يساوي سبعة و
بعدين قولتله x يساوي y و اطبعلي ال x و
بعدين قولتله اطبعلي ال x و اطبعلي
الـ Y مين
يقولوا قداش قيمة ال X و قداش قيمة ال Y X قداش و ال
Y سبعة تمام X سبعة و Y سبعة ليش تعالوا نفهم
العبارة هذه لأن أنا حاطيت في ال X أربعة و في ال Y
سبعة لأن هذه العبارة إيش معناها خد قيمة ال Yوحطها
في الـ X اللي في اليمين حطه في الشمال طبعا صارت ال
X قداش سبعة و ال Y سبعة ال Y أنا مامسكتهاش دلوقتي
التغيير صار على مين اللي موجود دايما على الجهة
الشمال الجهة اليمين ماتغيرش يا جماعة ماشي فصارت ال
X سبعة و ال Y سبعة و الدليل أنه لما تعمل run طبعا
هي طبعاك سبعتين ماشي يا جماعة طيب تعالوا على نفس
المثال قولوا Yزائد تلاتة جداش
قيمة ال X في ال Y ال X عشرة ليش مرة تانية هو احنا
حكينا بياخد العليمين و بيحطوا على الشمال بس لازم
في الأول يحسب العليمينبعدين بحطه في الشمال يعني
هنا سبعة زي التلاتة بجمعها بيصير عشرة بحطها في ال
X ثارت عشرة و ال Y ضايلة ايش سبعة زي ما هي مش
محيقولي ها انت حطيت على ال Y تلاتة صارت ال Y عشرة
تمام لأ انا ال Y مغيرتش قيمتها تمام اللي بتغير
قيمته هو الموجود فقط على الشمال طالما ال Y مش
موجودة على الشمال وين اخر مرة ال Y موجودة فيها على
الشمالوين اخر مرة ال Y موجودة فيها على الشمال هي
هنا هنا نحط قيمة ال Y صح ال Y صارت 7 بعد هيك
اتغيرت قيمة ال Y اتجت على الشمال في اي مكان لأ
فاللي اتغير قيمته هنا بس ال X ال Y ضايلة 7 التلاتة
هذه مانضفتش على ال Y تمام ماتغيرتش قيمة ال Y
الأساسية هو هنا حسب جاب قيمة ال Y سبعة وضف عليها
تلاتة صار انها تج عشرة حط وين في ال Xتمام ال Y
ضالت زي ما هي و الدليل تعالي اعمل ران هاي قيمة ال
X عشرة تمام و ال Y ضالة سبعة زي ما هي واضح
يا جماعة هادي كيف كيف اجت العشرة
ماذا سؤالك؟ ماذا سؤالك؟ هذه
السؤال كان زي ذلك الآن لما عملت run طبعلي عشرة و
سبعة مين العشرة؟ ال X ومين السبعة؟ ال Y ليش صارت
ال X عشرة؟ لأنه يا جماعة هيه راح جمع قيمة ال Y
اللي هي السبعة وضاف عليها تلاتة صار الناتج هنا
كده؟عشرة و النتيجة ده العشرة حط وين يا جماعة؟ في
ال X مش احنا نقولها نحسبها علييمين و نحطها في
الشمال تمام؟ و هي دلوقتي في كل لغات البرمجة زي هيك
ال assignment statement دي موجودة في كل لغة
البرمجة واضحة كيف إجت ال X عشرة ال Y طيب بتغيرت؟
لأ اللي بتغير فقط الموجود على الجهة الشمال
أيوة حتى لو عكسنا القيم ال X تساوي سبعة و ال Y
متساوي مالهاش دخل بالعالم تالين قيم لو حطيت ال X
عكسنا القيم مالهاش دخل بالعالم تالين قيم اه هنا
عكسنا القيم احسبها تاني هلجيت انت ايش عملت هنا
اربعة زائد تلاتة سبعة صارت ال X قداش صارت ال X
سبعة ال Y ضايلة اربعة زي ما هي
ماشي يا جماعة طيب ها تعالى نشوف هنا integer z
يساوي x زائد y زائد 3 و
هنا أطبع لل z إيش
الجواب قدش
قيمة ال x و ال y و ال z ال x و ال y ماتغيروشأو هما
أخذوا قيمة في البداية التي هي 7 و 4 و لا تغيروا
بعد ذلك مين اتغير الـ z طبعا هنا اتطلع معايا عرفت
ال z و عطيته قيمة مباشرة قيمته إيش هي اللي أخدها
قيمة ال x زي ال y زي ال 3 7 زي 4 11 و 3 14 لو طبعت
ال z هيطبع ليه 14 ماشي
يا جماعة
اللي على الطرف اليمين ممكن يكون أي عملية حسابية
ممكن يكون x ضرب 3 إشارة النجمة هذه مالها ضرب ممكن
نكتب x ضرب 3 أو 3 ضرب x يعني
قيمة الـ z الآن صارت
21 x-1 y
على 2 هذا إشارة إيش إشارة القسم ال y أربع صح ولا
على اتنين يعني قيمة ال z بتصير اتنين
سؤال كويس هنبينه قدام مين يقول لي إيش X على 2
هتطلع تمام
integer سبعة اتنين تلاتة و شوية تلاتة و نص صح ولا
لأ لكن بما أنه integer تمام الكسر ماله هيتجاهله
بيطلع الناتج تلاتة هيعمل runهذه الناس اشطلت لها
طبعا احنا هنفصل شوية في موضوع لما تصير فيه عمليات
حسابية ايش بيصير في الكسور وكيف نحافظ عليه طبعا
طيب تعالوا نشوف المثال هذا يا جماعة ايوة مين عندى
سؤال ايوة اتفضل الشهادة
هنشوفها قدام شوية خلينا بس نخلص الأساسيات هذه لأن
x يساوي
x ايش عملت انا هناجيب كمة ال X وحطها في ال X اختلف
حاجة؟ لأ عشان هيك حتى هو علمليها باللون الأصفر
تمام بيقولي أن أنت ملخبط في حاجة هي مش غلط تمام بس
بقى لها مستغرب هو منها تمام هي حتى كتبلي عليها
assignment to itself يعني أنت لنفسها طيب لو أجيت
أنا هيك يا جماعة عملت
و بعدين قلت له system.out.println x طيب
إيش رأيكوا؟ إيش هذا بتعمل العبارة؟
إيش هذا اللي أنا كتبته؟ إيش x يساوي x زائد واحد؟
غريب هذا صح؟ تمام؟ مين اللي قال اضيف واحد؟
طيب احنا قولنا يا جماعة ال assignment statement
بتحل اللي على اليمين و الناتج بتحطه في الشمال فلان
امسكي اللي على اليمين حلهالـ X طميتها جدّاش؟ سبعة
ضفت عليها واحد صارت تمانية الناتج تمانية أخدته و
حطيته تاني في ال X صارت ال X جدّاش؟ تمانية يعني
أنا الآن لو طبعت X هيطبعلي تمانية طيب
مين فهم الآن العبارة دي إيش عملت؟ ضافت واحد على ال
Xأنا الآن بدي أغير قيمة متغير بدي أضيف عليه واحد
عشان أغير قيمة متغير لازم أستخدم assignment
statement اشتفقنا احنا زي هيك ايش يعني كلمة
assignment statement انا بستخدمها لتغير قيمة متغير
أنا بدي أغير قيمة متغير بدي أجيب المتغير نفسه X أو
Y أو Z أو أي حاجة و أحط بعضه يساوي أنا هدفي الآن
أنا طلبت أن أزيد قيمة ال X بواحدأنا مش عارف .. انا
لو عارف ال X بخمسة بقوله حط فيها ستة تمام؟ لو
عارفها بعشرة بقوله حط فيها أحداشر لكن أنا طلبت
أقولك انا زيدلي قيمة ال X بواحد أنا مش عارف جدش
فيه في ال X كيف بتخليه يزيد قيمة ال X بواحد؟ بتحط
X يساوي بعدين على الطرف هذا بقوله خد قيمة ال X جد
ما تكون وزيد عليها إيش؟ واحد
الان ايش اللي هيحسب؟ هيحسب اللي على اليمين في
الأول الحالة وبعد ما يجيب النتيجة هيروح يوديها على
الشمال يبقى هذه العبارة x يساوي x زائد واحد فعليا
انا بستخدمها عشان ازيد قيمة ال x بواحد ومعناها انه
احسب لقيمة ال x زائد واحد و بعدين روح اعد لقيمة ال
x نفسها
لأن خلاص ال X الأن أخدت القيمة الجديدة إيش قيمة ال
X تمانية كملت بعد ضفت عليها اتنين بتصير عداش عشرة
واضحت ال X دايما يا جماعة بتاخد قيمة واحدة و بتاخد
آخر قيمة انحطت فيها باستخدام ال assignment
statement واضحت هذه يا جماعة مرة تانية
الان كتير احنا في برامج بنحتاج ان نعمل عداد حاجة
تزيد معاك هتلزمنا كتير ارقام موظفين كل موظف بيجي
عندك جديد بدك تشوف اخر رقم وصل و تضيف عليه واحد زي
هي ارقام الطلب لما بيشي يسجل في الجامعة اول طالب
يسجل في الجامعة المحظوظ هذا بيكون رقم مقدش واحد
على الفين وتسعتاش تمام اللي بعده ايش اتنين و هكذا
فبتعرف انت اللي رقم واحد هذا ايش مستعد مع الفلوس
جاهز يروح متحمس طيب الا اذا انا طلبت منك و قلت لك
بدي ازيد قيمة ال Y بواحد كيف بدي ازيد قيمة ال Y
بواحد شوف طالما انا قلتلك قيمة بدي اغيرها بدي ازيد
او بدي ارجس بدي استخدم ايشماذا سنسميها؟ الـ
Assignment Statement أي تغيير على أي متغير يلجأ
للـ Assignment Statement فبقوله Y يساوي ايش طلبت
انا؟ ازيد قيمة ال Y بواحد عاليمين بتحط Y زائد واحد
هيك بحسب Y زائد واحد و الناتج بحطه تاني وين ال Y
فانا عدلت قيمة ال Yقيمة الـY الجديدة هي إيش؟ لأن
صارت خمسة هاي قلت له system.out.println هاي Y طيب
قلتلك الآن بدي أنقص قيمة ال X باتنين بدي أنقص قيمة
ال X باتنين تمام؟ بتحط X يساوي X ناقص اتنين system
.out.println
هي x و بعدين integer z يساوي x ضرب y system dot
out dot println z ايش هيطبعلي قيمة ال z يا جماعة
ال
z قدش هيطبعليها ليش اول حاجة ال y صارت خمسة
Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5Y5
طبعا هذه الناتج كله خمسة و بعدها الخمسة عشر واضح
يا جماعة طيب لو انا قلت تمرين تاني بدي
اضاعف قيمة ال X بدي
اضاعف ايش انا اضاعف بدي
اضاعف قيمة ال Xأضرف في 2 تعالى ال X و اقول X ضرب 2
هى حسب اللى على اليمين X ضرب 2 صارت قداش 14 و
رجعها تانى في ال X system.out.println هى
ال X تمام
هى صارت ال X 14
ماشي يا جماعة طيب
أخر تمرين جداش
قيمة ال Y مين يقول ليها لأ
بدنا ايش هشيل هذه هيك
أخر تمرين كم قيمة ال Y لو طبعتها Y يسوى 2 ضرب X
ناقص Y كم قيمة ال Y دعونا
نحسبها 2 ضرب X X كم 7 14 ناقص 4 عشرة أخدت الناتج
كله و حطيته في ال Y صارت ال Y عشر ماشي يا جماعة
واضحة تهديلأ لسه ماعملش هذا النتيجة القديمة تمام
انا جيت تعالى اعمل run تمام هي طلعت عشر ماشي يا
جماعة بنكمل المرة الجاية ان شاء الله