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

مشاكل فى C#_2

بدأه امجد مختار في 30 أغسطس 2008 · 4 رد · 557 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

1-

يوجد فى الـ C++ إمكانية قراءة أكثر من متغير من المستخدم فى وقت واحد مثل

cin>>x>>y>>z;

بمعنى

int x,y,z;
Console.Writeline ("Enter Three Numbers: ");
x = Console.Readline ();
y = Console.Readline ();
z = Console.Readline ();

لكى يتم قراءة المتغيرات من المستخدم يجب قراءة متغير واحد كل مرة فكيف يمكن قراءة الثلاث متغيرات فى مرة واحدة بمعنى عندما تظهر الرسالة لادخال الثلاث متغيرات اقوم بكتابة ثلاثة ارقام بينهم مسافة ثم اضغط Enter فيتم استقبال الثلاث قيم ووضعهم فى متغيراتهم

كيف يمكن عمل ذلك بالـ c# فى الـ Console Applications ؟

2-

char y = 'a';
int x = y;
Console.WriteLine(x);

يتم طباعة الأسكى كود للحرف a

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

y=66;

ولكنه لم يقبله واظهر خطأ مع أن هذه الطريقة مقبولة فى C++ فكيف يمكن حل هذه المشكلة ؟

3-

كيف يمكن ان اطبع قيمة متغير على الشاشة على اساس حساب المسافة من اول السطر الذى اقف فيه وليس على اساس حساب المسافات من بعد المتغير الذى قبله فكانت فى الـ c++ كالتالى

cout<<x<<setw(5)<<y;

فكان يقوم بطباعة قيمة المتغير y من الخانة رقم 5 فى السطر بغض النظر عما قبله

فكيف يمكن عمل ذلك بالـ C# ؟

وشكراً

اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد

من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن

#2

كالعادة سأبدأ معك من الاخر

اجابة اخر سؤال هو

Console.CursorLeft=10;

Console.Write("a");

Console.CursorLeft=5;

Console.ReadLine();

جرب هذا الكود وستجد الخرج كالاتي سيتم طباعة b بعد خمس مسافات من أول السطر ويتم طباعة a بعد 10 مسافات من اول السطر وستجد في هذا الكلاس الكثير واليك مثال للتعامل مع console بشكل كبير

أما بالنسبة للسؤال قبل الاخير وهو اعطاء الاسكي لطباعة الحرف المقابل فكل ما عليك فعله هو عملية casting بمعنى

char ch;

int x=66;

ch=(char)x,

Console.Write(ch);

Console.ReadLine()

وسيتم طباعة B وعند اعطاء مثلا رقم 13 سيتم طباعة مسافة وهكذا

ConsoleCalculator.rar

#3

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

string[] str;

			string st =Console.ReadLine();
			str=st.Split(' ');
			for (int i=0;i<str.Length;i++)
			{
				Console.WriteLine(str);
			}

فهذا الكود يمكنك ادخال ما تريد على ان تضع مسافة بين كل مدخل فمثلا

aa bb cc

وسيتم قراءة كل مجموعة حروف تفصلهم مسافة على انهم قيمة واحدة فمثلا

سيكون قيمة المتغير في المصفوفة aa

والمتغير الثاني في المصفوفة bb

تم تعديل هذه المشاركة بواسطة Prof.Mendl في 30 أغسطس 2008 في 23:44

#4

شكراً

أنا كنت جربت التحويل بهذه الطريقة

char x;
int y = 22;
x = char.Parse(y.ToString());
MessageBox.Show(x.ToString ());

ولكن طلع خطأ ولم يقبلها فما السبب وما الفرق بين الطريقتين ؟

اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد

من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن

#5

وذلك لأن Char عبارة عن بايت واحد أي حرف واحد وعندما تعمل casting يأخذ القيمة الرقمية على انها كود اسكي للحرف ويظهر مكانها الحرف المقابل

ولكن عندما حولت الى string فلن يقبل بها كاسكي كود وانما كمجموعة حروف او حرف حتى لو كان رقم وفي مثالك لن يقبل ويظهر خطأ لأن القيمة عبارة عن حرفين والمتغير x عبارة عن متغير حرفي اي يقبل قيمة حرف وليس اكثر

ولو وضعت في y=2 مثلا سيظهر لك 2 ولن يعطي خطأ ولكن لن ينفذ ما تقصده

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