FarzamPlus 1 ارسال شده در 19 تیر اشتراک گذاری ارسال شده در 19 تیر با سلام و خسته نباشید به اساتید . یه کد نوشتم که به صورت تصادفی سوال ریاضی میسازه مثلا جمع ، تفریق ، ضرب و ... میخوام به صورت چهار جوابی باشه ، که توی اون گزینه ها اعداد به عدد جواب درست شبیه باشن یا نزدیک باشد. مثلا اگر سوال : 10+15 بود که میشه 25 توی چهار گزینه ای ها 26-24-27 باشه یه سوال دیگه اینکه 15+10 خب راحته ، چجوری میشه سوال رو به صورت ؟ + 10 = 25 ساخت ؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
محمدرضا شاهپیری 5,584 ارسال شده در 19 تیر اشتراک گذاری ارسال شده در 19 تیر درود. از کلاس زیر استفاده کنید. خروجی متد GenerateQuestion سوال جواب و گزینه ها رو داره. برای سوال آخر هم از همین ایده بگیرید Sub Class_Globals Type QuestionModel(question As String,answer As Int, options(4) As Int) End Sub Public Sub Initialize End Sub Sub GenerateQuestion(minValue As Int,maxValue As Int) As QuestionModel Dim operations() As String = Array As String("+", "-", "*", "/") Dim operation As String = operations(Rnd(0, operations.Length)) Dim a, b,answer As Int Select operation Case "+" a = Rnd(minValue, maxValue) b = Rnd(minValue, maxValue) answer = a + b Case "-" a = Rnd(minValue, maxValue) b = Rnd(minValue, a + 1) answer = a - b Case "*" a = Rnd(minValue, maxValue) b = Rnd(minValue, maxValue) answer = a * b Case "/" b = Rnd(minValue, maxValue) answer = Rnd(minValue, maxValue) a = answer * b End Select Dim qestion As QuestionModel:qestion.Initialize qestion.question=$"${a} ${operation} ${b}"$ qestion.answer=answer qestion.options=GenerateOptions(answer) Return qestion End Sub private Sub GenerateOptions(answer As Int) As Int() Dim position As Int=Rnd(0,3) Dim options(4) As Int Select position Case 0: options= Array As Int(answer,answer+1,answer+2,answer+3) Case 1: options= Array As Int(answer-1,answer,answer+1,answer+2) Case 2: options= Array As Int(answer-2,answer-1,answer,answer+1) Case Else: options= Array As Int(answer-3,answer-2,answer-1,answer) End Select Return ShuffleArray(options) End Sub private Sub ShuffleArray(arr() As Int) As Int() Dim shuffled(arr.Length) As Int Dim indices As List indices.Initialize For i = 0 To arr.Length - 1 indices.Add(i) Next For i = 0 To arr.Length - 1 Dim index As Int = Rnd(0, indices.Size) shuffled(i) = arr(indices.Get(index)) indices.RemoveAt(index) Next Return shuffled End Sub لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
FarzamPlus 1
با سلام و خسته نباشید به اساتید .
یه کد نوشتم که به صورت تصادفی سوال ریاضی میسازه مثلا جمع ، تفریق ، ضرب و ...
میخوام به صورت چهار جوابی باشه ، که توی اون گزینه ها اعداد به عدد جواب درست شبیه باشن یا نزدیک باشد.
مثلا اگر سوال : 10+15 بود که میشه 25 توی چهار گزینه ای ها 26-24-27 باشه
یه سوال دیگه اینکه 15+10 خب راحته ، چجوری میشه سوال رو به صورت ؟ + 10 = 25 ساخت ؟
لینک ارسال
به اشتراک گذاری در سایت های دیگر
1 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.