المجلس اليمني ... يمن واحد وآراء متعددة
::  قوانين المنتدى  |   طلب رقم التنشيط   |   تنشيط العضوية  |  استعادة كلمة المرور
العودة   المجلس اليمني :: العلمية والتقنية :: الكمبيـوتر والانتـرنت :: المواقع ولغات البرمجة والشبكات
|
 
أدوات الموضوع
قديم 05-12-2003, 06:42 PM   مشاركة رقم : 1
عضو
 
لا توجد صورة

 
تاريخ التسجيل: 09-07-2003
المشاركات: 58

افتراضي لمبرمجي القسم- برنامج بسيط و لغز ابسط ؟

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

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

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

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

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

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

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

المحقق كونان .... والكوماندر ... و يافع .. واميرنا الصنعاني .... وعلاء عصام ... والاخت Nora ... وجميع من يحب المشاركة ....

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


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

  رد مع اقتباس
قديم 05-12-2003, 07:42 PM   مشاركة رقم : 2
قلم فضي
 
لا توجد صورة

 
تاريخ التسجيل: 04-05-2002
المشاركات: 3,170

افتراضي

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

والبرنامج ما ظهر بالكلام العربي

المهم ان شفت الصور واخترت
ويبدوا انني لم افهم كلامك
يا ريت توضح لنا اكثر

ان شاء الله لي عودة
بعد ان اخذ الامتحان اللي هو بعد قليل

تحياتي لك
والسلام ختام

  رد مع اقتباس
قديم 05-12-2003, 08:40 PM   مشاركة رقم : 3
عضو
 
لا توجد صورة

 
تاريخ التسجيل: 04-09-2003
المشاركات: 59

افتراضي

جزاك الله خيرا أخي الفاضل ...( أعتقد أن كلمة مبرمجة كبيرة علي فأنا لازلت في البداية) لكن على الرغم من ذلك فسأشارك...

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

كود:
Option Explicit
Dim FinalNumber As Integer

Private Sub Form_Load()
FinalNumber = 0
Check1.Tag = 4
Check2.Tag = 1
Check3.Tag = 8
Check4.Tag = 2
End Sub

Private Sub Command1_Click()
FinalNumber = Check1.Tag * CInt(Check1.Value) + Check2.Tag * CInt(Check2.Value) + Check3.Tag * CInt(Check3.Value) + Check4.Tag * CInt(Check4.Value)
FalseValue
MsgBox FinalNumber, , "   الرقم الذي أخترته هو "
FinalNumber = 0
End Sub

Public Sub FalseValue()
Check1.Value = False
Check2.Value = False
Check3.Value = False
Check4.Value = False
End Sub




  رد مع اقتباس
قديم 05-12-2003, 09:05 PM   مشاركة رقم : 4
عضو
 
لا توجد صورة

 
تاريخ التسجيل: 09-07-2003
المشاركات: 58

افتراضي

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

وثانياً : اتمنى ان يوفقك الله اخي في امتحانك القادم بإذن الله تعالى ... وان ييسره عليك بإذنه تعالى ...

و بالنسبة للبرنامج هذا توضيح اكثر ...

عندما تفتح البرنامج تجد اربع صور كل واحدة تحتوي على مجموعة من الارقام اي انها صور لارقام وهذة الارقام هي في الحدود من 1 الى 15 .... وكل صورة من الصور يوجد عليها مربع اختيار ... ماشي الحال ! ...

والان اختر في قلبك رقم معين ضمن هذة الحدود( 1 - 15 ) ثم انظر الى الصور الاربع وحدد كل الصور تحتوي على الرقم الذي اخترته في قلبك ...

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

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

الغرض هو رؤية كيف يمكن اختصار الكود لتأدية العمل فالجميع سوف يعرف الاجابة باذن الله تعالى ... ولكن كلاً منا سيتسخدم طريقة مختلفة ربما وقد تتساوى الطرق ... وكذلك يهمنا التعرف على الاختلافات في شفرة اللغات التي سيستخدمها الاخوة بإذن الله تعالى ...

------

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

  رد مع اقتباس
قديم 05-12-2003, 09:07 PM   مشاركة رقم : 5
عضو فعّال
 
لا توجد صورة

 
تاريخ التسجيل: 21-06-2003
المشاركات: 619

افتراضي والله فكره طلعه منك ياأستاذ رغيد...

والله فكره أهي طلعت منك ياأستاذ رغيد ، عموماُ انا هحمل عندي الويب ده وهشوف بس الظاهر إن إختونا (Nora) ماشيه ومهتمه ع الاخر ، أنا راجع بس لما أفضي إلي عندي وشكراً.

  رد مع اقتباس
قديم 05-12-2003, 09:09 PM   مشاركة رقم : 6
عضو
 
لا توجد صورة

 
تاريخ التسجيل: 09-07-2003
المشاركات: 58

افتراضي

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

الان انتبهت لمشاركتك ... اختي ...

وسوف اراها ولي عودة بإذن الله تعالى وفي انتظار باقي الاخوة ...

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


اكرر شكري لتفاعلك ....

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

  رد مع اقتباس
قديم 06-12-2003, 01:47 AM   مشاركة رقم : 7
عضو متميّز
 
لا توجد صورة

 
تاريخ التسجيل: 29-03-2003
المشاركات: 1,764

افتراضي

:) لم أعرف الحل بعد .... لكن هل هذ الفلاش لزكية الذكية يعرض نفس الفكرة!!!

  رد مع اقتباس
قديم 07-12-2003, 12:38 AM   مشاركة رقم : 8
عضو
 
لا توجد صورة

 
تاريخ التسجيل: 07-12-2003
المشاركات: 218

افتراضي Salam Alikom

Ok, this is a sample of the code, I just dont have more time to finish it, but you will get the idea of how the program works, I only did the coding for 3 numbers, the other numbers can also be the same..


Dim check As Boolean
Dim check2 As Boolean
Dim check3 As Boolean
Dim check4 As Boolean
check=false
check2=false
check3=false
check4=false

if checkbox1=true then
check =true
end if


if checkbox2=true then
check2 =true
end if

if checkbox3=true then
check3 =true
end if

if checkbox4=true then
check4 =true
end if

If check = True And check2 = False And check3 = False And check4 = False Then
MsgBox "4"
End If

If check = True And check2 = False And check3 = False And check4 = True Then
MsgBox "6"
End If

If check = True And check2 = True And check3 = True And check4 = True Then
MsgBox "15"
End If

BTW i did it the long way, it could be done easier with a case statement or a loop...

salam,

  رد مع اقتباس
قديم 07-12-2003, 11:19 AM   مشاركة رقم : 9
عضو
 
لا توجد صورة

 
تاريخ التسجيل: 09-07-2003
المشاركات: 58

افتراضي

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

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

ولكنكم ما قصرتم والله فمنكم من حاول ومنكم من عزم على المحاولة ومنكم من شارك وهي والله اشياء ترفع المنعويات وتحث على المواصلة ...

فشكراً للامير الصنعاني والاخت نورا و علاء ويافع وعزيز ... وكل الشكر والامتنان للباقون ...

بالنسبة للاخت نورا فقد كانت مشاركتك الاولى فعالة بالطبع وقد وفت بالغرض كما هو مطلوب منها تماماً كما ان مشاركة الاخ العزيز ايضاً ستؤدي العمل المطلوب منها بإذن الله تعالى ...

ثم جاء التعديل الاخير لكود الاخت الكريمة نورا ليكون حلاً جميلاً استغلت فيه الخاصية Tag استغلال ممتاز فلم توجد هذة الخاصية إلا لكي يستغلها المبرمج حينما يحتاج الى اي قيمة يخزنها بعنصر معين لهذا يضع الفيجوال بيسك هذة الخاصية للاستخدام عند الحاجة ..

لهذا فهي اجابة رائعة بالفعل .... والمهم قوله هنا هو انه يوجد العديد من الحلول التي يمكن ابتكارها للمسألة ... وقد كنت اعتزم تصعيب اجابة اللغز بحيث امنع استخدام اوامر الشرط كا الـ IF او SELECT CASE او ما شابه من الاوامر الشرطية غير اني سوف اكتفي بهذا القدر ...

و ضعت هنا اجابة بسيطة خالية من اوامر الشرط و وتعتمد على مصفوفة الادوات او الـ Control Array وهي ان تجعل اكثر من عنصر في الفورم بنفس الاسم ويختلفون في الخاصية Index اي ان جميع مربعات الاختيار او الـ CheckBox تحمل نفس الاسم ولكل منها Index مختلف من الـ 0 وحتى الـ 3 ... واعتماد مبدأ النظام الثنائي في الحل ... وبهذا يمكن حل البرنامج كاملا بهذا الشكل :
[align=left]
كود:
Private Sub Command1_Click()
    Dim I As Integer, V As Integer
    
    For I = 0 To 3
        V = V + (2 ^ I) * Chk(I).Value
        Chk(I).Value = 0
    Next
    MsgBox V, vbInformation, "الرقم المطلوب هو"
End Sub
[/align]

واتمنى للجميع حظاً موفقاً في مواضيع واللغاز برمجية اخرى ...

في الملف المرفق كود البرنامج كاملاً ..

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

  رد مع اقتباس
قديم 07-12-2003, 11:21 AM   مشاركة رقم : 10
عضو
 
لا توجد صورة

 
تاريخ التسجيل: 09-07-2003
المشاركات: 58

افتراضي

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

الاخ العزيز يافع نسيت ان اشكرك على الفلاش الجميل الذي وضعته ... وفي الواقع ان فكرته مختلفه قليلاً ويمكن تأديتها بسهولة باستخدام النظام الثنائي Binary System في ايجاد جداول الارقام التي تعرض على الشاشة ..

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

ولك تحياتي اخي ..

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

  رد مع اقتباس
إضافة رد

أدوات الموضوع

الانتقال السريع :::

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.