PDA

View Full Version : سوال: مثلث خيام



اوبالیت به بو
یک شنبه 12 خرداد 1387, 23:54 عصر
بعد از حل مشكل من براي رسم مثل خيام در پاسكال (http://barnamenevis.org/forum/showpost.php?p=528168&postcount=3)حالا نوبت اين شد كه تو VB يه مشكل ديگه رو حل كنم.
اونم اينه كه آيا دستوري وجود داره كه جهت چاپ روي فرم مكان نما رو به يك نقطه مورد نظر هدايت كنم؟
از دستور Current X و Current Y كمك گرفتم ولي متاسفانه مشكلم حل نشد. تويه پاسكال ما دستوره به اسم GoToXY كه مكان نما رو به اونجا هدايت مي كنه.
براي درك بيشتر توضيح مي دم:

GoToXY(شماره سطر,شماره ستون)
حالا دنبال يه همچين دستوري تويه VB مي گردم.
اين كدي هست كه بايد بر طبق اون مثلث خيامرو رويه فرم رسم كنه اما نتيجه چيزي نيست كه من مي خوام خودتون امتحان كنيد.

'Draw Khayam Tringle
Dim Tringle(0 To 10, 0 To 10) As Integer
Dim i, j As Integer
For i = 0 To 10
Tringle(i, 0) = 1
Next i
For i = 1 To 10
For j = 1 To i
Tringle(i, j) = Tringle(i - 1, j) + Tringle(i - 1, j - 1)
Next j
Next i
Cls
For i = 0 To 10
For j = 0 To i
Current X = 2 * i + 1
Current Y = 36 + j * 6 - 3 * i + 1
Print (Tringle(i, j))
Next j
Next i

Mbt925
دوشنبه 13 خرداد 1387, 10:38 صبح
عملکرد این دستور دقیقا مثل GOTOXY هست.
اگه روی فرمتون چاپ می کنید به ScaleMode توجه کنید. همه چیز بستگی به اون داره.
در ضمن فکر کنم فاصله ها خیلی کم باشه، بیشترش کنید.

amirrezan
جمعه 05 تیر 1388, 00:34 صبح
این هم کد خیام


Option Explicit

Private Sub Form_Load()
Dim Num As Long, m As Long, n As Long
AutoRedraw = True
Num = Val(InputBox("Enter Number of Rows"))
For m = 0 To Num
For n = 0 To m
Print fa(m) / (fa(n) * fa(m - n));
Next
Print
Next
End Sub

Private Function fa(Num As Long) As Long
Dim i As Integer, j As Long
j = 1
For i = 1 To Num
j = j * i
Next
fa = j
End Function

sajjadrad
شنبه 28 آذر 1388, 20:11 عصر
مونش در هفت سطر:




http://daugerresearch.com/vault/PascalsTriangle.gif
رابطه ریاضی بین اعداد:

(a+b)0 = 1 (1)
(a+b)1 = a+b (1,1)
(a+b)2 = a2+2ab+b2 (1,2,1)
(a+b)3 = a3+3a2b+3ab2+b3 (1,3,3,1)
(a+b)4 = a4+4a3b2+6a2b2+4a2b3+b4 (1,4,6,4,1)


این برنامه رو من در زبان پاسکال نوشتم و به درستی کار میکنه.البته طبق طول میدانی که بهش دادم تا عدد 12 اعداد قاطی نمیشن!
به احتمال قوی کمکت نمیکنه اما رویه کارم اینجوی بود:
اول یه آرایه دو بعدی تعریف کردم
بعد از تولید هر عدد اون رو در آرایه خودش ذخیره کردم و در لاین بعدی از این دستور استفاده کردم:
a[i,j]:=a[i-1,j-1]+a[i-1,j];

اینطور که دو تا آرایه کنار هم رو جمع کنه و در آرایه لاین پایینی قرار بده.
درصورت نیاز بهم بگو تا سورس ها رو بهت بدم.

اینم لینک دانلود مثلث خیام در زبان پاسکال
http://myprograms.persiangig.com/oth...cal/PasTra.zip (http://myprograms.persiangig.com/other/Pascal/PasTra.zip)

پسورد:www.myprograms.blogsky.com (http://www.myprograms.blogsky.com/)

من این برنامه رو با استفاده از آرایه ها و حلقه for نوشتم.