Naloga:

 

Sestavi program, ki bo za podan znesek v SIT, DEM ali LIT izracunal ustrezni znesek v SIT, DEM ali LIT. Na sliki je viden primer

možnega uporabniškega vmesnika:

 

 


Namig:

Se nekaj opomb:


 

Rešitev:

 

Gradniki:

 

1.

Tip

Okno(Form)

Name

OknoMenjaj

Caption

Menjalnica

2.

Tip

okvir(Frame)

Name

okvirIz

Caption

BorderStyle

none

3.

Tip

Izbirni gumb(OptionButton)

Name

izSIT

Caption

SIT

Value

True

opomba

Je v okvirIz

4.

Tip

Izbirni gumb(OptionButton)

Name

izDEM

Caption

DEM

opomba

Je v okvirIz

5.

Tip

Izbirni gumb(OptionButton)

Name

IzLIT

Caption

LIT

opomba

Je v okvirIz

6.

Tip

okvir(Frame)

Name

OkvirV

Caption

BorderStyle

None

7.

Tip

Izbirni gumb(OptionButton)

Name

vSIT

Caption

SIT

Value

True

opomba

Je v okvirV

8.

Tip

Izbirni gumb(OptionButton)

Name

vDEM

Caption

DEM

opomba

Je v okvirV

9.

Tip

Izbirni gumb(OptionButton)

Name

vLIT

Caption

LIT

opomba

Je v okvirV

10.

Tip

Tekstovni okvir (textFrame)

Name

TxtIz

Text

0

11.

Tip

Oznaka (Label)

Name

OznV

Text

0

BackColor

VbWhite

AutoSize

True

 

 Koda:

 

Option Explicit

Dim sit_dem As Single

Dim sit_lit As Single

Dim lit_dem As Single

Dim lit_sit As Single

Dim dem_sit As Single

Dim dem_lit As Single

  

Private Sub Form_Load()

sit_dem = InputBox("1 Sit = ? DEM", "Vnos tecaja", 0.01059)

sit_lit = InputBox("1 Sit = ? LIT", "Vnos tecaja", 10.45)

lit_dem = InputBox("1 Lit = ? DEM", "Vnos tecaja", 0.0010135)

lit_sit = InputBox("1 Lit = ? SIT", "Vnos tecaja", 0.0957)

dem_lit = InputBox("1 DEM = ? LIT", "Vnos tecaja", 986.804)

dem_sit = InputBox("1 DEM = ? SIT", "Vnos tecaja", 94.38)

End Sub

 

 Private Sub izSIT_Click()

 

 txtIz_Change

End Sub 

 

 Private Sub izLIT_Click()

 

 txtIz_Change

End Sub 

 

 Private Sub izDEM_Click()

 

 txtIz_Change

End Sub 

 

 Private Sub vSIT_Click()

 

 txtIz_Change

End Sub 

 

 Private Sub vLIT_Click()

 

 txtIz_Change

End Sub 

 

 Private Sub vDEM_Click()

 

 txtIz_Change

End Sub 

  

 Private Sub txtIz_Change()

 

 If izSIT Then

 

If vDEM Then

   

oznV.Caption = "= " & Str(Val(txtIz.Text) * sit_dem)

   

ElseIf vLIT Then

     

oznV.Caption = "= " & Str(Val(txtIz.Text) * sit_lit)

   

Else

     

oznV.Caption = "= " & txtIz.Text

   

End If

 

ElseIf izDEM Then

 

If vSIT Then

   

OznV.Caption = "= " & Str(Val(txtIz.Text) * dem_sit)

   

ElseIf vLIT Then

     

oznV.Caption = "= " & Str(Val(txtIz.Text) * dem_lit)

   

Else

     

oznV.Caption = "= " & txtIz.Text

   

End If

 

Else 'LIT

 

If vSIT Then

   

OznV.Caption = "= " & Str(Val(txtIz.Text) * lit_sit)

   

ElseIf vDEM Then

     

OznV.Caption = "= " & Str(Val(txtIz.Text) * lit_dem)

   

Else

     

OznV.Caption = "= " & txtIz.Text

   

End If

 

End If

End Sub

 

Datoteki: MENJAJ.VBP, MENJAJ.FRM

 

Opombe:

 

Pri izpisu nas moti, da je izpis na tako veliko stevilo decimalk. Prav tako je izpis "cuden", ce menjamo 1 LIT v DEM

 

 

Zdi se, kot da je 1 LIT 1.01 DEM. Razlog je v tem, da je zadeva prikazana v eksponentnem zapisu, ki pa ni viden.

Zato namesto funkcije Str raje uporabimo funkcijo Format v obliki: Format(izraz, "#####0.000").

 

If vSIT Then

OznV.Caption = "= " & Format(Val(txtIz.Text) * dem_sit, "#####0.000"))

ElseIf vLIT Then

oznV.Caption = "= " & Format(Val(txtIz.Text) * dem_lit, "#####0.000")

 

Izpis je lepši

 

 

Vaje: