CS602 & GS311برمجة جافا Java Programming I )(LABعمهي اعداد أ .حليمة محمد عطية خريف 2017 محاضرة 2
انقواعد االساسية نبرمجة جافا • لكتابة اي برنامج بلغة الجافا ،البد من اتباع القواعد االساسٌة المتمثلة فً الشكل العام و صٌغة كتابة االوامر و التعلٌمات و اولوٌة ترتٌبها فً البرنامج. • جمل االخراج output statement • ٌُعتبر System.outكائن المخرجات القٌاسً standard ،output Objectحٌث ٌسمح للبرنامج بعرض فئة من الرموز على الشاشة .و ٌُستخدم مع الدوال التالٌة:
انقواعد االساسية نبرمجة جافا • ُ :System.out.printlnتستخدم لطباعة سلسلة من الرموز و القٌم فً سطر واحد ،ثم تجعل المؤشر ٌقفز الى السطر التالً .و الشكل العام لها هو: ;) معامل "+سلسلة من الرموز"(System.out.println • ُ :System.out.printتستخدم لطباعة سلسلة من الرموز و القٌم فً سطر واحد ،مع بقاء المؤشر فً نفس السطر .و لها نفس الشكل العام للدالة السابقة كما ٌلً: ; ) معامل "+سلسلة من الرموز"(System.out.print
انقواعد االساسية نبرمجة جافا • System.out.printf ُتستخدم لطباعة صٌغة مخرجات formatted output محددة و منسقة ،حٌث ُتخصص لكل نوع من البٌانات رمز الصٌغة الخاص به على ان ٌسبق هذا الرمز عالمة النسبة المئوٌة .%و الشكل العام لها هو: سلسلة من الرموز مع رمز صٌغة "(System.out.printf ; ) معامل ",
انقواعد االساسية نبرمجة جافا و الجدول التالي يىضح رمز الصيغة و استخدامه. الوصف Description
رمز الصيغة formatted symbol
لطباعة عدد صحيح integer
d
لطباعة عدد حقيقي float or double
f
لطباعة حرف واحدcharacter
c
لطباعة سلسلة string
s
انقواعد االساسية نبرمجة جافا • اما الجدول التالً ،فٌوضح مهمة بعض الرموز المستخدمة فً برنامج جافا: الوصف Description يجعل املؤشر يقفز للسطر التالي نقل املؤشر لبداية السطر يجعل املؤشر يقفز مسافة Tab لطباعة العالمة \ لطباعة العالمة "
الرمز symbol \n \r \t \\ "\
جمهة انحضمين import statement • ُتستخدم جملة التضمٌن لمساعدة المترجم Compiler فً معرفة مكان ال classالمراد استخدامها فً البرنامج ،حٌث ُتوجد هذه ال classفً الغالب داخل حزمة .و لتضمٌن اي حزمة فً البرنامجٌُ ،ستخدم الشكل التالً: ; import package_name . class name
ث ت ب • باستخدام جمل االخراج السابقة ،اكتب برنامج بلغة الجافا ٌطبع بٌاناتك الجامعٌة. • ثم حدد حالة الفصل الحالً لك (اذا تجاوزت 8 فصول ،الحالة حرجة overو اال الحالة .ok
جنصيب Java netbeans 8.1 • اوالا :نصب بٌئة البرمجة netbeans8.1او اي اصدار تابع لها عن طرٌق تنصٌب JDKثم netbeansنفسها (الصندوق االزرق). • ثانٌا ا :اضبط متغٌر البٌئة set environmentمن النظام الموجود فً لوحة التحكم. • مالحظة :قد ٌقوم برنامج ال netbeansبضبط متغٌر البٌئة بصفة تلقائٌة.
جمم االدخال input statement – االدخال بواسطة Scanner Class • الدخال بٌانات للبرنامج (قراءة بٌانات من لوحة المفاتٌح) باستخدام ،Scanner classالبد من اتباع الخطوات التالٌة: • تضمٌن الحزمة java.utilالتً تحتوي على ال Scanner classالستخدامها فً البرنامج كما ٌلً: ;• import java.util.Scanner
input statementجمم االدخال .1و ا م نو Scannerدا ل ال انام (و ل م ا ل القرا م لوحة املفا يح) ا ي ي: ;)=new Scanner(System.inاس ا Scanner Scannerليت و ي لة يت م الل ا ديد اس ال ا م نو است دام ي ال نام ستدعا دوا ا د ا امل تلفة حس نو القي ة املد لة. .2
ديد اس متغ
ستقبا و ز البيانا املد لة ف ا ا ي ي: Int number; /*for integer number*/ ;)(.nextIntاس ال ا =number
الحظات: • • • • • •
الدخال بٌانات من نوع doubleنستخدم الدالة )(nextDouble الدخال بٌانات من نوع Stringنستخدم الدالة )(nextLine هناك طرق اخرى الدخال بٌانات من لوحة المفاتٌح او ملف مثل: BufferedReader & BufferedWriter سؤال العملً: باستخدام ،Scanner Classاكتب برنامج جافا ٌقرأ بٌانات تذكرة سفر ثم ٌطبعها.
انواع انثوابث و انمحغيرات في نغة جافا • أوالا :الثوابت :Constantsهً اسماء تعطى لمواقع فً الذاكرة ذات قٌم ثابتة و ال ٌمكن أن تتغٌر خالل فترة تنفٌذ البرنامج .و ُتستخدم فً حال التصرٌح بالقٌم الثابتة المتعارف علٌها مثل ،pi=3.14و قٌم االوزان و تحوٌل العمالت.
ال
ال ا ل تص
ال ي ال ا تة: ;(access-modifier) type constant-name=value م دل الى ىل ال ى ال ي ة اس ال ا )ا تيار (optional
انواع انثوابث و انمحغيرات في نغة جافا • ثانيا ا :المتغيرات :variablesهً اسماء تعطى لمواقع فً الذاكرة ذات قٌمة غٌر معروفة ،و قابلة للتغٌٌر خالل فترة تنفٌذ البرنامج .و للتصرٌح بمتغٌرة داخل البرانامج نستخدم الشكل التالي:
;(access-modifier) type variable-name م دل الى ىل ال ى اس ا تغ )ا تيار (optional
انواع انثوابث و انمحغيرات في نغة جافا data ( و تعنً نوع البٌانات المستخدمة فً البرنامج:types • االنواع و توجد.variable أو متغٌرةconstant ) سواءا كانت ثابتةtype و من اهم االنواع ما.انواع عدٌدة ُتستخدم فً معظم لغات البرمجة :ًٌل Types Primitives data type Integer short int long byte
real logical symbols float true char double false String
references data type pointer array struct class
انعمهيات في نغة انجافا – العملٌات المنطقٌة logical operations • • • • • •
العملٌات المنطقٌة فً لغة جافا تتضمن العالمات المنطقٌة التالٌة: ANDو ُتمثل ب && ORو ُتمثل ب|| NOTو ُتمثل ب! و ٌمكن مزج أكثر من عالمة منطقٌة مثلa && b || c : و ٌكون ناتج العملٌة المنطقٌة إما trueأو .false
انعمهيات في نغة انجافا •
• • •
– العمليات الحسابية arithmetic operations تمثل العملٌات الحسابٌة ،/ ،* ،- ،+كما فً اللغات االخرى .و ُترتب هذه العملٌات حسب االسبقٌة .فالضرب و القسمة أوالا ثم الجمع و الطرح إال اذا كانت هذه العملٌات تحتوي على االقواس ،فً هذه الحالةٌ ،تم فك االقواس قبل كل شً ،ثم ُتجرى العملٌات حسب االسبقٌة. – العمليات العالئقية تتضمن العملٌات العالئقٌة العالمات التالٌة: < >= ، <= ، != ، == ، > ، و هً تدخل فً تكوٌن الشرط .condition
Homework • اعد كتابة المثال السابق باستخدام جمل االدخال واالخراج
جمم انحكرار • ُتستخدم جمل التكرار لتنفٌذ مجموعة من التعلٌمات لعدد من المرات. و من أهم هذه الجمل ما ٌلً: – for statement • تستخدم لتنفٌذ تعلٌمة أو مجموعة من التعلٌمات لعدد من المرات وفقا ا لشرط معٌن ،و الشكل العام لها كالتالً:
مقدار الز اد شر
القي ة ا تدا ية متغ الت
نو املتغ
ل ةم و
)for (int control-variable=initial-value ; condition ; increment { . ث block . statements ت . }
جمم انحكرار • مالحظةٌ :مكن ان تكون القٌمة االبتدائٌة و الشرط و مقدار الزٌادة فً صورة تعبٌر رٌاضً. – while statement
• تستخدم لتنفٌذ تعلٌمة أو مجموعة من التعلٌمات لعدد من المرات فً حالة تحقق الشرط ،حٌث ٌتم اختبار الشرط فً كل مرة للتحقق من صحته .فً حالة عدم تحقق الشرطٌ ،تم الخروج من الحلقة .و الشكل العام لها كالتالً:
جمم انحكرار Initial-value القي ة ا تدا ية شر ل ة م و while (condition) { . block . statements ث . condition changing
ت
غ ال ر
مالحظات • جملة do….whileلها نفس ممٌزات جملة whileلكنها تختلف عنها فً تنفٌذ الحلقة و الدخول فٌها مرة واحدة على االقل دون اختبار للشرط ،بعكس جملة whileالتً ٌتم فٌها التحقق من الشرط اوالا قبل الدخول فً الحلقة. • ُتستخدم تعلٌمة breakإلنهاء الحلقة و الخروج منها ،بٌنما ُتستخدم continueلالنتقال بالتحكم الى حلقة التكرار من جدٌد دونما تنفٌذ للتعلٌمات التً تلً تعلٌمة .continue
جمم انححكم ال
تخد لت ي ي ة او ا ي الة If statement o ست د لت في علي ة او ا ي حالة ق ال ر و ال ل العا ل ا: شر ل ة م و
ت }
.و م ا ا ما ي ي:
)if (condition { . ث block . statements .
If else statement
ُتستخدم لتنفٌذ تعلٌمة او مجموعة من التعلٌمات فً حالة تحقق الشرطـ ،و فً حالة عدم تحقق الشرطٌ ،تم تنفٌذ التعلٌمات التً تلً جملة else
شر
ت
غ ال ر
ت
غ ال ر
ل ةم
و
)if (condition { . block . statements ث . condition changing } else { . block . statements ث . condition changing }
switch statement ُتستخدم لتنفٌذ تعلٌمة او اكثر فً حالة ان التعبٌر الرٌاضً ٌساوي القٌمة المناسبة ،و إال ،فإنه ٌنفذ التعلٌمة المصاحبة لالفتراضً ،defaultو الشكل العام لها :
و
ل ةم
عب ر ا
switch (expression) { case value1: statement; ث break; case value2: statement; ث break; . . . case value n: statement; ث break; default: statement; break; }
ث
ت ت
ت
ت