این برنامه ویژوال بیسیک چرا درست کار نمیکنه ؟

the_king

مدیرکل انجمن
دلیلش اینه که شما یک مقدار String را با String مقایسه کرده اید و نه عدد را با عدد.
Text1.text هر چه باشد در حالت عادی یک String (رشته ای از کاراکتر ها) است.
در مقایسه رشته ای 3 از 1000 بزرگتر است چون اولین کاراکتر آن (3) از اولین کاراکتر دیگری (1) بزرگتر است.
شما بایستی رشته Text1.text را به عدد تبدیل کنید (با استفاده از تابع Val).
کد برنامه را به این شکل اصلاح کردم :

کد:
Private Sub Command1_Click()
    Max = Val(Text1.Text)
    If Max < Val(Text2.Text) Then Max = Val(Text2.Text)
    If Val(Text3.Text) > Max Then Max = Val(Text3.Text)
    Label4.Caption = Max
    If Max Mod 2 = 0 Then
        Label6.Caption = "The number is even"
    Else
        Label6.Caption = "The number is odd"
    End If
End Sub

Private Sub Command2_Click()
    End
End Sub

حتی من توصیه می کنم که متغیرهایی که بکار می برید تعریف کنید مثلا اول بنویسید :
کد:
Dim Max As Long

اینطوری اگر کاربر عدد اعشاری هم وارد کرده باشد در متغیر Max به اعداد صحیح فاقد اعشار تبدیل می شود.
خود تابع Val خروجی را به صورت Double برمی گرداند که شامل اعداد اعشاری هم هست.
 

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

بالا