• 19 odgovora
  • 4.371 pregleda
Kalkulator. Error pri deljenju sa nulom 09.01.2008. u 15:47 · pre 228 meseci #1
Napravio sam jednostavan kalkulator.Ali imam problem pri deljenju sa nuom stalno mi izlazi eror.
Pokusao sam da ga resim tako sto sam stavio svoju poruku da ne moze da se deli sa nulom.
Ali nisam uspeo da izbegnem taj eror.
Dali ima neko ideju kako to da zaobidjem.
Evo pogledajte projekat.
Potpis
Crazy shadow
Re: Kalkulator. Error pri deljenju sa nulom 09.01.2008. u 16:27 · pre 228 meseci #3
Kako mogu jos da ogranicim da nemogu da unosim slova.Kad unesem slova on ih racuna kao nulu.
Potpis
Crazy shadow
Re: Kalkulator. Error pri deljenju sa nulom 09.01.2008. u 19:45 · pre 228 meseci #5
Evo primjer za unos brojeva

Code:

Private Sub txtBroj_KeyPress(KeyAscii As Integer)
strValid = "0123456789"
If KeyAscii > 26 Then
If InStr(strValid, Chr(KeyAscii)) = 0 Then
 KeyAscii = 0
End If
End If
End Sub
Potpis
steve585
Re: Kalkulator. Error pri deljenju sa nulom 09.01.2008. u 23:43 · pre 228 meseci #6
@steve585
jel bi mogo malo da mi objasnis ovaj kod.Od skori ucim VB pa ne razumem bas ovo sto si mi dao.
Jel bi mogo prakticno da mi pokazes neki prost primer?
Unapred hvala.
Potpis
Crazy shadow
Re: Kalkulator. Error pri deljenju sa nulom 10.01.2008. u 12:39 · pre 228 meseci #7
Evo ti objasnjenje za kod koji je postavio @ @steve585
Inace kod je odlican i jednostavan.
Subrutina se izvrsava kad se pritisne taster na tastaturi.
Prvo je deklarisan string "0123456789" u kojem su svi znakovi koje dozvoljavamo.
InStr fn proverava dali neki substring postoji u stringu i vraca poziciju ili nulu ako ne postoji.
KeyAscii je Ascii vrednost pritisnutog tastera. (npr A=65) a Chr pretvara taj broj u znak (Chr(65)="A")
Code:

InStr(strValid, Chr(KeyAscii)) = 0 Then KeyAscii = 0

Ova linija znaci "Ako pritisnuti taster nije jedan od 0,1,2,3,4,5,6,7,8,9 onda ponisti akciju"
Kada se KeyAscii postavi na 0 onda se nista ne desava (kao da nije ni pritisnut taster)

Code:

If KeyAscii > 26 Then

Proveravamo samo za KeyAscii vece od 26
Pozdrav
Potpis
HomePage http://www.eurora3d.com
Re: Kalkulator. Error pri deljenju sa nulom 10.01.2008. u 16:28 · pre 228 meseci #10
Citat:
Aleksandar Ružičić: samo sto taj kod ne dozvoljava upis decimalnih brojeva, al dobro, da ne trazimo dlaku u jajetu :)

:)
Pa jeste ali posto je dobro zamisljen moze da se stavi
Code:

strValid = "0123456789."

ili
Code:

strValid = "0123456789,"

zavisno od jezickih podesavanja (a moze i strValid = "0123456789.,"

Potpis
HomePage http://www.eurora3d.com
Re: Kalkulator. Error pri deljenju sa nulom 10.01.2008. u 17:38 · pre 228 meseci #11
pa ne mozes jednostavno da dodas zarez (ili tacku) u strValid jer ce ti tako dozvoliti da recimo uneses 123.456.789.00.1 sto nije validno, moze umesto InStr i strValid moze da se koristi IsNumeric, tj ovaj deo:
Code:

If InStr(strValid, Chr(KeyAscii)) = 0 Then
 KeyAscii = 0
End If

moze da se zameni sa:
Code:

If Not IsNumeric(txtBroj.Text & Chr(KeyAscii)) Then
  KeyAscii = 0
End If
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Kalkulator. Error pri deljenju sa nulom 10.01.2008. u 18:17 · pre 228 meseci #12
Ili nadj'te neki vec uradjeni regexp i.. htedoh reci nema glava da boli, al' tek onda pocinje :]
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Kalkulator. Error pri deljenju sa nulom 10.01.2008. u 19:11 · pre 228 meseci #14
Ima, tj. postoji u Framework-u, ali nisam to hteo reci. Mislio sam da pronadje na netu gotovu klasu/stagod za VB6 i da je koristi za ovo a glavobolja kad krene mentalna gimnastika sa regexp-om.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Kalkulator. Error pri deljenju sa nulom 10.01.2008. u 20:03 · pre 228 meseci #15
U skladu sa gore navedenim, ukoliko zelimo dozvoliti unos i decimalnih vrijednosti prvobitni kod bi trebalo doraditi, te bi dobili:

Code:

Private Sub txtBroj_KeyPress(KeyAscii As Integer)
strValid = "0123456789.,"
If KeyAscii > 26 Then
If Not IsNumeric(txtBroj.Text & Chr(KeyAscii)) Then
  KeyAscii = 0
End If
End If
End Sub


10 bodova
Potpis
steve585
Re: Kalkulator. Error pri deljenju sa nulom 10.01.2008. u 20:22 · pre 228 meseci #16
Citat:
Shadowed: Ima, tj. postoji u Framework-u, ali nisam to hteo reci. Mislio sam da pronadje na netu gotovu klasu/stagod za VB6 i da je koristi za ovo a glavobolja kad krene mentalna gimnastika sa regexp-om.


pa ne vidim neku gimnastiku za ovakav regexp, trebalo bi nesto ovako da resi problem: /^[0-9]*(\.[0-9]+)?$/g

ili malo egzoticnije resenje: /^([0-9]*\.[0-9]+(e[+-]?[0-9]+)?)|([0-9]+e[+-]?[0-9]+)$/gi

inace ovaj drugi regexp koristim veoma cesto
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Kalkulator. Error pri deljenju sa nulom 10.01.2008. u 20:35 · pre 228 meseci #17
A onom ko se prvi pu srece sa tim? I jos mu je VB prvi (jedini) jezik a ono polu-english pa kad vidi tu kriptiku :)
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme