You are on page 1of 98

‫جامعة السودان للعلوم والتكنولوجيا‬

‫التعليم عن بعد‬
‫أسس البرمجة المرئية‬
‫بلغة جافا‬

‫إعداد األستاذ‬
‫إبراهيم دمحم أحمد علي‬

‫‪1‬‬
‫مقدمة المقرر‬
‫الحمد هلل وحدة الحمد هلل الذي علم بالملم علم االنسان مالم ٌعلم والصالة والسالم علً سٌد االنام دمحم ابن‬
‫عبدهللا وعلً اله وصحبه البررة الكرام و بعد‪:‬‬

‫أ سس البرمجة المرئٌة بلغة جافا تمدم للطالب ما ٌحتاجه من اساسٌات لغة جافا بشرح المفاهٌم االساسٌة‬
‫المصحوبة باالمثلة واسئلة للتموٌم الذاتً وتدرٌبات محلولة فً نهاٌة كل وحدة‪.‬‬

‫ٌشتمل هذا الكتاب علً اربعة وحدات‪ ,‬الوحدة االولى ممدمة عن البرمجة ولغة جافا حٌث تم توضٌح‬
‫البٌانات االساسٌة وعملٌات االدخال واالخراج مبٌنا طرق االدخال عن طرٌك االسناد او التخصٌص وكذلن‬
‫االدخال بواسطة المستخدم من لوحة المفاتٌح مع طرق مختلفة اٌضا لالخراج كما ٌحتوى هذه الوحدة علً‬
‫بعض الرموز الرٌاضة شائعة االستخدام ‪.‬فً الوحدة الثانٌة والتً عنوانه العبارات الشرطٌة تم فٌها شرح‬
‫العامالت المنطمٌة واالدوات الشرطٌة المستخدمة فً التعبٌرات والجمل المنطمٌة وكتابة جمل ‪if,if/else,if‬‬
‫المتداخلة وكتابة جمل ‪. switch‬فً الوحدة الثالثة التً بعنوان الحلمات التكرارٌة حٌث ٌحتوي علً معرفة‬
‫الحلمات التكرارٌة وكتابة واستخدام حلمة ‪ for‬وحلمة ‪ while‬وحلمة ‪ do while‬مبنٌا ذلن بالمخططات مع‬
‫ذكر اوجه االختالف بٌن انواع تلن الحلمات ٌختم هذه الوحدة بكتابة واستخدام الحلمات المتداخلة‪.‬الوحدة‬
‫الرابعة بعنوان المصفوفات والذي ٌشرح كٌفٌة نوع واحد من البٌانات فً خالٌا متجاورة فً مصفوفات ذات‬
‫البعد الواحد وذات البعدٌن مع اجراء بعض العلٌات علً تلن المصفوفات‪.‬‬

‫‪2‬‬
‫اهداف المقرر‬
‫بعد فراغن من دراسة هذا الممرر ٌنبغً ان تكون لادرا علً انن‬

‫‪.1‬تعرف لغة جافا وتعدد ممٌزاتها‪.‬‬

‫‪ .2‬تعدد انواع البٌانات االساسٌة المستخدمة فً لغة جافا‪.‬‬

‫‪.3‬توضح العبارات الشرطٌة‪.‬‬

‫‪.4‬تذكر الحلمات التكرارٌة‪.‬‬

‫‪.5‬تذكر المصفوفات ذات البعد الواحد والبعدٌن‪.‬‬

‫محتويات المقرر‬

‫الصفحة‬ ‫إسم الوحدة‬ ‫م‬

‫البرمجة وأساسٌات جافا‬ ‫‪1‬‬

‫التعبٌرات الشرطٌة‬ ‫‪2‬‬

‫الحلمات التكرارٌة‬ ‫‪3‬‬

‫المصفوفات‬ ‫‪4‬‬

‫‪3‬‬
‫الوحدة االولى‬
‫البرمجة واساسيات الجافا‬

‫‪4‬‬
‫محتويات الووحد‬

‫الصفحة‬ ‫الممدمة‬

‫‪6‬‬ ‫تمهٌد‬

‫‪6‬‬ ‫أهداف الوحدة‬

‫‪7‬‬ ‫‪.1‬البرنامج‬

‫‪7‬‬ ‫أهمٌة مهنة البرمجة‬

‫‪7‬‬ ‫حل المشكلة بواسطة البرمجة‬

‫‪8‬‬ ‫لغة جافا‬

‫‪8‬‬ ‫ممٌزات لغة جافا‬

‫‪9‬‬ ‫اإلسم المعرفً‬

‫‪10‬‬ ‫الكلمات المحجوزة‬

‫‪11‬‬ ‫جمل التعلٌك‬

‫‪15‬‬ ‫تعرٌف المتغٌرات‬

‫‪16‬‬ ‫إدخال البٌانات‬

‫‪17‬‬ ‫إخراج البٌانات‬

‫‪19‬‬ ‫ترٌف الثوابت‬

‫‪20‬‬ ‫الرموز الخاصة بلغة جافا‬

‫‪26‬‬ ‫الحزم‬

‫‪27‬‬ ‫لراءة البٌانات بواسطة المستخدم‬

‫إجابة التدرٌبات‬

‫المراجع‬

‫‪5‬‬
‫المقحمة‬

‫تمهيح‬

‫من المعلوم ان الحاسبات انتشرت انتشارا واسعا وكبٌرا فً كل مولع وال ٌمكن اإلستغناء عنه باي حال من‬
‫االحوال وذلن لما تتمتع به من لدرة عالٌة من اجراء العملٌات الحسابٌة وغٌرها فً ولت لصٌر ومعالجتها‬
‫للكم الهائل من البٌانات فً هذه الوحدة نتعرض الً ماهً برنامج الحاسوب ولغة البرمجة وانواع لغات‬
‫كما نتناول‬ ‫البرمجة واهمٌة مهنة البرمجة ثم بعد ذلن نشرح المواعد والخطوات المتبعة لكتابة البرامج‬
‫خلفٌة لغة جافا وممٌزاتها وانواع البٌانات االساسٌة واالدخال واالخراج للبٌانات متضمنا كٌفٌة تعرٌف‬
‫المتغًرات والثوابت مع شرح بعض العملٌات الرٌاضٌة كالجمع ‪,‬الطرح‪,‬الضرب‪,‬المسمة وبالً المسمة‪.‬‬

‫االهداف‬
‫بعد فراغن من دراسة هذه الوحدة ٌنبغً ان تكون لادرا علً‪:‬‬

‫‪.1‬توضح ماه ي برنامج الحاسب ولغات البرمجة‪.‬‬

‫‪.2‬توضح مهنة البرمجة وخطوات كنابة البرامج‪.‬‬

‫‪.3‬تعرف لغة جافا وممٌزاتها‪.‬‬

‫‪.4‬تعرف الهٌكل العام لبرامج لغة جافا وتكتب برامج صغٌرة‪.‬‬

‫‪.5‬شرح عبارة او دالة االخراج ‪.System.out.print‬‬

‫‪.6‬تعدد البٌانات االساسٌة المستخدمة فً لغة جافا‪.‬‬

‫‪.7‬تعرف المتغٌرات‪.‬‬

‫‪.8‬تعرف الثوابت‪.‬‬

‫‪.9‬تعدد الرموز والعملٌات الرٌاضٌة‪.‬‬

‫‪.10‬تعرف التحوٌل ‪.Casting‬‬

‫‪.11‬تعرف الكائن ‪.JoptinPane‬‬

‫‪6‬‬
‫البرنامج‬
‫هو عبارة عن مجموعة من التعلٌمات تعطى للحاسب للمٌام بعمل ما مثل حساب مجموع لٌم مختلفة ‪,‬‬
‫حساب المتوسط‪...‬الخ ‪ ,‬والبرنامج هو الذي ٌحدد للحاسب كٌفٌة التعامل مع البٌانات للحصول علً النتائج‬
‫المطلوبة والبرنامج ٌكتب بواسطة المبرمج الذي ٌفهم المشكلة وٌمترح الحل وٌنفذه‪.‬‬

‫البرمجيات ‪software‬‬
‫‪ hardware‬بكفاءة وراحة وٌمكن تمسٌم البرمجٌات‬ ‫هً التً تسهل للمستخدم استخدام المكونات المادٌة‬
‫الً ثالثة انواع رئٌسٌة هً‪:‬‬

‫‪ ‬برامج التشغٌل‪.‬‬

‫‪ ‬برامج التطبٌمات‪.‬‬

‫‪ ‬لغات البرمجة والتً ٌمكن تمسٌمها الً اربعة انواع وهً‪:‬‬

‫‪.1‬لغة االلة‪.‬‬

‫‪.2‬لغات التجمٌع‪.‬‬

‫‪ .3‬لغات المستوى العالً او الرالً حٌث تعتبر سهلة من وجهة نظر المبرمجٌن بالممارنة بلغات‬
‫التجمبع ولغة االلة وذلن لسهولة كتابتها وفهمها وحل المشاكل باستخدامها ومن أمثلة هذه اللغات‬
‫‪ c,c++‬والجافا وغٌرها‪.‬‬

‫أهمية مهنة البرمجة‬


‫تكمن أهمٌة مهنة البرمجة فً االتً ‪:‬‬

‫‪ .1‬كتابة برامج وبناء االنظمة المختلفة لحل المشاكل وتبسٌط التعامل مع الحاسب ‪.‬‬

‫‪ .2‬المسؤلٌة الكاملة عن إصالح ماٌحدث من أعطال وحل المشاكل التً تحدث فً االنظمة المختلفة‪.‬‬

‫‪ .3‬بناء واجهة المستخدم المختلفة فً كثٌر من اللغات والتطبٌمات‪.‬‬

‫حل المشكلة بواسطة البرمجة‬


‫المدرة علً حل المشاكل بواسطة البرمجة هً مهارة وطرٌمة مرتبة والتعتمد علً العشوائٌة وهذه المدرة‬
‫ٌمكن إكتسابها وتعلمها بإتباع بعض المواعد التً تساعد علً ذلن بعض هذه المواعد ذكرها رٌت دٌكارت‬
‫الرٌاضى والفٌلسوف المشهور وهً‪:‬‬

‫‪ .1‬الٌمكن لبول أي شئ حمٌمة مسلمة اال إذا ثبت ذلن بالتجربة والمشاهده‪.‬‬

‫‪7‬‬
‫‪ .2‬نل مشكلة أو معضلة ٌتم تبسٌطها وتمسٌمها الً أجزاء عدة كلما أمكن ذلن‪.‬‬

‫‪ .3‬فكر بطرٌمة منظمة ومنطمٌة وذلن بالبدء باالجزاء البسٌطة والسهلة الفهم ثم التدرج الً االجزاء‬
‫االصعب وهكذ حتى ٌتم االنتهاء من المشكلة‪.‬‬

‫‪ .4‬المراجعة لجمٌع االجزاء حتً ٌكتمل الحل‪.‬‬

‫بالرغم من ان هذه المواعد تم وضعها لبل ‪ 200‬عام من ظهور اول حاسب الكترونً اال انها صالحة‬
‫ومطبمة فً الحاسبات‪ ,‬فإن خطوات حل المشكلة بالحاسوب هً‪:‬‬

‫‪.1‬فهم المشكلة بمعرفة متطلباتها وتمسٌمها الً اجزاء صغٌرة غٌر معتمدة علً بعضها البعض‪.‬‬

‫‪ .2‬كتابة الخوارزمٌة وهً الخطوات المنطمٌة لحل المشكلة فمثال اذا اردنا ان نوجد متوسط درجات الحرارة‬
‫‪ T1,T2,T3‬فان خطوات الحل المنطمٌة ٌمكن ترتٌبها فً الخطوات التالٌة‪:‬‬

‫‪ ‬الخطوة االولى الرأ لٌم درجات الحرارة ‪.T1,T2,T3‬‬

‫‪ ‬الخطوة الثانٌة احسب المجموع للدرجات الثالثة‪.‬‬

‫‪ ‬الخطوة الثالثة احسب المتوسط والذي ٌساوي المجموع علً ‪.3‬‬

‫‪ ‬الخطوة االخٌرة طباعة الناتج‪.‬‬

‫‪.3‬كتابة البرنامج باحدى لغات البرمجة‪.‬‬

‫‪ .4‬ترجمة البرنامج حٌث ٌتم تحوٌل البرنامج المصدري الً برنامج مكتوب بلغة االلة الن الحاسب الٌفهم اال‬
‫لغة االلة وفً هذه الخطوة ٌتم اكتشاف االخطاء المنطمٌة واللغوٌة وتصحٌحها‪.‬‬

‫‪.5‬تنفٌذ البرنامج واعطاء النتائج وفً هذه الخطوة لد تظهر اخطاء التنفٌذ مثل المسمة علً صفر او‬
‫لوغٌرثٌم عدد سالب ‪.‬‬

‫لغة جافا‬
‫لمد ادى ظهور لغة الجافا عام ‪ 1990‬الى حل الكثٌر من المشاكل واهم هذه المشاكل هى مشكلة الذاكر ة‬
‫والتعمٌد المفرط فى لغة ‪ c++‬التى كانت شائعة االستعمال فى ذلن الولت ‪.‬‬

‫مميزات لغة جافا‬


‫التشغٌل المتداولة ))أي أنها تعمل على جمٌع‬ ‫‪.1‬تتمٌزلغة الجافا بأنها لغة تتماشً مع جمٌع أنظمة‬
‫أنظمةالتشغٌل ‪,((Operating System‬مثل نظام ‪,Windows XP‬ونظام ‪,UNIX‬وغٌرها من أنظمة‬
‫‪Sun‬‬ ‫التشغٌل‪,‬كما أن لغة الجافا تعتبرالتوأم الثانً للغة الـ‪ ,C++‬حٌث كالهما نشأت من لبل شركة‬
‫‪Microsystem‬كما أنها تعتبر لغة عامة وشاملة للغات البرمجة اﻷخرى والتملٌدٌة‪.‬‬

‫‪8‬‬
‫‪.2‬لغة لوٌة تحتوي علً ادوات كثٌرة تساعد فى كتابة البرامج ‪.‬‬

‫‪ .3‬تعتبر لغة برمجة موجهة للكائنات التً من اهم ممٌزاتها اعادة االستخدام والتورٌث وتعدد الصور‬

‫حٌث اصبحت اكثر لغات البرمجة استخداما الٌوم‪.‬‬

‫‪ .4‬تالفت عٌوب كتٌر من اللغات السابمة خاصة امكانٌة الوصول المباشر للذاكرة مما اعطتها درجة عالٌة‬
‫من السرٌة‪.‬‬

‫‪.5‬لابلٌة النمل ‪.‬‬

‫‪.6‬تصلح فً االنظمة الموزعة‪.‬‬

‫‪.7‬تدعم نطبٌمات االنترنت ‪.applet program‬‬

‫‪ .8‬تعتبر من لغات البرمجة المرئٌة والتً تعرف بانها اي لغة برمجة ٌسمح للمستخدم باستخدام عناصر‬
‫رسومٌة فً كتابة البرنامج ‪.‬‬

‫أسئلة تقويم ذاتي‬

‫‪.1‬ماهً خطوات كتابة البرامج‪.‬‬

‫‪.2‬تعتبر لغة جافا لغة برمجة موجهه للكائنات ‪,‬ماهً خصائص لغات البرمجة الموجهة‬
‫للكائنات‪.‬‬

‫االسم المعرفى ‪identifier‬‬


‫ٌتكون االسم المعرفى من مجموعه من الحرف )‪ (A-Z,a-z‬و االرلام (‪ )9-0‬باالضافه ل(_و‪.)$‬‬

‫وٌجب ان ٌراعى ان حٌن اختٌار االسم ‪-:‬‬

‫‪-1‬ان ٌبدأ االسم بحرف ‪.‬‬

‫‪-2‬ال ٌبدأ برلم‪.‬‬

‫‪ -3‬ال ٌحتوى على مسافه فارغة ‪.‬‬

‫‪-4‬ال ٌكون من االسماء المحجوزه‪.‬‬

‫‪-5‬ال ٌحتوى على اى حروف او عالمات خاصه غٌر ‪ $‬و _ ‪.‬‬

‫‪9‬‬
‫‪ٌ -6‬فضل ان ٌكون اسما معبرا عما ٌموم به الكائن‪.‬‬

‫مثال السم معرفى ‪-:‬‬

‫‪Welcome,$value,S_identified‬‬

‫ومن االمثلة الخاطئة لالسم ماٌلً‪:‬‬

‫‪ 7button‬النه ٌبدأ برلم‬

‫‪ Input field‬النه ٌحتوي علً مسافة‬

‫‪ Sum+total‬النه ٌحتوي علً ’‪’+‬‬

‫‪ Public‬النه كلمة محجوزة‬

‫مالحظه‪-:‬‬
‫‪ - 1‬حفظ البرنامج فى ملف باسم مختلف عن اسم الكائن حتى لو كانت نفس الحروف ولكنها‬
‫تختلف عنها فى الحروف الصغٌره والكبٌره ٌعطى عبارة خطأ عند الترجمه‪.‬‬
‫‪ - 2‬اي سطر امر ٌجب ان ٌنتهً بالفاصله المنموطه (;) ‪.semi colum‬‬
‫‪ - 3‬لغة جافا تفرق بٌن االحرف الصغٌره‪ small‬واالحرف الكبٌره ‪ capital‬حٌث تعتبر‬
‫لغة جافا )‪ (case sensitive‬اي اان كلمة ‪ SUDAN‬تختلف عن كلمة ‪.sudan‬‬
‫‪ٌ - 4‬جب كتابة اي نص بٌن عالمتً تنصٌص " "‪.‬‬

‫الكلمات المحجوزه فى الجافا‪-:‬‬


‫هً عبارة عن كلمات تم تعرٌفها مسبما فً اللغة لتحمل معانً معٌنة عند ظهورها فً البرنامج والٌجوز‬
‫استخدامها من لبل المبرمج اال لما خصصت له وتسمى بالـ )‪ (reserved words‬والجدول التالً ٌبٌن‬
‫بعض الكلمات المحجوزة فً لغة جافا‬

‫‪Public‬‬ ‫‪Abstract‬‬ ‫‪Finally‬‬ ‫‪Boolean‬‬ ‫‪Return‬‬


‫‪Float‬‬ ‫‪Break‬‬ ‫‪Short‬‬ ‫‪For‬‬ ‫‪Static‬‬
‫‪If‬‬ ‫‪byte‬‬ ‫‪Case‬‬ ‫‪Implements‬‬ ‫‪Super‬‬
‫‪Catch‬‬ ‫‪switch‬‬ ‫‪Import‬‬ ‫‪Char‬‬ ‫‪Int‬‬
‫‪Synchronized‬‬ ‫‪instanceof‬‬ ‫‪This‬‬ ‫‪Class‬‬ ‫‪Throw‬‬
‫‪Continue‬‬ ‫‪interface‬‬ ‫‪Default‬‬ ‫‪Long‬‬ ‫‪Else‬‬
‫‪Throws‬‬ ‫‪Native‬‬ ‫‪True‬‬ ‫‪Transient‬‬ ‫‪New‬‬
‫‪Do‬‬ ‫‪package‬‬ ‫‪Double‬‬ ‫‪Null‬‬ ‫‪Try‬‬
‫‪Private‬‬ ‫‪Extends‬‬ ‫‪While‬‬ ‫‪Protected‬‬ ‫‪Final‬‬
‫‪Void‬‬ ‫‪False‬‬ ‫‪--------‬‬ ‫‪--------‬‬

‫‪10‬‬
‫مثال برنامج جافا‬

‫‪1. public class Java‬‬


‫{ ‪2.‬‬
‫)‪3. public static void main(String[] args‬‬
‫{‪4‬‬
‫;)"‪5. System.out.println("welcome in my first program JAVA‬‬
‫} ‪6.‬‬
‫‪7. }//this end of class‬‬

‫شرح البرنامج‬

‫‪ -‬تموم جملة ‪. public class Java‬بعملٌة تعرٌف الصنف ‪ class‬الذى ٌحمل اسم ‪ Java‬كما‬ ‫‪1‬‬
‫تشٌر كلمة ‪ public‬الى عملٌة التعمٌم اي ٌمكن الي عضو ٌسمح له باستخدام النظام من تشغٌل‬
‫البرنامج‪.‬‬
‫ال ‪.class‬‬‫‪ٌ -‬شٌر هذا الموس الى بداٌة ـ‬ ‫‪2‬‬
‫‪ٌ -‬طلك على هذه الجمله اسم ‪ main method‬وهى نمطة االنطالق االساسٌه فى كتابة البرنامج‪.‬‬ ‫‪3‬‬
‫ال ‪.method‬‬ ‫‪ٌ -‬شٌر الى بداٌة ـ‬ ‫‪4‬‬
‫‪ٌ System.out.println -‬طلك علٌها اسم جملة االخراج او الطباعه اى تموم بطباعة الجمله‬ ‫‪5‬‬
‫الموجوده داخل الموس وهى ‪.welcome in my first program JAVA‬‬
‫ال ‪.class‬‬
‫‪ٌ -‬شٌٌر الى نهاٌة ـ‬ ‫‪6‬‬
‫ال ‪.method‬‬ ‫‪ٌ -‬شٌر الى نهاٌة ـ‬ ‫‪7‬‬

‫جمل التعليق ‪Comment Statement‬‬


‫تستخدم جمل التعلٌك لشرح البرنامج وتوثٌمه داخلٌا وكذلن للتعرٌف بوظٌفة كل جزء وهً تسهل لراءة‬
‫البرنامج وتعطً فكرة عن وظٌفة كل جزء فٌة عند كتابتها ‪ ,‬ولكتابتها طرٌمتان وهما‪:‬‬

‫‪.1‬تستخدم جملة التعلٌك(‪ )//‬لشرح سطرواحد بالبرنامج مثال‪:‬‬

‫‪Class java //this is the class name‬‬

‫*‪ /‬مثال‬ ‫‪ .2‬اما اذاكانت جملة التعلٌك تحتوي اكثر من سطر نستخدم ‪*/‬‬

‫‪/* This is amultiplier line‬‬

‫‪Comment it can split‬‬

‫‪Into several lines*/‬‬

‫‪.3‬كل التعلٌمات ٌتم تجاهلها فً الترجمة وتنفٌذ البرنامج‪.‬‬

‫‪11‬‬
‫أسئلة تقويم ذاتي‬

‫‪.1‬عرف البرمجة المرئٌة‪.‬‬

‫‪.2‬ماهو الغرض من كتابة التلٌك داخل البرنامج‪.‬‬

‫االختصارات‬
‫الجدول التالً ٌبٌن بعض اإلختصارات المهمة فً لغة جافا‪:‬‬

‫الوظٌفه‬ ‫االختصار‬ ‫الرلم‬


‫سطر جدٌد‬ ‫‪/n‬‬ ‫‪1‬‬
‫مسافة افمٌة‬ ‫‪/t‬‬ ‫‪2‬‬
‫اظهار العالمة""‬ ‫""‪/‬‬ ‫‪3‬‬
‫اظهار العالمة بعد الشرطة المائلة‬ ‫'‪/‬‬ ‫‪4‬‬
‫الرجوع الى الخلف‬ ‫‪/b‬‬ ‫‪5‬‬
‫اظهار العالمة ‪/‬‬ ‫‪//‬‬ ‫‪6‬‬

‫مثال‬

‫‪1. public class Java‬‬


‫{ ‪2.‬‬
‫)‪3. public static void main(String[] args‬‬
‫{‪4‬‬
‫;)"‪5. System.out.println("welcome in my \n first program JAVA‬‬
‫} ‪6.‬‬
‫} ‪7.‬‬

‫مخرج البرنامج السابك‬

‫‪welcome in my‬‬
‫‪first program JAVA‬‬

‫حٌث تموم ‪ \n‬ببناء سطر جدٌد وطباعة بمٌة الجمله‬

‫‪12‬‬
‫مثال‬

‫أكتب برنامج ٌموم بطباعه جمله واحده فً اكثر من سطر‬

public class Welcome3


{ // main method begins execution of Java application
public static void main( String args[ ] )

{
System.out.println( "Welcome\nto\nJava\nProgramming!" );
}
} // end method main
:‫إذن خرج البرنامج السابك هو‬
Welcome
To
Java
Programming
System.out.println ‫ مرات داخل العبارة‬3 ‫الن إختصار السطر الجدٌد ظهر‬

‫سؤال تقويم ذاتي‬

:ً‫اكتب برنامج ٌموم بطباعة الشكل االت‬

Sudan University

Computer department

Name…….. Addresss…………..

Sex…………. Age……………….

13
‫مثال‬

:ً‫اكتب برنامج ٌموم بطباعة االت‬

Fristname lastname department

:‫الحل‬

public class Welcome3


{
public static void main( String args[ ] )

{
System.out.println(" Fristname \t lastname \t department ");
} // end method main
} // end class Welcome3

‫مثال‬

:ً‫ما هو خرج البرنامج التال‬

class Today

Public static void main(String args[ ])

String today=“Friday”;

System.out.print(“Today is”+today);

today=“Sunday”;

System.out.print(“Today Is Not”+today);

14
‫الخرج‬

‫‪Today is today Friday Today isNot Sunday‬‬

‫انواع البيانات االساسية المستخدمه في جافا‬

‫السعه التخزٌنٌه بالبت المدى‬ ‫الرلم نوع البٌان‬

‫الجمل والكلمات‬ ‫تعبر عن الحروف‬ ‫‪String‬‬ ‫‪1‬‬


‫‪+3.40292347E+38..-3.40292347E+38‬‬ ‫‪32‬‬ ‫‪Float‬‬ ‫‪2‬‬
‫‪+1.79769313488231570E+308..‬‬ ‫‪64‬‬ ‫‪Double‬‬ ‫‪3‬‬
‫‪-1.79769313488231570E+308‬‬
‫‪True or false‬‬ ‫‪8‬‬ ‫‪Boolean‬‬ ‫‪4‬‬
‫كل الحروف‬ ‫‪16‬‬ ‫‪Char‬‬ ‫‪5‬‬
‫‪+127..-128‬‬ ‫‪8‬‬ ‫‪byte‬‬ ‫‪6‬‬
‫‪+32767..-32768‬‬ ‫‪16‬‬ ‫‪Short‬‬ ‫‪7‬‬
‫‪+2147483647..-2147483648‬‬ ‫‪32‬‬ ‫‪Int‬‬ ‫‪8‬‬

‫ملحوظة‬
‫‪ ‬االعداد الحمٌمٌة ترمز لها باالسماء ‪float,double‬‬

‫‪ ‬االعداد الصحٌحة ترمز لها باالسماء ‪byte ,short, int‬‬

‫‪ ‬البٌانات المنطمٌة ترمز الٌه باالسم ‪Boolean‬‬

‫تعريف المتغيرات‬
‫الصٌغة العامة لترٌف المتغٌرات هى‪:‬‬

‫;‪Data_type variable_name‬‬

‫اس المتغٌر بشرط ان ٌكون االسم‬


‫حٌث ٌكتب اوال نوع البٌان الذي سٌحتوٌه هذا المتغٌر ثم نكتب ثانٌا م‬
‫صحٌحا حسب ماورد فً تعرٌف االسماء مسبما وعادة ما ٌكتب بحروف صغٌرة ٌنتهً بفاصلة منموطة فً‬
‫نهاٌة االمر ‪.‬‬

‫‪15‬‬
‫أمثلة لتعرٌف متغٌرات‬

‫;‪Int number‬‬

‫;‪Float average‬‬

‫;‪String name‬‬

‫;‪Boolean endOfGame‬‬

‫كما ٌمكن تعرٌف اكثر من متغٌر بعبارة واحدة‬

‫;‪String name,address,department‬‬

‫;‪Int degree,sum‬‬

‫أسئلة تقويم ذاتي‬

‫‪.1‬ترمز لألعداد الصحٌحة فً لغة جافا بـ………‪...‬أو………أو………‪.‬‬

‫‪.1‬ترمز لألعداد الحمٌمٌة فً لغة جافا بـ………‪...‬أو………‬

‫‪.1‬ترمز للكلمات والجمل فً لغة جافا بـ………‪..……… ……… ....‬‬

‫ادخال البيانات‬
‫ٌتم ادخال االبٌات بطرلتٌن ‪:‬‬

‫‪.1‬عن طرٌك التخصٌص أو االسناد‪.‬‬

‫‪.2‬عن طرٌك المراءة من لوحة المفاتٌح عند تنفٌذ البرنامج‪.‬‬

‫طريقة التخصيص او االسناد‬


‫الماعدة العامة لطرٌمة التخصٌص هً‪:‬‬

‫;‪Variable_name = value‬‬

‫‪16‬‬
‫مثال‬

‫;‪Degree=45‬‬

‫وهذا ٌعنً وضع المٌمة ‪ 45‬فً المتغٌر ‪degree‬‬

‫;”‪Name=”Ahmed‬‬

‫وهذا ٌعنً وضع اسم ‪ Ahmed‬داخل المتغٌر ‪name‬‬

‫ملحوظة‬
‫‪ٌ .1‬جب مراعاة نوع المتغٌر عند وضع المٌمة فالٌمكن وضع المٌمة ‪ 3.5‬فً متغٌر من نوع ‪Int‬‬
‫والٌمكن وضع الحرف ‪ a‬فً متغٌر من نوع ‪ byte‬بصورة مباشرة‪.‬‬

‫‪ٌ .2‬مكن اعطاء لٌمة ابتدائٌة للمتغٌر مباشرة عند تعرٌفها‪.‬‬

‫مثال‬

‫;‪Int degree=50,count=0‬‬

‫;‪Float price=34.5‬‬

‫;‟‪Char letteter=‟a‬‬

‫;”‪String name=”Ali‬‬

‫;‪Boolean endOfGame=true‬‬

‫طباعة قيم المتغيرات‬


‫ٌتم طباعة لٌم المتغٌرات التً تم ادخالها مسبما بالعبارة‬

‫;)‪System.out.print(variable_name‬‬

‫‪17‬‬
‫مثال‪:‬‬

‫;”‪String name=”Ali‬‬

‫;)‪system.out.print(name‬‬

‫تموم بطباعة االسم ‪ Ali‬علً الشاشة فهنالن عبارة اخري تستخدم لطباعة لٌم المتغٌرات نراها الحما‪.‬‬

‫مثال‬

‫‪1. public class name‬‬


‫{ ‪2.‬‬
‫)‪3. public static void main(String[] args‬‬
‫{‪4.‬‬
‫;"‪5. String name =“Ahmed‬‬
‫;)”‪6. System.out.print(“His name is‬‬
‫;)‪7. Sytem.out.print(name‬‬
‫;‪8. Int age=35‬‬
‫;)”‪9. System.out.print(“His age is‬‬
‫;)‪10.Sytem.out.print(age‬‬
‫;‟‪11.Char sex=‟M‬‬
‫;)”‪12.System.out.print(“His sex is‬‬
‫;)‪13.Sytem.out.print(sex‬‬
‫}‪14 .‬‬
‫} ‪15.‬‬

‫فً السطر‪ 5‬تم ادخال ‪ Ahmed‬فً التغٌر ‪ name‬وفً السطر ‪ 6‬تم طباعة النص ‪His name is‬‬

‫وفً السطر ‪ 7‬تمت طباعة لٌمة المتغٌر ‪ name‬وهو متغٌر تم تعرٌفه مسبما وٌحمل المٌمة ‟‪“Ahmed‬‬

‫إذن سٌموم البرنامج بطباعة الكلمة ‪. Ahmed‬فً السطر ‪ 10‬ستتم طباعة ‪ 35‬وفً السطر ‪ 13‬ستتم‬
‫طباعة ‪ M‬لتكون مخرجات البرنامج هً‪:‬‬

‫‪His name is Ahmed His age is 35 His sex is M‬‬

‫„‪.‬‬ ‫الحظ عند ادخال الحروف بعبارة التخصٌص البد من وضعها بٌن العالمتٌن „‬

‫ٌمكن دمج عبارتً طباعة النصوص وطباعة لٌمة المتغٌر فً عبارة واحدة تفصل بٌنهم العالمة( ‪ )+‬كما‬
‫ٌمكن دمج اكثر من عبارتٌن فً ان واحد‬

‫‪18‬‬
‫مثال‬

‫ٌمكن ان تدمج العبارتٌن‬

‫;)”‪System.out.print(“His name is‬‬


‫;)‪Sytem.out.print(name‬‬
‫فً عبارة واحدة لتصبح‬

‫;)‪System.out.print(“His name is”+ name‬‬


‫واٌضا ٌمكن دمج العبارتٌن‬

‫;)”‪System.out.print(“His age is‬‬


‫;)‪Sytem.out.print(age‬‬
‫لتصبح‬
‫;)‪System.out.print(“His age is”+age‬‬

‫تعريف الثوابت‬
‫هً عبارة عن لٌم الٌمكن تغٌٌرها اثناء تنفٌذ البرنامج ‪ ,‬لكننا نموم بتعرٌفه ووضع لٌمة ابتدائٌة له لحظة‬
‫التعرٌف وتظل هذه المٌمة ثابتة طوال البرنامج ‪,‬تعرٌف الثوابت ال ٌختلف عن تعرٌف المتغٌرات اال فً‬
‫الكلمة المحجوزة ‪ final‬التً نكتبها امام التعرٌف لنستدل بها علً انه ثابت‪.‬‬

‫الصيغة العامة لتعريف الثابت‬


‫;‪Final data_type conistant name = value‬‬

‫أمثلة لثوابت‪:‬‬

‫;‪Final float PI=3.14‬‬

‫;”‪Final string ADDRESS=”Kasala‬‬

‫;‟‪Final char PLUS =‟+‬‬

‫;‪Final Boolean CHECK=true‬‬

‫وعادة تكتب اسم الثابت بحروف كبٌرة لتمٌزها وهذا لٌس شرطا‬

‫‪19‬‬
‫مثال‬

‫اكتب برنامج لحساب مساحة الدائرة‬

‫‪public class circle‬‬


‫{‬
‫)‪public static void main(String[] args‬‬
‫{‬
‫;‪Final double PI=3.14‬‬
‫;‪Int radius =15‬‬
‫;‪Double area‬‬
‫‪Area=radius*radius*PI‬‬
‫;)‪System.out.println(“the area="+area‬‬
‫}‬
‫‪}//this end of class‬‬

‫الرموز الخاصه بلغة جافا‬


‫العملٌه‬ ‫الرمز‬ ‫الرلم‬
‫الجمع‬ ‫‪+‬‬ ‫‪1‬‬
‫الطرح‬ ‫‪-‬‬ ‫‪2‬‬
‫الضرب‬ ‫*‬ ‫‪3‬‬
‫المسمه‬ ‫‪/‬‬ ‫‪4‬‬
‫بالً المسمه‬ ‫‪%‬‬ ‫‪5‬‬

‫هذه الرموز خاصة بللعملٌات الرٌاضٌة كالطرح والمسمة والضرب والجمع وبالً المسمة حٌث‬

‫تستخدم بالً المسمة مع االعداد الصحٌحة فمط اي ان تكون المعامالت اعداد صحٌحة‬

‫امثلة لبالً المسمة‬

‫‪ 9%5=4‬اي ان بالً لسمة العدد ‪ 9‬علً العدد ‪ 5‬تساوي ‪4‬‬

‫‪ 17%5=2‬أي ان بالً لسمة العدد ‪ 17‬علً العدد ‪ 5‬تساوي ‪2‬‬

‫عند إجراء عملٌة المسمة إذا كان المعاملٌن صحٌحٌن فان ناتج اجراء العملٌة ٌكون عددا صحٌحا مثال ‪7/3‬‬
‫فان الناتج ٌساوي ‪ 3‬بٌنما إذا كان أحد المعاملٌن عدد حمٌمً فان الناتج سوف ٌكون عددا حمٌمٌا مثال ‪7/3.0‬‬
‫فان الناتج ٌساوى ‪ 3.5‬ولٌست ‪ 3‬عندما كان المعاملٌن عددٌن صحٌحٌن‪.‬‬

‫‪20‬‬
‫اولويات العمليات الرياضة‬
‫االولوٌة االولى لاللواس‬

‫االولوٌة الثانٌة لعملٌات الضرب والمسمة وبالً المسمة حسب اسبمٌة ظهورهما فً المعادلة‬

‫االولوٌة الثالثة للجمع والطرح‬

‫مثال‬

‫‪1.Class priority‬‬

‫{‪2.‬‬

‫)] [‪3.Public ststic void main(string args‬‬

‫{ ‪4.‬‬

‫;‪5. Int result,x=5‬‬

‫;‪6. result=x*5+(28-6)*7‬‬

‫;)‪7.system.out.print(“result=”+result‬‬

‫}}‪8.‬‬

‫فً السطر ‪ 5‬لمنا بتعرٌف متغٌرٌن الحدهما ‪ X‬لٌمة ابتدائٌة فً السطر ‪ 6‬تم حساب لٌمة المتغٌر الخر من‬
‫خالل تعبٌر رٌاضً فمن الطبٌعً ان ٌتم العملٌة الرٌاضة من الٌسار الى الٌمٌن لتتم العملٌات حسب‬
‫االولوٌة‪.‬‬

‫سؤال تقويم ذاتي‬


‫اكتب برنامج ٌحسب الراتب السنوي للموظف وٌطبعه فً رسالة مناسبة علما بان راتبه الشهري هو ‪375‬‬

‫‪21‬‬
‫بعض االختصارات الشائعة في العمليات الرياضية‬

‫ماٌمابله دون اختصار‬ ‫مثال‬ ‫العامل‬

‫‪C=C+7‬‬ ‫‪C+=7‬‬ ‫=‪+‬‬

‫‪D=D-4‬‬ ‫‪D-=4‬‬ ‫=‪-‬‬

‫‪E=E*5‬‬ ‫‪E*=5‬‬ ‫=*‬

‫‪F=F/3‬‬ ‫‪F/=3‬‬ ‫=‪/‬‬

‫‪G=G/8‬‬ ‫‪G%=8‬‬ ‫=‪%‬‬

‫عامل الزيادة والنقصان‬


‫توجد بلغة جافا عامل الزٌادة ‪ ++‬وعامل النمصان‪ - -‬وٌستطٌع المبرمج زٌادة لٌمة متغٌر بممدار واحد بدال‬
‫من ‪ X+=1‬أو ‪ x=x+1‬او بنمصان لٌمة المتغٌر بواحد بدال من‪ x-=1‬او ‪ x=x-1‬وٌمكن كتابة عامل‬
‫الزٌادة والنمصان بعد او لبل المتغٌروذلن الحوجة الستخدامة داخل البرنامج والشكل التالً ٌوضح الفرق‬
‫بٌن استخدام هذه العوامل لبل وبعد المتغٌر‬

‫المعنى‬ ‫مثال‬ ‫العامل‬

‫ٌتم زٌادة المتغٌر‪ a‬بممدار‪1‬ثم‬ ‫‪++a‬‬ ‫‪++‬‬


‫تستخدم المٌمة الجدٌدة للمتغٌر ‪a‬‬
‫فً التعبٌرالمتواجد فٌه‬

‫تستخدم المٌمة االولى للمتغٌر ‪a‬‬ ‫‪a++‬‬ ‫‪++‬‬


‫فً التعبٌرالمتواجد فٌه ثم ٌتم‬
‫زٌادة المتغٌر‪ a‬بممدار ‪1‬‬

‫ٌتم إنماص المتغٌر‪ a‬بممدار‪1‬ثم‬ ‫‪--a‬‬ ‫‪--‬‬


‫تستخدم المٌمة الجدٌدة للمتغٌر ‪a‬‬
‫فً التعبٌرالمتواجد فٌه‬

‫تستخدم المٌمة االولى للمتغٌر ‪a‬‬ ‫‪a--‬‬ ‫‪--‬‬


‫فً التعبٌرالمتواجد فٌه ثم ٌتم‬
‫إنماص المتغٌر‪ a‬بممدار ‪1‬‬

‫‪22‬‬
‫مثال‬

‫;‪1.Int x=6‬‬

‫;)‪2. System.out.print(x++‬‬

‫;)‪3.System.out.print(x‬‬

‫هنا ‪ x++‬تعنً إضافة ‪ 1‬للمتغٌر ‪ x‬بعد إكمال العملٌة وعلٌه فان الناتج من تنفٌذ السطر ‪ 2‬هوطباعة المٌمة‬
‫‪ 6‬بدون زٌادة الممدار ‪, 1‬لكن ٌتم إضافة الممدار ‪ 1‬بعد العملٌة مباشرة لتكون لٌمة المتغٌر ‪ x‬تساوى ‪ 7‬مع‬
‫اول ظهور للمتغٌر‪ ,‬لتكون مخرج السطر الثالث المٌمة ‪.7‬‬

‫‪67‬‬ ‫إذن الخرجات للبرنامج السابك تساوي‬

‫مثال‬

‫;‪1. Int x=6‬‬

‫;)‪2. System.out.print(--x‬‬

‫;)‪3. System.out.print(x‬‬

‫هنا ‪ --x‬تعنً انماص لٌمة المتغٌر المتغٌر ‪ x‬بواحد لبل إجراء عملٌة الطباعة وعلٌه ٌتم حساب المٌمة‬
‫الجدٌدة للمتغٌر ‪ x‬اوال وهً‪ 6-1=5‬ثم بعد ذلن ٌتم اجراء عملٌة الطباعة فً السطر الثانً وتكون المخرج‬
‫العدد ‪ 5‬بعد ذلن ٌتم االنتمال للسطر الثالث حٌث تتم طباعة لٌمة المتغٌر ‪ x‬وهً ‪ 5‬نفسها‪.‬‬

‫إذن المخرجات للبرنامج السابك تساوي ‪55‬‬

‫نحتاج احٌانا إلً وضع لٌمة متغٌر من نوع محدد فً متغٌر أخر من نوع مختلف‪ٌ.‬مكن وضع محتوٌات‬
‫المتغٌر صغٌر السعة فً المتغٌر كبٌر السعة بال مشاكل مثال‪:‬‬

‫;‪Int i=100‬‬

‫;‪Long number‬‬

‫;‪Number=I‬‬

‫النه مهما كانت لٌمة المتغٌر‪ i‬كبٌرة فإن المتغٌر ‪ number‬لادر علً إحتوائٌها حٌث أن سعة المتغٌر من‬
‫النوع ‪ long‬أكبر سعة من المتغٌر من النوع ‪int‬‬

‫‪23‬‬
‫هذا النوع من االسناد (من االصغر سعة الً االكبر سعة) ٌحدث دون مشاكل لكن إذا لمنا بإجراء العكس أي‬
‫وضع لٌمة المتغٌر الكبٌر فً المتغٌر الصغٌر فً هذه الحالة ٌجب التعبٌر صراحة عن هذا التحوٌل فً نص‬
‫البرنامج فٌما ٌسمً بالـ ‪ type casting‬فإذا كانت العبارات التالٌة‪:‬‬

‫;‪Int m‬‬

‫;‪Long number=10000‬‬

‫فإن العبارة‪:‬‬

‫;‪m=number‬‬

‫هً عبارة غٌر ممبولة حٌث ال نضمن ان تكون لٌمة المتغٌر صغٌر بحٌث ٌمكن احتواءها بواسطة المتغٌر‬
‫‪ m‬لذا ٌكتب االمر كاالتً‪:‬‬

‫;‪m=(int)number‬‬

‫فهً عبارة ممبولة تعنً تحوٌل المٌمة الموجودة فً المتغٌر ‪ number‬وهً من نوع ‪ long‬حٌث تحوٌلها‬
‫الً نوع ‪ int‬ووضعها فً المتغٌر ‪. m‬‬

‫هنالن نوع اخر من التحوٌل وهو التحوٌل من حرف الً عدد صحٌح او العكس ولشرحة نستعٌن بالمثال‬
‫التالً‪:‬‬

‫;‟‪Char letter=‟A‬‬

‫;‪Int i=(int)letter‬‬

‫;)‪System.out.print(i‬‬

‫فً السطر االول تعرٌف لمتغٌر حرفً بمٌمة ابتدائٌة ‟‪ „A‬وفً السطر الثانً تعرٌف لعدد صحٌح له لٌمة‬
‫ابتدائٌة ‪ ,‬تم الحصول علً هذه المٌمة االبتدائٌة من تحوٌل المتغٌر ‪ letter‬الً عدد‪.‬فً هذه الحالة أي عند‬
‫‪ Unicode‬فً هذا المثال‬ ‫تحوٌل الحرف إلً عدد صحٌح ٌنتج العدد الذى ٌمابل ذلن الحرف فً شفرة‬
‫ٌنتج ممابل الحرف ‟‪ ‟A‬فى شفرة ‪ Unicode‬وهو الرلم ‪65‬وهو ما تطبعه العبارة فً السطر الثالث‬

‫عند التحوٌل من عدد الً حرف ٌنتج الحرف الممابل لذلن العدد كاالتً‪:‬‬

‫‪ (char)65‬هو الحرف ‟‪„A‬‬

‫‪ (char)97‬هو الحرف ‟‪ „a‬الن ترتٌب الحرف ‟‪ „a‬فً شفرة ‪ Unicode‬هو ‪97‬‬

‫‪24‬‬
‫مثال‪:‬‬

‫لدٌنا ‪ٌ 545‬وم نرٌد معرفة عدد السنٌن والشهور واالٌام علما بان السنة ‪ٌ 360‬وم والشهر ‪ٌ 30‬وم‪.‬‬

‫‪1.‬‬ ‫‪Class Days‬‬

‫{ ‪2.‬‬

‫)] [‪3. Public static void main(string args‬‬

‫{ ‪4.‬‬

‫‪5.‬‬ ‫;‪Int days=545‬‬

‫;‪6. Int months,years‬‬

‫;‪7. years=days/360‬‬

‫;‪8. days= days%360‬‬

‫;‪9. months=days/30‬‬

‫;‪10. days=days%30‬‬

‫‪11. System.out.println(“There are:‬‬


‫;)”‪“+years+”years”+months+”months”+”and ”+days+”days‬‬

‫}‬

‫}‬

‫فً السطر ‪ 7‬حصلنا علً عدد السنٌن من لسمة عدد االٌام علً ‪ 360‬والباقي من هذه االٌام هو الذي‬
‫‪(360‬السطر ‪,)8‬‬ ‫ستحسب منه الشهور واالٌام والذي تحصلن ا علٌه بإجراء عملٌة بالً المسمة علً‬
‫ووضعناها فً نفس المتغٌر ‪ days‬إذن المتغٌر ‪ days‬االن ٌحتوي علً ما تبمى من أٌام بعدما التطعنا منه‬
‫‪ 9‬وذلن بمسمة االٌام علً ‪ 30‬اما بالً المسمة‬ ‫السنوات ‪ ,‬االن نرٌد ان نستخلص الشهورفً السطر‬
‫الموجود فً السطر ‪ 10‬فهو ٌمثل االٌام لتكون مخرجات البرنامج كاالتً‪:‬‬

‫‪There are: 1 years 6 months and 5 days‬‬

‫‪25‬‬
‫سؤال تقويم ذاتي‬

‫المطلوب كتابة برنامج ٌحول عدد ‪ 568‬ثانٌة الً ساعات ودلائك وثوانً‬

‫اكتب برنامج لحساب مساحة المثلث‬

‫‪public class Java‬‬


‫{‬
‫)‪public static void main(String[] args‬‬
‫{‬
‫تعرٌف متغٌرات صحٌحه ‪int x=4,y=5;//‬‬
‫تعرٌف متغٌر من النوع ‪double area;// double‬‬
‫;‪area=x*y*0.5‬‬
‫;)‪System.out.print("the area of triangle="+area‬‬
‫}‬
‫}‬

‫الححز ‪-: Packages‬‬

‫لغة ‪ java‬تحتوى على العدٌد من الكائنات (‪ )classes‬الجاهزه التى ٌمكن للمبرمجٌن استخدامها وهذه‬
‫الكائنات تم تنظٌمها وتجمٌعها فى حزم (‪ )Packages‬وهذه الحزم عباره عن مجموعه من الكائنات التى‬
‫تكون الـ ‪, java‬او انها تعرف بما ٌسمى بــ‪java Application Programming ( Java A P I‬‬
‫‪ )Interface‬والتى تنمسم الى لسمٌن هما ‪-:‬‬

‫‪ - 1‬الحزم االساسٌه ‪-: core packages‬‬

‫والتى تبدأ بكلمة ‪. Java‬‬

‫‪ - 2‬حزم االمتداد ‪-: Extension Packages‬‬


‫والتى تبدأ بكلمة ‪. javax‬‬
‫كثٌر من الحزم التى دمجها فى برنامج ‪ Java‬وعلى سبٌل المثال تم استخدام الكائن ‪JOption‬‬
‫‪ Pane‬الذى تم تعرٌفه ووضعه فى الحزم ‪ , Javax.swing‬والستدعاء كائن معٌن من اي‬
‫حزمه نستخدم جملة ‪ import‬والتى تنتمسم الى ‪-:‬‬
‫أ ‪ /‬جمل ‪ import‬للحزم االساسٌة ‪.‬‬
‫ب‪ /‬جمل ‪ import‬لحزم االمتداد‪.‬‬
‫ج ‪ /‬جمل ‪ import‬للحزم الخاصة ‪.‬‬

‫‪26‬‬
‫قراءة البيانات من المستخدم‬
‫فً جمٌع االمثلة السابمة لم ٌساهم المستخدم فً تحدٌد لٌم المتغٌرات بل ٌاخذ البرنامج لٌم البٌانات من‬
‫متغٌرات مخزنة المٌم داخل البرنامج‪ ,‬لغا ت البرمجة لدٌها المدرة علً قراءة البٌانات من لوحة المفاتٌح‬
‫جافٌم نن لراءة البٌانات من المستخدم بعدة وسائل‬
‫بواسطة المستخدم وذلن بعد تنفٌذ البرنامج‪ .‬فً لغة ا‬
‫(لوحة المفاتٌح ‪,‬الملفات‪,‬االلراص وغٌرها‪)...‬‬

‫الكائن ‪-: JOptionPane‬‬


‫ٌحتوى على العدٌد من الطرق (‪ )Methods‬ونذكر منها على سبٌل المثال‪-:‬‬
‫‪ - 1‬الطرٌمه ‪- : showMessageDialog‬‬
‫وهذه الطرٌمه تتطلب مدخلٌن هما ‪:‬‬
‫المدخل االول ‪ :‬وسٌكون دائما الكلمه ‪ null‬وهو ٌحدد المكان الذى ٌظهر فٌه صندوق الحوار و‬
‫دائما عند استخدام ‪ null‬فان صندوق الحوار سوف ٌظهر فى منتصف الشاشة‪.‬‬
‫المدخل الثانً ‪ :‬وهو النص المراد اظهاره ‪.‬‬
‫ونفصل بٌن المدخل االول والثانى بفاصلة‪.‬‬
‫‪-2‬الطرٌمة ‪- : showInputDialog‬‬
‫تستخدم الظهار مربع حوار الدخال لٌمة معٌنة ‪.‬‬
‫ان لغة ‪ Java‬تمبل مدخالت من النوع الـ ‪ String‬لذا نستخدم احدى الطرق االتٌة لتحوٌل اى‬
‫متغٌر رلمى وهذه الطرٌمة هى ‪-:‬‬
‫‪-1‬الطرٌمة ‪-:parseInt‬‬
‫تستخدم لتحوٌل اي متغٌر نصى الى متغٌر من النوع الصحٌح وهذه الطرٌمة موجودة فى الكائن‬
‫‪ Integer‬وهذا الكائن موجود فى الحزمة ‪ Lang‬وهى من الحزم االساسٌة ‪.‬‬
‫الصٌغه العامة ‪-:‬‬
‫;)‪y = Integer.parseInt(x‬‬
‫‪ - 2‬الطرٌمة ‪-: parseDouble‬‬
‫تستخدم لتحوٌل أي متغٌر نصى الى متغٌر من النوع الحمٌمى وهذه الطرٌمة موجوده فى الكائن‬
‫‪ Double‬وهذا الكائن موجود فى الحزمة ‪ Lang‬وهى من الحزم االساسٌة‪.‬‬
‫الصٌغة العامة ‪-:‬‬
‫;)‪y =Double.parseDouble(x‬‬

‫‪27‬‬
: ‫أمثله‬

‫اكتب برنامج لحساب مجموع عددٌن صحٌحٌن‬.1

import javax.swing.JOptionPane;

class sum

public static void main (String args[])

String a,b;

int x,y,sum;

a=JOptionPane.showInputDialog("enter the first of number");

x=Integer.parseInt(a);

b=JOptionPane.showInputDialog("enter the secand of


number");

y=Integer.parseInt(b);

sum=x+y;

JOptionPane.showMessageDialog(null,"sumation = "+sum);

}//class

:‫ وهما‬String ‫الحظ ان هنالن متغرٌن من نوع‬

‫ وهو الرلم االول المدخل من صندوق الحوار وٌدخل علً شكل نص‬a‫المتغٌر‬

‫ وهو الرلم الثانً المدخل من صندوق الحوار وٌدخل علً شكل نص‬b‫المتغٌر‬

x,y ‫ هما‬int ‫هنالن اٌضا متغٌرٌن من النوع الصحٌح‬

28
‫ هو الرلم االول الذي سٌتم ممارنته‬X

‫ وهو الرلم الثانً الذي سٌتم ممارنته‬Y

a=JOptionPane.showInputDialog("enter the first of number");

‫ علً شكل نص‬a ‫هذا االمر ٌسمح بادخال رلم داخل صندوق الحوار وٌخزن داخل المتغٌر‬
b=JOptionPane.showInputDialog("enter the secand of number");

‫ علً شكل نص‬b ‫هذا االمر ٌسمح بادخال رلم داخل صندوق الحوار وٌخزن داخل المتغٌر‬

x=Integer.parseInt(a);

y=Integer.parseInt(b);

‫ ففً السطر االول لمنا‬int ‫ الً لٌمة صحٌحة‬string ‫كل من السطرٌن السابمٌن ٌموم بتحوٌل لٌمة نص‬
‫ وفً السطرالثانً لمنا بتحوٌل‬x ‫ النصٌة الً لٌمة صحٌحة وتخزٌنها فً المتغٌر‬a ‫بتحوٌل لٌمة المتغٌر‬
. y ‫ النصٌة الً لٌمة صحٌحة وتخزٌنها فً المتغٌر‬b‫لٌمة المتغٌر‬

‫مثال‬

‫اكتب برنامج ٌستمبل االسم والعمر وٌطبعهم‬

import javax.swing.JOptionPane;

public class java{

public static void main (String[]args){

String x;

String y;

x=JOptionPane.showInputDialog("Enter your name");

y= JOptionPane.showInputDialog("Enter your age");

JOptionPane.showMessageDialog(null, "your name is"+" "+ x + "\n your


age is"+" "+y);

29
‫الحظ ان هنالن متغرٌن من نوع ‪String‬وهما‪:‬‬

‫المتغٌر‪ x‬وهو االسم المدخل من صندوق الحوار وٌدخل علً شكل نص‬

‫المتغٌر‪ y‬وهوالعمر المدخل من صندوق الحوار وٌدخل علً شكل نص‬

‫;)"‪x=JOptionPane.showInputDialog("Enter your name‬‬

‫هذا االمر ٌسمح بادخال االسم داخل صندوق الحوار وٌخزن داخل المتغٌر ‪ x‬علً شكل نص‬

‫;)"‪y= JOptionPane.showInputDialog("Enter your age‬‬

‫هذا االمر ٌسمح بادخال العمر داخل صندوق الحوار وٌخزن داخل المتغٌر ‪ y‬علً شكل نص‬

‫عند طباعة االسم والعمر لم نحتاج الً تحوٌلها الً انواع اخرى من البٌانات الن االسم أصال من نوع‬
‫‪ string‬اما العمر تم إدخالها لسلسلة وكذلن تم طباعتها كسلسلة ولكن ٌختلف االمر إذا أردنا إجراء أي‬
‫عملٌة رٌاضٌة علً العمر لبل طباعتها هنا البد من تحوٌلها الً رلم‪.‬‬

‫‪30‬‬
‫الوحدة الثانية‬
‫التعبيرات الشرطية‬

‫‪31‬‬
‫محتويات الوحدة‬
‫الصفحة‬ ‫الممدمة‬

‫‪33‬‬ ‫تمهٌد‬

‫‪33‬‬ ‫أهداف الوحدة‬

‫‪34‬‬ ‫‪.1‬العامالت واﻷدوات المنطمٌة‬

‫‪36‬‬ ‫‪.2‬العبارات الشرطٌة‬

‫‪38‬‬ ‫‪ 1.2‬عبارة ‪if‬‬

‫‪39‬‬ ‫‪ 2.2‬عبارة ‪if else‬‬

‫‪42‬‬ ‫‪ 3.2‬عبارة ‪ if‬المتداخلة‬

‫‪43‬‬ ‫‪ if 4.2‬بإسخدام الروابط‬

‫‪43‬‬ ‫‪ 1.4.2‬الرابط (و)‬

‫‪43‬‬ ‫‪ 2.4.2‬الرابط (أو)‬

‫‪45‬‬ ‫‪.3‬عبارة ‪switch‬‬

‫إجابة التدرٌبات‬

‫المراجع‬

‫‪32‬‬
‫المقحمة‬
‫تمهيح‬
‫فً الوحدة الثانٌة من الممرر والتً تبحث عن العبارات الشرطٌة حٌث ٌتناول العامالت المنطمٌة واالدوات‬
‫الشرطٌة التساوى والنفً والممارنات التً تجعل التعبٌر كله تعبٌرا منطمٌا ‪ .‬ونتاول اٌضا استخدام عبارات‬
‫الممارنة ‪ if‬و‪ if /else‬و ‪ if‬المتداخلة ونتاول امثلة مختلفة للممارنات وكٌفٌة كتابة العبارة ‪ switch‬وشرح‬
‫عبارات ‪.break‬‬

‫ااحاا الووحد‬

‫بعد فراغن من دراسة هذه الوحدة ٌنبغً ان تكون لادرا علً‪:‬‬

‫‪.1‬تعرف الجمل والتعبٌرات‪.‬‬

‫‪.2‬كتابة جمل ‪ if,if/else,if‬المتداخلة ‪.‬‬


‫‪.3‬كتابة جمل ‪. switch‬‬

‫‪33‬‬
‫اللاممت ااال ات الممنقية‬
‫سار عن تحمك شرط معٌن داخل‬‫تستخدم العامالت واالدوات المنطلٌة فً التعبٌرات المنطلٌة وذلن لالستف‬
‫البرنامج وجمٌع هذه التعبٌرات المنطمٌة تحمل لٌمة منطمٌة ‪ true‬أو ‪. false‬‬
‫الجدول التالً ٌبن بعض العامالت المنطمٌة شائعة االستخدام فً لغة جافا‬
‫العملٌة‬ ‫العامل‬

‫تعنى (و) المنطمٌة )‪(and‬‬ ‫&&‬

‫تعنى (أو) المنطمٌة )‪(or‬‬ ‫||‬

‫تعنى لٌس) ‪(not‬‬ ‫!‬

‫ٌتم استخدام العامالت المنطمٌة مع المعامالت التً ٌكون لها احدى المٌم ‪ true‬او ‪ false‬او التً تكون لٌم‬
‫ٌمكن تحوٌلها الً ‪ true‬او ‪false‬‬
‫ٌموم العامل المنطمً && بتمٌٌم إثنٌن من المعامالت وإرجاع المٌمة ‪ true‬إذا كان كال المعاملٌن ‪ true‬فٌما‬
‫عدا سٌرجع ٌكون الناتج المٌمة ‪ false‬والجدول التالً ٌبٌن ذلن‪:‬‬
‫العملٌة‬ ‫الناتج‬

‫‪true && ture‬‬ ‫‪true‬‬

‫‪true && false‬‬ ‫‪False‬‬

‫‪false && true‬‬ ‫‪False‬‬

‫‪false && false‬‬ ‫‪False‬‬

‫ٌموم العامل المنطمً|| بتمٌٌم إثنٌن من المعامالت وإرجاع المٌمة ‪ true‬إذا كان احدى المعاملٌن ‪ true‬فٌما‬
‫عدا سٌرجع ٌكون الناتج المٌمة ‪ false‬والجدول التالً ٌبٌن ذلن‪:‬‬
‫العملٌة‬ ‫الناتج‬

‫‪true || ture‬‬ ‫‪true‬‬

‫‪True || false‬‬ ‫‪True‬‬

‫‪false || true‬‬ ‫‪True‬‬

‫‪False || false‬‬ ‫‪False‬‬

‫‪34‬‬
‫هنالن أدوات منطمٌة ٌمكن بها وضع الشروط والتعبٌرات المنطمٌة كما ٌبن الجدول التالً‪:‬‬
‫أكبر من‬ ‫>‬

‫أكبر من أو ٌساوي‬ ‫=>‬

‫ألل من‬ ‫<‬

‫أفل من أو ٌساوي‬ ‫=<‬

‫ٌساوي‬ ‫==‬

‫الٌساوى‬ ‫=!‬

‫جمٌع هذه االدوات تختبر المعامالت وتحدد إذا ما كان التعبٌر المنطك صحٌح أم خطأ ‪ true‬أو ‪false‬‬
‫فمثال إذا كان‪:‬‬
‫‪X=10, y=20‬‬

‫فإن‬
‫‪x>y‬‬ ‫‪False‬‬

‫‪X<y‬‬ ‫‪true‬‬

‫‪X==y‬‬ ‫‪False‬‬

‫‪X!=y‬‬ ‫‪True‬‬

‫‪X<=y‬‬ ‫‪true‬‬

‫‪x>=y‬‬ ‫‪False‬‬

‫ٌمكن للتعبٌر المنطمً ن ٌكون باي درجة من التعمٌد للمثال السابك لمٌم ‪ x‬و ‪ٌ y‬مكن كتابة ‪:‬‬
‫‪true‬‬ ‫‪ x+y>6‬الناتج‬
‫‪false‬‬ ‫‪ y<=7+x‬الناتج‬
‫‪false‬‬ ‫‪ x%3==y‬الناتج‬

‫‪35‬‬
‫الجدول التالً ٌوضح اولوٌات العملٌات فً التعبٌرات المعمدة االولوٌة من اعلى الً اسفل‪:‬‬

‫االولوٌة من أعلى الً اسفل‬

‫التحوٌل ‪casting‬‬

‫‪++,- -‬‬

‫‪* , / ,%‬‬

‫‪+,-‬‬

‫=> ‪< , <= , > ,‬‬

‫=! ‪== ,‬‬

‫&&‬

‫||‬

‫=‪= , += , -= ,*= , /= , %‬‬

‫اللبارات الشرطيه ‪conditional statements‬‬


‫تستخدم فى اتخاذ المرارات وهى جمله منطمٌه نتٌجتها احدى لٌمتٌن ‪ true‬او ‪ false‬وبناء على تلن‬
‫النتٌجة ٌتم تنفٌذ اجراءات معٌنه ولكن لبل ذلن ٌجب معرفة المؤثرات المنطمٌه التى تستخدم فى تلن‬
‫العبارات لغرض الممارنه ثم اتخاذ المرارات ‪.‬‬
‫عبارة ‪if‬‬
‫الصٌغة العامه ‪-:‬‬
‫; ‪If (condition) statement‬‬
‫المعنى (اذا كان نتٌجة الشرط صحٌحة عندئذ نفذ الجملة ‪)statement‬‬

‫مثال (اذا كان لدٌن ‪10‬جنٌة فانن تستطٌع شراء للم )‪.‬‬

‫‪36‬‬
if ‫مخطط يوضح عملية‬

false true
condit
condition
ion

Statment

‫النهاٌة‬

‫امثله‬
‫اكتب برنامج ٌستمبل رلمٌن من المستخدم وٌموم بطباعة العدد االكبر‬

import javax.swing.JOptionPane;

class test

public static void main (String args[])

String a,b;
int x,y;
a=JOptionPane.showInputDialog("enter the first of
number");
x=Integer.parseInt(a);
b=JOptionPane.showInputDialog("enter the secand of
number");
y=Integer.parseInt(b);
if (x>y)
JOptionPane.showMessageDialog(null,"max is = "+x);

37
‫‪else‬‬
‫;)‪JOptionPane.showMessageDialog(null,"max is = "+y‬‬
‫}‬
‫}‬
‫فى السطر‪ 8‬تم ادخال لٌم العدد االول فى شكل سلسلسة لٌتم تحوٌل المٌمة الً عدد صحٌح فً‬
‫السطر ‪9‬‬
‫ثم تم لراءة العدد الثانً فً السطر ‪ 10‬فً شكل سلسلة لٌتم تحوٌلها الً عدد صحٌح فً‬
‫السطر‪11‬‬
‫فً السطر ‪ 12‬تمت الممارنة للعددٌن الصحٌحٌن لتحدٌد العدد االكبر اذا كان العدد االكبر هو‬
‫العدد االول فسوف ٌتم طباعته بواسطة العبارة الموجودة فً السطر ‪ 13‬واال سوف ٌتم طباعة‬
‫العدد الثانً بواسطة العبارة الموجودة فً السطر ‪15‬‬
‫مثال‬

‫اكتب برنامج ٌموم باستمبال عدد وٌختبر مااذاكان العدد موجب ام سالب ام صفر وٌطبع رساله بذلن‬

‫;‪import javax.swing.JOptionPane‬‬

‫‪class test‬‬

‫{‬

‫)][‪public static void main (String args‬‬

‫{‬

‫;‪String a‬‬

‫;‪int x‬‬

‫;)"‪a=JOptionPane.showInputDialog("enter the number‬‬

‫;)‪x=Integer.parseInt(a‬‬

‫;)"‪if(x>0)JOptionPane.showMessageDialog(null,"the number is positive‬‬

‫;)"‪if(x<0)JOptionPane.showMessageDialog(null,"the number is negative‬‬

‫;)"‪if(x==0)JOptionPane.showMessageDialog(null,"erorr‬‬

‫}‬

‫}‬

‫‪38‬‬
‫عباره ‪if –else‬‬

‫‪If (condition) statement1‬‬


‫;‪Else statement2‬‬

‫إذاكان الشرط صحٌح نفذ الجمله االولى ‪ statment1‬وخالف ذلن نفذ الجمله الثانٌه ‪statment2‬‬

‫‪false‬‬ ‫‪true‬‬

‫‪condition‬‬

‫‪Statment2‬‬ ‫‪Statment1‬‬

‫النهاٌة‬

‫المعنى عندما تكون لٌمة الشرط ‪ condition‬صوابا ٌتم تنفٌذ ‪ statment1‬وتجاهل ‪ else‬والعبارة التً‬
‫‪ statment1‬وتنفٌذ العبارة‬ ‫‪ condition‬خطأ ٌتم تجاهل العبارة‬ ‫تلٌها ‪ ,‬وعندما ٌكون الشرط‬
‫‪statment2‬‬

‫مثال‬

‫‪ .‬اكتب برنامج ٌستمبل درجة الطالب وٌحدد ما اذا كان نجاح ام رسوب وٌطبع رساله بذلن‬

‫‪39‬‬
1. import javax.swing.JOptionPane;

2. class aa

3. {

4. public static void main (String args[])

5. {

6. String n;

7. n=JOptionPane.showInputDialog("enter number");

8. int grade=Integer.parseInt(n);

9. if ( grade >= 60 )

10. System.out.println( "Passed" );

11. else

12. {

13. JOptionPane.showMessageDialog(null,"Failed");

14. JOptionPane.showMessageDialog(null, "You must take this course


again." );

15. }

16. }

17. }

ً‫ ووضعها ف‬8 ‫ فً صورة سلسلة وتحوٌلها الً عدد صحٌح فً السطر‬7‫تمت لراءة العدد فً السطر‬
‫ فإنة ٌتم طباعة‬60 ‫ إذا كانت المٌمة أكبر من‬60 ‫ بالرلم‬9 ‫ ثم ممارنة هذا المتغٌر فً السطر‬grate ‫المتغٌر‬
‫ فانه ٌتم طباعة الكللمة‬60 ‫ وإذا كانت المٌمة الل من‬10 ‫ وذلن بواسطة العبارة فً السطر‬Passed ‫الكلمة‬
. ‫ داللة علً ان الشرط لم ٌتحمك‬else ‫ وتموم بذلن العبارة الموجودة بعد‬Failed

40
‫اكتب برنامج ٌموم باستمبال سلستٌن ومن ثم ٌختبر مااذا كانت السالسل متشابه ام ال وٌطبع رساله بذلن‬

import javax.swing.JOptionPane;

class aa

public static void main (String args[])

String s1 =JOptionPane.showInputDialog("enter the frist string ");

String s2 =JOptionPane.showInputDialog("enter the secound string ");

if (s1 == s2)

System.out.println("The strings are the same.");

JOptionPane.showMessageDialog(null,"The strings are the same");

else if (s1 != s2)

System.out.println("The strings are different.");

JOptionPane.showMessageDialog(null,"The strings are differant");

else ‫ تمثل جملة‬:‫ و‬if ‫?) حٌث تمثل ?جملة‬:( ‫ بالعملٌه‬if /else ‫ٌمكن فً لغة جافا اختصار عبارة‬

41
‫ المتداخله‬if ‫عبارة‬

. else ‫اذا كان الشرط صحٌح نفذ الجمله االولى ةخالف ذلن نفذ الجمله التى تلى عبارة‬
-:‫الصٌغه العامه‬
If (condition1 ) statement 1
Eles If (condition2 ) statement 2
Else If (condition3 ) statement 3
.
.
.
Else error statement
-: ‫مثال‬
‫اكتب برنامج ٌستمبل درجات طالب‬
. A ‫ ٌطبع‬90 ‫اذا كان درجة الطالب اكبر من‬
.B ‫ ٌطبع‬80 ‫اذا كان درجة الطالب اكبر من او ٌساوى‬
.c ‫ ٌطبع‬70 ‫اذا كان درجة الطالب اكبر من او ٌساوى‬
.D ‫ ٌطبع‬60 ‫اذا كان درجة الطالب اكبر من او ٌساوى‬
.F ‫وغٌر ذلن ٌطبع‬

class grade{
public static void main(String[] args)
{
if ( studentGrade >= 90 )

System.out.println( "A" );

else if ( studentGrade >= 80 )

System.out.println( "B" );

else if ( studentGrade >= 70 )


System.out.println( "C" );
else if ( studentGrade >= 60 )
System.out.println( "D" );
else
System.out.println( "F" );
}}

42
‫‪If‬باستخدام الروابط ‪-:‬‬

‫‪-1‬الرابط &&(و)‬

‫فى هذه الحاله ٌجب تحمك الشرطٌن لٌموم البرنامج بالتنفٌذ‬

‫مثال‪-:‬‬

‫;‪import javax.swing.JOptionPane‬‬

‫{‪public class java‬‬

‫{)‪public static void main (String[]args‬‬

‫;‪String x; int y‬‬

‫;)"‪x=JOptionPane.showInputDialog("Enter your number‬‬

‫;)‪y= Integer.parseInt(x‬‬

‫))‪if((y>=1)&&(y<=10‬‬

‫;) "‪JOptionPane.showMessageDialog(null,"yes‬‬

‫‪else‬‬

‫;) "‪JOptionPane.showMessageDialog(null,"no‬‬

‫}}‬

‫فً المثال السابك تم لراءة رلم صحٌح وإختبار ما إذا كان الرلم محصر بٌن الرلمٌن ‪ 1‬و ‪ 10‬فمثال اذا‬
‫طرفً الشرط ٌتحممان وبالتالً المٌمة الراجعة من الشرط ٌكون صحٌحا ‪ yes‬كانت لٌمتة الرلم ‪ 7‬فان‬
‫فٌطبع البرنامج كلمة‬

‫واذا كان احدي االطراف فً الشرط خطا فٌعنً ان الشرط كله خطا فٌتم طباعة كلمة ‪no‬‬

‫‪.2‬الرابط ||(أو)‬

‫فً هذه الحاله تنفذ الجمله اذاتحمك احد الشرطٌن‬

‫مثال‬

‫اكتب برنامج ٌستمبل حرف وٌختبر مااذكان الحرف هو احدحروف كلمة ‪hello‬وٌطبع رساله بالناتج واال‬
‫ٌطبع رساله خطأ‬

‫‪43‬‬
import javax.swing.JOptionPane;

class aa

public static void main (String args[])

String ch;

ch=JOptionPane.showInputDialog("enter chr");

char chr=ch.charAt(0);

if((chr=='h')||(chr=='e')||(chr=='l')||(chr=='o'))

JOptionPane.showMessageDialog(null," that is write");

else

JOptionPane.showMessageDialog(null,"that is error");

}//class

‫فً المثال السابك تمت لراءة الحرف فً صورة سلسلة بالعبارة‬

ch=JOptionPane.showInputDialog("enter chr");

‫ثم تم تحوٌل السلسة الً حرف بالعبارة‬

char chr=ch.charAt(0);

ً‫) لذا عند التحوٌل من السلسلة ال‬0( ‫وعادة ٌتم تخزٌن الحرف االول من السلسلة فً الخانة االولً الخانة‬
‫ فان‬ch ‫ وبما ان اسم السلسة هنا هو‬stringname.chartAt(0) ‫) بالعبارة‬0( ‫حرف ٌتم تحدٌد الخانة‬
ch.charAt(0) ‫التحوٌل ٌكون بالعبارة‬

44
‫اخطاء شائعه‬

‫‪ ‬عند تبدٌل العملٌه (=) مكان العملٌه (==) فً شرط جملة ‪ٌ if‬جدث ‪syntax error‬‬

‫‪ ‬وضع فاصله منموطه بعد الشرط مثالًال ;)‪ٌ if( number1 == number2‬عطً خطأ منطمً‬
‫اي خطأ ٌحدث اثناء تنفٌذ البرنامج النه ٌعتبر جواب الشرط جمله خالٌه‬

‫عباره ‪switch‬‬

‫فً حالة االختبار من متعدد ٌمكن ان تحل جملة ‪ switch‬محل ‪if /else‬المتعدده‬

‫الصٌغه العامه‬

‫)‪Switch (variable‬‬

‫{‬

‫;‪case value 1 :statement 1‬‬

‫;‪Break‬‬

‫;‪case value 2 :statement 2‬‬

‫;‪Break‬‬

‫‪.‬‬

‫‪.‬‬

‫‪.‬‬

‫;‪Break‬‬

‫;‪case value N :statement N‬‬

‫;‪Break‬‬

‫;‪default:Error statement‬‬

‫}‬

‫حٌث ‪ varable‬هو إسم المتغٌر المطلوب إجراء االختبارات علً لٌمته وٌشترط ان ٌكون من النوع ‪int‬‬
‫ال‬
‫او ‪ char‬و ‪ value1‬وحتً ‪ value N‬عبارة عن لٌم ٌاخذها المتغٌرو ٌجب ان تكون من نفس نوع ـ‬

‫‪45‬‬
‫‪ variable‬الموجوده فً ال ‪ switch‬اذا احتوى المتغٌر علً لٌمة الـ ‪ٌ value‬تم تنفٌذ العبارات التالٌة‬
‫حتى الوصول الً نهاٌة الـ ‪ switch‬او العثور علً كلمة ‪ break‬تستخدم للهروب من ال ‪ switch‬اما‬
‫اذا احتوى المتغٌر علً لٌمة غٌر موجودة فً لٌم الـ ‪ value‬عندئذ ٌتم تنفٌذ العبارات التالٌة للكلمة‬
‫المحجوزة ‪ default‬فهً حاله افتراضٌه اختٌارٌه تستخدم لتنفٌذ مهمه فً حاله عدم تحمك اي حاله وعاده‬
‫ماتكون فً اخر الـ ‪.switch‬‬

‫;‪Int digit‬‬

‫;‪String s‬‬

‫;)"‪s=JOptionPane.showInputDialog("enter no‬‬

‫;)‪digit= Integer.parseInt(s‬‬

‫)‪Switch(digit‬‬

‫{‬

‫;)”‪Case 1:system.out.println(“one‬‬

‫;‪Break‬‬

‫;)”‪Case 2:system.out.println(“two‬‬

‫;‪Break‬‬

‫;)”‪Case 3:system.out.println(“three‬‬

‫;‪Break‬‬

‫;)”‪Default:system.out.println(“no value match‬‬

‫}‬

‫‪ digit‬الذي ٌتم إختباره وهنا‬ ‫فً المثال السابك ٌتم لراءة المتغٌر بواسطة المستخدم وٌخزن لٌمته فً‬
‫‪ case1‬تعنً انه اذا ساوت لٌمة المتغٌر ‪ digit‬المٌمة ‪ 1‬فانه ٌتم تنفٌذ العبارة التً تلً ‪ case 1‬وهً‬
‫طباعة العبارة ‪ one‬وبعدها ٌتم الخروج من عبارة ‪ switch‬واال سوف ٌتم إختبار ‪ case 2‬اي هل ‪digit‬‬
‫تساوى ‪ 2‬إذا تحمك ٌتم تنفٌذ العبارة التً تلٌها وهً طباعة الكلمة ‪ two‬وكهذا فً كل مرة لم ٌتحمك فٌها‬
‫الشرط ٌنتمل االختبار الً الشرط التالً وإذا لم ٌتحمك كل الشروط ٌتم تنفٌذ العبارة الموجودة بعد عبارة‬
‫‪ default‬فمثال إذا كانت لٌمة ‪ digit‬تساوي ‪ 7‬فٌتم طباعة الرسالة ‪no value match‬‬

‫‪46‬‬
‫اهمٌة كلمة ‪ break‬فً انه اذا تحمك الشرط ٌتم الخروج من عبارة ‪ switch‬فان لم ٌكتب هذه العبارة تنفٌذ‬
‫العبارات التالٌة له دون تولف فمثال اذا اصبح البرنامج السابك كاالتً‪:‬‬

‫;‪Int digit‬‬

‫;‪String s‬‬

‫;)"‪s=JOptionPane.showInputDialog("enter no‬‬

‫;)‪digit= Integer.parseInt(s‬‬

‫)‪Switch(digit‬‬

‫{‬

‫;)”‪Case 1:system.out.println(“one‬‬

‫;)”‪Case 2:system.out.println(“two‬‬

‫;)”‪Case 3:system.out.println(“three‬‬

‫;)”‪Default:system.out.println(“no value match‬‬

‫}‬

‫فً هذه الحالة التوجد وسٌلة خروج من عبارة ‪ switch‬فعند تحمك اول عبارة ٌتم تنفٌذ كل العبارات التً‬
‫تلٌها فمثال إذا ادخل المستخدم المٌمة ‪ 2‬لن ٌتم طباعة الكلمة ‪ one‬ولكن ٌتم طباعة الكلمة ‪ two‬والكلمات‬
‫‪ three‬و‪no value match‬‬

‫مثال‬

‫اكتب برنامج ٌمراء عددا صحٌحا من ‪1‬الً ‪ٌ 5‬موم البرنامج بطباعة االعداد تنازلٌا من العدد المدخل وحتى‬
‫الرلم ‪.1‬‬

‫‪47‬‬
:‫الحل‬

Int number;

String s;

s=JOptionPane.showInputDialog("enter no 1..5");

number= Integer.parseInt(s);

Switch(number)

Case 5:system.out.println(number- -);

Case 4:system.out.println(number- -);

Case 3:system.out.println(number- -);

Case 2:system.out.println(number- -);

Case 1:system.out.println(number- -);

Break;

Default:system.out.println(“no value match”);

‫ وبسسب عدم وجود عبارة‬2 ‫ ثم انماص لٌمة المتغٌر الً العدد‬3 ‫ مثال ٌموم بطباعة‬3 ‫عند ادخال المٌمة‬
‫ لوجود عبارة‬default ‫ هنا ال ٌتم طباعة ما بعد العبارة‬.1 ‫ ٌواصل عملٌات الطباعة فٌطبع‬break
.‫ لبلها‬break

‫مثال‬

‫اكتب برنامج ٌموم بعمل االله الحاسبه‬

48
import javax.swing.JOptionPane;

public class java{

public static void main (String[]args){

String a,b,c;

int x,y;

char o;

a=JOptionPane.showInputDialog("Enter number 1");

x= Integer.parseInt(a);

b=JOptionPane.showInputDialog("Enter number 2");

y= Integer.parseInt(b);

c=JOptionPane.showInputDialog("Enter the oprater");

o=c.charAt(0);

switch (o)

{case'+': JOptionPane.showMessageDialog(null,x+y);

break;

case'-': JOptionPane.showMessageDialog(null,x-y);

break;

case'*': JOptionPane.showMessageDialog(null,x*y);

break;

case'/': JOptionPane.showMessageDialog(null,x/y);

break;

default :JOptionPane.showMessageDialog(null,"error");

49
‫محتويات الووحد‬

‫الصفحة‬ ‫الممدمة‬

‫‪51‬‬ ‫تمهٌد‬

‫‪51‬‬ ‫أهداف الوحدة‬

‫‪51‬‬ ‫‪.1‬حلمة ‪for‬‬

‫‪53‬‬ ‫‪ 1.1‬عدد التكرار فً حلمة ‪for‬‬

‫‪58‬‬ ‫‪ 2.1‬إستخدام عداد حرفً‬

‫‪58‬‬ ‫‪ 3.1‬حلمة ‪ for‬المتداخلة‬

‫‪62‬‬ ‫‪.2‬حلمة ‪while‬‬

‫‪66‬‬ ‫‪.3‬حلمة ‪do/while‬‬

‫‪70‬‬ ‫‪.4‬عبارة ‪break‬‬

‫الخالصة‬

‫إجابة التدرٌبات‬

‫المراجع‬

‫‪50‬‬
‫المقحمة‬

‫تمهيح‬
‫نحتاج فً بعض االحٌان لتكرات بعض العبارات وبعض العلمٌات داخل البرنامج اكثر من مرة فلٌس من‬
‫المنطك تكرار كتابة عبارة متشابه ‪ 100‬مرة ففً النظمة الكبٌرة ٌكون هنالن حوجة للتكرار مثال لراءة‬
‫اسماء ‪ 10000‬من الموظفٌن فال ٌعمل ان نكتب لكل موظف أمر خاص الدخال إسمه من هنا جاءت أهمٌة‬
‫العبارات التكرارٌة فً لغات البرمجة فنجد ان جملة حلمة التكرار تجعل الحاسب ٌعود الى نفس المولع أكثر‬
‫من مرة ولغة جافا توفر هذه العبارات بانواعها المختلفة وهً حلمة ‪ for‬وحلمة ‪ while‬وحلمة ‪do while‬‬
‫واتً سوف نتطرق لهم بالتفصٌل ثم نبٌن اي منهم ٌستخدم فً التكرار المعلوم واٌهم للتكرار حسب الحوجه‬
‫كما نتناول الحلمات المتداخلة فً نهاٌة هذه الوحدة‪.‬‬

‫حلقة ‪for‬‬
‫تستخدم لتكرار جمله او عدة جمل شروطه هً‪:‬‬

‫‪ٌ ‬جب معرفة عدد مرات التكرار‬

‫‪ٌ ‬جب ان ٌطابك العداد كل من المٌمه االبتدائبه والنهائٌه فً التعرٌف‬

‫‪ٌ ‬جب ان تكون لٌم العداد مرتبه‬

‫‪for Loop Flow Chart‬‬

‫المٌمة االبتدائٌة للعداد‬

‫‪false‬‬
‫تعدٌل العداد‬ ‫شرط‬
‫االستمرار‬
‫ٌة‬
‫‪true‬‬

‫جسم الحلمة‬

‫التعبٌر التالى‬

‫‪51‬‬
‫الصٌغة العامة لـ ‪for‬‬

‫)‪for (Initialization;Termination;Increment or Decrement‬‬

‫; ‪statements‬‬

‫صٌغة حلمة التكرار تبدأ بـعبارة ‪ for‬وهً كلمة محجوزة تدل على حلمة تكرار‪ٌ ,‬تبعها الموس الذي ٌضم‬
‫عناصر اعدادات الحلمة اﻷساسٌة‪ ,‬وهً على النحو اآلتً‪:‬‬

‫‪ Initialization.1‬وهً للتصرٌح عن المتغٌر الذي سٌشكل محور عداد حلمة التكرار ‪ Counter‬ومن‬
‫الممكن إن ٌكون متغٌر عددي أو متغٌر حرفً‪ ,‬وٌجب إن تتضمن عملٌة التصرٌح‪ ,‬إسناده المتغٌر بمٌمة‬
‫مبدئٌة ‪ Start Value‬تدل على بداٌة عداد الحلمة‪.‬‬

‫‪ Termination.2‬المٌمة النهائٌة وهً عبارة تعلٌمة برمجٌة‪ ,‬تتضمن شرط ممارنة متغٌر عداد الحلمة‬
‫بالمٌمة النهائٌة للعداد ‪ , Condition‬وٌمكننا استخدام كافة عملٌة الممارنة المتعارف علٌه مثل المساواة أو‬
‫إشارة اكبر من أو اصغر من أو ٌساوي‪ ..‬وهكذا‪.‬‬

‫‪ٌ Increment or Decrement‬ختص النصف الثالث من لوس اعدادات حلمة ‪ for‬بتحدٌد‬ ‫‪.1‬‬
‫معدل عملٌة الزٌادة أو النمصان التً ستتم على متغٌر عداد الحلمة من اجل تحدٌد المٌمة التالٌة للعداد‪.‬‬
‫‪ Next Value‬وهنا ٌمكننا استخدام عملٌات إسناد المتغٌر بنتٌجة عملٌة حسابٌة أو من خالل عملٌة‬
‫الزٌادة أو النمصان بواحد‪.‬‬

‫بعد تحدٌد عناصر اعدادات حلمة ‪ٌ for‬مكننا المباشرة بصٌاغة التعلٌمة البرمجٌة التً نرغب بتنفٌذها ثم‬
‫تكرار تنفٌذها‪ ,‬هذا طبعا إذا كانت التعلٌمة البرمجٌة منفردة‪ .‬أما فً حال كانت التعلٌمٌة البرمجٌة مركبة من‬
‫عدت تعلٌمات‪ ,‬عندها ٌجب علٌنا استخدام البنٌة الخاصة بالتعلٌمة المركبة والتً تتمثل بموس البداٌة اﻷكبر‬
‫} ثم التعلٌمات وفً النهاٌة لوس النهاٌة اﻷكبر { كما هو مبٌن فً الصٌغة التالٌة‪:‬‬

‫)‪for(Initialization;Termination;Increment or Decrement‬‬
‫{‬

‫;‪Statement_1‬‬

‫;‪Statement_2‬‬
‫‪..............‬‬
‫;‪Statement_N‬‬

‫}‬

‫‪52‬‬
‫مثال‬

‫)‪For(int i=1;i<=5;i++‬‬

‫;)”‪System.out.println(“hello my dear‬‬

‫فى هذه الحلمة العداد هو المتغٌر‪ i‬وٌأخذ المٌمة االبتدائٌة ‪ 1‬الذى ٌتم ممارنتها مع الشرط )‪ (i<=5‬اذا تحمك‬
‫الشرط ٌتم تنفٌذ العبارة ;)”‪ System.out.println(“hello my dear‬وهً طباعة الجملة ‪hello my‬‬
‫‪ dear‬ومن ‪ i++‬نعلم ان ٌزداد بعدل ‪ 1‬مع تحمك الشرط ‪ٌ,‬ستمر التكرار حتً نصل المٌمة النهائٌة وهً ‪5‬‬
‫بذلن ٌكون لد تم طباعة الجملة ‪ hello my dear‬خمسة مرات الن المتغٌر ‪ٌ i‬أخذ المٌم ‪5,4,3,2,1‬‬

‫مثال‬

‫)‪For(int i=1;i<=5;i++‬‬

‫;)‪System.out.println(i‬‬

‫فى هذه الحلمة العداد هو المتغٌر‪ i‬وٌأخذ المٌمة االبتدائٌة ‪ 1‬الذى ٌتم ممارنتها مع الشرط )‪ (i<=5‬اذا تحمك‬
‫الشرط ٌتم تنفٌذ العبارة‬

‫;)‪ System.out.println(i‬وهً طباعة الرلم ‪1‬ومن ‪ i++‬نعلم ان ٌزداد بعدل ‪ 1‬مع تحمك الشرط‬
‫‪ٌ,‬ستمر التكرار حتً نصل المٌمة النهائٌة وهً ‪ 5‬بذلن ٌكون لد تم طباعةاالرلام ‪ 5,4,3,2,1‬الن المتغٌر‬
‫‪ٌ i‬أخذ المٌم ‪5,4,3,2,1‬‬

‫ٌمكن حساب عدد تكرار حلمة ‪ for‬بالمانون االتً‪:‬‬

‫‪-‬‬
‫‪+1‬‬ ‫عدد التكرار =‬
‫معدل الزٌادة أو النمصان للعداد‬

‫تعنً انه اذا كانت المٌمة النهائٌة للعدد التكرار عبارة عن كسر ٌتم حذف الكسر‬ ‫عالمة‬
‫وتمرٌبه الً العدد الصحٌح االصغر‪.‬‬

‫‪53‬‬
‫مثال‬

‫)‪For(int i=1;i<=5;i++‬‬

‫;)”‪System.out.println(“hello dear‬‬

‫;)”‪System.out.println(“brother‬‬

‫الخرج‬

‫‪hello dear‬‬

‫‪hello dear‬‬

‫‪hello dear‬‬

‫‪hello dear‬‬

‫‪hello dear‬‬

‫‪brother‬‬

‫فً المثال السابك نجد ان عدد التكرار حسب المانون تساوي ‪ 5‬تكرار ماٌجب مالحظتة ان العبارة االولى‬

‫;)”‪ٌ System.out.println(“hello dear‬تم تكرارها ‪ 5‬مرات بٌنما العبارة الثانٌة تكرر مرة‬
‫واحده الن التكرار ال ٌشملها وإذا اردنا ان ٌشملها التكرارالبد من وضعها داخل جسم الحلمة كاالتً‪:‬‬

‫)‪For(int i=1;i<=5;i++‬‬

‫{‬

‫;)”‪System.out.println(“hello dear‬‬

‫;)”‪System.out.println(“brother‬‬

‫}‬

‫‪54‬‬
‫فٌكون خرج البرنامج للبرنامج السابك‬

hello dear

brother

hello dear

brother

hello dear

brother

hello dear

brother

hello dear

brother

20 ً‫ ال‬1 ‫اكتب برنامج ٌموم بطباعة االعداد الزوجٌه من‬

class even

public static void main (String args[])

int I;

for (i=0; I <=20; I += 2)

System.out.println(i);

55
‫اكتب برنامج لحساب الموي لمتغٌر ٌموم بادخاله المستخدم‬

import javax.swing.JoptionPane;

class power

public static void main (String args[])

String p,n;

int x,y;

int k=1;

n=JoptionPane.showInputDialog(„enter number“);

x=Integer.parseInt(n);

p=JoptionPane.showInputDialog(“enter power of number”);

y=Integer.parseInt(p);

for(int i=0; i<y;i++)

k=k*x;

JoptionPane.showMessageDialog(null,x+” power “+ y +”=”+ k);

56
‫سؤال تقويم ذاتي‬

: ً‫ماهو خرج البرامج االت‬

class aa

public static void main (String args[ ])

for (int number = 1; number <= 12; number++)

System.out.println(number + " squared is " + (number * number));

}]

‫مثال‬

: ً‫ماهو خرج البرنامج التال‬

class Sample
{
public static void main(String args[])

{
int a, b;
b = 4;
for(a=1; a<b; a++)
{
System.out.println("a = " + a);
System.out.println("b = " + b);
b--;
} }}

57
‫المخرج‬
‫‪a=1‬‬
‫‪b=4‬‬
‫‪a=2‬‬
‫‪b=3‬‬
‫استخدام عداد حرفً ‪char‬‬

‫لٌس شرط إن ٌكون المتغٌر محور عداد الحلمة من صٌغة اﻷعداد الصحٌحة‪ ,‬إذ ٌمكننا استخدام المتغٌرات‬
‫الحرفٌة كعداد لحلمة كما هو مبٌن فً المثال التالً‪:‬‬

‫‪Class star_for‬‬

‫{‬

‫)‪public static void main(String []args‬‬

‫{‬

‫)‪for(char i='a';i<='z';++i‬‬

‫{‬

‫;)‪System.out.print(i‬‬

‫"(‪System.out.print‬‬ ‫;)"‬

‫}‬

‫}‬

‫}‬

‫حلقة ‪ for‬المتداخله ‪Nested For‬‬

‫ٌمكن ان تحتوي حلمة ‪for‬علً حلمة اخرى داخلٌه بحٌث تنفذ الحلمه الداخلٌه اوالًال مكمله دورتها كامله كلما‬
‫اخذت الحلمه الخارجٌه دوره واحده‬

‫‪58‬‬
‫امثله لـ‪for‬المتداخله ‪:‬‬

‫اكتب برامج ٌموم بالخرج االتً‬

‫‪#####‬‬
‫‪###‬‬
‫‪##‬‬
‫‪#‬‬

‫‪class aa‬‬

‫{‬

‫)] [‪public static void main (String args‬‬

‫{‬

‫‪ */‬الحلمة الخارجٌة *‪for(int a=5;a>=1;a--)/‬‬

‫{‬

‫‪ */‬الحلمة الداخلٌة وفً نفس الولت التعبٌر االول للحلمة الخارجٌة*‪for(int b=1;b<=a;b++)/‬‬

‫{‬

‫;)"‪System.out.print("#‬‬

‫}‬

‫‪ */‬تطبع سطر جدٌد وهو التعبٌر الثانً داخل الحلمة الخارجٌة*‪System.out.println();/‬‬

‫}‬

‫}‬

‫}‬

‫فً المثال السابك نجد ان عدد تكرار الحلمة الخارجٌة ‪ 5‬وهذه الحلمة تحوي بداخلها تعبٌرٌن التعبٌر االول‬
‫هو( الحلمة الداخلٌة )والتعبٌر الثانً (عبارة طباعة السطر الجدٌد) إذن التعبٌرٌن ٌتم تنفٌذهما بالتناوب مع‬
‫مالحظة ان الحلمة الداخلٌة ٌمل عدد تكرارها بممدار ‪ 1‬مع كل تكرار ففً المرة االولى عدد تكرارها ‪ 5‬وفً‬
‫الذى ٌنمص مع كل تكرار بممدار المرة الثانٌة عدد التكرار ‪ 4‬وهكذا الن المٌمة النهائٌة للحلمة الداخلٌة‬
‫مرتبطة بمٌمة المتغٌر ‪1a‬‬

‫‪59‬‬
l‫مثال‬

:ً‫اكتب برنامج ٌموم بالخرج االت‬

*
***
*****
***
*
class aa

public static void main (String args[ ])

for(int a=1;a<=5;a++)

for(int b=1;b<=a;b++)

System.out.print("*");

System.out.println();

for(int c=5;c>=1;c--)

for(int d=1;d<=(c-1);d++)

60
System.out.print("*");

System.out.println();

: ً‫ماهو خرج البرنامج التال‬

public class ForLoop


{
public static void main(String args[] )
{
for(int i = 1;i <= 5;i++)

{
for(int j = 1;j <= i;j++)
{
System.out.print(i);
}
System.out.println();
}
}
}
‫المخرج‬

1
22
333
4444
55555

61
‫حلقة ‪while‬‬
‫فً هذا النوع من التكرار فً الجافا‪ٌ ,‬تم تكرار مجموعة اﻷوامر بنا ًالء على تحمك شرط معٌّن‪.‬‬

‫‪while Loop Flow Chart‬‬

‫‪false‬‬
‫‪Continue‬‬
‫?‪condition‬‬

‫‪true‬‬

‫)‪Statement(s‬‬

‫‪Next‬‬
‫‪Statement‬‬

‫فً المخطط السابك اذا تحمك الشرط (‪ٌ )continue condition‬تم تنفٌذ جسم الحلمة وهو الـ‬
‫)‪ statement(s‬وان لم ٌتحمك الشرط ٌتم الخروج من الحلمة والذهاب الً التعبٌر التالً ( ‪next‬‬
‫‪)statement‬‬

‫وهذا هو الشكل العام لجملة ‪while:‬‬

‫) ‪while( condition‬‬

‫{‬
‫;‪Statement 1‬‬
‫;‪Statement 2‬‬
‫‪..‬‬

‫‪..‬‬

‫‪..‬‬

‫‪62‬‬
‫;‪Statement n‬‬
‫}‬

‫فتحمك الشرط الموجود فً ما بٌن الموسٌن بعد كلمة ‪ٌ while‬عنً تكون لٌمته المنطمٌة ‪ٌ true‬عنً أنه سٌتم‬
‫تنفٌذ ‪ Statement 1‬و ‪ Statement 2‬و هكذا‪.‬‬

‫مثال‬

‫;‪Int x=1‬‬

‫)‪While (x<10‬‬

‫{‬

‫;)‪System.out.print(x‬‬

‫;‪X++‬‬

‫}‬

‫فً المثال السابك ٌتم اختبارلٌمة الشرط اوال وبا ان لٌمة ‪ x‬ألل من ‪ٌ 10‬تحمك شرط الحلمة وبالتاي الدخول‬
‫الً جسم الحلمة ‪ while‬حٌث ٌتم تنفٌذ التعبٌر االول وٌنتمل للتعبٌر الثانً ‪ x++‬وهً العبارة التً تموم‬
‫بتغٌر متغٌر الشرط بممدا ‪ 1‬ثم ٌتم إختبار الشرط مرة أخرى فكلما كانت لٌمة الشرط صحٌح ‪ٌ true‬تم‬
‫تكرار جسم الحلمة وكهذا حتى تصبح لٌمة ‪ x‬تساو ‪ 10‬عندها لٌمة الشرط تكون خطأ ‪ false‬لٌنتهً عمل‬
‫الحلمة‪.‬فً حلمة ‪ while‬نالحظ االتً‪:‬‬

‫‪ ‬وجود شرط ٌتم إختبارلٌمتة لبل باٌة تنفٌذ الحلمة‪.‬‬

‫‪ ‬لمتغٌر الشرط لٌمة إبتدائٌة لبل بداٌة الحلمة‪.‬‬

‫‪ ‬وجود عبارة لتغٌٌر لٌمة متغٌر الشرط داخل جسم الحلمة‪.‬‬

‫‪ ‬لد الٌتم تنفٌذ الحلمة نهائٌا وذلن إذا كانت لٌمة متغٌر الشرط فً أول إختبار تساوي خطأ )‪.(false‬‬

‫‪ٌ ‬مكن إستخدام حلمة ‪ while‬للتكرار المعلوم‪.‬‬

‫‪63‬‬
-:‫مثال‬

‫أكتب برنامجا ًال ٌموم بعرض مجموع اﻷرلام المتتالٌة حتى رلم محدد‬

class sum

public static void main (String args[])

int i=0,max=4,sum=0;

while(i<=max)

sum+=i;

i++;

System.out.print(sum);

64
-: ‫مثال‬

10‫ الى‬1 ‫برنامج ٌطبع االرلام من‬

class WhileDemo
{
public static void main(String[] args)
{
int count = 1;
while (count < 11)
{
System.out.println("Count is: " + count);
count++;
}
}
}

while ‫باستخدام حلمة‬12 ‫ الى‬1 ‫اكتب برنامج ٌموم بطباعة مضاعفات العدد من‬

class WhileDemo
{
public static void main(String[] args)
{
Int number=1;

while (number <= 12)


{
System.out.println(number + " squared is " + (number * number));
number++;

65
‫حلقة ‪ do/while‬التكراريه‪-:‬‬

‫تستخدم حلمة ‪ do–while‬كسابمتها ‪ while‬لعمل تكرار لجمله او عدة جمل وهً شبٌهه بحلمة ‪ while‬إال‬
‫أنه ٌتم إختبار شرطهها فً نهاٌة الحلمة أي أنها تموم بتنفٌذ العبارات الموجودة بداخلها ثم إختبار لٌمة الشرط‬
‫لتحٌد إتمرارٌة التكرار ونالحظ فً حلمة ‪ while‬االتً‪:‬‬

‫‪ ‬وجود شرط ٌتم إختبار لٌمتة بعد نهاٌة تنفٌذ الحلمة‪.‬‬

‫‪ ‬الٌشترط وجود لٌمة إبتدائٌة لمتغٌر الشرط‪.‬‬

‫‪ ‬وجود عبارة لتغٌٌر لٌمة متغٌر الشرط داخل جسم الحلمة‪.‬‬

‫‪ٌ ‬تم تنفٌذ الحلمة مرة واحدة علً االلل وذلن الن إختبار الشرط ٌتم فً نهاٌة الحلمة‪.‬‬

‫‪‬‬

‫‪do Loop Flow Chart‬‬

‫)‪Statement(s‬‬

‫‪true‬‬
‫‪Continue‬‬
‫?‪condition‬‬

‫‪false‬‬

‫‪Next‬‬
‫‪Statement‬‬

‫‪66‬‬
‫الصٌغة العامة لحلمة ‪do - while‬‬

‫‪do‬‬
‫{‬
‫;)‪statment(s‬‬
‫;)‪}while(Condition_Expression‬‬

‫تبدأ صٌغة التكرار ‪ do - while‬بالكلمة المحجوزة ‪ o‬ثم لوس البداٌة الذي ٌعنً بداٌة كلمة التكرار بما‬
‫تحتوٌه من تعلٌمات برمجٌة‪ .‬بعد لوس البداٌة ٌمكننا إدراج وصٌاغة التعلٌمات البرمجٌة ‪statement‬‬
‫المطلوب تكرارها وٌجب إن تنهً كل تعلمٌه بالفاصلة المنموطة‪ .‬وبعد آخر تعلٌمة برمجٌة علٌنا وضع‬
‫ألواس نهاٌة كتلة التكرار ‪ .‬نتبع بعدها لوس النهاٌة بتعلٌمة العودة والتكرار والتً تتكون من الكلمة‬
‫المحجوزة ‪ while‬متبوعة بالشرط المنطمً ‪ Condition_Expression‬وٌجب إن ننهً حلمة التكرار‬
‫بالفاصلة المنموطة داللة على االنتهاء حلمة التكرار‪.‬‬

‫مثال‬

‫‪Class do_while‬‬
‫{‬
‫)‪public static void main(String[] args‬‬
‫{‬
‫;‪int A=1‬‬

‫‪do‬‬
‫{‬
‫;)"‪System.Out.Println("Arabic SEO‬‬
‫;) ‪} while( A < 10‬‬

‫}‬
‫}‬

‫الشرح‪-:‬‬

‫الحظ فً المثال أعاله إننا صرحنا عن التغٌر ‪ A‬بمٌمة مبدئٌة ‪ 1‬داخل كتلة التكرار صغنا تعلٌمة طباعة‬
‫‪ A‬الل من‬ ‫النص ‪ Arabic SEO‬بعد ذلن حددنا شرط إعادة التنفٌذ والتكرار بان تكون لٌمة المتغٌر‬
‫عشرة‪ .‬تنفٌذ البرنامج والوصول إلى حلمة التكرار‪ ,‬سٌعمل البرنامج على تنفٌذ تعلٌمة الطباعة دون ان ٌنظر‬
‫إلى حالة الشرط‪ ,‬ثم سٌنتمل إلى تعلٌمة ‪ while‬لٌتحمك من صحة الشرط لتجده صحٌحا مما ٌعنً العودة‬
‫إلى بداٌة حلمة التكرار وإعادة تنفٌذ تعلٌمة الطباعة وهكذا ستستمر عملٌة التكرار إلى ما ال نهاٌة طالما إن‬
‫الشرط صحٌح‪.‬‬

‫‪67‬‬
‫نستنتج من هذا المثال إن حلمة التكرار ‪ do - while‬ستعمل على تنفٌذ التعلٌمات البرمجٌة مرة واحدة كحد‬
‫أدنى وبغض النظر عن حالة الشرط ثم ٌأتً دور تعلٌمة التحمك من الشرط ‪ while‬والتً من شانها إعادة‬
‫تنفٌذ التعلٌمات طالما الشرط صحٌح‪ .‬وفً حال عدم تحمك الشرط لن نعود إلى بداٌة حلمة التكرار بل سٌتابع‬
‫البرنامج تدفمه إلى التعلٌمة التً تلً حلمة ‪ do - while‬عندها سنواجه نفس المشكلة التً واجهتنا مع حلمة‬
‫التكرار ‪ while‬وهً عدم الربط بٌن التعلٌمات البرمجٌة والشرط المنطمً مما سٌؤدي إلى دخول البرنامج‬
‫بحلمة تكرار ال منتهٌة‪ ,‬لذلن ٌجب علٌنا صٌاغة تعلٌمة برمجٌة داخل كتلة التكرار لتعمل على تغٌر لٌمة‬
‫المتغٌر محور شرط التكرار المنطمً‪.‬‬

‫مثال‪:‬‬

‫برنامج لطباعة اﻷعداد الزوجٌة فمط من ‪ 0‬إلى عشرٌن‬

‫‪Class do_while‬‬

‫{‬
‫)‪public static void main( String[] args‬‬
‫{‬
‫;‪intA=0‬‬

‫‪do‬‬
‫{‬
‫;)‪System.Out.Println(A‬‬
‫;‪A+=2‬‬
‫;) ‪} while ( A< = 20‬‬

‫}‬
‫}‬

‫‪68‬‬
. 8 ‫أكتب برنامج إلٌجاد مضروب العدد‬: ‫مثال‬
:‫الحل‬

Class do_while
{
public static void main( String[] args)
{
int N=8;
long Factorial=1;

do
{
Factorial*=N;//multiply
--N;
} while ( N > 0 );

System.Out.Println(Factorial);
}
}

‫مثال‬

import javax.swing.JOptionPane ;
class TestDo
{
public static void main ( String [ ] args )
{
String input ;
int data ;
int sum = 0 ;
do
{
input = JOptionPane.showInputDialog ( " enter number " ) ;
data =Integer.parseInt ( input ) ;
sum += data ;
}
while ( data != 0 ) ;
JOptionPane.showMessageDialog ( null , " the sum is " + sum ) ;
System.exit ( 0 ) ;
}}

69
‫فً المثال السابك ٌموم المستخدم بمراءة مجموعة غٌر محددة من االعداد وٌحسب مجموع تلن االعداد‬
‫ٌتولف البرنامج عن المراءة بإدخال المٌم ‪ 0‬ثم ٌموم البرنامج بطباعة مجموع تلن االرلام ودائما ٌتم طباعة‬
‫المجموع خارج جسم الحلمة وكذلن حساب المتوسط ٌتم خارج جسم الحلمة إذا طلب منا ذلن‪.‬‬

‫فً النهاٌة ٌمكننا تلخٌص أوجه االختالف والتشابه بٌن حلمة التكرار ‪do - while‬وحلمة التكرار ‪while‬‬
‫على النحو اآلتً ‪:‬‬

‫تشترط كلتا الحلمتٌن وجود عاللة تغٌر بٌن الشرط المنطمً وإحدى التعلٌمات البرمجٌة التً بداخلها‬ ‫‪‬‬
‫وذلن حتى ال ندخل بحلمة تكرار ال منتهٌة‪.‬‬
‫حلمة ‪ do - while‬تتحمك من الشرط بعد تنفٌذ العملٌات البرمجٌة بٌنما حلمة التكرار ‪while‬‬ ‫‪‬‬
‫تتحمك من الشرط من البداٌة ولبل تنفٌذ أي تعلٌمة‪.‬‬
‫الحد اﻷدنى لتكرار تنفٌذ تعلٌمات حلمة ‪ do - while‬هو مرة واحدة بغض النظر عن حالة الشرط‬ ‫‪‬‬
‫بٌنما ٌكون الحد اﻷدنى لتكرار تنفٌذ حلمة ‪ while‬هو الصفر‪.‬‬

‫عبارة ‪break‬‬

‫تستخدم هذه الكلمة عندما ٌراد تغٌر المسار الطبٌعً للبرنامج فمثال عندما تستخدم كلمة ‪ break‬داخل‬
‫جسم حلمة ‪ for‬أو ‪ while‬أو ‪ do while‬تسبب الخروج منها فورا وٌستمر تنمٌذ بالً جمل البرنامج‬
‫التً تلً تلن الحلمات نجد اﻷستخدام الشائع لكلمة ‪ break‬هو الهروب المبكر من تنفٌذ حلمة معٌنه‬

‫توفر لغة جافا ثالثة عبارات مختلفة للتكرارهً ‪ for‬و ‪ while‬و ‪do while‬‬

‫تستخدم الحلمات التكرارٌة لتكرار جملة أوعدة جمل داخل جسم البرنامج وعندما نعلم مسبما عدد التكرار‬
‫التً ستنفذها الحلمة‪ ,‬اﻷفضل إستخدام حلمة ‪ for‬وإذا كنا ال نعلم عدد التكرار وخصوصا إذا كان التكرار‬
‫ٌعتمد علً لٌمة ٌموم بإدخالها المستخدم فً هذه الحالة ٌفضل إستخدام ‪ while‬أو ‪. do while‬‬

‫إذا كان من الممكن أال ٌتم تنفٌذ الحلمة أصال فاﻷصح إستخدام حلمة ‪, while‬أما إذا كان تنفٌذ الحلمة ٌكتمل‬
‫للمرة اﻷولى ٌتساوى حٌنها إستخدام ‪ while‬و ‪.do while‬‬

‫ٌمكن إستخدام الحلمات متداخلة فً بعضعها فً تنفٌذ بعض البرامج وال ٌشترط أن تكون الحلمات المتداخلة‬
‫من نفس نوع الحلمة‬

‫ٌمكن إستخدام كلمة ‪ break‬داخل جسم الحلمة للهروب من تنفٌذ بمٌة التكرارات حٌث ٌتم اإلنتمال الً‬
‫الجملة التالٌة داخل جسم البرنامج‪.‬‬

‫‪70‬‬
‫الوحدة الرابعة‬
‫المصفوفات‬

‫‪71‬‬
‫محتويات الووحد‬

‫الصفحة‬ ‫الممدمة‬

‫‪73‬‬ ‫تمهٌد‬

‫‪73‬‬ ‫أهداف الوحدة‬

‫‪74‬‬ ‫‪.1‬المصفوفات‬

‫‪74‬‬ ‫‪.2‬المصفوفة ذات البعد الواحد‬

‫‪92‬‬ ‫‪.3‬المصفوفة ذات البعدٌن‬

‫إجوبة التدرٌبات‬

‫المراجع‬

‫‪72‬‬
‫الممدمة‬

‫تمهٌد‬

‫خالل الدروس السابمة تعاملنا مع عدد من البٌانات من نفس النوع ذات صلة ببعضها مثل درجات المواد ‪,‬‬
‫أسماء الطالب وغٌرها ‪ ,‬لكن كنا نمرأ أو نحسب أو نتعامل معها دون تخزٌنها ‪ ,‬مثال نجمع درجات الطلب‬
‫فً متغٌر واحد لحاب مجموعه أو نطبع اﻷعداد علً الشاشة دون تخزٌن مع أنه فً كثٌر من اﻷحٌان نحتاج‬
‫الً تخزٌن هذه البٌانات والرجوع الٌها مرة أخرى خالل عمل البرنامج فمثال لحساب االنحراف المعٌاري‬
‫نحتاج الً االعداد بعد جمعها وحساب متوسطها وأٌضا لطباعة جدول منأسماء الطالب ودرجاتهم نحتاج‬
‫لإلحتفاظ بهذه البٌانات لعرضها فً ولت واحد أو لطباعة اﻷعداد مرتبة تصاعدٌا نحتاج لتخزٌنها لكً نعٌد‬
‫ترتٌبها لبل الطباعة ‪.‬‬

‫من غٌر المنطك أن نموم بتعرٌف متغٌر ممابل كل مادة من مواد الطالب ‪ ,‬والٌمكن كذلن أن ٌكون الطرٌمة‬
‫الوحٌدة لترتٌب ‪ 20‬عددا صحٌحا بأن نعرف ‪ 20‬متغٌرا لإلحتفاظ بالمٌم وتخٌل ماذا لو كان ‪ 1000‬عدد أو‬
‫أكثر هل نعرف لكل عدد متغٌر؟ فمن هنا جاءت أهٌمة المصفوفات لالمصفوفة عبارة صف من البٌانات من‬
‫نفس النوع ذات عاللة ببعضها ‪ٌ,‬كون للمصفوفة إسم واحد وعدد من الحجرات توضع فٌها البٌانات‪.‬‬

‫فهنالن عدة أنواع من المصفوفات حسب أبعادها فمنها المصفوفة ذات البعد الواحد والمصفوفة ذات البعدٌن‬
‫وذات الثالثة أبعاد والمصفوفة متعددة الأبعاد‪.‬‬

‫اﻷهداف‬

‫عزٌزي الدارس بعد دراسة هذه الوحدة ٌكون لدٌن المدرة علً االتً‪:‬‬

‫تعرف الغاٌة من إستخدام المصفوفات‪.‬‬ ‫‪.1‬‬


‫تعرف مفهوم المصفوفة وحجز الموالع له‪.‬ا‬ ‫‪.2‬‬
‫تعدد أنواع المصفوفات‪.‬‬ ‫‪.3‬‬
‫تذكر المصفوفة ذات البعد الواحد‪.‬‬ ‫‪.4‬‬
‫تذكر المصفوفة ذات البعدٌن‪.‬‬ ‫‪.5‬‬
‫تذكر العملٌات الرٌاضٌة علً المصفوفة ذات البعد الواحد‪.‬‬ ‫‪.6‬‬
‫تذكر عملٌات البحث داخل المصفوفة أحادي وثنائً اﻷبعاد‪.‬‬ ‫‪.7‬‬

‫‪73‬‬
‫الممصووفات ‪Arrays‬‬

‫تعريف ‪-:‬‬

‫المصفوفات هً عبارة عن موالع ٌتم تخزٌن البٌانات فٌها لمدة مؤلته (طٌلة فترة تنفٌذ البرنامج فمط)‪ ,‬وعند‬
‫تعرٌف المصفوفة وإنشائها ٌتم حجز عدد محدد من الموالع المتجاورة فً الذاكرة لتخزٌن البٌانات فٌها ‪,‬‬
‫حٌث ٌتم الوصول للبٌانات المخزنة فً هذه الموالع عن طرٌك إسم المصفوفة ورلم المولع )‪(index‬‬
‫والغاٌة من إستخدام المصفوفة هً تخزٌن عدد غٌر محدد من المٌم تحت إسم واحد فمط (إسم المصفوفة)‬
‫دون الحوجة الً تخزٌن كل لٌمة فً متغٌر )‪ (variable‬منفصل‪.‬‬

‫الممصووة ات البلح الواوح‬

‫إلستخدام المصفوفه ذات البعد الواحد فً البرامج البد من تعرٌفها وحجز الموالع لها حٌث ٌتم ذلن كما ٌلً‪:‬‬

‫;] [‪Data_type array_name‬‬

‫;]‪Array_name[ ]=new data_type[length‬‬

‫فمثال‪:‬‬

‫;][‪Int array1‬‬

‫;]‪Array1[]=new int[9‬‬

‫فً المثال السابك نجد فً السطر اﻷول تعرٌف المصفوفة ‪ array1‬من نوع ‪ int‬أي أننا نستطٌع تخزٌن‬
‫أعداد من نوع ‪ int‬فً هذه المصفوفة بٌنما فً السطر الثانً تم حجز ‪ 9‬موالع لهذه المصفوفة (من المولع‬
‫صفر الً المولع رلم ‪ )8‬لنستطٌع تخزٌن ‪ 9‬أعداد صحٌحة علً اﻷكثر فً هذه المصفوفة‪.‬كما ٌمكن دمج‬
‫الجملتٌن السابمتٌن فً جملة واحدة لتصبح‬

‫;]‪Int array1[]=new int[9‬‬

‫وٌمكن كتابة الجملة السابمة كما ٌلً‪:‬‬

‫;]‪Int[] array1=new int[9‬‬

‫ٌمكن تحدٌد المٌمة اإلبتدائٌة للمصفوفة بالطرٌمة التالٌة‪:‬‬

‫;}‪Int [] student={80,90,60,50,45‬‬

‫شرح ‪-:‬‬
‫تعنً أننا أنشأنا مصفوفة من نوع المتغٌر الصحٌح ‪ integer‬أسمها ‪ student‬تحتوي على ‪ 5‬لٌم كاﻷتً‪:‬‬

‫‪74‬‬
‫‪student‬‬

‫‪80‬‬ ‫‪90‬‬ ‫‪60‬‬ ‫‪50‬‬ ‫‪45‬‬

‫‪0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬

‫‪index‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬


‫بحٌث أن‬

‫‪student[0]=80‬أي أن المٌمة اﻷولى فً المصفوفة واسمها ]‪ student[0‬تساوي ‪80‬‬

‫‪student[1]=90‬أي أن المٌمة الثانٌة فً المصفوفة واسمها ]‪ student[1‬تساوي ‪90‬‬

‫‪student[2]=60‬أي أن المٌمة الثالثة فً المصفوفة واسمها ]‪ student[2‬تساوي ‪60‬‬

‫‪student[3]=50‬أي أن المٌمة الرابعة فً المصفوفة واسمها ]‪ student[3‬تساوي ‪50‬‬

‫‪student[4]=45‬أي أن المٌمة الخامسة فً المصفوفة واسمها ]‪ student[4‬تساوي ‪45‬‬

‫ولتعدٌل المٌمة المخزنة فً المولع رلم ‪ 1‬لتصبح ‪ 15‬بدال من ‪ 90‬نكتب االتً‪:‬‬

‫;‪Student[1]=15‬‬

‫نستطٌع معرفة طول المصفوفه باستخدام ‪ int length‬كاالتى ‪:‬‬

‫;‪int x‬‬

‫;}‪int[] e={2,5,3,7,1,9‬‬

‫;‪x=e.length‬‬

‫حٌث لٌمة ‪ x‬تساوى بعد العملٌه االخٌره ‪ 6‬وهو عدد الخانات المحجوزه للمصفوفه‪.‬‬

‫‪75‬‬
‫ملحوظات مهمة‬

‫‪ٌ ‬جب أن ٌكون رلم المولع ‪ index‬عند التعامل مع المصفوفة عددا صحٌحا موجبا‪.‬‬

‫‪ٌ ‬جب االنتجاوز عدد الموالع المحجوزة للمصفوفة عند إستخدامها‪.‬‬

‫‪ ‬إذا لم تحدد لٌمة إبتدائٌة للمصفوفة فٌجب إستخدام الكلمة المحجوزة )‪ (new‬لحجز موالع للمصفوفة‬
‫كما ذكر سابما‪.‬‬

‫‪ ‬نستطٌع معرفة عدد الموالع المحجوزة من خالل كتابة إسم المصفوفة ثم نمطة ثم كلمة ‪length‬‬
‫(مثال ‪ array1.length‬من خالل هذه الجملة نستطٌع معرفة عدد الموالع المحجوزة للمصفوفة‬
‫‪.) array1‬‬

‫‪ ‬نستطٌع إستخدام أحد التعابٌر التالٌة لتعرٌف وحجز موالع المصفوفة‪.‬‬

‫;]‪1.int array[ ]=new int[5‬‬

‫;]‪2.int[ ]array=new int[5‬‬

‫;] [‪3.int arry‬‬

‫;]‪Array=new int[5‬‬

‫;‪4.int[ ]array‬‬

‫;]‪Array=new int[5‬‬

‫‪76‬‬
‫مثال‪-:‬‬

‫{‪Class Minimum‬‬

‫)‪public static void main(String[ ] args‬‬

‫{‬

‫;}‪int[ ] a={3,8,4,9,1‬‬

‫;]‪int min = a[0‬‬

‫{)‪for(int i=0;i<a.length;i++‬‬

‫)‪if(a[i]<min‬‬

‫;]‪min=a[i‬‬

‫}‬

‫;)‪System.out.println("the min number in the Array = "+min‬‬

‫}‬

‫}‬

‫فً المثال السابك تم تعرٌف مصفوفة ‪ a‬وطولها ‪ 5‬خالٌا ووضع فٌها أعداد صحٌحة ‪3,8,4,9,1‬‬
‫وإفترضا ان العدد االصغر فً الخلٌة االولى (الخلٌة رلم ‪ )0‬ثم كتبنا العبارة ‪ for‬التى تمر علً كل خالٌا‬
‫المصفوفة لٌتم إختبار الشرط بممارنة العدد االصغر مع المٌم الموجودة داخل المصفوفة ‪,‬إذا وجد أي لٌمة‬
‫ألل ٌتم المٌمة اﻷلل)‪ (min‬بالمٌمة الجدٌدة ‪,‬وعند الخروج من الحلمة ٌكون المتغٌر ‪ min‬لد أخذ لٌمة ألل‬
‫عدد من اﻷعاد المخزنة فً المصفوفة‪.‬‬

‫ممحووة‬

‫عند التعامل مع المصفوفات نتستخدم الحلمات التكرارٌة النها تملل العبارات المكتوبة فً البرنامج‬

‫‪77‬‬
-:‫مثال‬

‫اكتب برنامج بلغة جافا لتعرٌف المصفوفه التالٌه وتخزٌن المٌم فٌها ومن ثم طباعة كل المٌم‬

I b r a h i m

Class Array

Public Static void main (String arg[])

Char y[]={„i‟,‟b‟,‟r‟,„a‟,‟h‟,‟i‟,‟m‟ };

For(int i=0;i<=7;i++)

System .out .println(y[i]);

78
‫ طالب وٌخزنها فً مصفوفة‬30 ‫اكتب برنامج ٌمرأ أسماء‬

import javax.swing.*;

class aa

Public Static void main (String arg[])

String studentname[ ]=new string[30];

String s;

For(int i=0;i<=29;i++)

S=JOptionPane.showInputDialog(“enter student name no”+i);

Studentname[i]=s;

System.exit(0);

79
‫ فً المصفوفه‬sudan ‫اكتب برنامج ٌحسب عدد تكرار ظهور كلمة‬

class aa

// main method begins execution of Java application

public static void main( String args[] )

String a []={"sudan","sudan","oman"};

int min =0;

for(int i=0;i<a.length;i++)

if(a[i]=="sudan")

min++;

System.out.println("number of sudan in array = "+min);

80
‫تدرٌب ‪:1‬‬

‫اكتب برنامج ٌموم بتخزٌن المٌم التالٌة فً مصفوفة‪:‬‬

‫‪11 ، 20 ، 80 ، 50 ، 20 ، 17‬‬

‫الحل ‪:‬‬

‫‪class prog‬‬

‫{‬

‫) ][‪public static void main ( String args‬‬

‫{‬

‫; } ‪int ar [ ] = { 11 , 20 , 80 , 50 , 20 , 17‬‬

‫}‬

‫}‬

‫تدرٌب ‪: 2‬‬

‫اكتب برنامج ٌموم بتخزٌن المٌم التالٌة فً مصفوفة‪:‬‬


‫‪ 11 , 20 , 80 , 50 , 20 , 17‬ومن ثم ٌموم بطباعة العنصر الذي ٌمع فً العنوان ‪. 2‬‬

‫الحل ‪:‬‬

‫‪class prog‬‬

‫{‬

‫) ][‪public static void main ( String args‬‬

‫{‬

‫; } ‪int ar [ ] = { 11 , 20 , 80 , 50 , 20 , 17‬‬

‫; ) ] ‪System . out .println ( ar [ 2‬‬

‫‪81‬‬
‫}}‬

‫تدرٌب ‪:3‬‬

‫اكتب برنامج ٌموم بتخزٌن المٌم التالٌة فً مصفوفة‪:‬‬

‫‪ 11 , 20 , 80 , 50 , 20 , 17‬ومن ثم ٌموم بطباعة كل عناصر المصفوفة‪.‬‬


‫الحل ‪:‬‬

‫‪class prog‬‬

‫{‬

‫) ][‪public static void main ( String args‬‬

‫{‬

‫; } ‪int ar [ ] = { 11 , 20 , 80 , 50 , 20 , 17‬‬

‫) ‪for ( int i = 0 ; i <=5 ; i ++‬‬

‫; ) ] ‪System . out .println ( ar [ i‬‬

‫}‬

‫}‬

‫تدرٌب ‪:4‬‬

‫اكتب برنامج ٌموم بتخزٌن المٌم التالٌة فً مصفوفة‪:‬‬

‫‪ 11 , 20 , 80 , 50 , 20 , 17‬ومن ثم ٌموم بطباعة مجموع العنصر االول واﻷخٌر بالمصفوفة‪.‬‬

‫‪82‬‬
:‫الحل‬

class prog

public static void main ( String args[] )

int ar [ ] = { 11 , 20 , 80 , 50 , 20 , 17 } ;

int sum = 0 ;

sum = ar [ 0 ] + ar [ 5 ] ;

System . out .println ( sum ) ;

:5 ‫تدرٌب‬

:‫اكتب برنامج ٌموم بتخزٌن المٌم التالٌة فً مصفوفة‬

.‫ ومن ثم ٌموم بطباعة مجموع كل العناصر بالمصفوفة‬11 , 20 , 80 , 50 , 20 , 17

:‫الحل‬

class prog

public static void main ( String args[] )

83
int ar [ ] = { 11 , 20 , 80 , 50 , 20 , 17 } ;

int sum = 0 ;

for ( int i = 0 ; i <= 5 ; i ++ )

sum = sum + ar [ i ] ;

System . out .println ( sum ) ;

:6 ‫تدرٌب‬

:‫اكتب برنامج ٌموم بتخزٌن المٌم التالٌة فً مصفوفة‬

Ali , Hassan , Mona

.‫ومن ثم ٌموم البرنامج بطباعة جمٌع عناصر المصفوفة‬

:‫الحل‬

class prog

public static void main ( String args[] )

String ar * + = , “Ali” , “Hassan” , “Mona”- ;

for ( int i = 0 ; i <= 2 ; i ++ )

System . out .println ( ar [ i ] ) ;

84
}

:7 ‫تدرٌب‬

.‫ أرلام صحٌحة ومن ثم ٌموم البرنامج بطباعتها‬10 ‫اكتب برنامج ٌموم بمراءة‬

:‫الحل‬

import javax . swing .* ;

class prog

public static void main ( String args[] )

int ar [ ] = new int [ 10 ] ;

for ( int i = 0 ; i <=9 ; i ++ )

ar [ i ] = Integer . parseInt ( JOptionPane.showInputDialog ( “Enter


Number” ) );

for ( int i = 0 ; i <=9 ; i ++ )

System .out . println ( ar [ i ] ) ;

85
:8 ‫تدرٌب‬

.‫ أسماء ومن ثم ٌموم البرنامج بطباعتها‬10 ‫اكتب برنامج ٌموم بمراءة‬

:‫الحل‬

import javax . swing .* ;

class prog

public static void main ( String args[] )

String ar [ ] = new String [ 10 ] ;

for ( int i = 0 ; i <=9 ; i ++ )

ar [ i ] = JOptionPane.showInputDialog ( “Enter Name” );

for ( int i = 0 ; i <=9 ; i ++ )

System .out . println ( ar [ i ] ) ;

86
:9 ‫تدرٌب‬

‫ أرلام صحٌحة ومن ثم ٌموم البرنامج بطباعة العناصر التً تمع فً العناوٌن‬10 ‫اكتب برنامج ٌموم بمراءة‬
.‫الفردٌة‬

:‫الحل‬

import javax . swing .* ;

class prog

public static void main ( String args[] )

int ar [ ] = new int [ 10 ] ;

for ( int i = 0 ; i <=9 ; i ++ )

ar [ i ] = Integer . parseInt ( JOptionPane.showInputDialog ( “Enter


Number” ) );

for ( int i = 0 ; i <=9 ; i ++ )

if ( i % 2 = = 1 )

System .out . println ( ar [ i ] ) ;

87
:10 ‫تدرٌب‬

‫ أرلام صحٌحة ومن ثم ٌموم البرنامج بطباعة هذه العناصر بصورة عكسٌة‬10 ‫اكتب برنامج ٌموم بمراءة‬
.‫للترتٌب الذي تم به اإلدخال‬

: ‫الحل‬

import javax . swing .* ;

class prog

public static void main ( String args[] )

int ar [ ] = new int [ 10 ] ;

for ( int i = 0 ; i <=9 ; i ++ )

ar * i + = Integer . parseInt ( JOptionPane.showInputDialog ( “Enter


Number” ) );

for ( int i = 9 ; i >=0 ; i -- )

System .out . println ( ar [ i ] ) ;

88
‫تدرٌب ‪:11‬‬

‫اكتب برنامج ٌموم بتخزٌن العناصر التالٌة فً مصفوفة‬

‫‪12 , 8 , 9 , 3 , 2‬‬

‫كما ٌموم البرنامج بتخزٌن العناصر التالٌة فً مصفوفة اخرى‬

‫‪9 , 7 , 3 , 23 , 22‬‬

‫ٌموم البرنامج بجمع كل عنصرٌن متمابلٌن وٌضعها فً مصفوفه ثالثة ومن ثم ٌموم البرنامج بطباعة كل‬
‫عناصر المصفوفة الثالثة‪.‬‬

‫توضٌح‪:‬‬

‫‪12‬‬ ‫‪8‬‬ ‫‪9‬‬ ‫‪3‬‬ ‫‪2‬‬

‫‪9‬‬ ‫‪7‬‬ ‫‪3‬‬ ‫‪32‬‬ ‫‪22‬‬ ‫‪ar2‬‬

‫‪ar3‬‬
‫‪21‬‬ ‫‪15‬‬ ‫‪12‬‬ ‫‪26‬‬ ‫‪24‬‬

‫الحل‪:‬‬

‫‪89‬‬
class prog

public static void main ( String args[] )

int ar1 [ ] = { 12 , 8 , 9 , 3 , 2 } ;

int ar2 [ ] = { 9 , 7 , 3 , 23 , 22 };

int ar3 [ ] = new int [ 5 ] ;

for ( int i = 0 ; i <=4 ; i ++ )

ar3 [ i ] = ar1 [ i ] + ar2 [ i ] ;

for ( int i = 0 ; i <=4 ; i ++ )

System .out . println ( ar3 [ i ] ) ;

90
‫تدرٌب ‪:12‬‬

‫اكتب برنامج ٌموم بتخزٌن االحرف التالٌة ‪:‬‬

‫‪A,K,S,F,P‬‬

‫ومن ثم ٌموم البرنامج بطباعة هذه االحرف‪.‬‬

‫الحل‪:‬‬

‫‪class prog12‬‬

‫{‬

‫) ][‪public static void main ( String args‬‬

‫{‬

‫; ‪char ar * + = , ‘A’ , ‘K’ , ‘S’ , ‘F’ , ‘P’ -‬‬

‫) ‪for ( int i = 0 ; i <=4 ; i ++‬‬

‫; ) ] ‪System .out . println ( ar [ i‬‬

‫}‬

‫}‬

‫تدرٌب ‪:13‬‬

‫اكتب برنامج ٌموم بمراءة ‪ 10‬أحرف من لوحة المفاتٌح ومن ثم ٌموم البرنامج بتخزٌنها فً مصفوفة ‪,‬‬
‫ٌموم البرنامج بطباعة عناصر هذه المصفوفة‪.‬‬

‫‪91‬‬
:‫الحل‬

import javax . swing . * ;

class prog

public static void main ( String args[] )

char ar [ ] = new char [ 10 ] ;

for ( int i = 0 ; i <=9 ; i ++ )

ar * i + = ( JOptionPane.showInputDialog ( “Enter char” ) ) . charAt ( 0 );

for ( int i = 0 ; i <=9 ; i ++ )

System .out . println ( ar [ i ] ) ;

‫المصفوفة ذات البعدين‬

‫فً لغة جافا ٌمكن تعرٌف مصفوفات ذات أكثر من بعد واحد والمصفوفة ذات البعدٌن هً عبارة عن جدول‬
‫ٌحتوي علً صفوف وأعمدة‬

Int B[ ][ ];

92
‫;]‪B=new int[3][4‬‬

‫فً السطر الأول تم تعرٌف مصفوفة ذات بعدٌن ‪,‬فً السطر الثانً تم حجز موالع لهذه المصفوفة بحث‬
‫تحتوي علً ‪ 3‬صفوف وكل صف ٌحتوي علً ‪ 4‬أعمدة كما مبٌن بالشكل التالً‪:‬‬

‫العمود‪0‬‬ ‫العمود‪1‬‬ ‫العمود‪2‬‬ ‫العمود‪3‬‬

‫الصف‪0‬‬
‫]‪B[0][0‬‬ ‫]‪B[0][1‬‬ ‫]‪B[0][2‬‬ ‫]‪B[0][3‬‬
‫الصف‪1‬‬ ‫]‪B[1][0‬‬ ‫]‪B[1][1‬‬ ‫]‪B[1][2‬‬ ‫]‪B[1][3‬‬
‫الصف‪2‬‬ ‫]‪B[2][0‬‬ ‫]‪B[2][1‬‬ ‫]‪B[2][2‬‬ ‫]‪B[2][3‬‬

‫الشكل ٌوضح المصفوفة ذات البعدٌن حرف الـ ‪ٌ B‬رمز السم المصفوفة فمثال ]‪ٌ B[0][1‬عنً المصفوفة‬
‫‪ B‬الصف ‪ 0‬العمود ‪.1‬‬

‫ٌمكن إعطاء لٌمة إبتدائٌة للمصفوفة كاﻷتً‪:‬‬

‫;}}‪Int b[ ][ ]={{6,8,3},{6,2,8‬‬

‫لٌكون شكل المصفوفة‬

‫‪b‬‬

‫‪6‬‬ ‫‪8‬‬ ‫‪3‬‬


‫‪6‬‬ ‫‪2‬‬ ‫‪8‬‬

‫‪93‬‬
‫مسائل محلولة‬

:‫ما هو الخرج للبرامج التالٌة‬

.‫أ‬

class Unary_operator

public static void main(Srting args[])

int x=2;

System.out.print(x++);

System.out.print(x);

System.out.print(--x);

System.out.print(x);

‫الخرج‬

2322

94
.‫ب‬

int x=8,y=5;

If (x>0)

if (y%2==0)

System.out.println(“one”);

else

System.out.println(“two”);

else

If (y>=5)

System.out.println(“three”);

else

System.out.println(“four”);

‫الخرج‬

tow

95
:ً‫اشرح البرنامج التال‬.‫د‬

String s=JOptionPane.showInputDialog(“enter speed”);

int Number = Integer.parseInt(s);

switch(Number)

case 1:

System.out.println(“This is ”);

System.out.println(“One ”);

break;

case 2:

System.out.println(“This is ”);

System.out.println(“Two ”);

break;

case 3:

System.out.println(“This is ”);

System.out.println(“Three ”);

break;

default:

System.out.println(“no value match”);

System.out.println(“ finished ”);

96
‫ٌموم المستخدم باادخال السرعه فً حالة كانت السرعه‬

‫‪ٌ 1‬تم طباعه ‪this is one‬‬

‫عندما ٌدخل المستخدم ‪2‬‬

‫ٌتم طباعه ‪this is tow‬‬

‫عندما ٌدخل المستخدم ‪3‬‬

‫ٌتم طباعه ‪this is three‬‬

‫غٌر ذلن‬

‫ٌطبع ‪no value match‬‬

‫‪97‬‬
:ً‫ما هو خرج البرنامج التال‬

public class aaa {

// main method begins execution of Java application

public static void main( String args[] )

int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

int total = 0;

// add each element's value to total

for ( int counter = 0; counter < array.length; counter++ )

total += array[ counter ];

JOptionPane.showMessageDialog( null,

"Total of array elements: " + total,

"Sum the Elements of an Array",

JOptionPane.INFORMATION_MESSAGE );

}}

‫الخرج‬

Total of array elements: " + total,"Sum the Elements of an Array" 551

98

You might also like