PDA

View Full Version : سوال: پاسخ يك سوال (سري و دنباله)



mehdi_7070
چهارشنبه 22 خرداد 1387, 17:44 عصر
با عرض سلام
سوال بدين شرح است :
برنامه‌اي بنويسيد كه عدد طبيعي n را از ورودي گرفته و ضمن توليد n عدد از سري اعداد زير ، جمع آن‌ها را چاپ كند.
http://barnamenevis.org/forum/attachment.php?attachmentid=19021&stc=1&d=1213191740

من اين‌جوري حل كردم :


n = InputBox("ADAD")
s = 0
For i = 1 To n
If i = 1 Then
x = (i * 5) / (i * 10 + 3)
Else
z = (5 * i) + (i - 1) * 10 + 3
x = (i * 5) / z
End If
Print x
s = s + x
Next i
Print s


ولي به نظر مياد اين جواب درست نيست .

ممنون مي‌شم اگه توي حل اين سوال كمك كنيد .

AmirAmiri
چهارشنبه 22 خرداد 1387, 18:57 عصر
سلام دوست عزیز بهتر بود این سوال رو در قسمت الگوریتم مطرح میکردی به هر حال...
شما راه حلت خیلی اشتباه بود در اینجا مخرج هر کسر حاصل جمع صورت همون کسر بعلاوه مخرج کسر قبلی هستش.
اینم کده برنامه


Private Sub Command1_Click()
Dim S As Double
N = InputBox("Enter a number :")
S = 0
x2 = 8
For i = 0 To N
x1 = x1 + 5
x2 = x2 + x1
S = S + (x1 / x2)
Text1.Text = Text1.Text & x1 & "/" & x2 & " = " & S & vbCrLf & vbCrLf
Next
Text1.Text = Text1.Text & " All sum = " & S
End Sub


فقط فراموش نکنی که حتما خاصیت MultiLine رو در Text1 برابر True قرار بدی در غیر اینصورت خروجی عجیبی به دست میاد.

اگه بازم سواله الگوریتمی داشتید من در خدمتم.
موفق باشید...

mehdi_7070
پنج شنبه 23 خرداد 1387, 15:47 عصر
خيلي ممنون كه پاسخ داديد ...

فقط يك قسمتش را اگر توضيح بدهيد ممنون ميشم :

For i = 0 To N
خوب مگر نبايد اين عمل N بار تكرار بشه ، پس چرا مقدار اوليه اين حلقه را 0 داده ايد؟ نبايد اين مقدار 1 باشه؟

بي‌زحمت اين سوال هم يك نگاهي بكنيد :
برنامه ای بنویسید که حاصل n جمله اول سری زیر را به ازای هر عدد حقیقی بدست آورد :

x-(x^3/3!)+(x^5/5!)-(x^7/7!)+…
من اين را هم حل كردم ، ولي فكر كنم باز هم اشتباه باشه . ميرم دوباره روش فكر مي‌كنم ، بعد ميام جواب خودم را هم مي‌ذارم ببينم اشتباهم كجا بوده .
اين روش كه الان نوشتم دو تا حلقه داره ، يكي اعداد را درست مي‌كنه و يكي ديگه هم علامت‌هاي + و - را تعيين مي‌كنه . يك تابع هم براي فاكتوريل تعريف كردم .
ممنون :)


سلام دوست عزیز بهتر بود این سوال رو در قسمت الگوریتم مطرح میکردی به هر حال...

بله ، حق با شماست . منتقل شد به قسمت الگوريتم ...

mehdi_7070
پنج شنبه 23 خرداد 1387, 22:25 عصر
خوب اين روش حل من :

n = 5
m = 0
For i = 1 To 2 * n Step 2
m = m + 1
If m Mod 2 = 0 Then
Text1 = Text1 & "-" & "x^" & i & "/" & i & "!"
Else
Text1 = Text1 & "+" & "x^" & i & "/" & i & "!"
End If
Next i
استفاده از دو حلقه تو در تو اشتباه بود و تونستم مطابق بالا اون را تصحيح كنم و خروجي 5 جمله اول را اين نشون ميده :
+
x^1/1!-x^3/3!+x^5/5!-x^7/7!+x^9/9!