شرح الجزئية الخاصة بالاسبوع الثالث تتضمن مفاهيم واساسيات في لغة الجافا

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

كيف الحال كيفكم مع البرد البارد جدا :”

اليوم ان شاء الله راح نبدأ شرح

week 3Lec#2 -JavaBasics (I)

وهذي الجزئية تتكلم عن اساسيات لغة الجافا

وبيدرس حالات ومفاهيم في الجافا وايضا طريقة كتابة البرنامج وتصميمه.

من بعد هالباب يبدأ الشغل الجد وندخل بالأكواد وطريقة كتابتها , راح اشرح لكم كل مفهوم وطريقته ان شاء الله .

 

طيب نبدأ مع اساسيات لغة الجافا :

تنقسم الى ثلاث اقسام ( الذاكرة , المتغيرات , وانواع البيانات )

طيب يقول لنا عشان اقدر احفظ البيانات في الذاكرة واسترجعها بسهوله لازم اخزنها بطريقة معينة الي هي : المتغيرات .

وطريقة تعريف المتغيرات في لغة الجافا تكون كذا ( الاسم والنوع والمساحة الي بياخذها والقيمة له )

طبعا الاسم راح تكون شروطه نفس شروط التسمية الي تعلمناها قبل

انه ما يبدا برقم ومافيه مسافه وتراعين حالة الحرف اذا سمول او كابيتل الخ .

طبعا لازم لازم لازم عشان تعرفين متغير في الجافا تحددين نوعه واذا حددتي النوع تتحدد المساحة تبعا له تلقائياً .

الانواع المهمة والي بتستخدمونها دايماً اربع انواع والخامس قليل يستخدم بس لازم اقول لكم عنه لانه يجي احيانا بالامثله .

الانواع او ال Data type :

Int : تستخدم لتعريف العدد الصحيح .

Float : تستخدم للتعريف بالعدد العشري . ( قليل تستخدم )

Double : تستخدم للتعريف بالعدد العشري كذلك لكن مساحتها اكبر من ال Float عشان كذا يستعملونها اكثر .

Char : تستخدم للتعريف بالحروف والارقام والرموز (0-9).

Bool : تستخدم للتعريف بالقيم التي تاخذ مسارين ( True,False ).

المساحة لكل نوع وباقي التفاصيل تلقونها بالجدول الموجود في السلايدات.

طيب يالله نشوف مثال عليه :

; identifier <Data Type>

يعني لو ابي اعرف شيء معين مثلا كذا اكتب :

;Char Hessah

;Int Year

طبعا ضروري جدا نعرف كل المتغيرات الي بنستعملها في البرنامج قبل مانبدا في كتابة الاكواد

وفيه نقطة ثانية بقولها لكم لو مثلا عرفتي متغير في بداية البرنامج وعطيتيه قيمه وبعدين جيتي في نص البرنامج وعطيتيه قيمة ثانية راح تنمسح الاولى وتتخزن محلها الثانية .

طيب لو بعطي المتغير قيمة كيف اسويها ؟

يعني مثلا انا بعرف متغير من نوع int وبسميه x وبعطيه قيمة مثلا 11 كيف اسويها ؟

اكتب كذا :

;Int x=11

ف هنا البرنامج خزن في المتغير x قيمة 11 وكل ما كتبت x راح ياخذ قيمتها ب 11 .

فيه ملاحظة تقول لكم اذا عرفتي متغير مثلا int وعطيتيه قيمة مثلا 2.99 راح يطبع لك الناتج 2 لان النوع الي حددتيه عدد صحيح وما يقبل عدد عشري , وفيه كلام بالسلايد نظري وملاحظات ارجعوا لها .

 

طيب نجي لخاصية ال Casting

هذي الخاصية بإختصار تقول لك حطي النوع الي تبينه بين قوسين وكملي عادي ف بيكون الاوت بوت متوافق مع النوع الي حطيتيه

يعني مثلا تكتبين هالعملية

(Double )17/5.5 عشانك حاطه النوع Double ف الناتج دايما بيطلع عشري .

بعدها رجع يوضح لنا ترتيب العمليات الرياضية وشرحتها قبل .

بعدها تكلم لنا عن خاصيتين مهمة الي هي :

Increment & Decrement Operators

هنا ركزوا معي بالفرق بينهم

ال Increment تكون عادة مكتوبة بهالطريقة :

;++Int var

ملاحظة ( var) مجرد اسم مب شيء ثابت *

المهم وش معنى هال ++ الموجودة جنب كلمة var ؟

معناتها المتغير زائد واحد يعني كذا

;Int var = int var +1

بس بدال ما يكررون int var مرتين حطوا لها اختصار ++

طيب وال Decrement نفسها بالضبط لكن بإختلاف الاشارة بدل ++ الى – –

اتضحت الفكرة ؟ ان شاء الله

طيب راح احل معكم مثال بالشرح المفصل لانه مهم ولازم تفهمون هالنقطة مره مره مره

المثال يوضح لك الفرق بين  Post-Increment  و Pre-Increment

يالله نبدا الحالة الأولى :

Post-Increment :

int n=2,res;

res =2*(n++);

وسألك وش القيمة الي بتكون لل res و لل n ؟؟

طبعا هنا بالسؤال عرفنا متغيرين من نوع عدد صحيح اعطينا المتغير الاول قيمة 2

ف الحين وش بنسوي ؟ لأن ال ++ جت بعد ال n  راح نضرب 2*2

بعدين بنزود القيمة 1 .

اما في الحالة الثانية

Pre-Increment :

int n=2,res;

res =2*(++n);

هنا بالسؤال عرفنا متغيرين من نوع عدد صحيح اعطينا المتغير الاول قيمة 2

ف الحين وش بنسوي ؟ لأن ال ++ جت قبل ال n  راح نزود قيمة ال n واحد بعدين نضربها ف 2 .

والي ودها تتأكد من فهمها تحل هذا المثال وترسل لي ال output  على حسابي في تويتر او الكيك

9o9ah_a

lesson 3

طيب بعد كذا نبدأ نتكلم في نقطة مهمة ايضاً وهي ال input او المدخلات :

لما نسوي برنامج يحتاج قيمة من المستخدم كيف نفهم الجافا انه ياخذ قيمة من المستخدم ويستعملها في البرنامج ؟

فيه كم جملة ثابته ما تتغير ابد تحفظينها زي اسمك واول ما يكون البرنامج طالب من المستخدم قيمة تقومين تحطين هالجمل علطول بدون تفكير

 import java.util.Scanner;
public class HessahLesson{
static Scanner input = new Scanner (System.in);

public static void main (String[]args){

int x ;

int y;
System.out.print(“Enter x value:”);
x=input.nextInt();
System.out.print(“Enter y value:”);
y=input.nextInt();

System.out.print(” Sum=” +(x+y));
}}

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

الجمل باللون الاحمر هي الجديدة الخاصة بال Scanner ,

ملاحظة ال Scanner  هي الخاصية الوحيدة في الجافا الي تسمح لنا ناخذ قيمة من المسخدم *

طيب اول شيء نكتب اول عبارة وهذي شيء ثابت ما يتغير

بعدها نفتح الكلاس ونسميه بأي اسم نختاره ونراهي شروط التسميه في الجافا

بعدها نكتب الجملة الثانية الي باللون الاحمر ولاحظو حطيت خط تحت كلمة ststic  لان عندي ملاحظة هنا

اذا كتبنا هالجملة ;(Scanner input = new Scanner (System.in قبل كلاس الmain  لازم وضروري نكتب كلمة static  اما اذا كتبناها داخل المين ما نكتب كلمة static .

بعدها نفتح ال main  ونعرف داخله متغير x و متغير y  عشان نحجز مساحة في الميموري تدخل فيها القيمة الي يكتبها المستخدم .

بعدها نطبع للمستخدم جملة توضح له ان الحين لازم يدخل القيمة ( لو ما كتبنا هالجملة راح يقعد البرنامج ينتظر قيمة من المستخدم والمستخدم مب عارف انه ينتظر وسرى الليل وحنا ما سرينا )

بعدها كتبنا جملة تلقي ;()x=input.nextInt  وزي ماقلت هالجملة ضرورية مره هي الي تاخذ القيمة وتخزنها في المتغير اكس .

عندي ملاحظة مره مهمة , لما نعرف المتغير اكس عندنا طريقتين ونسوي وحدة منهم اما اننا نسوي زي ما سويت فوق او نحذف التعريف الي فوق الي بهالشكل  ;int x وندمج التعريف والتلقي بجملة وحدة مثل كذا

;()int x = input.nextInt

ولازم يكون النوع نفسه بجملة التلقي والتعريف *

وسوينا نفس الخطوات للمتغير اكس وبعدها سوينا جملة طباعة وفيها عملية الجمع بين المتغيرين وخلص برنامجنا.

بعدها بدأ يشرح لنا شيء من خاصية printf

بشرحها عالصورة عشان تستوعبونها

lesson 4

1/

A) هنا ترجمة الرمز “14d%”

رقم 14 معناه اترك مسافة 14 خانه واكتب الرقم بآخر ثلاث خانات يعني كذا

512———–

B) علامة السالب معناتها اكتب الرقم بعدين اترك بعده 11 خانه فاضيه كذا

———–512

2/

A)  هنا ترجمة الرمز “14.2f%”

يعني عندك 14 خانه اكتب فيها الرقم الصحيح مع رقمين بعد الفاصله كذا يعني

1595,17——-

لاحظوا حطينا سبعة تقريب لان عندنا جنب ال6 ثمانيه ف قربنا العدد .

B)   هنا ترجمة الرمز “7f.%”

معناته اكتب الرقم الصحيح علطول بدون مسافات لكن خذ بعد الفاصلة 7 خانات بيكون كذا

1595,1680011

C) هذي نسيت معناها شكلها مب مهمه اصلا =))

3/

A) هنا ترجمة الرمز “14s%”

رقم 14 معناه اترك مسافة 14 خانه واكتب الكلمة من الاخير يعني كذا

Hello, World——-

B) علامة السالب معناتها اكتب الكلمة بعدين اترك بعدها الخانات الفاضيه كذا

——-Hello, World

c) هنا ترجمة الرمز “14.5s-%” معناته عندك مساحة 14 خانه ابدأ من اولها واكتب بس 5 حروف والباقي خله فاضي

———Hello

 

وبس خلصنا هذي النقطة , بعدها بدأ يشرح لنا مره ثانية عن العمليات الرياضية

وبعدها تكلم عن القيمة الثابتة او Constants  بالبرنامج وكيف نمثلها بحيث ماتتغير ابد بهالطريقة

;final <data type> identifiers =value
 مثال
;final double PI = 3.14159265
وبعدها فيه شريحتين نظري اقروها وترجموها وبس كذا خلصنا شرح هالجزئية الحمدلله رب العالمين .
ونختم :

(الترجمة مب حرفية هي على فهمي للموضوع  ولو فيه اي خطأ غير مقصود صححوا لي )

تنوية ( التدوينة غير معدة البيع ولا احلل من يستخدم الدروس لبيعها ويمكن النشر مع حفظ الحقوق لي ولمدونة لاس )

الحمدلله رب العالمين والصلاة والسلام على سيد المرسلين نبينا محمد وعلى اله وصحبة اجمعين ان اخطأت فهو مني ومن الشيطان وان اصبت فهو توفيق من الله سبحانه , اذا استفدتي من المعلومات السابق ذكرها اذكريني ووالدي ومن احب بدعوة في ظهر الغيب .

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

حصة الحسن .

الإعلان

شرح Algorithm و Pseudo Code و Flow charts بالتفصيل المفصل مع حل مثال للتوضيح.

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

كيفكم جميعاً ان شاء الله بخير وعافية

انا جداً سعيدة بتفاعلكم وكلماتكم ادخلت السرور الى قلبي , بإذن الله اليوم راح اكمل الشرح الي بديته الاسبوع الي فات , اعرف اني متأخرة لكن لو جا متأخر بعد اختباراتكم راح يفيدكم بالفاينل ان شاء الله

وبيفيد البنات الي بعدكم ()

 

طيب انا برجع اول اوضح الفرق بين ال

Algorithm و Pseudo Code و Flow charts في النقاط التالية :

  • ال Algorithm : نكتب فيه خطوات البرنامج بلغة يفهمها اي شخص لا يدرس حاسب ولا يعرف عنه بحيث اي احد يقراه يفهم برنامجك عن ايش

 

  • ال Pseudo Code : نكتب ال Algorithm لكن بإختصار ورموز للتسهيل على المبرمج في كتابة ال Flow charts والاكواد .

 

  • ال Flow charts : رسم بياني لتوضيح سير البرنامج ويكون تمثيل رسمي لل Pseudo Code وله اشكال محدده لكل شكل معنى خاص فيه .

وبشرح لكم على المثال الموجود بسلايدات اللاب هنا تلقونه :

week 3 Lab#1_Problem solving

على فكرة اتعمد احط لكم فقط مكاني في أي سلايد مع اني اقدر اصور السلايد واحطها هنا , لكن ابيكم ترجعون لها وما تعتمدون اعتماد كلي على شرحي لاني اخاف اهمل نقطة ما اشرحها اكون فاهمتها واعتبرها شيء بديهي وانسى اقولها لكم ( من غير قصد طبعاً ).

 

 

يالله نكمل : السؤال طلب منكم تسوون خطوات برنامج يحول درجة الحرارة من فهرنهايت الى درجة مئوية

  • يعني Algorithm

طبعا بهالنوع من الاسئلة راح يتطلب منك الحل 3 خطوات :

  • تسوين Algorithm : يعني تكتبين خطوات البرنامج بالتفصيل بلغة عادية ( واقصد بعادية يعني بدون رموز واختصارات عشان الكل يقدر يفهمها حتى لو يقراها طفل صغير راح يفهم برنامج وش راح يسوي مب بالضبط لكن بيفهم وش مطلوب وكذا ” طبعا طفل معه لغة انجليزية وذكي ” )
  • اذا خلصتي من كتابة ال Algorithm بيكون طويل وحكي واشياء وك مبرمجه مستحيل تدخلين هالكلام كله ببرنامجك راح ياخذ منك جهد ووقت ومساحة وكلش , ف راح نسوي زي في الرياضيات يختصرون العبارات الرياضية ب علامات هم يفهمونها مثل بدل ما يكتبون كل شوي ما لا نهاية راح يحط لك هالشعار ( ∞) وانتي بتفهمينه علطول لانك تدرسين رياضيات, وهذي الخطوة اسمها Pseudo Code .
  • بعد هذي الخطوة نحتاج نمثل الخطوات عن طريق الرسم وهالخطوة اسهل في فهم البرنامج واستيعابه وتخليك تضمنين انك ما تغلطين فيه لان مسارات الرسم واضحه وحلو مره حتى ان شاء الله اذا جيت اشرح السلايدات الاخيره للIF وغيرها راح نعتمد عالرسم في الفهم لانه اوضح ويبين الفروقات بشكل اسهل وحتى يكون زي الخريطة الذهنية لك , انصحكم تستعملونه دايماً لبرامجكم و اسم هالخطوة  Flow charts .

طيب بعد ما وضحت لكم الخطوات بالتفصيل المفصل , نبدأ نحل المثال عليه .

زي ما قلت السؤال طالب تصميم خوارزمية لبرنامج يحول لك من فهرنهايت لدرجة مئوية .

ف وش بنسوي ؟؟ نسوي الخطوات الي فهمناها تو ؟ طيب شلون !! يالله نشوف ..

 

Algorithm 

1/ Read Fahrenheit

2/Calculate  Celsius

Hint:

(Celsius = 5/9*(Fahrenheit_32)

3/ Display  Celsius

ملاحظات :

فيه بنات بتقول ما عندي لغة كيف بكتب Algorithm ومن هالكلام , راح اقول لك اكتبي اسهل كلمة تدل عالشيء الي تبينه مثلا زي ما تشوفون خطواتي كتبتها بأسهل طريقة ومفهومه جداً , الترجمة :

1- اقرأ الفهرنهايت

2- احسب الدرجة المئوية وحطيت القانون الي بيستخدمة بالحساب

( طبعا القانون راح يكون موجود بالسؤال مب انتم تخترعونه )

3- اعرض الدرجة المئوية . وتقدرين تكتبين Print ( اطبع )  بدال Display

طيب بعد هالخطوة نبدأ نحول ال Algorithm الى Pseudo Code بهالطريقة :

Pseudo Code

1/ Read F

2/ Calculate C

( C= 5/9*(F_32

3/ Display C

طيب شفتوا مجرد اختصرت المسميات عشان اذا جيت اكتبها في البرنامج بدال ما اكرر الكلمة كلها كم مره اعوض عنها بحرف واحد وبس .

نكمل للخطوة الاخيره قبل كتابة الاكواد الي هي :

Flow charts :

lesson2  flow charts

وهذي الرسمة طبعا مب من كيفي اخترت الاشكال , هم موضحين لكم اشكال ثابته نمثل بها الاوامر في

Flow charts

الي هي :

بيضاوي للبداية والنهاية .

متوازي اضلاع لل input  و ال output ( المدخلات والمخرجات )

مستطيل للعمليات الي بنسويها او المعالجة الي بنسويها للمدخلات عشان تطلع لنا المخرجات .

معين للعمليات الي فيها شرط ولها اتجاهين اما صحيح واما خاطئ ( بنفصلها اكثر بالسلايدات الجاية ان شاء الله )

الاسهم لتوضيح المسار ومهمه جدا لا يمكن التغاضي عنها .

وبس كذا نكون خلصنا شرح هالجزئية الحمدلله وبإذن الله تكون واضحه جدا جدا لكم كلكم واسفه اني تغاضيت عنها ورحت للي بعدها بدون تفصيل فيها . شكرا للبنت الي نبهتني عليها وخلتني افصلها لها وانتبه للغلط الي كتبته في التدوينة الي قبل بحيث اني دمجت ال Algorithm و Pseudo Code .

اي استفسار عالدرس تقدرون تستفسرون تحت بالتعليق او عالكيك : 9o9ah_a .

ونحط الخاتمة كالعادة :

(الترجمة مب حرفية هي على فهمي للموضوع  ولو فيه اي خطأ غير مقصود صححوا لي )

تنوية ( التدوينة غير معدة البيع ولا احلل من يستخدم الدروس لبيعها ويمكن النشر مع حفظ الحقوق لي ولمدونة لاس )

الحمدلله رب العالمين والصلاة والسلام على سيد المرسلين نبينا محمد وعلى اله وصحبة اجمعين ان اخطأت فهو مني ومن الشيطان وان اصبت فهو توفيق من الله سبحانه , اذا استفدتي من المعلومات السابق ذكرها اذكريني ووالدي ومن احب بدعوة في ظهر الغيب .

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

حصة الحسن .