bascom in matematika

Bascom, pa ne le ta tudi vsi jeziki tipa Basic

Moderator: tilz0R

bascom in matematika

OdgovorNapisal/-a lado » 17 Okt 2017, 23:15

Rad bi naredil števec pritiskov tipk pa se mi zatakne pri matematiki.Štetje pritiskov deluje, ko bi pa rad prikazal koliko je v % pritinjena posamezna tipka pa se mi zatakne. Prosim za pomoč kako bi to lahko rešil.

Koda: Izberi vse
'*******************************************************************************

'* Uporaba tekstovnega LCD zaslona                                             *
'* Lado Železnik                                                          *
'* oktober 2017
'* atmega 328+LCD 2x16
'*******************************************************************************

'$sim



$regfile = "m328def.dat"
$crystal = 800000

$hwstack = 32
$swstack = 16
$framesize = 50





    'te nastavitve so za mojo ploščico

Config Lcdpin = Pin , Db7 = Portc.0 , Db6 = Portc.1 , Db5 = Portc.2 , Db4 = Portc.3 , E = Portc.4 , Rs = Portc.5
' te pa za minipin...
 'Config Lcdpin = Pin , Db7 = Portb.7 , Db6 = Portb.6 , Db5 = Portb.5 , Db4 = Portb.4 , E = Portb.2 , Rs = Portb.1

  Config Lcd = 16x2
  Config Debounce = 40

Dim A As Integer                                            'števek A
Dim B As Integer                                            'števek B
Dim C As Integer                                            'seštevek A+B
Dim D As Integer                                            'procenti A
Dim F As Integer                                            'Procenti B



Declare Sub Stetjea
Declare Sub Stetjeb

Config Pind.0 = Input                                       'tipka za vnos A
Config Pind.1 = Input                                       'tipka za vnos B
Config Pind.2 = Input                                       'Tipka za postavljanje na 0


Cls
Cursor Off


Locate 1 , 1 : Lcd "  testiranje "
Locate 2 , 1 : Lcd "stetja"
Wait 1
Cls
A = 0
B = 0
C = 0
D = 0
F = 0

Do

 Debounce Pind.0 , 0 , Stetjea , Sub
 Debounce Pind.1 , 0 , Stetjeb , Sub
 Debounce Pind.2 , 0 , Nula , Sub


 Locate 1 , 11 : Lcd "Sum"
 Locate 1 , 1 : Lcd A
 Locate 2 , 1 : Lcd B
 Locate 1 , 14 : Lcd C

 D = B / C
 D = D * 100

 F = A \ C
 F = F * 100

 Locate 1 , 8 : Lcd D
 Locate 2 , 8 : Lcd F

 Loop

Stetjea:
Incr A : Incr C : Locate 1 , 1 : Lcd A
Locate 1 , 14 : Lcd C




Return


Stetjeb:
Incr B : Incr C : Locate 2 , 1 : Lcd B
Locate 1 , 14 : Lcd C




Return

Nula:
Cls
A = 0
B = 0
C = 0
D = 0
F = 0
Lcd "ZBRISANO..."
Wait 2
Cls
Locate 1 , 1 : Lcd A
Locate 2 , 1 : Lcd B
Locate 1 , 14 : Lcd C

Return

End
Uporabniški avatar
lado
 
Prispevkov: 286
Pridružen: 19 Jan 2015, 06:46
Kraj: Trbovlje
Zahvalil se je: 57 krat
Prejel zahvalo: 22 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 2

Re: bascom in matematika

OdgovorNapisal/-a infernal » 17 Okt 2017, 23:57

A + B = C


//% A
A * 100 / C

//% B
B*100 / C
infernal
 
Prispevkov: 24
Pridružen: 02 Feb 2015, 01:53
Zahvalil se je: 2 krat
Prejel zahvalo: 2 krat
Uporabnika povabil: Carko
Število neizkoriščenih povabil: 0

Re: bascom in matematika

OdgovorNapisal/-a mujo » 18 Okt 2017, 06:09

Bodi pozoren na tipe spremenljivk.
V kodi uporabljaš tip integer - cela števila.
S tem tudi lahko izračunaš procente - ampak kot je infernal napisal - najprej množiš pa potem deliš. S tem poskrbiš, da ti ostane neka pametna vrednost (20/100 = 0 v integer svetu)

Poglej si ostale podatkovne tipke.
mujo
 
Prispevkov: 661
Pridružen: 21 Jan 2015, 09:50
Kraj: MB
Zahvalil se je: 0 krat
Prejel zahvalo: 137 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 16

Re: bascom in matematika

OdgovorNapisal/-a lado » 18 Okt 2017, 11:36

Sem spremenil in deluje!!!!

Najlepša hvala obema

lp

lado
Uporabniški avatar
lado
 
Prispevkov: 286
Pridružen: 19 Jan 2015, 06:46
Kraj: Trbovlje
Zahvalil se je: 57 krat
Prejel zahvalo: 22 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 2


Vrni se na Bascom

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost