Andre fag

Programmering - Der er fejl i mine koder..

23. april 2009 af Reactor (Slettet)

Hey jer derude.

Vi sidder to personer og laver projekt i Programmering.. Vi laver begge nogenlunde det samme program men vores koder gider ikke virke (Programmer er en GDA beregner)... Vi har en lærer der er ret håbløs, så en hjælp fra jer/dig, vil være meget velkommen. Det skal lige siges, at hvis koden virker meget mærkelig, er det fordi vi er meget ringe til det med programmering.. Mange af koderne er måske endda unødige, i såfald skal i bare sige til.

Her er koden til:


Private Sub cmdGDA_Click()
'Et desperat forsøg på at definere alt hvad der er muligt så problemet ikke skulle ligge der 

Dim Alder As String
Dim Vægt As String

Dim Mand As Integer
Dim Dame As Integer
Dim Mand2 As Integer
Dim Dame2 As Integer

Dim GDA As Long
Dim GDA2 As Long
Dim GDA3 As Single

Dim Meget1 As Long
Dim Aktiv1 As Long
Dim Lidt1 As Long
Dim Næsten1 As Long
Dim Meget2 As Long
Dim Aktiv2 As Long
Dim Lidt2 As Long
Dim Næsten2 As Long


CBMeget1 = Meget1
CBAktiv1 = Aktiv1
CBLidt1 = Lidt1
CBNæsten1 = Næsten1

CBMeget2 = Meget2
CBAktiv2 = Aktiv2
CBLidt2 = Lidt2
CBNæsten2 = Næsten2

'Nedenunder er et forsøg på at give de checkbokse som er i programmet en værdi, du kan se bileldet jeg har linket nedenunder.

Meget1 = 2
Aktiv1 = 1.8
Lidt1 = 1.4
Næsten1 = 1.2

Meget2 = 0.4
Aktiv2 = 0.2
Lidt2 = 0.1
Næsten2 = 0


Alder = txtAlder.Text
Vægt = txtVægt.Text

'Nedenunder kan man se hvor gammel personen er i forhold til det der er indtastet i feltet, hvis man er under 17, msgbox.. Over, skulle de værider skrevet neden under træde i kraft.. (Kat nr. 1 ligger vist begravet her, denne funktion virker vist ikke)

If Alder <= 17 Then
MsgBox "Du skal indtaste en alder over 18 for at kunne fortsætte", vbOKOnly & vbInformation, "Fejl"

ElseIf Alder >= 18 Then
Mand = 0.063
Dame = 0.0621
Mand2 = 2.8957
Dame2 = 2.0357
 

ElseIf Alder >= 31 Then
Mand = 0.0484
Dame = 0.0342
Mand2 = 3.6534
Dame2 = 3.5377
 

ElseIf Alder >= 60 Then
Mand = 0.0491
Dame = 0.0377
Mand2 = 2.4587
Dame2 = 2.7545

'Efterfølgende skal den checke om man er mand eller kvinde, hvor efter at ovenstående værdier skulle træde i kraft så formlen skulle virke.. Sjovt nok gør den det heller ikke helt..


If OptMand.Value = True Then
GDA = CDbl((Mand) * (Vægt) + (Mand2)) * 240
ElseIf OptDame.Value = True Then
GDA = CDbl((Dame) * (Vægt) + (Dame2)) * 240

'Her kommer de checkbokse som man markere, alt afhængig hvor aktiv man.. Værdien for hver checkbox er defineret ved toppen 

If CBMeget1.Value = True And CBMeget2.Value = True Then
GDA2 = CDbl(Meget1 + Meget2)
ElseIf CBMeget1.Value = True And CBAktiv2.Value = True Then
GDA2 = CDbl(Meget1 + Aktiv2)
ElseIf CBMeget1.Value = True And CBLidt2.Value = True Then
GDA2 = CDbl(Meget1 + Lidt2)
ElseIf CBMeget1.Value = True And CBNæsten2.Value = True Then
GDA2 = CDbl(Meget1 + Næsten2)


If CBAktiv1.Value = True And CBMeget2.Value = True Then
GDA2 = CDbl(Aktiv1 + Meget2)
ElseIf CBAktiv1.Value = True And CBAktiv2.Value = True Then
GDA2 = CDbl(Aktiv1 + Aktiv2)
ElseIf CBAktiv1.Value = True And CBLidt2.Value = True Then
GDA2 = CDbl(Aktiv1 + Lidt2)
ElseIf CBAktiv1.Value = True And CBNæsten2.Value = True Then
GDA2 = CDbl(Aktiv1 + Næsten2)


If CBLidt1.Value = True And CBMeget2.Value = True Then
GDA2 = CDbl(Lidt1 + Meget2)

ElseIf CBLidt1.Value = True And CBAktiv2.Value = True Then
GDA2 = CDbl(Lidt1 + Aktiv2)

ElseIf CBLidt1.Value = True And CBLidt2.Value = True Then
GDA2 = CDbl(Lidt1 + Lidt2)

ElseIf CBLidt1.Value = True And CBNæsten2.Value = True Then
GDA2 = CDbl(Lidt1 + Næsten2)


If CBNæsten1.Value = True And CBMeget2.Value = True Then
GDA2 = CDbl(Næsten1 + Meget2)
ElseIf CBNæsten1.Value = True And CBAktiv2.Value = True Then
GDA2 = CDbl(Næsten1 + Aktiv2)
ElseIf CBNæsten1.Value = True And CBLidt2.Value = True Then
GDA2 = CDbl(Næsten1 + Lidt2)
ElseIf CBNæsten1.Value = True And CBNæsten2.Value = True Then
GDA2 = CDbl(Næsten1 + Næsten2)

End If
End If
End If
End If
End If
End If

'Til sidst skal den regne GDA og GDA2 sammen til en samlet enhed. GDA1 er fra valget mellem mand dame + vægt, formlen står ovenover. GDA2 er chekcbokse lagt sammen. Og det skrives til en Label.

GDA3 = CDbl((GDA) * (GDA2))
Label5.Caption = "Dit anbefalet daglige kalorieindtag er blevet beregnet til " & GDA3

End Sub

Hvis du kan løse eller give et hint hvad vi kan gøre anderledes er du meget (!) velkommen. På forhånd tak. Andre sprøgsmål er også velkommen hvis der er noget jeg skal prøve at forklare.

Link til billede - http://img219.imageshack.us/img219/4783/gda.jpg

Formlen kan ses her http://www.dr.dk/DR1/kontant/Slanketema/Artikler/Person3.htm


Skriv et svar til: Programmering - Der er fejl i mine koder..

Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk? Klik her for at oprette en bruger.