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

كيف استخدم Swap بداخل While

بدأه Zaianb في 13 أبريل 2009 · 7 رد · 723 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أخواني الكرام

في السابق قمت بعمل الكود التالي

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace classswapl

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("please entar n1");

int n1 = int.Parse(Console.ReadLine());

Console.WriteLine("please entar n2");

int n2 = int.Parse(Console.ReadLine());

Console.WriteLine("number 1 was {0}", n1);

Console.WriteLine("number 2 was {0}", n2);

Swap(ref n1, ref n2);

Console.WriteLine("After the swap method");

Console.WriteLine("number 1 is {0}", n1);

Console.WriteLine("number 2 is {0}", n2);

Console.ReadLine();

}



public static void Swap(ref int n1, ref int n2)

{

int temp = n1;

n1=n2;

n2=temp;

}





}



}

الكود السابق يقوم بسؤال المستخدم عن رقمين

ثم يقوم بتغير ترتيبهم

لو فرضنا انا المستخدم

ادخل الرقم الاولى 40

الرقم الثاني 70

سيكون الناتج

70

ثم

40

لكن انا الان حاولت استبدال الفكره

فانا الان ارغب بسؤال المستخدم عن ادخال اسماء

ثم يقوم بتغير ترتيبهم

لقد قمت المحالولة التاليه

 using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace nameswap

{

class Program

{



static void Main(string[] args)

{

ArrayList Names = new ArrayList();

string name ="";

string name1 = "";

string name2 = "";

Console.WriteLine("please entar student name");

name = Console.ReadLine();

while (name != "")

{

Console.WriteLine("please entar student name");

name1 = Console.ReadLine();

Console.WriteLine("please entar student name");

name2 = Console.ReadLine();

}

Console.WriteLine("Student Name ", name1);

Console.WriteLine("Student name", name2);

Swap(ref name1, ref name2);

Console.WriteLine("After the swap method");

Console.WriteLine("Student Name", name1);

Console.WriteLine("Student name", name2);

Console.ReadLine();

}

public static void Swap(ref string name1, ref string name2)

{

string temp = name1;

name1 = name2;

name2 = temp;

}



}

}

لكن الكود يستمر بسؤال المستخدم من غير توقف

أخواني

إذا كان هناك من لديه القدرة على مساعدتي فليتكرم علي بذلك

وانا له من الشاكرين

تحياتي لكم جميعا

#2

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

using System;
using System.Collections.Generic;
namespace nameswap
{
	class Program
	{
		static void Main(string[] args)
		{
			Stack<string> Names = new Stack<string>();
			while (true)
			{
				Console.WriteLine("please entar student name or enter to end");
			  string  name = Console.ReadLine();
			  if (name == "") break;
				Names.Push(name);
			}
			if (Names.Count == 0) return;
			Console.WriteLine("After swap Names");
			while (Names.Count > 0)
				Console.WriteLine("Student Name " + Names.Pop());
			Console.ReadLine();
		}
	}

}

وظيفة Stack : ما يدخل اولا يخرج أخرا First in last out

قولوا لا اله الا الله تفلحوا

ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم

#3

شكراً لك اخي الكريم

يعطيك العافيه

ماذا عن

swap

لا أستطيع أسخدامها في هذه الحاله؟؟!!

#4

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

بتنفع تستخدم swap ميثود

وهي الكود

using System;
using System.Collections.Generic;
namespace nameswap
{
	class Program
	{
		static void Main(string[] args)
		{
			string name1 = "";
			string name2 = "";
			Console.WriteLine("please entar student A name");
			name1 = Console.ReadLine();

			Console.WriteLine("please entar student B name");
			name2 = Console.ReadLine();
			Swap(ref name1, ref name2);
			Console.WriteLine("After the swap method");

			Console.WriteLine("Student Name A " + name1);
			Console.WriteLine("Student Name B " + name2);
			Console.ReadLine();
		}

		public static void Swap(ref string name1, ref string name2)
		{
			string temp = name1;
			name1 = name2;
			name2 = temp;
		}
	}
}

بس انا حبيت أعرفك على ال stack لأنه يستخدم في عمل reverse لمصفوفة معينة

قولوا لا اله الا الله تفلحوا

ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم

#5

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

غيري الشرط الموجود في ال while وخليه while name!="0"

وبالتالي لو المستخدم دخل صفر البرنامج هيتوقف

#6
akramKamal كتب:
السلام عليكــم ورحمـة الله وبركاتــه ،،

بتنفع تستخدم swap ميثود

وهي الكود

using System;
using System.Collections.Generic;
namespace nameswap
{
	class Program
	{
		static void Main(string[] args)
		{
			string name1 = "";
			string name2 = "";
			Console.WriteLine("please entar student A name");
			name1 = Console.ReadLine();

			Console.WriteLine("please entar student B name");
			name2 = Console.ReadLine();
			Swap(ref name1, ref name2);
			Console.WriteLine("After the swap method");

			Console.WriteLine("Student Name A " + name1);
			Console.WriteLine("Student Name B " + name2);
			Console.ReadLine();
		}

		public static void Swap(ref string name1, ref string name2)
		{
			string temp = name1;
			name1 = name2;
			name2 = temp;
		}
	}
}

بس انا حبيت أعرفك على ال stack لأنه يستخدم في عمل reverse لمصفوفة معينة

أخي يعطيك العافيه

أتعبتك معي

هذا الكود لاتوجد مشكله لي معه

أنا أستطيع عمله

المشكله هي كيفيه تكرار السؤال بسخدام

loop

فلا أعلم كيف استخدم

loop مع swap

في نفس الوقت

؟؟!!

أشكرك مره أخرى

وعذرا على الأزعاج

دعاء مختار كتب:
السلام عليكم ورحمة الله وبركاته

غيري الشرط الموجود في ال while وخليه while name!="0"

وبالتالي لو المستخدم دخل صفر البرنامج هيتوقف

يعطيك العافيه أختي دعاء

لقد قمت بعمل مانصحتني به

وكان كالتالي

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace nameswap

{

class Program

{



static void Main(string[] args)

{

ArrayList Names = new ArrayList();

string name ="";

string name1 = "";

string name2 = "";

Console.WriteLine("please entar student name");

name = Console.ReadLine();

while (name != "0")

{

Console.WriteLine("please entar student name");

name1 =Console.ReadLine();

Console.WriteLine("please entar student name");

name2 = Console.ReadLine();

}

Console.WriteLine("Student Name ", name1);

Console.WriteLine("Student name", name2);

Swap(ref name1, ref name2);

Console.WriteLine("After the swap method");

Console.WriteLine("Student Name", name1);

Console.WriteLine("Student name", name2);

Console.ReadLine();

}

public static void Swap(ref string name1, ref string name2)

{

string temp = name1;

name1 = name2;

name2 = temp;

}



}

}

لكن السؤال لم يتوقف بل استمر

بالرغم من أدخالي صفر!!

تحياتي لكم جميعا

#7

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

using System;
using System.Collections.Generic;
namespace nameswap
{
	class Program
	{
		static void Main(string[] args)
		{
			string name1 = "";
			string name2 = "";
			while (true)
			{
				Console.WriteLine("please entar student A name or 0 to exit");
				name1 = Console.ReadLine();
				if (name1 == "0") return;
				Console.WriteLine("please entar student B name or 0 to exit");
				name2 = Console.ReadLine();
				if (name2 == "0") return;
				Swap(ref name1, ref name2);
				Console.WriteLine("After the swap method");
				Console.WriteLine("Student Name A " + name1);
				Console.WriteLine("Student Name B " + name2);
				Console.WriteLine("Write y to start new inputs or n to exit");
				if (Console.ReadLine() == "n") return;
			}
		}

		public static void Swap(ref string name1, ref string name2)
		{
			string temp = name1;
			name1 = name2;
			name2 = temp;
		}
	}
}

قولوا لا اله الا الله تفلحوا

ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم

#8

فهمت

يعيطك العافيه أخوي

أسفه تعبتك كثير

الله يجزاك خير

تحياتي لكم جميعا

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