الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

شرح الكود:)

بدأه Java-19 في 2 ديسمبر 2010 · 2 رد · 625 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ...

بصراحه انا حاولت افهم الكود .. بسس ماعرفت خصوصا اني مبتادئه بـ الجافا .. + loop

هذا الكود ..

import java.util.*;

public class Q2

{

static Scanner console = new Scanner(System.in);

public static void main(String[] args)
{

int num;
int reverse ;
int num1 ;
boolean done ;

reverse = 0;
num1 = 0;
done = false;

System.out.print("Enter an integer: ");

num = console.nextInt();

System.out.print(" Your number with the digits reversed is ");


if (num < 0)

{
num = -num;
done = true;
}

while (num > 0)
{
reverse = reverse * 10 + num % 10;
num = num / 10;
num1++;
}

if ( done )
System.out.print("");

num1--;


if (num1 > 0)
while (reverse / (int)(Math.pow(10, num1)) == 0)
{
System.out.print(0);
num1--;
}

System.out.println(reverse);
}
}

بليييييييز احد يشرررحه لي

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

يعطيكم العافيه مقدماا...

والله يجعلها من موازين حسانتكم يارب..

تم تعديل هذه المشاركة بواسطة .S.T.A.L.K.E.R في 3 ديسمبر 2010 في 03:09 — السبب: add code tag next time plz

#2

أولاً هذا هو الكود بالطريقة التي طلبها المشرف ،،، =)

import java.util.*;


public class Q2{

	static Scanner console = new Scanner(System.in);

	public static void main(String[] args)
	{

		int num;
		int reverse ;
		int num1 ;
		boolean done ;

		reverse = 0;
		num1 = 0;
		done = false;

		System.out.print("Enter an integer: ");

		num = console.nextInt();

		System.out.print(" Your number with the digits reversed is ");


		if (num < 0){
			num = -num;
			done = true;
		}

		while (num > 0){
			reverse = (reverse * 10) + num % 10;
			num = num / 10;
			num1++;
		}

		if ( done )
			System.out.print("");

		num1--;


		if (num1 > 0)
			while (reverse / (int)(Math.pow(10, num1)) == 0)
			{
				System.out.print(0);
				num1--;
			}

		System.out.println(reverse);
	}
}

في البداية ،، هذا الكود وظيفته يقوم بعكس الرقم المعطى ،، فمثلاً إذا أدخلت الرقم "123" فسوف يعطيك النتيجة "321"

والـ"loop" الذي يقوم بعكس الرقم بالتحديد هو هذا

while (num > 0){
			reverse = (reverse * 10) + num % 10;
			num = num / 10;
			num1++;
		}

في بداية الـ"loop" تكون القيم كما يلي

قيمة reverse هي "0"

قيمة num هي الرقم المعطى وليكن "123"

قيمة num1 هي 0

بما إن num أكبر من "0" سيتحقق شرط الـ"loop"

أول جملة داخل الـ"loop" هي

reverse = (reverse * 10) + num % 10;

بما إن قيمة reverse للآن "0" فحاصل ضربها بـ"10" سيكون "0" و الباقي من قسمة num والذي يساوي "123" على "10" سيكون "3" <<<< % هو الباقي من قسمة عدد صحيح على آخر

الآن ستكون قيمة reverse هي "0+3" = "3"

الجملة الثانية هي

num = num / 10;

وهي تقوم بقسمة num على "10"

ستكون العملية كما يلي : 123/10 = 12.3 وبما إن num من نوع int فسوف تتخلص الجافا مما بعد الفاصلة ليكون الناتج int إذا ستكون قيمة num تساوي 12

الجملة الأخيرة في الـ"loop" هي

num1++;

بصراحة لا أدري لماذا أضفت هذه الجملة ،، فالبرنامج يعمل بدونها

المهم ستصبح قيمة num1 تساوي 0+1 = 1

الآن القيم بعد أول دورة في الـ"loop" هي

قيمة reverse هي "3"

قيمة num هي "12"

قيمة num1 هي "1"

وبما أن قيمة num أكبر من "0" سنعيد الكرة مرة أخرى وندخل الدوررة الثانية في الـ"loop" ؛

reverse = (reverse * 10) + num % 10;

الآن قيمة reverse تساوي "3"

reverse * 10 = 3 * 10 = 30

قيمة num تساوي "12"

num%10 = 12%10 = 2

الآن نجمع "30+2" = "32"

num = num / 10;

num الآن تساوي 12

num/10 = 12/10 = 1.2 = 1 حذفنا مابعد الفاصلة كما أسلفنا

num1++;

num1 = 2

الآن القيم بعد الدورة الثانية في الـ"loop" هي

قيمة reverse هي "32"

قيمة num هي "1"

قيمة num1 هي "2"

وبما أن قيمة num أكبر من "0" سنعيد الكرة مرة أخرى وندخل الدوررة الثالثة في الـ"loop" ؛

reverse = (reverse * 10) + num % 10;

الآن قيمة reverse تساوي "32"

reverse * 10 = 32 * 10 = 320

قيمة num تساوي "1"

num%10 = 1%10 = 1

الآن نجمع "320+1" = "321"

num = num / 10;

num الآن تساوي "1"

num/10 = 1/10 = 0.1 = 0 حذفنا مابعد الفاصلة كما أسلفنا

num1++;

num1 = 3

الآن القيم بعد الدورة الثالثة في الـ"loop" هي

قيمة reverse هي "321"

قيمة num هي "0"

قيمة num1 هي "3"

وبما أن قيمة num ليست أكبر من "0" سنخرج من الـ"loop" ونقوم بطباعة reverse على الشاشة والذي يساوي "321" والذي هو عكس "123" الذي أدخلناه سابقاً

=)

#3

يالله شررحك بطلل ماشاء الله علييك ...

اللله يووووفققققك ويسسهل علييك ...

فهمته الحمد الله ...

الله يعطيك العافيه ماقصرت ..

مواضيع مشابهة