Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Lord_Gismo
Anmeldungsdatum: 02.08.2008 Beiträge: 2
|
Verfasst am: 02.08.2008, 21:52 Titel: IF then frage |
|
|
hi ich schriebe ein rechenen prog für die arbeit in qickbasic und habe nun folgendes prob:
ich habe die variabel I2# in eine if then prozedur gesetzt
und zwar damit die 0 vermieden werden kann.
also :
1 Input "I=" I2#
IF I2# = "0" THEn
Print "0 Ist nicht zu lässig wiederholen sie ihre Eingabe"
Goto 1
End If
....
Leider springt er wenn ich des testen will immer aus die zeile und gibt dann unverträgliche Daten Typen aus
wo liegt der fehler und ist möglich villeicht den befehl zu spezifiziern is Quickbasic?
Also ich dacht so if I2# ="<0" Then ....? |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 02.08.2008, 21:58 Titel: |
|
|
Hallo,
Sprungmarken sollte man grundsätzlich nicht verwenden, weil das Programm dadurch unübersichtlich wird. Besser wäre es so:
Code: | Dim i As Double
'...
Do
Input "I=", i
If i <= 0 Then
Print "I muss grӇer als 0 sein. Sie mssen Ihre Eingabe wiederholen."
Else
Exit Do
End If
Loop
Print
Print Using "Es wurde Folgendes eingegeben: I = ###.##### "; i
SLEEP
END |
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 02.08.2008, 22:01 Titel: |
|
|
Hallo Gismo!
Deutsch ist nicht deine Muttersprache, hm?
statt
einfach
verwenden.
Lutz Ifer _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
Lord_Gismo
Anmeldungsdatum: 02.08.2008 Beiträge: 2
|
Verfasst am: 02.08.2008, 23:15 Titel: |
|
|
das mit den "" weg lassen hab ich schon versucht klappt net dann mekert er auch ich habe eigentlich das gefühl das die null ein wert ist mit dem basic net klar kommt denn bei den anderen zeilen funtioniert es ja
2 PRINT "Bitte W„hlen sie ein Katigorie:"
PRINT " (1) Widerstandsberechnung"
PRINT " (q) Exit"
REM Hier Gibt er den Oben Sthenden Taxt aus
INPUT "Ihre Wahl?", Wahl$
REM Hier wird die Variabel Wahl$(string) gesetzt
IF Wahl$ = "1" THEN
GOTO 1
END IF
IF Wahl$ = "q" THEN
END
END IF
1 CLS
PRINT "W„hlen Sie Eine Art der Wiederstandsberechnung"
PRINT "(1) Ohmsche's Gesetz"
PRINT "(q) Zurck"
INPUT "Ihre Wahl?", Wahl1$
IF Wahl1$ = "1" THEN
GOTO 21
END IF
IF Wahl1$ = "q" THEN
GOTO 2
END IF
21 CLS
PRINT "W„hlen Sie Aus was sie Berechnen Wollen"
PRINT " (1) R"
PRINT " (2) I"
PRINT " (3) U"
PRINT " (q) Zurck"
INPUT "Machen sie Ihre Auswahl:", Wahl2$
IF Wahl2$ = "1" THEN
GOTO 11
END IF
IF Wahl2$ = "2" THEN
GOTO 12
END IF
IF Wahl2$ = "3" THEN
GOTO 13
END IF
IF Wahl2$ = "q" THEN
GOTO 2
END IF
11 CLS
14 PRINT " Geben sie U in Volt ein"
INPUT "U=", U1#
IF U1# = "0" THEN
PRINT "0 ist keine gltige wahl bitte Wiederholen sie"
GOTO 14
END IF
15 PRINT "Geben sie I in mA ein"
INPUT "I=", I1#
IF I1# = "0" THEN
PRINT "0 ist keine gltige wahl bitte Wiederholen sie"
GOTO 15
END IF
mA# = .001
I12# = I1# * mA#
R1% = U1# / I12#
PRINT "R=", R1%
12 CLS
16 PRINT "Geben sie U in V ein"
INPUT "U=", U2#
IF U2# = "0" THEN
PRINT "0 ist keine gltige wahl bitte Wiederholen sie"
GOTO 16
END IF
17 PRINT " Bitte geben Sie R in Ohm ein"
INPUT "R=", R1%
IF R1% = "0" THEN
PRINT "0 ist keine gltige wahl bitte Wiederholen sie"
GOTO 17
END IF
I2# = U2# / R1%
I22# = I2# * .001
PRINT "I=", I22#
13 CLS
18 PRINT "Geben sie R in Ohm ein"
INPUT "R=", R3%
IF R3% = "0" THEN
PRINT "0 ist keine gltige wahl bitte Wiederholen sie"
GOTO 18
19 PRINT " Geben sie I in mA ein"
INPUT "I=", I3#
IF I3# = "0" THEN
PRINT "0 ist keine gltige wahl bitte Wiederholen sie"
GOTO 19
END IF
I31# = I2# * .001
U3# = I31# * R3%
PRINT "U3=", U3#
LOOP[/code] |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 03.08.2008, 00:51 Titel: |
|
|
Das Problem ist, dass I# und R% usw. Zahlen sind und "0" ein String. Das hat nichts mit dem Wert 0 zu tun. Bei den Anfragen am Anfang hattest du zwei Strings Wahl$ und "1", und das funktioniert - würde mit "0" genauso funktionieren.
Mag sein, dass INPUT immer einen String zurückgeben möchte. Eine Möglichkeit wäre noch, beim INPUT die Eingabevariable R$ zu verwenden und dann
zu versuchen. Dann kannst du mit
deine Ueberpruefung machen. Ist zwar etwas umständlicher und vielleicht nicht die beste Umsetzung, sollte aber zumindest funktionieren.
(habe jetzt mal R% genommen, weil es mir als erstes ins Auge gesprungen ist) _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
|