| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	
	
	
		| Autor | 
		Nachricht | 
	
	
		Lord_Gismo
 
 
  Anmeldungsdatum: 02.08.2008 Beiträge: 2
 
  | 
		
			
				 Verfasst am: 02.08.2008, 20: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, 20: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, 21: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, 22: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: 4712 Wohnort: ~/
  | 
		
			
				 Verfasst am: 02.08.2008, 23: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 | 
		 | 
	
	
		  | 
	
	
		 |