FarzamPlus 1 ارسال شده در 9 مهر، 2024 اشتراک گذاری ارسال شده در 9 مهر، 2024 با سلام و خسته نباشید به اساتید . یه کد نوشتم که به صورت تصادفی سوال ریاضی میسازه مثلا جمع ، تفریق ، ضرب و ... میخوام به صورت چهار جوابی باشه ، که توی اون گزینه ها اعداد به عدد جواب درست شبیه باشن یا نزدیک باشد. مثلا اگر سوال : 10+15 بود که میشه 25 توی چهار گزینه ای ها 26-24-27 باشه یه سوال دیگه اینکه 15+10 خب راحته ، چجوری میشه سوال رو به صورت ؟ + 10 = 25 ساخت ؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
محمدرضا شاهپیری 5,631 ارسال شده در 9 مهر، 2024 اشتراک گذاری ارسال شده در 9 مهر، 2024 درود. از کلاس زیر استفاده کنید. خروجی متد 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 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.