Wiedermal ein n00b prob von mir...

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

WIZO

Betreff: Wiedermal ein n00b prob von mir...

BeitragSa, Aug 19, 2006 4:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi so der zweite n00b Thread von mir hier hur:
So hab das Problem das ich einen BMI (Body-Mass-Index) Rechner mir zusammen basteln wollte, nur so zum Spaß...
Das Problem liegt darin das ich die Rechnung nicht hinkrieg!
Die Rechnung von einem BMI wert ist: BMI = Körpergewicht : (Körpergröße in m)²
so und hier ist der Code den ich bissher hab (hab ich aber auch nur in 5 min zusammen gekriegt)
Code: [AUSKLAPPEN]
AppTitle "BMI"
Graphics 800,600,16,2
Gewicht = Input$("Gib hier dein Gewicht in Kilogramm ein (z.b. 56)")
Groesse = Input$("Gib hier deine Groesse in Metern ein (z.B. 1,72)")
BMI = Gewicht/Groesse*Groesse
Print "Dein BMI lautet: " + BMI + "."
WaitKey
End


So da kommt aber wirklich nur Schrott raus (die meisten die BB öfters coden werden 100% denken: "OMG was macht der denn für ein Shit?!?" aber ich hab wirklich sehr wenig ahnung von BB und quäl mich durch ein BB Buch wo am Anfang alles Einfach erklärt wird und dann schlagartig alles so komisch kompliziert ist!)
Hoffe ihr könnt mir helfen wie man das lösen kann!
DANKE

BladeRunner

Moderator

BeitragSa, Aug 19, 2006 5:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Trick liegt darin die passenden Variablentypen zu nehmen:
Du willst eine Rechnung machen, fragst mit Input$ aber eine Zeichenkette ab, welche dann (mangels anderer Identifikation an der Variablen) auch so gespeichert wird.
Was Du brauchst sind Gleitkommavariablen (floats) und eine passende Inputabfrage.
Zudem musst Du darauf achten dass Kommazahlen am Computer mit einem Punkt dargestellt werden.

Nochmal die Variablentypen:
var$ ist ein String (Zeichenkette) - "Hallo"
var% ist ein Integer (Ganzzahl) - 3
var# ist eine Float ([Gleit-]kommazahl) - 3.32

Es ist immens wichtig Dir klarzumachen dass der Computer nicht wissen kann ob Du mit Zahlen rechnen willst oder welches Format diese haben. Daher musst Du es ihm mitteilen.
Du kannst auch Arten von Variablen untereinander "tauschen", das nennt sich dann casten. Dazu musst du dem Computer den Typ in den eine Variable gewandelt werden soll angeben:
Beispiel. a% = int(b$) ; macht aus einem String eine Zahl, dies geht allerdings nur wenn direkt zu Beginn der Zeichenkette eine Zahl steht.

hier mal ein (ins extreme) verbesserter Code:
(Die Konvertierung mittels float ist nicht zwingend, da Du ja schon im Variablennamen angibst welcher Typ es ist.)

BlitzBasic: [AUSKLAPPEN]
AppTitle "BMI" 
Graphics 800,600,16,2
Gewicht# = Float(Input("Gib hier dein Gewicht in Kilogramm ein (z.b. 56)"))
Groesse# = Float(Input("Gib hier deine Groesse in Metern ein (z.B. 1.72)"))
BMI# = Gewicht/(Groesse*Groesse)
Print "Dein BMI lautet: " + BMI + "."
WaitKey
End
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Schranz0r

BeitragSa, Aug 19, 2006 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
BlitzBasic: [AUSKLAPPEN]
AppTitle "BMI" 
Graphics 800,600,16,2
Gewicht# = Float(Input("Gib hier dein Gewicht in Kilogramm ein (z.b. 56)"))
Groesse# = Float(Input("Gib hier deine Groesse in Metern ein (z.B. 1.72)"))
BMI# = Gewicht/(Groesse*Groesse)
Print "Dein BMI lautet: " + BMI + "."
WaitKey
End



Vollkommen richtig Very Happy
Ich wollte auch grad schreiben, dann hab ichs schon gelesen Crying or Very sad Wink

D2006

Administrator

BeitragSa, Aug 19, 2006 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
Du willst eine Rechnung machen, fragst mit Input$ aber eine Zeichenkette ab, welche dann (mangels anderer Identifikation an der Variablen) auch so gespeichert wird.


Den Satz kann man imho nicht so stehen lassen.
Gibt man bei der ersten Verwendung einer Variable (eventuell der Deklaration) keinen Variablentypen an (also kein %,# oder $), dann wählt Blitz automatisch Integer (%). Egal was man da zuordnen will.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

StepTiger

BeitragSa, Aug 19, 2006 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
oder einfach nur
Code: [AUSKLAPPEN]
AppTitle "BMI"
Graphics 800,600,16,2
Gewicht# = Input$("Gib hier dein Gewicht in Kilogramm ein (z.b. 56)")
Groesse# = Input$("Gib hier deine Groesse in Metern ein (z.B. 1.72)")
BMI# = Gewicht/(Groesse#*Groesse#)
Print "Dein BMI lautet: " + BMI# + "."
WaitKey
End
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
  • Zuletzt bearbeitet von StepTiger am So, Aug 20, 2006 16:56, insgesamt einmal bearbeitet

BladeRunner

Moderator

BeitragSa, Aug 19, 2006 23:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Supi, und schon ist das Programm weniger flexibel und nimmt zB keine 56.2 kg mehr an ...
Und da ich grad am Abnehmen bin kann ich Dir sagen dass das durchaus einen Unterschied macht. Wink
(Gut, der Inputtext ist etwas unglücklich gewählt. Aber Floats sind hier allemal vorzuziehen, noch dazu wo bei den Eingabewerten keine Probleme mit mangelnder Genauigkeit zu erwarten sind.)
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Kleiner satan

BeitragSo, Aug 20, 2006 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
du brauchst doch nit immer zu sagen dein wievielter nOOb thread das ist!
deshalb bist du ja hier im Beginners-Corner!

StepTiger

BeitragSo, Aug 20, 2006 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
kennste kleiner satan heh? ^^ Nein Spaß!

Habs oben verändert und schon braucht man keine FLOATS mehr da hin schreiben, weil in bb der variablenname die funktionsrückgabe bestimmt.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

BladeRunner

Moderator

BeitragSo, Aug 20, 2006 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Dass die floats nicht nötig sind schrub ich auch schon. Ich hatte sie drin damit er den -eigentlich- korrekten weg des sauberen Typecasts kennenlernt.
Dass BB die andere Methode erlaubt und die meisten (inklusive mir) sie nutzen ändert nichts dran dass der Cast der korrekte Weg ist. Unter BMax kommt man bei superstict auch anders nimmer weiter. Was ich- nachdem ich fast komplett umgestiegen bin- auch sehr begrüsse.
Hilft einfach Fehler zu vermeiden.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

WIZO

BeitragSo, Aug 20, 2006 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
so erstma Danke an alle jetzt nur eine kleine Frage:
Kann man es ändern das wenn der BMI ausgerechnet wurde das Ergebnis nich so da steht: 25.000000 sondern z.B. 25.0?

D2006

Administrator

BeitragSo, Aug 20, 2006 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Erneuere dein BB. Neuere Versionen machen das von Haus aus.
Wenn du die Demo hast, kann ich dir immerhin mit der Gewissheit helfen, dass es weg sein wird, wenn du dir baldig die Vollversion kaufen wirst. Wink

Klar könnte man eine Funktion dafür machen, aber obiges hilft ja schon.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group