if Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

G251x

Betreff: if Problem

BeitragMo, Nov 14, 2005 23:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Erst einmal ein Hi and die gesamte Com.!

Ich habe gestern mit BlitzBasic angefangen und stoße schon auf meine Grenzen Embarassed
Habe mir das Buch "Spiele Programmieren mit Blitz Basic" zugelegt.
Bin jetzt bei diesem Ice-O-Mat und den If-Verzweigungen angekommen und mir dann gedacht um zu testen ob ich alles verstanden habe, bastel ich mir doch mal einen Volumen Rechner. Naja und da hängt es auch schon.

Erstmal zu meinem Code:

BlitzBasic: [AUSKLAPPEN]

; Namensgebung und Grafik Modus

AppTitle \"Volumenrechner\"
Graphics 640,480

; Begrüßung und Auswahl

Print \"Hallo und Herzlich wilkommen!\"
Print \"Dies ist ein Programm zur Volumenberechnung.\"
Print \"1 - Würfel\"
Print \"2 - Quader\"
Print \"3 - Zylinder\"
Print \"4 - Hohlzylinder\"
Print \"5 - Pyramide\"
Print \"6 - Kegel\"

; Auswahl

Auswahl = Input$(\"Bitte wählen Sie aus: \")

; Rechnungen
; Würfel

If Auswahl = 1 Then
wl = Input$(\"Bitte Kantenlänge eingeben: \")
we = wl * wl * wl
Print \"Das Volumen des Würfels beträgt: \" + we + \"mm³.\"
EndIf
WaitKey


; Quader

If Auswahl = 2 Then
ql = Input$(\"Bitte Länge eingeben: \")
qb = Input$(\"Bitte Breite eingeben: \")
qh = Input$(\"Bitte Höhe eingeben: \")
qe = ql * qb * qh
Print \"Das Volumen des Quaders beträgt: \" + qe + \"mm³.\"
EndIf
WaitKey


; Zylinder

If Auswahl = 3 Then
zd = Input$(\"Bitte Durchmesser eingeben: \")
zh = Input$(\"Bitte Höhe eingeben: \")
ze = zd * zd * Pi / 4 * zh
Print \"Das Volumen des Zylinders beträgt: \" + ze + \"mm³.\"
EndIf
WaitKey


; Hohlzylinder

If Auswahl = 4 Then
hD1 = Input$(\"Bitte Durchmesser D1 eingeben: \")
hD2 = Input$(\"Bitte Durchmesser d2 eigeben: \")
hh = Input$(\"Bitte Höhe eingeben: \")
he1 = Pi * hh / 4
he2 = hD1 * hD1 - hD2 * hD2
he = he1 * he2
Print \"Das Volumen des Hohlzylinder beträgt: \" + he + \"mm³.\"
EndIf
WaitKey


; Pyramide

If auswahl = 5 Then
pl = Input$(\"Bitte Länge eingeben: \")
pb = Input$(\"Bitte Breite eingeben: \")
ph = Input$(\"Bitte Höhe eingeben: \")
pe = pl * pb * ph / 3
Print \"Das Volumen der Pyramide beträgt: \" + pe + \"mm³.\"
EndIf
WaitKey


; Kegel

If Auswahl = 6 Then
kd = Input$(\"Bitte Durchmesser D1 eingeben: \")
kh = Input$(\"Bitte Höhe eingeben: \")
ke1 = kd * kd * Pi / 4
ke2 = kh / 3
ke = ke1 * ke2
Print \"Das Volumen des Kegels beträgt: \" + ke + \"mm³.\"
EndIf
WaitKey


So jetzt zu meinen Problemchen:

1.
Irgendwie funktioniert das ganze nur bei der Würfelberechnung.
Wenn ich irgendeine andere Formel rechnen will tut das programm gar nichts mehr.

2.
Jetzt hätt ich gerne noch das, dass Programm nachdem es einmal durchgelaufen ist wieder von vorne anfängt. Ich weis das man das mit einer Repeat/forever Schleife machen kann, doch irgendwie hab ich die nicht zum laufen gebracht. Hab sie dann auch wieder aus dem Code genommen.

3.
Ich hab die Formeln jetzt verdammt umständlich da rein Programmiert, kann Blitz basic diese auch ganz normal ausrechnen wenn ich zb. die Formel für das Volumen eines Hohlzylinder die eigendlich
Pi * h / 4 * (D² - d²) ist.

So das wars dann auch jetz erst mal Shocked

Vielen Dank schonmal im Vorraus!!!

EDIT: Achja dann wollt ich noch fragen ob der Code so Übersichtlich geschrieben ist?

bruce185

BeitragMo, Nov 14, 2005 23:35
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
schau mal da wo auswahl = 5 steht, du hast es klein geschrieben, für Blitz Basic ist es dann eine neue Variable

gruss Andreas
  • Zuletzt bearbeitet von bruce185 am Mo, Nov 14, 2005 23:45, insgesamt einmal bearbeitet

G251x

BeitragMo, Nov 14, 2005 23:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Klasse vielen dank damit wär schonmal 1 problem behoben.
Hab ich wohl übersehen Embarassed

Damit tritt aber schon das nächste auf.
Wenn ich dann was ausgewählt habe, muss ich erst 5mal enter drücken bis ich zu den nächsten eingaben komme.

und die andern 2 probleme hätt ich da auch noch *g*

Bzw. Namensvetter ^^

Gruß G251x

bruce185

BeitragMo, Nov 14, 2005 23:43
Antworten mit Zitat
Benutzer-Profile anzeigen
ja das ist weil Waitkey 5 mal drinne steht, du musst Waitkey in die If anweisung mit einpacken, dann geht es Very Happy

gruss andreas
  • Zuletzt bearbeitet von bruce185 am Mo, Nov 14, 2005 23:45, insgesamt einmal bearbeitet

SenSix

BeitragMo, Nov 14, 2005 23:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo G251x, wir kennen uns glaub ich schon, ich bin Dark Mania Wink

1. Erstmals die ganzen WaitKey's weg. Dann sollten die anderen Formeln auch gehen.

2. Nach dem Graphics Befehl ein "SetBuffer BackBuffer()" setzen.
Vor dem Hauptprogramm, also vor dem erstem Print solltest du dann "Repeat" machen. Gleich unten drunter ein "Cls".
Am Schluss des Programmes machst du ein "Flip" und drunter ein "Until KeyHit(1)", das sorgt dafuer dass man das Programm mit ESC beenden kann. Dieses Problem sollte dann auch geloest sein.

3. Da halte ich mich jetzt erstmal zurueck Laughing

Das haetten wir dann. Aus eigener Erfahrung kann ich nur empfehlen, statt Print einfach "Text, x, y, ("blablablubbXDlolohblafuloletcetc")" zu verwenden. Ansonsten bekommst du spaeter ziemliche Probleme.

Zu deinem EDIT: Eigentlich ist das schon ganz uebersichtlich. Allerdings wuerde ich bei den IF's ein TAB statt einem SPACE zu verwenden. Ist einfach r00liger.

G251x

BeitragMo, Nov 14, 2005 23:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Lol ne wie Geil, der Darki XD
Thx nochmal das hat das ganze auch wieder behoben ^^

So jetzt hab ich meine probleme mit dem Print, der text rutscht nähmlich immer weiter nach unten bis man ihn garnicht mehr sieht *g*
Ich werd mal das mit Text probieren.

Sach deinem Bro. mal nen schönen gruß ^^

Komm mal Rmg chat pls X.x

SenSix

BeitragMo, Nov 14, 2005 23:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Hier koennte dir das Arbeiten mit Text etwas erleichtern. Aber wie des mit Input harmoniert etc. hab ich noch keine Ahnung, bin auch noch am Lernen Very Happy

btw, meinen bro hats schon umgehauen, er liegt im bett und penn0rt.

bruce185

BeitragMo, Nov 14, 2005 23:55
Antworten mit Zitat
Benutzer-Profile anzeigen
mit Text geht das glaub net, ich hab das mal für dich ausgebessert:

Code: [AUSKLAPPEN]

; Namensgebung und Grafik Modus

AppTitle "Volumenrechner"
Graphics 640,480
SetBuffer BackBuffer()

Global Auswahl = 0

; Begrüßung und Auswahl

Print "Hallo und Herzlich wilkommen!"
Print "Dies ist ein Programm zur Volumenberechnung."
Print "1 - Würfel"
Print "2 - Quader"
Print "3 - Zylinder"
Print "4 - Hohlzylinder"
Print "5 - Pyramide"
Print "6 - Kegel"
Print
; Auswahl

;Die Hauptschleife
Repeat

Auswahl = Input$("Bitte wählen Sie aus: ")

; Rechnungen
; Würfel

If Auswahl = 1 Then
 wl = Input$("Bitte Kantenlänge eingeben: ")
  we = wl * wl * wl
 Print "Das Volumen des Würfels beträgt: " + we + "mm³."
 WaitKey
EndIf 


; Quader

If Auswahl = 2 Then
 ql% = Input$("Bitte Länge eingeben: ")
  qb = Input$("Bitte Breite eingeben: ")
   qh = Input$("Bitte Höhe eingeben: ")
  qe = ql * qb * qh
Print "Das Volumen des Quaders beträgt: " + qe + "mm³."
WaitKey
EndIf 


; Zylinder

If Auswahl = 3 Then
  zd = Input$("Bitte Durchmesser eingeben: ")
   zh = Input$("Bitte Höhe eingeben: ")
  ze = zd * zd * Pi / 4 * zh
 Print "Das Volumen des Zylinders beträgt: " + ze + "mm³."
 WaitKey
EndIf 


; Hohlzylinder

If Auswahl = 4 Then
 hD1 = Input$("Bitte Durchmesser D1 eingeben: ")
  hD2 = Input$("Bitte Durchmesser d2 eigeben: ")
   hh = Input$("Bitte Höhe eingeben: ")
    he1 = Pi * hh / 4
   he2 = hD1 * hD1 - hD2 * hD2
  he = he1 * he2
 Print "Das Volumen des Hohlzylinder beträgt: " + he + "mm³."
 WaitKey
EndIf


; Pyramide

If Auswahl = 5 Then
 pl = Input$("Bitte Länge eingeben: ")
  pb = Input$("Bitte Breite eingeben: ")
   ph = Input$("Bitte Höhe eingeben: ")
  pe = pl * pb * ph / 3
 Print "Das Volumen der Pyramide beträgt: " + pe + "mm³."
 WaitKey
EndIf


; Kegel

If Auswahl = 6 Then
 kd = Input$("Bitte Durchmesser D1 eingeben: ")
  kh = Input$("Bitte Höhe eingeben: ")
   ke1 = kd * kd * Pi / 4
  ke2 = kh / 3
 ke = ke1 * ke2
Print "Das Volumen des Kegels beträgt: " + ke + "mm³."
WaitKey
EndIf

Print

Flip ;die seite flipen
Until KeyHit(1);ESC dann ende
End ;Ende


den Text müsste man immer sehen Very Happy

gruss Andreas

G251x

BeitragDi, Nov 15, 2005 0:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow das geht ja echt verdammt fix hier Shocked

Genauso hab ich mir das ganze eigendlich vorgestellt ^^
Naja dann werd ich mir den verbesserten Code nochmal durchlesen und zu verstehen Smile Man kann ja nicht alles Wissen ^^"
Erstmal gucken für was dieses Global ist.

Thx !!!

SenSix

BeitragDi, Nov 15, 2005 0:08
Antworten mit Zitat
Benutzer-Profile anzeigen
G251x hat Folgendes geschrieben:
Wow das geht ja echt verdammt fix hier Shocked

Genauso hab ich mir das ganze eigendlich vorgestellt ^^
Naja dann werd ich mir den verbesserten Code nochmal durchlesen und zu verstehen Smile Man kann ja nicht alles Wissen ^^"
Erstmal gucken für was dieses Global ist.

Thx !!!


Global? Global deklariert eine Variable. Diese kannst du im Hauptprogramm und in Functions verwenden. Wenn du nicht weisst, was Functions sind, haengst du etwas durch und solltest dir die Tuts von BlitzBase.de reinziehen.
Mit Local definiert du uebrigens Variablen, die nur in Funktionen oder nur im Hauptprogramm verwenden kannst. Du kannst auch lokale Variablen an Funktionen uebergeben und umgekehrt und dann ist die Welt fuer alle in Ordnung und so.

G251x

BeitragDi, Nov 15, 2005 0:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich häng nich durch XD
Hab blos noch nich soviel gelernt, nicht viel Zeit.
Bzw. Kommt in dem Buch als erstes diese If - Verzweigungen und bischen variablen. Das steht noch nix von Global usw.

Aber thx jetzt muss ich zwar noch rausfinden was die anderen befehle sind aber das wird schon mit der zeit ^^

Hubsi

BeitragDi, Nov 15, 2005 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
bruce185 hat Folgendes geschrieben:
hi,
schau mal da wo auswahl = 5 steht, du hast es klein geschrieben, für Blitz Basic ist es dann eine neue Variable

gruss Andreas
Quatsch Very Happy BlitzBasic ist nicht case sensitiv, soll heissen ob du nun bla=true oder BLA=tRuE oder bLa=TRUE schreibst bleibt es immer das gleiche Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

bruce185

BeitragSa, Nov 19, 2005 8:02
Antworten mit Zitat
Benutzer-Profile anzeigen
du hast recht, sry Very Happy

Andreas

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group