رسم تابع با ویژوال بیسیک

m_mx2009

Member
سلام دوستان یه برنامه با راهنمایی یکی از دوستان نوشتم که تابع رسم میکنه ولی متاسفانه فقط برای یه تابع میشه ازش استفاده کرد و نمیشه تابع مورد رسم رو از تکست باکس گرفت ممنون میشم اگه کمکم کنین!
این هم کد برنامه :

کد:
Private Sub Command1_Click()
    Dim i As Double, pi As Double, x As Double, y As Double
    Form1.AutoRedraw = True
    Form1.Scale (-100, 100)-(100, -100)
    Form1.Line (-100, 0)-(100, 0)
    Form1.Line (0, -100)-(0, 100)
    pi = 4 * Atn(1)
    For i = -10 To 10 Step 0.001
        x = i * 180 / pi
        y = Cos(x)
        Form1.PSet (x * 10, y * 10), QBColor(10)
    Next i
End Sub

میشه کاری کرد که تابع رو از تکست باکس گرفت؟؟
دوستان اگه میتونن امتحان کنن و جوابم رو بدن !
 
آخرین ویرایش توسط مدیر:

the_king

مدیرکل انجمن
فقط به کمی معلومات ریاضی و گرافیک کامپیوتری نیاز دارید. مخصوصا که در هنگام ترسیم نمودار بایستی
ابتدا ابعاد نمودار را بدست بیاورید تا در هنگام ترسیم از کادر صفحه خارج نشوید.

نمونه پیوستی رو بررسی کنید.

مثلا :
کد:
x : t
y : sin(x)
t : -10 * pi to 10 * pi

مثلا :
کد:
x : sin(y)
y : -2 * pi to 2 * pi
t :

مثلا :
کد:
x : sin(t)
y : sin(t) * cos(t)
t : -pi to pi

کد:
x : sin(t) * t
y : cos(t) * t
t : -6 to 1.5 ^ 4

کد کامل پروژه ضمیمه این پست می باشد.
 

پیوست ها

  • DrawEquation.zip
    2.9 کیلوبایت · بازدیدها: 14

m_mx2009

Member
دوست عزیز خیلی ممنون کارم رو راه انداختی!:oops:

یه سوال دیگه هم داشتم چه جوری میشه یه متغیر تعریف کرد که تو کل پروژه و حتی در حلقه هایی مثل for هم بشه ازش استفاده کرد؟
من خودم با public a as varient که a متن داخل تکست باکس هستش در قسمت General فرم امتحان کردم ولی تو حلقه شناخته نمیشه!
ممنون میشم اگه در این مورد هم کمکم کنین!
مثلا اگه بشه کاری کرد که در همین کدهایی که اول صفحه نوشتم متن داخل تکست باکس رو جلوی y وارد کنه خیلی خوب میشه !! چون این کدهایی که اینجا نوشتم آسونه و من ازش سر در میارم ولی برنامه شما رو نتونستم خوب آنالیز کنم!
 
آخرین ویرایش توسط مدیر:

the_king

مدیرکل انجمن
یه سوال دیگه هم داشتم چه جوری میشه یه متغیر تعریف کرد که تو کل پروژه و حتی در حلقه هایی مثل for هم بشه ازش استفاده کرد؟
من خودم با public a as varient که a متن داخل تکست باکس هستش در قسمت General فرم امتحان کردم ولی تو حلقه شناخته نمیشه!

متاسفانه متوجه منظورتون نشدم، شما می توانید در یک Module مثل Module1 یک متغیر عمومی تعریف کنید مثلا :
کد:
Public EValValue As Double
حالا این متغیر EValValue در کل پروژه و در تمامی بخش ها قابل دسترسی است.

ممنون میشم اگه در این مورد هم کمکم کنین!
مثلا اگه بشه کاری کرد که در همین کدهایی که اول صفحه نوشتم متن داخل تکست باکس رو جلوی y وارد کنه خیلی خوب میشه !! چون این کدهایی که اینجا نوشتم آسونه و من ازش سر در میارم ولی برنامه شما رو نتونستم خوب آنالیز کنم!

کد داخل فرم تان را با این کد ها جایگزین کنید :
کد:
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Foo1 As Long, ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long

Public x As Double, y As Double

Private Sub Command1_Click()
    Dim i As Double, pi As Double
    Dim Text As String
    Form1.AutoRedraw = True
    Form1.Scale (-100, 100)-(100, -100)
    Form1.Line (-100, 0)-(100, 0)
    Form1.Line (0, -100)-(0, 100)
    pi = 4 * Atn(1)
    For i = -10 To 10 Step 0.001
        x = i * 180 / pi
        Text = "Form1.y = " & Replace(Text1.Text, "x", "Form1.x")
        EbExecuteLine StrPtr(Text), 0, 0, False
        Form1.PSet (x * 10, y * 10), QBColor(10)
    Next i
End Sub
 

m_mx2009

Member
آقا سلام!
من بازم به مشکل خوردم .
با همین کدی که اینجا نوشتید یه برنامه نوشتم که با جمع ریمان انتگرال تقریبی یه تابع رو حساب کنه ولی بعضی وقتا جواب رو درست بدست میاره بعضی وقتا هم غلط . دیگه نمیدونم چیکار کنم!
در ضمن ویژوال بیسیک 6 با ویندوز سون سازگاری داره ؟
چون من همین برنامه انتگرال رو وقتی کامپایل میکنم موقع اجرا پیغام : vba6.dll not found رو میده! خواهشا کمک کنید:cry:
 

the_king

مدیرکل انجمن
آقا سلام!
من بازم به مشکل خوردم .
با همین کدی که اینجا نوشتید یه برنامه نوشتم که با جمع ریمان انتگرال تقریبی یه تابع رو حساب کنه ولی بعضی وقتا جواب رو درست بدست میاره بعضی وقتا هم غلط . دیگه نمیدونم چیکار کنم!
در ضمن ویژوال بیسیک 6 با ویندوز سون سازگاری داره ؟
چون من همین برنامه انتگرال رو وقتی کامپایل میکنم موقع اجرا پیغام : vba6.dll not found رو میده! خواهشا کمک کنید:cry:

پیدا نکردن فایل vba6.dll مربوط به سازگاری با ویندوز نیست، فایل vba6.dll در یک مسیر عمومی مثل
C:\Windows\System32 قرار نداره، به همین جهت سیستم عامل موقع اجرا کردن فایل exe پیداش نمی کنه.
فایل vba6.dll رو از مسیر C:\Program Files\Microsoft Visual Studio\VB98 کنار فایل exe پروژه تان کپی کنید.
 

m_mx2009

Member
پیدا نکردن فایل vba6.dll مربوط به سازگاری با ویندوز نیست، فایل vba6.dll در یک مسیر عمومی مثل
C:\Windows\System32 قرار نداره، به همین جهت سیستم عامل موقع اجرا کردن فایل exe پیداش نمی کنه.
فایل vba6.dll رو از مسیر C:\Program Files\Microsoft Visual Studio\VB98 کنار فایل exe پروژه تان کپی کنید.
من باز هم به یاری سبزتان نیازمندم!
سلام همین کاری که گفتید رو انجام دادم. ایندفعه دیگه اون پیغام رو نمیده ولی وقتی میخواد انتگرال رو حساب کنه یه پیغام : end program میده! دیگه کلافه شدم . آخه چرا این ویژوال بیسیک نمیتونه حتی چند خط کد رو درست و حسابی کامپایل کنه!:?::?::?:
 

the_king

مدیرکل انجمن
من باز هم به یاری سبزتان نیازمندم!
سلام همین کاری که گفتید رو انجام دادم. ایندفعه دیگه اون پیغام رو نمیده ولی وقتی میخواد انتگرال رو حساب کنه یه پیغام : End program میده! دیگه کلافه شدم . آخه چرا این ویژوال بیسیک نمیتونه حتی چند خط کد رو درست و حسابی کامپایل کنه!:?::?::?:

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

m_mx2009

Member
قطعا اشکال از کد شما است، وگرنه ویژوال بیسیک که خودش برای محاسبه کردن انتگرال قابلیتی ارائه نکرده که
درست کار کنه یا نکنه.

سلام.
میدونم ولی آخه چرا موقع کامپایل کردن هیچ پیغامی نمیده و موقع اجراشدن فایل exe ارور میده ولی تو محیط ویژوال بیسیک هیچ مشکلی نداره!
 

the_king

مدیرکل انجمن
سلام.
میدونم ولی آخه چرا موقع کامپایل کردن هیچ پیغامی نمیده و موقع اجراشدن فایل exe ارور میده ولی تو محیط ویژوال بیسیک هیچ مشکلی نداره!

متاسفم، به نظر میاد که این تابع با برنامه های کامپایل شده سازگار نیست.
 

جدیدترین ارسال ها

بالا