Strona 1 z 1

Programowanie w Visual Basic (pytanie)

PostNapisane: czwartek, 8 wrz 2005, 19:32
przez Master
Czy może ktoś wie jak oznacza się w języku programowania Visual Basic "nic"? Ale nie 0. :?: :?: :?:

PostNapisane: czwartek, 8 wrz 2005, 19:36
przez r00t
Ja wiem......

vbNullString

np. Text$ = vbNullString

odpowiednik NULL z C

PostNapisane: czwartek, 8 wrz 2005, 20:11
przez Master
Private Sub Oblicz_Click()
Wynik_Delty.Caption = "Wynik Delty " & Str(Val(Text1) ^ 2 - 4 * Val(Text2) * Val(Text3))

Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego "

Dim sinDelta As String
sinDelta = Str(Val(Text1) ^ 2 - 4 * Val(Text2) * Val(Text3))


If sinDelta < 0 Then

Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego nie istnieje"

ElseIf sinDelta = 0 Then

Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego to " & Str(Val(-Text1) / 2 * Val(Text2))

ElseIf sinDelta > 0 Then

Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego to " & Str(Val(-Text1) - Sqr(sinDelta) / 2 * Val(Text2)) & " i " & Str(Val(-Text1) + Sqr(sinDelta) / 2 * Val(Text2))

ElseIf sinDelta > 0 Then

Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego gdy a = 0 nie istnieje "

ElseIf Text1 = vbNullString Or Text2 = vbNullString Or Text3 = vbNullString Then

MsgBox ("Wypełnij wszystkie pola poprawnie")

Else
End If
End Sub


No to ja wreście nie wiem co zrobić żeby kiedy pola są puste wyświetlał się odpowiedni komunikat o błędzie. Mój, a nie Visual'a. Bo kiedy klkam na odpowiedni przycisk z pustmi polami to pojawia się błąd
Run-time error '13': Type mismatch
Kurczę niech ktoś podpowie co z tym fantem zrobić...

PostNapisane: czwartek, 8 wrz 2005, 20:50
przez r00t
no tak na pierwszy rzut oka... ja nie jestem fachowcem... od VB ale dlaczego sprawdzanie text1 text2 i text3 jest na samym koncu? wg mnie powinno byc

pobieranie danych --> sprawdzanie czy wszystko zostalo podane --> stosowne komunikaty jeśli nie podane i powrot na początek programu --> jeśli dane sa to obliczenia zgodne z warunkami równania kwadratowego (delta co sie rowna) --> prezentacja wyniku

Ale tak jak mówiłem... nie jestem fachowcem od VB :) a to co napisałem to logiczy schemat blokowy programu tak jak wg mnie powinien wygladac....

PostNapisane: czwartek, 8 wrz 2005, 20:52
przez MzK
Sluchaj, nie programowalem w VB, ale wedlug mnie struktura kontrolna powinna wygladac np. tak:

while
Text1 = vbNullString Or Text2 = vbNullString Or Text3 = vbNullString Then
.....MsgBox ("Wypełnij wszystkie pola poprawnie")

else

.....If sinDelta < 0
.....Then
.....Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego nie istnieje"

.....ElseIf sinDelta = 0
.....Then
.....Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego to " & Str(Val(-Text1) / 2 * Val(Text2))

.....ElseIf sinDelta > 0
.....Then
.....Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego to " & Str(Val(-Text1) - Sqr(sinDelta) / 2 * Val(Text2)) & " i " & Str(Val(-Text1) + Sqr(sinDelta) / 2 * Val(Text2))

.....endif


niech mnie ktos poprawi jak sie tutaj myle, ale to ciagle elsif u Mastera mi sie nie podoba ...

MASTER -> probowales debuggerem to rozgryzc ??

C/C++ i Visual Studio .net to owszem ... ale VB niet :D

powodzenia

PostNapisane: czwartek, 8 wrz 2005, 22:20
przez Master
Rozwiązałem problem :) dzięki Wam za pomoc !!!!!!!!!!
Moje rozwiązanie z Waszą drobną pomocą...


Private Sub Oblicz_Click()
Wynik_Delty.Caption = "Wynik Delty " & Str(Val(Text1) ^ 2 - 4 * Val(Text2) * Val(Text3))

Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego "

Dim sinDelta As String
sinDelta = Str(Val(Text1) ^ 2 - 4 * Val(Text2) * Val(Text3))


Do While Text1 = vbNullString

Text1 = "0"

Loop

Do While Text2 = vbNullString

Text2 = "0"

Loop


If sinDelta < 0 Then
Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego nie istnieje"

ElseIf sinDelta = 0 Then
Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego to " & Str(Val(-Text1) / 2 * Val(Text2))

ElseIf sinDelta > 0 Then
Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego to " & Str(Val(-Text1) - Sqr(sinDelta) / 2 * Val(Text2)) & " i " & Str(Val(-Text1) + Sqr(sinDelta) / 2 * Val(Text2))

Else


End If


End Sub


Jeszcze raz dzięki dla: r00t, MzK!!!!!!

PostNapisane: piątek, 9 wrz 2005, 14:57
przez MzK
Na pewno jest taka mozliwosc.
Poszukaj w
Planet source code
albo na
google

jest tego pod dostatkiem.

PostNapisane: piątek, 9 wrz 2005, 16:33
przez Master
Acha i jeszcze jedno... jak w VB oznaczane są dane nie liczbowe tzn. litery, zn. interpunkcyjne i inne. Potrzebne jest to do tego żeby nie ustanawiać dla każdego znaku z osobna warunków.... bo toż to można warjacji dostać... Chodzi mi o coś w stylu tego jak to vbNullString odnośnie "niczego". Jak ktoś wie to niech pomoże....

PostNapisane: piątek, 9 wrz 2005, 16:56
przez cichy
Master napisał(a):Acha i jeszcze jedno... jak w VB oznaczane są dane nie liczbowe tzn. litery, zn. interpunkcyjne i inne. Potrzebne jest to do tego żeby nie ustanawiać dla każdego znaku z osobna warunków.... bo toż to można warjacji dostać... Chodzi mi o coś w stylu tego jak to vbNullString odnośnie "niczego". Jak ktoś wie to niech pomoże....

sprawdz w helpie cos o ASCII lub char, to sa liczbowe wartosci dla kazdej literki, cyferki i znaczka

PostNapisane: piątek, 9 wrz 2005, 17:03
przez MzK
Nie bardzo wiem o co pytasz, ale jesli o sposob okreslenia dowolneo znaku z tabeli ASCII to prosze przyklad:

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii <> 13
.....Then Exit Sub


gdzie 13 oznacza wedlug kodu ASCII przycisk ENTER :D