اشترك في جروب الجافا ليصلك كل جديد

15- تمهيد للصعود الي اعلي مع الجافا


اليوم برامجنا كلها ياجماعة بسيطة ولكننا سنري فيها الجدير بالذكر والذي سوف يفيدنا في ماهو قادم لان معني قرائتك لكل المواضيع السابقة فانك تحتاج لمثل هذه البرامج التي تحتوي علي ماهو سوف نحتاجه في قراءة الملفات والتعرف علي مابداخلها كما سنري سويا طرق جيدة لاستخدام الفور لوب تسهل علينا اكثر واكثر في استخدامها علي الرغم من انها تبدو في ظاهرها معقدة نوعا ما وسنري ايضا كيف يمكننا معرفت طول كلمة او بمعني اصح عدد احرفها وسنري باذن الله تعالي المصفوفة التي وعدتكم بها وهي ذات المكانين.
ويمكن ان البعض منكم يجد انني اركز جدا علي الفور لوب واي لوب بصفه عامة وهذا لان البرمجة من وجهة نظري ولكم الحق في الاعتراض عليها ولكن ستثبتلكم الايام وجهة نظري ان الفور لوب واي لوب هما يمثلان اهمية كبيرة لاي مبرمج باي للغة فمثلا نتخيل مع بعض الشترنج فتجد عندك اذكي قطعتان هم الحصان والفيل فانا اري ال for انها تمثل الحصان وال do while تمثل الفيل و المصفوفة array هو الوزير ففي وجهة نظري برنامج مهما كانت ضخامته ولكنه لايحتوي علي اللوب ايا كان نوعه او المصفوفة فهو برنامج سهل .

now.... : back to work

الان سنبدا مع شكل من اشكال ال for الجديد الذي اتفقنا عليه :
الشكل هو ان عندما نمتلك مصفوفة array ونريد ان نضعها في داخل لوب معين لاظهار خرج منها فبلفعل اننا قمنا بذلك من قبل في برنامج المقاومة او في الموضوع رقم 12 يمكنك المراجعة عليه من هنا وقد قمنا بعمل لوب بطول المصفوفة فيوجد لدينا الان طريقة جديده مبسطة جدا تسهل علينا عمل ذلك فطريقة كل مافيها اننا نكتب for والقوسين الخاصين بها وفي داخلهم اعلان عن متغير من نفس نوع المصفوفة بمعنا اننا اذا اعلنا عن مصفوفة من النوع int يكون المتغير الذي سوف نعلن عنه في اللوب for يكون من النوع int اننا اذا اعلنا عن المصفوفة array من النوع double فيكون المتغير داخل اللوب for من النوع double ايضا وهكذا وكل ماسوف نسويه داخلها هو الاعلان هذا ونقطتين ثم اسم المصفوفة واليكم الطريقة :
for (int i : arrayName ) فقط تكون الطريقة بهذا الشكل وطبعا نريد برنامج يطبق هذا فاليكم البرنامج


1-import javax.swing.JOptionPane;

/**
*
* @author x-max1212
*/
2-public class arrayStrings {

public static void main(String[] args) {
3- int n = Integer.parseInt(JOptionPane.showInputDialog("Enter the number of names :")),i=0;
4- String employes[] = new String[n];
5- for (String name : employes) {
6- name="The name is "+(i)+" :\t";
7- String s= JOptionPane.showInputDialog(null, "Enter the name : " + (i++));
8- name += s + " ";
9- System.out.println(name);
}

}
}

ركز مع الجمل الحمراء :
1- تم شرحها من قبل
2- ترون انني قد غيرت اسم الكلاس الاساسي الذي كنا قد اتفقنا علي تسميته بهذا الاسم (الكلاس الاساسي) وهنا لاعرفك انه ليس بالضرورة لان يكون يسمي main الاسم main ضروري فقط للداله ال main التي تليه التي لايصح برنامج بدونها الا اذا كان applet وهذا موضوع اخر تماما .
3- وهي الاعلان عن متغيرين من نفس النوع هما i و n من النوع int وفي واحده ستظهر رساله الادخال للرقم او عدد او بمعني اصح حجم المصفوفة وياخذ البرنامج قيمتها ويضعها في المصفوفة والثانيه هي فقط للعد
4- هي الاعلان عن مصفوفة من النوع string
5- وهي موضوع البرنامج شكل ال for الجديد فنجد هنا اننا اعلنا عن مصفوفة من النوع string فبالتالي ستكون المتغير من النوع string ايضا مثلها ونفصل بينهما بالنقطتان الراسيتان
6- وهي لنضع في المتغير name قيمة ابتدائية ونجعلها الرساله التي تظهر في ال print وبجانبها رقم الاسم الذي ادخله المستخدم وتفصلهم المسافة \t
7- وهو الاعلان عن متغير من النوع string لاظهار رسالة الادخال للاسماء ومعها الترقيم ايضا
8- وهي طباعة الاسماء بعد ادخال كل واحده منهم
ملحوظة : احب ان اوضح الفرق بين اننا قلنا i++ , ++i الاولي تاتي بالقيمة الاولي لل i تجمع عليها 1 ثم تظهرها اما الثانية فتاتي بالقيمة الاولي ل i وتظهرها مباشرة ثم في الخطوة التي تليها تزيدها بواحد
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

ثانيا مع الشكل التاني من ال for لوب وهي لوب غير مونتهيه اصلا اي اننا لانكتب كودا بداخلها لانتهائها في وقت معين اي اننا لا نحدد لها طول معين ويكون الشكل هكذا :
for (;;) فقط لا غير ذلك ولكن الملحوظة هنا التي يجب ان تاخذها في اعتبارك عندما تستعملها ان يكون علي الاقل بها شرط معين بالدالة الشرطية if لانهائها في وقت موعين والا سوف تتسبب في ادخال السيستم في لوب لا نهائي .
حالات استخدامها اذا كنت لاتعرف ماذا يمون طول العمليه التي سوفة تحدث في البرنامج ولكنك تعرف فقط متي سينتهي او انك تضع زرا معيننا ينهي البرنامج ولكنك تريد العمليات ان تستمر مادام انك لم تضغط هذا الزر ويفضل عدم ربطها مع الزر يفضل الشرط او انك تلفها حول عدد مثلا معين مثل عدد الحروف الابجديه وانك لم تتذكر وقتها كم يكون عددها ولكنك تعرف انها ستنتي عندما تخرج كل الحروف وتكون واضع بعد قوسين الموجوعه لها جملة الانهاء system.exit(0) وبذلك تضمن انها ستنتي فورا بعد ان تنهي العملية المطلوبهة منها او مثلا تريد ان تعمل برنامج يخرب جهازك او يخرب اي جهاز اخر وتضعها حول رساله اظهار معينها في ال system.out.print وبكدا يكون اللوب لانهاء وسوف يدخل جهازك في اللوب وتخنق الرامات والكاش للبروسيسور وتضر لاعاده تشغيل الجهاز
اكرر كن حذرا في التعمامل معهاااااااا جدااااااا .
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

الان مع المصفوفة ذات المكانين في التخزين ويكون شكله هكذا [][] int array
فان اول قوسين من ناحية اسم المصفوفة وهو array يكونوا مخصصين لو يخزن بهما العدد من الصفوف والقوسين الاخرين يعنون عدد الاعمدة واليكم هذه الصورة للتوضيح :



ففي هذه الصورة نجد الصف الاول به 5 اعمده طريقة العد الصحيحة اننا نبدا من ناحية اليسار ونعد ابتداءا من الصفر فاول عمود يعني 0 والتاني 1 والثالث 2 والرابع 3 والخامس 4 والصفوف كذلك الول صف من فوق هو 0 والثاني هو1 فنري وجود A[0] [4] فصفر يعني عدد الصفوف وال 4 تعني عدد الاعمده اي الصف 0 والعمو 4 يعني الصف الاول بالنسبة لنا والعمود الخامس بالنسبة لنا وايضا في A[1][2] ستجد نفس الكلام مطبق واليكم كزء برنامج لمعرفة كيفية اننا نذكر عدد الصفوف والاعمدة في البرامج :

int a[][];
a = new int[ 2 ][ ];
a[ 0 ] = new int[ 4 ];
a[ 1 ] = new int[ 2 ];

هذه الجمل تعني :
1- اعلان عن مصفوفة تدعي a ومن النوع int وبها مكانين للتخزين صف وعمود
2 ان a بها عدد من الصفوف وهو ؟ ......
الاجابه : 2 اماكن المكان 0 والمكان 1
3- اننا نعلن علي ان الصف 0 به 4 اعمده
4- الصف 1 به 2 اعمده
الان مع البرنامج التوضيحي اكثر وكثر باذن الله :
البرنامج كل مابه هو اننا نضع قيم بداخل هذه المصفوفة ونريد من المترجم ان يخرجهلنا كما هو يراها وكما البروسيسور ينظر اليها فاليكم كود البرنامج :
اسف لان البلوجر لم يسمحل لي بوضع البرنامج فوضعته علي جوجل الخاص بي



1- نعلن عن مصفوفة تدعي a1 وهي من النوع ذات المكانين وتختزن القيم التي بين اقواس الموجموعة واذا لاحظت وجود 2 قوسين مجموعة آخرين في الداخل الاول هي محتويات الصف الاول والثاني هي محتويات الصف الثاني
2- وهو الاعلان ايضا عن وجود مصفوفة تدعي a2 وبها مكانين ايضا للتخزين وتحتوي علي قوس مجموعة باخله 3 اقواس مجموعة الاول للصف الاول والثاني للصف الثاني والثالث للصف الثالث
3- هي جملة طباعة سطر به رسالة تفيد ان الذي يليها مكونات المصفوفة الاولي
4- وهي for لوب بطول المصفوفة a1
5- وهي for لوب بداخل السابقة بطول كل عنصر من عناصر المصفوفة a1
6- وهي جملة طباعة ماقراءه المترجم او البروسيسور في برنامجك
7- نطلب منه ايطبع سطر كفاصل فقط
8- 9 - 10 - 11- 12 تم شرحهم

صورة توضيحية اخري :هنا مكونات مصفوفة تدعي c
int c[][]= {{1,2,3},{4,5}}

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

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

1- String java = "Java";
2- int i = java.length();
3- int i2 = java.codePointCount(1, i);
4- System.out.println(i + " " + i2);
5- System.out.println("---------------");
6- String substring = java.substring(0, 2);
7- System.out.println(substring);
8- System.out.println("----------------");
9- char FirstCharacter = java.charAt(0);
10- char LastCharacter = java.charAt(3);
11- System.out.println(FirstCharacter + " " + LastCharacter);
12- System.out.println("----------------");
13- int index = java.offsetByCodePoints(0, 2);
14- int codepoint = java.codePointAt(index);
15- System.out.println(codepoint);
16- System.out.println("----------------");
18- String Edit=java.substring(0,2)+"av";
19- System.out.println(Edit);
20- System.out.println("----------------");
21- String igroncase= "java";
22- if(java.equalsIgnoreCase(igroncase))
23- System.out.println(java+"=="+igroncase);
24- System.out.println("----------------");
25- if(java.compareTo("Java")==0)
26- System.out.println("Java - Java = 0");
27- System.out.println("----------------");
28- if(java.indexOf(Edit)==0)
29- System.out.println("Java index of Edit (Jaav)");
30- else
31- System.out.println("Java not index of Edit (Jaav)");
32- System.out.println("----------------");
33- if(java.indexOf("a")==1)
34- System.out.println("a index of Java == 1");
35- else
36- System.out.println("a not index of Java == 1");
37- System.out.println("---------------");
38- System.out.println(java.lastIndexOf("a"));
39- System.out.println(java.lastIndexOf("a",3));
40- System.out.println("---------------");
41- if(java.endsWith("a"))
42- System.out.println("Java end with a");
43- System.out.println();
44- System.out.println(java.toUpperCase());
45 System.out.println(java.toLowerCase());

كالعاده الجمل الحمراء ليست كلها لان منها مانعرفه ومنها ما لا نعرفه ساقوم بشرح الجديد :
2- اعلنا عن متغير من النوع int وبه طول كلمة java اي يساوي عدد احرفها ابتداءا من الصفر يعني حرف j هو 0 ,وحرف a هو 1
3- وهذه الطريقة او method : codepointcount تستدعي في حالة اننا نريد معرفة الطول الحقيقي للكلمة او الجملة وننقص منه 1 او 2 او 0 اذا اردنا ان يخرج لنا باكمله
6- وهذه طريقة اخري لكي نخرج الجزء من الكلمة او الجملة ويكون مكون من عدد الارقام التي وضعناه في القوس وفي حالتنا هذه يكون Ja
9- وهي تستدعي لمعرفة حرف معين ماهو او لاخراجه مثلا او مقارنته ونضع بين القوسين رقمه
13- وفيها قمنا بتخزين رقم الحرف من بعد الصفر
14- وفيها وقد قمنا بتحويل الحرف الا القيمة المناظره له
18- وهي تحويل او استبدال الحرفين الاخرين من الكلمة بحرفين اخرين ابتداءا من الحرف رقم صفر الا الحرف رقم 2
22- وهنا وقد تم مقارنة الكلمتان ببعضهما مع اهمال الحروف الكبيرة او الصغير
25- مقارنة الكلماتان ببعضهما ولكنه يطرحهم من بعضهما في هذه المرة
28- 37 - indexof وهي تعني هل الحرف الاول مثلا هو الحرف الفولاني اذا كانت الاجابه بنعم افعل كذا وان كانت بلا فافعل كذا
38- 29 - تعني اخر فهرس او اخر مرة تكرر فيها الحرف هذا كان رقم كام
41 - وهي لمعرفت ان كان بالفعل الكلمة او الجملة تنتهي بحرف معين او لا
44- 45 وهي لتحويل الكلمة الي احرف كبيرة او صغيرة

واذا كنا نمتلك جمله مثلا وبها احرف متكررة فان indexof في هذه الحاله عندما تشير للحرف ومعه رقم فان المترجم ينظر الي الرقم من ثلاث جوانب هل انه اكبر من موقع الحرف ام انه اصغر ام انه يساويه فمثلا :

String java="welcome to java";
System.out.println(java.indexOf("o",5));

ففي هذه الجمله المترجم يبحث عن حرف o ثم ينظر الي الرقم الذي يرافقه فان وجده اكبر من موقعه يبحث في الجمله عن الحرف في موقع اخر ويطبع قيمة او بمعني اصح قيمة موقعه اي ان ناتج هذه الجمله يكون 9 لان او o يقابلها في موقع 4 فعندما ينظر الي الرقم الذي يرافق حرف o وهو 5 يجده اكبر من 4 فيذهب ليبحث عن حرف اخر يذعي o فيطبع موقعه

وفي حالة اننا نبحث عن كلمة وليس حرف فنجده يبحث عن اول حرف في هذه الكلمة فمثلا :

String java="welcome to java";
System.out.println(java.indexOf("java",12));

هنا يطبع -1 لانه لا يجد الحرف المذكور وهو j ويحده رقم 11 فعندما يقارنه برقم 12 يجد انه اكبر فيبحث عن حرف اخر يدعي j فلم يجد فيخرج لنا قيمة -1 التي تدل علي انه لم يجد الخرف
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

رابعا وهي قراءة الملفات وقراءة ماسوف انت تقوم بكتابته وسنري الان حالة مانت سوف تكتبه فقط اليوم حتي ان يصل مستوانا الي الحد الذي يتطلب فتح فيل .txt وقراءة مابه والتعديل عليه والحفظ فيه :

القراءة عامة تكون عن طريق مايدعي ب المعرف scanner ونري انه من اسمة يعني الماسح الضوئي اي انه يقوم بالمسح وقراءة كل الحروف والمسافات التي تحتويها الكلمات او الجمل واليكم البرنامج :

1. import java.util.*;

public class InputTest
{
public static void main(String[] args)
{
2. Scanner in = new Scanner(System.in);
3. System.out.print("What is your name? ");
4. String name = in.nextLine();
5. System.out.print("How old are you? ");
6. int age = in.nextInt();
7. System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
}
}

الجمل الحمراء :
1- وهي مكتبه جديدة علينا وهي المسؤلة عن موضوع القراءة هذا ومسؤلة عن عدة موضوعات اخري سنتعرف عليها سويا في وقتها
2- وهو المعرف scanner يعرف in والحقيقة انه معرف خاص ففي هذه المرة التعريف هنا تم عن طريق هذا الكلاس وسنتعرف سويا علي موضوع الكلاسات ده وكيفية استدعاءها وكتابته باسهل وابسط الطرق الممكنه ونري هنا بداخل الاقواس system.in وهي تعني ان الكتابه ستكون هما اقراءها
3- اخراج جملة
4-وهي معناها اقراء كل السطر القادم وخزنه في متغير من النوع string واذا اردنا قراءة كلمة واحده حتي المستخدم يضع مسافة بين الكلمة والتي تليها نستخدم in.next فقط بدون line وهي تتبع الكلمات والحرف حتي ان تصل الي مسافة وتقف المسافة هي space او المسطرة
5- اخراج جملة
6- وهي نعرفه ان الذي سوف يدخل له رقم من النوع int فحزنه في هذا المتغير الذي يكون من النوع int ايضا ويجد nextdouble و nextlong و nextFloat ........الخ وتحددها علي حسب معرفتك للدخل
7- وهي طباعة الكلمة التي ادخلها المستخدم وعمره مجمع عليه رقم واحد

المرة القادمة باذن الله تعالي سنتعرف فيها سويا علي ماهو اعلا واعلا في الجافا
انتظروني ..........

Waiting for me
Read this..

14- الجافا في عمليات الاس والجزر التربيعي والباي

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

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



1- import javax.swing.*;

/**
*
* @author X-maX1212
*/
public class Module2 {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

2- String signumt=JOptionPane.showInputDialog(null,"Enter the value of Sigma t: ","Please Enter ",JOptionPane.INFORMATION_MESSAGE);
3- double signumOfT=Double.parseDouble( signumt);
4- String W=JOptionPane.showInputDialog(null,"Enter the Value of w : ","Please Enter ",JOptionPane.INFORMATION_MESSAGE);
5- double w=Double.parseDouble(W);
6- String tt=JOptionPane.showInputDialog(null,"Enter the Value of t :","Please Enter ",JOptionPane.INFORMATION_MESSAGE);
7- double t=Double.parseDouble(tt);
8- String B=JOptionPane.showInputDialog(null,"Enter the Value of Sigma b : ","Please Enter ",JOptionPane.INFORMATION_MESSAGE);
9- double signumOfB=Double.parseDouble(B);
10- String T=JOptionPane.showInputDialog(null,"Enter the Value of Taw : ","Please Enter ",JOptionPane.INFORMATION_MESSAGE);
11- double taw=Double.parseDouble(T);
12- String Message=JOptionPane.showInputDialog("You needs no. of rivet Sigma "+"\n"+"if yes Enter 1"+"\n"+"if No Enter 2");
13- int X=Integer.parseInt(Message);
14- if(X==1){
15- String A=JOptionPane.showInputDialog(null,"Enter the Value of P :","Please Enter ",JOptionPane.INFORMATION_MESSAGE);
16- double p=Double.parseDouble(A);
17- String M=JOptionPane.showInputDialog(null,"Enter the Value of d :","Please Enter ",JOptionPane.INFORMATION_MESSAGE);
18- double d=Double.parseDouble(M);
19- double nt=((w/d)-(p/(d*t*signumOfT)));
20- double ns=((4*p)/((Math.PI)*(Math.pow(d,2))*taw));
21- double nb=(p/(signumOfB*d*t));
22- JOptionPane.showMessageDialog(null,"the Values is "+"\nnt= "+nt+"\nns= "+ns+"\nnb= "+nb,"All Values ",JOptionPane.INFORMATION_MESSAGE);
23- if (nt>ns && nt>nb)
24- JOptionPane.showMessageDialog(null,"The Maxmum value is : "+"\nnt= "+nt,"The Maxmum ",JOptionPane.INFORMATION_MESSAGE);
25- if (ns>nt&&ns>nb)
26- JOptionPane.showMessageDialog(null,"The Maxmum value is : "+"\nns= "+ns,"The Maxmum ",JOptionPane.INFORMATION_MESSAGE);
27- if (nb>nt&&nb>ns)
28- JOptionPane.showMessageDialog(null,"The Maxmum value is : "+"\nnb= "+nb,"The Maxmum ",JOptionPane.INFORMATION_MESSAGE);
}
29- if (X==2){
30- String NT=JOptionPane.showInputDialog(null,"Enter the Value of nt ","Please Enter ",JOptionPane.INFORMATION_MESSAGE);
31- double nt=Double.parseDouble(NT);
32- String NS=JOptionPane.showInputDialog(null,"Enter the Value of ns","Please Enter ",JOptionPane.INFORMATION_MESSAGE);
33- double ns=Double.parseDouble(NS);
34- String NB=JOptionPane.showInputDialog(null,"Enter the Value of nb","Please Enter ",JOptionPane.INFORMATION_MESSAGE);
35- double nb=Double.parseDouble(NB);
36- String Messag=JOptionPane.showInputDialog("You needs Load ?"+"\n"+"if yes pressed 1"+"\n"+"if No pressed 2");
37- int Xmax=Integer.parseInt(Messag);
38- if (Xmax==1){
39- String D=JOptionPane.showInputDialog(null,"Enter the Value of d :","Please Enter ",JOptionPane.INFORMATION_MESSAGE);
40- double d=Double.parseDouble(D);
41- double pt=(w/d)-(nt*(d*t*signumOfT));
42- double ps=(ns*(Math.PI*Math.pow(d,2)*taw))/4;
43- double pb=nb*(signumOfB*d*t);
44- JOptionPane.showMessageDialog(null,"the Values is: "+"\npt= "+pt+"\nps= "+ps+"\npb= "+pb,"All Values ",JOptionPane.INFORMATION_MESSAGE);
45- if (pt>ps && pt>pb)
46- JOptionPane.showMessageDialog(null,"The Maxmum value is : "+"\npt= "+pt,"The Maxmum ",JOptionPane.INFORMATION_MESSAGE);
47- if (ps>pt&&ps>pb)
48- JOptionPane.showMessageDialog(null,"The Maxmum value is : "+"\nps= "+ps,"The Maxmum ",JOptionPane.INFORMATION_MESSAGE);
49- if (pb>pt&&pb>ps)
50- JOptionPane.showMessageDialog(null,"The Maxmum value is : "+"\npb= "+pb,"The Maxmum ",JOptionPane.INFORMATION_MESSAGE);
}
51- if(X==2){
52- String P=JOptionPane.showInputDialog(null,"Enter the Value of P :","Please Enter ",JOptionPane.INFORMATION_MESSAGE);
53- double p=Double.parseDouble(P);
54- double dt=(w/nt)-(p/(nt*t*signumOfT));
55- double ds=(4*p)/(Math.PI*Math.pow(ns,2)*taw);
56- double db=p/(signumOfB*nb*t);
57- JOptionPane.showMessageDialog(null,"The Values is: "+"\ndt= "+dt+"\nds= "+ds+"\ndb= "+db,"All Values ",JOptionPane.INFORMATION_MESSAGE);
58- if (dt>ds && dt>db)
59- JOptionPane.showMessageDialog(null,"The Maxmum value is : "+"\npt= "+dt,"The Maxmum ",JOptionPane.INFORMATION_MESSAGE);
60- if (ds>dt&&ds>db)
61- JOptionPane.showMessageDialog(null,"The Maxmum value is : "+"\nps= "+ds,"The Maxmum ",JOptionPane.INFORMATION_MESSAGE);
62- if (db>dt&&db>ds)
63- JOptionPane.showMessageDialog(null,"The Maxmum value is : "+"\npb= "+db,"The Maxmum ",JOptionPane.INFORMATION_MESSAGE);
}
}
}
}

نعم البرنامج كبير عليكم بعض الشيء ولكن سنتعرف عليه سويا بدون اي صعوبة ابدا وبعد فهمنا له جيدا سنجده في غايه السهوله واليسر باذن الله تعالي
الجمل الحمراء :
1 - وهي اضافة مكتبه ال swing وهي التي بها كل ما نريده من الرسائل التي سوف تظهر والحسابات وكل شيء يخص هذا البرنامج وقد قمت بوضع علامة * لاعني للمترجم انني اريد كل المكتبات التي توجد بداخل ال swing
2- وهو الاعلان عن السترينج الذي سوف يدخل منه اليوزر او المستخدم قيمة السيجما لمتغير معين وهو t فيقوم المستخدم بادخال القيمة من خلال الرسالة وتلاحظ وجود ,JOptionPane.INFORMATION_MESSAGE
وهي خاصية اخري من خواص الجافا وتعني ان الرساله التي سوف تظهر سوف تكون من النوع information والكلمة او الجملة التي تسبقها هي التي سوف تكون في عنوان الرساله
3- وهو الاعلان عن قيمة من النوع double ونعرف المترجم ايضا انا الذي سوف يدخل له من الرساله قيمة من النوع double اي ان ممكن ان يكون بها علامات عشرية
4- وهو الاعلان عن ال string الذي سوف يطلب من المستخدم ادخال قيمة w لياخذا البرنامج ويقوم بعمل العمليات الحسابيه عليها هي الاخري
5- وهو الاعلان عن قيمة من النوع double ونعرف المترجم ان الذي سوف يدخل له من الرساله السابقة هو قيمة ومن النوع double
11: 6- هو نفس الشيء ونفس الشرح السابق قيم يطلبها من المستخدم ونعلن عن قيمة من النوع double لنعرف المترجم ان الدخل سوف يكون من النوع double
12- وهو ال string الذي سوف يقوم بسؤال المستخدم هل انت تريد طريقة الحساب هذه اذا نعم ادخل رقم 1 واذا لا ادخل رقم 2
13 وهو العلان عن القيمة X هي التي سوف يدخلها المستخدم في الرساله سواء انها 1 او 2
14- وهي قاعده if ونعرف البرنامج ان اذا ادخل المسخدم القيمة 1 قم بهذه العمليات الحسابية المحصورة بين قوسين المجموعة ل if
18 - 15 : هو نفس الشيء ونفس الشرح السابق قيم يطلبها من المستخدم ونعلن عن قيمة من النوع double لنعرف المترجم ان الدخل سوف يكون من النوع double
19 - وهو المهم في برنامجنا هذا ((w/d)-(p/(d*t*signumOfT))) البروسيسور ينظر الي هذه العملية من منظور معين وهو الافضليه في العمليات الحسابية فانه يبدا دائما بالضرب ثم يليه الموديلاس ثم يليها الجمع ثم يليها
القسمة ثم يليه الطرح ففي هذه العملية يوجد قسمة وضرب وطرح فبايهما يبدا اولا يبدا منحيث الاقواس فنرى ان اول عمليه هي عملية القسمة وتوضع بين قوسين فينظر لها ويطرق الباقي ويقوم باخذ القيمة w ويقسمها علي d ويخزنها عنده في الذاكرة ثم يذهب الي العمليات التي تليها فيجد قوسين اخرين وبهم عمليات حسابيه ايضا ويجد بالخارج عملية طرح فيذهب الي القوسين اولا ليتمم العمليات التي بداخلها فيجد عمليه قسمة وعملية ضرب فيقوم بعملية الضرب اولا ويخزنها ايضا في الذاكرة ثم يقسمها علي القيمة التي توجد خارج القوس الذي به عملية الضرب ثم يخزن القيمة في الذاكرة ويبدا في عملية طرح القيمتان التي يوجدوا في الذاكرة وهم ناتق القسمة الاول وناتج الضرب ثم القسمة ثانيا ويخزن النات في المتغير nt وهو من النوع double
20- وهو من المهم في موضوعنا اليوم ا
لعملية في هذه المرة تبدو معقده اكثر ولكن انتظر قليا كما قولنا البروسيسور ينظر الي عملية الضرب اولا فيقوم بعملية ضرب p * 4 ويخزنها في الذاكرة ثم يبدا في عملية (Math.pow(d,2)) وهي تعني اننا نستدعي الصنف class math اي للحساب وبه method وهي pow التي تقوم بعملية الاوس ومعنا مابداخل الاقواس d,2 تعني d اوس 2 ويضربها فيtaw ثم يبدا في math.pi والتي تعني اننا نستدعي الصنف class math والذي به method وهي pi والتي تعني باي التي تساوي 3.14 ثم يضربها في القيمة الناتجة من ضرب العمليات السابقة ويبدا قي قسمتها علي قيمة ال p
21- سوف يبدا بعمليات الضرب اولا ثم يبدا في القسمة
22- 53 تم شرحهم سابقا بكل مافيهم من عمليات مقابا بين الارقام واخراج القيمة الاكبر ومن عمليات الحساب واخراج الناتج ومن عمليات اظهار السائب وتعرف للمترجم ان الرقم الذي سوف يدخل سيكون من النوع كذا
54 - وهو سوف يقم بعمليات الضرب اولا ثم القسمة
55- وهي مثل الخطوة رقم 20
56- وفيها ايضا الضرب اولا ثم القسمة
57- الي اخر البرنامج تم شرحه سابقا وهو به عمليات ال if والمقارنات من حيث الاكبر واخراج الناتج للقم واخراج القيمة الاكبر و ال strings التي بها الرسائل التي نريدها ان تظهر للمستخدم

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

ويوجد طريقة اخري وهي لاخراج الجزر التربيعي وهي ايضا بستخدام الصنف او class الذي يدعي math والطريقة او ال method
math.spr(4)
ويكون شكلها في البرنامج هكذا :

double x = 4;
double y = Math.sqrt(x);
System.out.println(y);

ويوجد العليات الاخر ايضا مثل حساب زاوية موعية او اللوج و .......الخ واليكم ال method

Math.sin
Math.cos
Math.tan
Math.atan
Math.atan2
Math.exp
Math.log
Math.exp
Math.log



wait for me
Read this..

13-Switch - case - default

اليوم سنتعرف سويا علي قاعده جديده وهي قاعده التحويل عند حاله معينة وعلي حسب شيء موعين وهذه القاعده شبيه جدا بالقاعدة الشرطية انه عندما يحدث كذا افعل كذا وغير ذلك افعل كذا وقد سبق وتعرفنا سويا علي هذه القاعده الشرطيه وقلنا انها قريبا جدا من حياتنا اليوميه فاننا نقول اذا حدث كذا سوف اقوم بعمل كذا واذا حدث كذا سوف افعل كذا وغير ذلك سوف افعل كذا وفي هذه القاعدة الجديدة اليوم قريبة ايضا من حياتنا اليوميه فاننا نقول في حالة حدوث كذا سوف افعل كذا وفي حالة كذا سوف افعل كذا وان لم يحدث هذا وهذا سوف افعل كذا وهذا ما ينطبق علي قاعدتنا اليوم وهي قاعدة switch و case و default
فكلمة switch تعني التحويل بين الحالات و case هي الحالات التي سوف تحدث وكلمة default هي الحاله الوحيدة التي نقول فيها في حالة عدم حدوث كذا وكذا وكذا سوف افعل كذا ففي برنامج البسيط اليوم نقوم فيه بالتعرف علي ال switch,case,default فاننا مثلا نريد ان نسوي برنامج يتعرف منه مستخدم البرنامج علي الشهور فاذا ادخل رقم معين اخرج له اسم الشهر الذي يريده واذا ادخل رقم غير الموجودين في البرنامج يخرج له ان هذا رقم خطا بان هذا الرقم غير صحيح فيكون البرنامج هكذا :

import java.util.Date;
import javax.swing.JOptionPane;

/**
*
* @author x-max1212
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String name,input=JOptionPane.showInputDialog("Enter number of month");
int month=Integer.parseInt(input);
switch(month){
case 1 :name="Jan";break;
case 2 :name="Feb";break;
case 3 :name="Mar";break;
case 4 :name="Apr";break;
case 5 :name="May";break;
case 6 :name="Jun";break;
case 7 :name="Jul";break;
case 8 :name="Aug";break;
case 9 :name="Sep";break;
case 10:name="Oct";break;
case 11:name="Nov";break;
case 12:name="Dec";break;
default:name="Invalid number of month Please try again";
}
JOptionPane.showMessageDialog(null,"The month is : "+ name+"\n" + new Date());

}

}

كما نحن متفقين الجمل الحمراء :
ا- التعريف string يعرف اثنان وهما الاسم للشهر والثاني للرساله الانيقة التي اتفقنا عليها من قبل وهي رساله الادخال لرقم الشهر الذي يريده المستخدم .
2- وهو التعريف int لرقم الشهر ونعرف الكومبيلر او المترجم ان الذي سوف يدخل لك من هذه الرساله هو رقم وليست كلمة
3- وهي بداية موضوعنا اليوم وهي القاعده switch وانا نقوله حول علي حسب هذا المتغير وهو month بين هؤلاء الحالات
4- : 16- وهنا نبدا الحالات في حالة واحد يكون الاسم هو يناير واثنان يكون الاسم بمعني الاسم للشهر طبعا يكون فبراير ويمكنك كتابته بالعربي طبعا كما اتفقنا ان ال string لا ينتبه لما انت تكتبه في داخله اهم شيء بالنسبه له هو ان يكون بين العلامتين " " هاتان وفي نهاية كل جملة نكتب كلمة break التي تعني للبرنامج انه بعد ان ينتهي من تخزين الاسم المقابل للمتغير في ال name يخرج من بين قوسين المجموعة {} switch وينتقل الي اظهار الاسم في الرسالة وهكذا حتي الرقم الذي نريده في وهو في هذا البرنامج رقم 12
17 - وهي كلمة default المناظرة الي كلمة else في القاعده الشرطية if and else وهو ان البرنامج اذا وجد الادخال ليس مناظرا لقيمة يملكها يتجه الي هذه الرساله او الي هذه الحاله ويخزن في ال name ان الرقم الذي ادخلته غير صحيح
18- وفي النهاية يظهر الناتج وهو اسم الشهر في الرسالة وبداخلها ايضا التاريخ لليوم وهو بستخدام المكتبه الخاصة به ليظهر التاريخ وهي
import java.util.Date

ملحوظة مثل مايوجد في لغة الجافا break يوجد continue وهي للتكملة
اي انهم يستخدموا مثلا اذا حبيت ان اخرج البرنانج من لوب معين في لحظه معينه ويكون ذلك بستخدام break واذا اردته ان يستمر يكون بستخدام continue ويمكن وضعها في ال for لوب او if او do while وليس شرط switch فقط

وفي المرة القادمة سوف نتعرف علي ادخال هذه القاعده مع المصفوفة array ونتعرف علي ال array with two dimensional اي يكون شكله هكذا
[][] int array اي بمكانين للتخزين
والي لقاء اخر باذن الله تعالي قريبا جدا مع المتعة اكثر واكثر واكثر

Thanks for your time

Read this..

12- some programs about for loop and array

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

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

الجمل بالترتيب :
1- اعلنا عن string سوف تظهر به الرساله التي اتفقنا عليها من قبل وفيها انك تسال اليوزر اذا كان معه ارقام المقاومة مثال 1 كيلو اوم ولا يعرف الالوان يدخل الرقم واحد ثم يدخل اول رقم وهو 1 ثم ثاني رقم وهو 0 ثم ثالث رقم وهو 2 اي عدد الاصفار اي اننا حولنا قيمتها من كيلو اوم الي اوم فقط
او انه يملك الالوان ولا يعرف قيمتها يدخل رقم 2 او اي رقم اخر ويبدا البرنامج بسؤاله عن الالوان منغير طبعا الذهبي او الفضي لانهم لتحديد كفائة المقاومة فقط الذهبي الافضل طبعا من الفضي
2- اعلنا عن integer بمعني متغير الذي سوف يدخله اليوزر سواء كان 1 او 2
3- اعلنا عن وجود مصفوفة اي array الذي يحتوي علي الارقام فبالتالي سوف يكون من النوع int
4- المصفوفة الثانية التي تحتوي علي الالوان التي سوف يتم مقارنتها بالمصفوفة الاولي لاخراج الناتج سواء كان ارقام اي انه من المصفوفة الاولي او الوان اي انه من المصفوفة الثانية
5- اعلان عن ال strings التي نملكها كلها او التي سوف نحتاج اليها في البرنامج
6- وهو الاعلان عن رقم من النوع integer وهو القيمة المقاومة التي سوف يدخلها اليوزر
7- وهي اللوب بستخدام for ونريد منها ان تكرر لنا العمليات التي تليها ثلاث مرات لكي يكون ادخل اليوزر الارقام
8- وهي string s وقد قمنا بالاعلان عنه قبل الfor والان في هذه الجمله نضع به الرساله التي نريدها ان تظهر وتطلب من اليوزر ادخال اولا اول رقم ثم الثاني ثم الثالث لاخراج له الالوان
9- وهو اننا نعرف البروسيسور كما اتفقنا قبل ذلك ان الذي سوف يدخل من الرساله سوف يكون رقم وليس كلمة
10- for loop التي تبحث في المصفوفتين وتخزن الناتج في string out ليتم اخراجه وتلاحظ ان اللوب بطول المصفوفة resistanceValue لانه سوف يتم البحث في المقابل لها في المصفوفة التانية
وفي الجمله 11 نشطرت انا اذا تساوة المصفوفة resistanceValue وكما تراي اننا وضعنا c مكان الرقام اي بين قوسين [ ] لنعرف البرنامج انه سوف يبحث في هذه الارقام ونشترط اذا ساوة كلمة في المصفوفة الثانيه ان ياتي بها ويخزنها في out حتي يحين وقت ظهورها اي يخزنها في الرامات حتي تنتهي ال for loop اي بعد عدد 3 مرات
والجمل التاليه بنفس الطريقة ولكن مع اللون والملحوظة هنا ان مقارنة 2 string ببعضهم لا تقارن ب == ولكن
ب ( ونضع هنا المقارن به )equals .

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

الان مع البرنامج الشهير بقالب المصفوفة وهو reverse array

String out ,s,str1,str2;
str1=" enter the number of array";
str2=" enter the number #";
int n;
out="the array :\n";
s=JOptionPane.showInputDialog(str1);
n=Integer.parseInt(s);
int arr[]=new int[n];
for (int i=0;i<=arr.length-1;i++){ s=JOptionPane.showInputDialog(str2+(i+1)+":"); arr[i]=Integer.parseInt(s); out+=arr[i]+" "; } out+=" \nthe revers of array :\n"; for (int j=arr.length-1;j>=0;j--)
out+=arr[j]+" ";
JOptionPane.showMessageDialog(null, out);



الجمل الحمراء :
1- اعلان عن ال strings التي نريدها في البرنامج
2- 3 - وهم وضع الجمل التي نريدها ان تظهر
4- اعلان عن القيمة n من النوع int
5- string out وبه الجملة التي سوف يظهر بها الناتج بعد القلب
6- string s وبه جملته
7 - التعريف للبروسيسور ان الدخل سوفيكون من النوع int
8- المصفوفة array التي سوف يدخلها اليوزر ويحدد عددها ويتم القلب ليها
9- for loop بطول المصفوفة array الذي سوف يحدده اليوزر
10- ال string s نغير جملته بجمله اخري ويكون بيها العداد الذي تحدد علي حسب الرقم الذي ادخله اليوزر
11 - واننا نعرفه ان الارقام الداخلة هي المصفوفة arr وانها من النوع int
12 - تخزين الدخل في ال out لحين انتهاء العداد او طول المصفوفة التي حددها اليوزر
13- وهو تغير جملة ال out الي المقلوب
14- for loop ولاحظ فيها اننا عكسنا القيمة المبداية لل j وان تكون القمة التي تلي اكبر قيمة . وغيرنا انها تساوي صفر بانها اكبر من او بتساوي صفر
15 - وهو ان نخزن في المصفوفة بعد القلب في ال out ليتم اظهارها

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

البرنامج الثالث وهو مثلا اننا نريد لعمل مايشبه ساعة الايقاف stop watch ولكن ليست مثلها تماما ولكنها تؤدي نفس الغرض فاننا نريد ان نظهر عداد للثواني وعداد للدقائق وللساعات ويستمر حتي ان ننهيه بادخال رقم معين مثلا فيكون البرنامج هكذا :




int exit=-1;
do {
int hours,min,second = 0;
for(hours=0;hours<=59;hours++){
for(min=0;min<=59;min++){
for(second=0;second<=59;second++){
System.out.println((hours)+" "+(min)+" "+(second));
}
System.out.println((hours)+" "+(min)+" "+(second));
}
System.out.println((hours)+" "+(min)+" "+(second));
exit=Integer.parseInt( JOptionPane.showInputDialog(null, "the number of hours "+ hours+" Enter -1 to exit"));
if(exit==-1){
System.exit(0);
}
}
}while(exit!=-1);


الجمل الحمراء :
1- واننا اعلنا عن وجود متغير من نوع int وهو الرقم الذي سوف ندخله لكي يغلق البرنامج تماما
2- وهي do اي اننا نقول للبرنامج افعل هذا حتي ان يتم ادخال الرقم الذي يوجد في المتغير الذي اعلنا عنه في بدايه البرنامج وهو exit حتي ان يساوي -1
3- وعلنا عن المتغير ات التي سوف نستعملها وهو hours , min ,seconds ووضعنا قيمة ابتدائية للثواني حتي يتم العد من بدايتها
4- وهي بدايه for المتتكرره التي تزيد الساعات بواحد عندما تزيد الدقائق الي ان تصل الي 59
5- وهي بدايه ال for المتتكررة التي تزيد الدقائق بواحد عندما تصل الثواني الي 59
6- وهي ال for التي تزيد الثواني بستمرار
7 - وهي طباعة القيمة الحاليه للساعات والدقائق والثواني
8- وهي ايضا طباعة القيم الحالية للساعات والدقائق والثواني ولكن بعد زيادة الدقائق بواحد
9- وهي طباعة القيم ولكن بعد زياده الساعات بواحد
10- وهي اننا نعرف البرنامج ان الذي سوف يدخل له من الرساله هي قيمة من النوع integer
11- وهي اننا نشترط علي البرنامج ان في حاله ادخال اليوزر او المستخدم لهذا البرنامج قيمة -1 اغلق البرنامج تماما بجملة system.exit(0 ) وهي افضل طريقة لاغلاق اي برنامج والرقم 0 هو بالملي ثانية اي في نفس لحظة ادخالها
12- وهي اغلاق قاعده do{}while بالشرط وهو ان تنفذ البرنامج طالما ان المستخدم لم يدخل رقم -1 في الرساله وهذه الرساله سوف تظهر بعد ان يزيد عدد الساعات بمقدار واحد حتي تعرف للمستخدم ان عدد الساعات قد وصل الي كذا اذا اردت الخروج من البرنامج ادخل رقم -1 .



يارب تكون البرامج عجبتكم وباذن الله انتظروا مني الجديد والاعلي والاعلي باذن الله تعالي وفي برامج المرة القادمة اكثر واكثر باذن الله تكونوا بعدها الفكرة وضحة بالنسبة لكم جدددددددااااااااااااا
بالتوفيق انشاء الله تعالي


Read this..

11- for and array


اليوم اخيرا سوف نتمتع مع المصفوفة والاكثر من رائع في الاستخدام :

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




الجمل الحمراء :

الاولي وهي نعلن عن وجود مكان من النوع int وهو مكان الترتيب او بمعني اصح الذي سوف يخزن فيه الترتيب .

2- وهي كما ترون string ليخزن فيه الارقام الاصليه التي تم ادخالها .

3- وهي الرسالة التي سوف يدخل بها اليوزر عدد الارقام التي يريد ان يرتبها .

4- وهي الاعلان عن ان الرقم الذي سوف يدخله اليوزر من خلال هذه الرساله سوف يكون من النوع int .

5- وهي اهم خطوة في موضوعنا وهي فتح ال array وهي تكون بالطريقة التي امام حضراتكم نعني انه سوف يكون من النوع int نقول للبروسيسور افتحلنا مكان جديد عن طريق قولنا كلمة new ثم نعرفه ان حجمه سيكون من هو الرقم الذي سوف يدخله اليوزر من الرساله

6- وهي ال for بطول ال arrayتقوم باظهار الرساله التي تليها في السطر ال 7

8- وهنا نعرفه ان ال array وارقامه سوف تدخل من هذه الرساله وسوف تكون من النوع int

9- وهي خطوة التخزين في ال string

10 -وهي for بطول ال array ايضا لتكرر ال for التي تليها في السطر 11

12و 13و 14 و15 : هم الترتيب لاحظ معي اولا نسأل البروسيسور الرقم الاول هل هو اكبر من الذي يليه اذا كان

الاجابه بنعم ضعه في متغير الترتيب وضع في مكان الرقم الاول الرقم الذي يليه وضع الرقم المخزن في متغير الترتيب في الرقم الذي

يليه وكرر حتي ان ينتهي طول ال array .

16- وهي وضع في ال string الرساله هذه .

17 - وهي ال for التي سوف تكرر الذي يليها في السطر ال 18 وهو التخزين بعد الترتيب في ال output

19 - وهي الرساله النهائية التي سوف يظهر فيها الناتج قبل الترتيب وبعده .

ملاحظة : نحن لم ننتهي من array بعد سوف اقوم المرة القادمة باذن الله تعالي بوضع برامج اقوي واقوي لكي يفهما

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

array و for لكي يتضح الامر اكثر واكثر .

Join with java

Read this..

 
© Java ::.Write Once,Run AnyWhere