Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Entwickler
>
RealBasic Code Fehler? (BMI Rechner)
RealBasic Code Fehler? (BMI Rechner)
Mac4livede
15.09.05
00:19
Wird ein BMI Rechner...
Er will damit aber nicht rechnen. Lerne in der Schule VB und hab versucht den BMI Rechner nun mit RealBasic nachzubauen. Bis auf dieser Part funktionier alles einwandfrei. Hinter // stehen Komentare die nicht im Code stehen
So sieht der berechnebotton aus:
Dim BMIwert as String
Dim Gewicht as String
Dim Groesse as String
BMIwert = labBMIwert.caption // Hier soll der BMI Wert ausgegeben werden
Gewicht = labGewicht.Caption // Hier steht eine Zahl drin die per Scrollbar reingeschrieben wurde
Groesse = labGroesse.Caption// Hier steht eine Zahl drin die per Scrollbar reingeschrieben wurde
labBMIwert.caption = Round(Gewicht / (Groesse/100)^2)as Double
Kann mir jemand helfen? braucht ihr noch Infos?
Hilfreich?
0
Kommentare
Klaus Major
15.09.05
00:39
Ich habe keine Ahnung von Basic, aber kann Basic denn so einfach mit STRINGS(!) rechnen?
...round(Gewicht/(Groesse...))...
Falls doch, was ich stark bezweifle, habe ich auch keine Idee
Hilfreich?
0
Don Quijote
15.09.05
00:44
Manche Basiv Versionen liessen sich in der Eingabe und Verarbeitung automatisch beschränken, bzw. wandelt das einfach um, ob sinnvoll sei wieder dahingestellt
Hilfreich?
0
Mac4livede
15.09.05
01:30
Klaus Major<br>[quote]Ich habe keine Ahnung von Basic, aber kann Basic denn so einfach mit STRINGS(!) rechnen?
das weiß ich nicht 100%. VB kann es, soweit ich es ausprobiert habe.
Wenn ich aber Gewicht und Größe als Double oder Integer deklariere gibt es immer noch probleme.
Irgendwie scheint Realbasic nicht die Werte aus dem Textfeld zu holen. Warum weiß ich noch nicht. Ich suche aber weiter nach einer Lösung. Vielleicht kann mir ja jemand hier noch weiterhelfen.
Hilfreich?
0
Rantanplan
15.09.05
01:39
Jetzt kommt bestimmt gleich wieder vb aus seinem Loch gekrochen und zeigt mit dem Finger auf mich...
Ich habe nämlich keinen Schimmer von RealBasic
Aber anderswo ist es zum Beispiel entweder so, daß die Eingabefelder zwar Strings liefern, man die aber zum Weiterverarbeiten erstmal umwandeln muß (außer man ist mit Strings zufrieden). Also wenn man weiß, daß Zahlen drin sein sollen, muß man eben den String explizit zur Zahl wandeln. In manchen GUI-Systemen findet das automatisch statt, aber das muß ja nicht für RB gelten. Oder: eventuell kannst du dem Eingabefeld mitteilen, daß es nur Zahlen akzeptieren soll und eventuell ist RB dann so schlau und wandelt selber. Aber irgendwer, entweder du explizit oder das GUI-System implizit, muß von String nach Zahl wandeln.
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
Hilfreich?
0
ts
15.09.05
02:10
Hört sich irgendwie so an, als ob da nach der Val-Funktion gefragt wird.
Habe selbst ziemlich lange nichts mehr mit RB gemacht (und das wird wahrscheinlich auch so bleiben), also ist meine Antwort vielleicht nicht (mehr) richtig.
Hilfreich?
0
Mac4livede
15.09.05
10:14
OK, danke für die Hinweise. Werde mal schaun was ich damit anfangen kann.
Hilfreich?
0
Jan_L
15.09.05
16:28
Rechnen mit Strings ist nicht so der Bringer
BMIwert = Val(labBMIwert.caption)
Wobei dein Code unter VB tatsächlich funktionieren würde, da kann man so rechnen.
Hilfreich?
0
Jan_L
15.09.05
16:29
Achja:
labBMIwert.caption = Str(Round(Gewicht / (Groesse/100)^2)as Double)
Hilfreich?
0
Jan_L
15.09.05
16:31
Naja, und eigentlich ist es auch nicht so dolle, so viele Variablen zu deklarieren, wenn man keine einzige braucht, aber das ist VB/RB-typisch, hab ich auch lange so gemacht, weil das in meinem VB-Buch ähnlich war...
Hilfreich?
0
Jan_L
15.09.05
16:34
Moment mal, ich hab mich veröesen, du hast ja auch diue Variablen als Strings...gottogott
Machs am besten so:
labBMIwert.caption = Str(Round(Val(labGewicht.caption)) / (labGroesse.caption/100)^2))
Sollte gehn
Hilfreich?
0
Klaus Major
15.09.05
16:53
Na, da lag ich ja überhaupt nicht so daneben
Hilfreich?
0
species8472
15.09.05
17:25
mac4livede
Du solltest generell zwischen "Rechnerei" und "Ein-/Ausgabe" trennen.
Rechnen (intern) mit Single oder Double und die Ausgabe dann als String.
Hilfreich?
0
Jan_L
15.09.05
17:45
Argh...:-&
Das, was ich geschrieben hab, war ja immer noch falsch...nicht mein Tag heut
labBMIwert.caption = Str(Round(Val(labGewicht.caption)) / Val((labGroesse.caption)/100)^2))
Jetzt sollte es gehn. Und wenn nicht, dann mach:
dim groesse = Val(labGroesse.caption) as integer
dim gewicht = Val(labGewicht.caption) as integer
labBMIwert.caption = Str(gewicht / groesse / 100 ^ 2)
Das ist auch gut lesbar.
Hilfreich?
0
Jan_L
15.09.05
19:17
Noch ein Tipp:
Wenn du irgendwann mal Zahlen durch ein Textfeld bekommen willst, dann kannst du mit
IsNumeric(value as variant) as boolean
prüfen, ob der String ne Zahl ist.
Beispiel:
if IsNumeric(textFeld.caption) then
// jetzt die Berechnung
else
MsgBox("Zahl, bidde!")
end if
Hilfreich?
0
Mac4livede
15.09.05
21:54
Jan_L<br>
Jetzt sollte es gehn. Und wenn nicht, dann mach:
dim groesse = Val(labGroesse.caption) as integer
dim gewicht = Val(labGewicht.caption) as integer
labBMIwert.caption = Str(gewicht / groesse / 100 ^ 2)
Das ist auch gut lesbar.
Vielen Dank für deine Hilfe!
leicht abgewandelt hat es dann funktioniert
dim Groesse as integer
dim Gewicht as integer
Groesse = Val(labGroesse.caption)
Gewicht = Val(labGewicht.caption)
labBMIwert.caption = Str(Round(Gewicht / (Groesse / 100) ^ 2))
Nun wollte ich auf 2 Nachkomma Stellen runden, aber das scheint auch ganz anders zu sein als in vb. mit
,2
hinter der klammer direkt nach dem Hoch2 klappt es nicht.
Hilfreich?
0
rofl
15.09.05
22:17
Schau doch mal in die Doku/Hilfe von RB, dort sollten alle Funktionen mit ihren jeweiligen Übergabeparameter erklärt sein.
Hilfreich?
0
Jan_L
15.09.05
22:18
Stimmt, hätte heißen müssen
dim Groesse as integer = Val(labGroesse.caption)
Bin grad ein bisschen raus aus RB...
Die Doku von RB ist bei Fragen wie dem Runden btw immer ein guter Ansprechpartner
Hilfreich?
0
Mac4livede
15.09.05
22:31
Jan_L<br>
Die Doku von RB ist bei Fragen wie dem Runden btw immer ein guter Ansprechpartner
Ich habe da aber leider nichts gefunden, da steht nur das man halt auf die volle Zahl runden kann, oder man schreibt halt statt dem ,2 einfach as Double, aber das funzt nicht. Das beißt sich scheinbar mit dem Str().
Naja, das werde ich aber (hoffentlich) noch beheben.
Aber das wichtigste funktioniert dank deiner Hilfe.
Danke nochmal
Hilfreich?
0
ts
15.09.05
23:20
Round rundet auf Integer. Tipp: Entsprechend multiplizieren und dividieren.
U.U. rundet Format auch, wird aus der sogenannten "Language Reference" nicht ganz klar, ist aber auch einen Versuch wert.
Hilfreich?
0
Mac4livede
15.09.05
23:31
lol, klar Format, das ich nicht selber drauf gekommen bin. Nun ist alles gut. Freu.
Danke für eure Hilfe.
Ich habe fertig, sozusagen.
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
Apple kündigt Systemupdates für heute Abend an ...
iOS 18.2, macOS 15.2 und Co.: Apple stopft viel...
Gurman zum Release des neuen Apple TV, HomePods...
iOS 18.3 mit Hinweisen auf neue Apple-Hardware
Vor 18 Jahren: iPhone, Apple TV und "Apple Inc."
iOS 18: Kritik an neuer Fotos-App reißt nicht ab
iPod-Vater Tony Fadell wollte Sonos kaufen – St...
TechTicker