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

سؤال بسيط للمبتدئين لتحدي النفس

بدأه Ayoub JAMAL EL IDRISSI في 2 يناير 2009 · 4 رد · 783 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

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

كنت أود وضع الكود لكني ارتأيت أن اضعه على شكل سؤال لعل هناك من يحب التحديات خصوصا المبتدئيين

السؤال هو كالتالي :

لدينا برنامج Console نريد ان نحميه بكلمة سر معينة لكن كما تعلمون في ال Console لا توجد لدينا خاصية تمكننا من اخفاء الكلمات التي نكتبها (كتابتها على شكل نجوم مثلا)

السؤال هو :

قم بكتابة برنامج صغير عند تشغيله يطلب منك كلمة السر و عند كتابتها يظهر نجوما بدلا من الأحرف و عند الضفط على Enter يعطينا النتيجة هل كلمة السر صحيحة ام لا ؟

الإجابة على هذا السؤال مقتصرة على من بحث عن الاجابة و ليس من يعرف الحل مسبقا :D

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

و السلام عليكم

تم تعديل هذه المشاركة بواسطة Ayoub JAMAL EL IDRISSI في 2 يناير 2009 في 00:28

#2

المنتدى ميت لهذه الدرجة !!

المرجو من كل من لديه الاجابة ان يضعها، يبدو اني أخطأت عندما جعلت الاجابة حكرا على المبتدئيين ظننا مني انهم يحبون التحديات !!!!!!!!

#3

لو وضعت جائزه لوجدت العديد من الردود :D لكن يجب أن يكون الحل لمجرد التحدي لا لرغبة في جائزه!!

تم تعديل هذه المشاركة بواسطة hazzoom في 3 يناير 2009 في 20:13

#4

مرحباً أخي آيوب .

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

أعتقد أن السبب في عدم محاولة بعض الأعضاء, هو أن Console Application تصبح منقرضة لأن شكلها وطريقة برمجتها مختلفة بعض الشيء عن الـ Windows Application, لكن للعلم ( لكم أيها الأعضاء المبتدئين ) في بعض الأحيان استخدام الـ Console Application يساعد في حل أمور لطلما حلمتم بحلها .

الحل :

Module Module1
	Dim Password As String = "Ayoub"

	Sub Main()
		' استخدام متغير نصي لحفظ الاحرف المدخلة فيه
		Dim CurrentInput As String = String.Empty
		' استخدام متغير حرفي لحفظ أخر حرف مدخل
		Dim CurrentChar As Char = Nothing
		' كتابة ملاحظة, يمكنك الإستغناء عن هذا السطر
		Console.WriteLine("Please type your password : " & Password)
		' استخدام حلقة تكرارية لتأكد من الحرف المدخل
		' هذه الحلقة التكرارية ستظل تدور حتى يضط المستخدم الزر Enter
		Do While CurrentChar <> Chr(13)
			' في عملية قراءة الحرف True هنا نقوم بإعداد الحرف, لاحظ القيمة,_
			' تستخدم لعدم عرض الحرف في شاشة البرنامج
			CurrentChar = Console.ReadKey(True).KeyChar
			' استخدام الجملة الشرطية للتأكد أن الحرف المخل هو عبارة عن حرف أو رقم
			If Char.IsLetterOrDigit(CurrentChar) Then
				' إذا تحقق الشرط السابق, سنضيف الحرف الى النص
				CurrentInput &= CurrentChar
				' ثم نجعل البرنامج بكتب رمز النجمة
				Console.Write("*")
				' في حال كان الحرف المدخل ( فراغ خلفي ) سيقوم البرنامج بحذف الحرف الاخير وإضافة فراغ وحذفه
				'BackSpace لهذا السبب تدعى
			ElseIf (CurrentChar = Chr(8)) And (CurrentInput.Length > 0) Then
				CurrentInput = CurrentInput.Substring(0, CurrentInput.Length - 1)
				Console.Write(Chr(8) & " " & Chr(8))
				End If
		Loop
		' إضافة سطر جديد ( سطر فارغ )ز
		Console.WriteLine()
		' تأكد من القيمة ( النص )إذا كان يساوي كلمة السر أو لايساويها
		If CurrentInput.ToLower = Password.ToLower Then
			Console.WriteLine("The given password was correct :D")
		Else
			Console.WriteLine("Loser !!, The given password wasn't correct .")
		End If
		'هذا سطر لإعطاء المستخدم مهلة ليرى إذا كان الإدخال صحيح أم لا
		If Console.ReadKey(True).KeyChar = Chr(13) Then End
	End Sub

End Module

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

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 4 يناير 2009 في 16:22

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#5

أخي حازم يبدو انه حتى الجوائز لن تحرك فيهم الشعرة فهم هنا من أجل ان نجيب عن أسألتهم لا أكثر

شكرا أخي بشار على اجابتك و هي صحيحة ، :)

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