| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	
	
	
		| Autor | 
		Nachricht | 
	
	
		K.I.T.T.
 
 
  Anmeldungsdatum: 24.01.2005 Beiträge: 79
 
  | 
		
			
				 Verfasst am: 09.09.2005, 13:25    Titel: Fehler beim komilieren | 
				     | 
			 
			
				
  | 
			 
			
				Moin,
 
als ich eben mein Programm kompilieren wollte, stand da folgende Fehlermeldung:
 
 
"Expected expression, found: ';'
 
 
Hier die Codezeile:
 
 
 	  | Code: | 	 		  
 
PRINT "Laufzeit = (";Ek# - Sk#;") / (";Sk# *;" (";Zs#/100;"))"
 
 | 	  
 
Wieso geht das nicht?
 
 
Gruß K.I.T.T. | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		jb
 
  
  Anmeldungsdatum: 14.01.2005 Beiträge: 2010
 
  | 
		
			
				 Verfasst am: 09.09.2005, 13:42    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Der Fehler ist hier:
 
PRINT "Laufzeit = (";Ek# - Sk#;") / (";Sk# *;" (";Zs#/100;"))" 
 
 
Das * stört.  
 
 
jb | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		K.I.T.T.
 
 
  Anmeldungsdatum: 24.01.2005 Beiträge: 79
 
  | 
		
			
				 Verfasst am: 09.09.2005, 14:21    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Aber das isg doch ein Mal-Zeichen??
 
 
Gruß K.I.T.T. | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		MisterD
 
  
  Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
  | 
		
			
				 Verfasst am: 09.09.2005, 14:26    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				ja aber es steht keine weitere variable dahinter.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
 
Edsger W. Dijkstra | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		jb
 
  
  Anmeldungsdatum: 14.01.2005 Beiträge: 2010
 
  | 
		
			
				 Verfasst am: 09.09.2005, 14:31    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Ich glaube das Problem ist, dass du das Rechnen in die Print-Anzeige einbauen möchtest.
 
Das geht aber nur in Sprachen wie C++.
 
 
Also: Führe alle Berechnungen vorher durch, und schreibe dann auf den Bildschirm.  
 
 
jb | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		K.I.T.T.
 
 
  Anmeldungsdatum: 24.01.2005 Beiträge: 79
 
  | 
		
			
				 Verfasst am: 09.09.2005, 14:45    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Moin,
 
ja, das habe ich ja auch teilweise gemacht (also Berechnungen vorher), aber teilweise auch im PRINt-Befehl. Guck dir doch den Anfang der Zeile an, da führe ich doch auch schon ne Berechnung durch (im PRINT-Befehl). Ek# - Sk#
 
Aber egal, dann werde ich da auch die Berechnung vorher durchführen *G*.
 
Danke an alle.
 
 
Gruß K.I.T.T. | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		ytwinky
 
  
  Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
  | 
		
			
				 Verfasst am: 09.09.2005, 15:05    Titel: Fehler beim komilieren | 
				     | 
			 
			
				
  | 
			 
			
				@K.I.T.T.
 
Wenn du in ?-Anweisungen rechnen willst, solltest du sorgfältig KLAMMERN.
 
Schau mal:
 
 	  | Code: | 	 		  a=17
 
b=4
 
c=2
 
?"DIE ANTWORT IST";((a+b)*c)
 
Sleep
 
 | 	  
 
Das funktioniert einwandfrei, probier mal..
 
Gruß ytwinky _________________
  	  | v1ctor hat Folgendes geschrieben: | 	 		  | Yeah, i like INPUT$(n) as much as PRINT USING.. | 	  ..also ungefähr so, wie ich GOTO.. | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Michael712 aka anfänger, programmierer
 
  Anmeldungsdatum: 26.03.2005 Beiträge: 1593
 
  | 
		
			
				 Verfasst am: 09.09.2005, 15:07    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Code: | 	 		  | /"(";Sk# * (Zs#/100);")" | 	  
 
 
so kannst du das auch im Print Befehl schreiben. Allersings siehts dann nicht so aus, wie du das haben willst.(Glaube ich)
 
 
Mfg
 
Michael | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		MisterD
 
  
  Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
  | 
		
			
				 Verfasst am: 09.09.2005, 15:49    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				ich vermute mal, du wolltest das eigentlich so haben:
 
[code]statt
 
PRINT "Laufzeit = (";Ek# - Sk#;") / (";Sk# *;" (";Zs#/100;"))"
 
einfach
 
PRINT "Laufzeit = (";Ek# - Sk#;") / (";Sk# ;" * (";Zs#/100;"))" _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
 
Edsger W. Dijkstra | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		jb
 
  
  Anmeldungsdatum: 14.01.2005 Beiträge: 2010
 
  | 
		
			
				 Verfasst am: 09.09.2005, 22:02    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Ich hatte mich vorhin etwas undeutlich ausgedrückt: 
 
Rechnen kann man im PRINT-Befehl sehr wohl, nur mit den Zuweisungen hapert's:
 
 
Ein 
 
 	  | Code: | 	 		  
 
print "a + 1: "; a = a + 1
 
 | 	  
 
funktioniert nicht, wobei in C++
 
 	  | Code: | 	 		  
 
cout >> "a + 1: " >> a++ >> endl;
 
 | 	  
 
fehlerfrei kompiliert wird.
 
 
jb | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		MisterD
 
  
  Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
  | 
		
			
				 Verfasst am: 09.09.2005, 23:28    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				++ ist ja auch wieder was spezielles.. würd >>a=a+1>> auch gehen? _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
 
Edsger W. Dijkstra | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		jb
 
  
  Anmeldungsdatum: 14.01.2005 Beiträge: 2010
 
  | 
		
			
				 Verfasst am: 10.09.2005, 11:49    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Müsste gehen.
 
Denn an sich ist ++ nichts Spezielles, sondern nur die Kurzform von variable = variable + 1.
 
 
Moment, teste ich eben mal aus.
 
 
/EDIT:
 
 
Aalso: Um hier etwas klarzustellen ( )
 
Das ganze geht in C++ überhaupt nicht, da muss ich mich vertan haben.
 
Zumal müssen die >> zu << bei cout geändert werden.
 
 
Wollte hier keinen Mist erzählen, aber ich war mir halt sicher.
 
 
Sorry noch einmal  
 
 
jb | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Dusky_Joe
 
  
  Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
  | 
		
			
				 Verfasst am: 10.09.2005, 15:16    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Shorthands, die du meinst, sehen unter freeBASIC so aus:
 
 
 	  | Code: | 	 		  
 
a += 1
 
b -= 5
 
c *= 17
 
d / = SIN(3.1) | 	  
 
 
Andere Shorthands gibts leider nicht.
 
 
Details zu den SH:
 
http://fb.exp-soft.de/FBtuts.php?zeig=tuts&view=Referenz_Grundlagen-2.~Ausdruecke~und~Operatoren.txt#7
 
 
Have a nice day
 
Ciao _________________ fully biological degradable
 
 
Once, the big wave arrives, you've got two ways, you can go:
 
Either, you ride it, or you don't do.
 
But, if you don't ride, you'll never know wether you'd have gone wet. | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		jb
 
  
  Anmeldungsdatum: 14.01.2005 Beiträge: 2010
 
  | 
		
			
				 Verfasst am: 10.09.2005, 16:08    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Wir meinten aber C++, Dusky  
 
 
jb | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Dusky_Joe
 
  
  Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
  | 
		
			
				 Verfasst am: 10.09.2005, 16:19    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Oh! Dann muss ich mir wohl das lesen auch wieder angewöhnen....
 
Soweit ich weiß, sind die FB-SHs an C/C++ angelehnt, wenn nicht kopiert. versuch mal die oben genannten... _________________ fully biological degradable
 
 
Once, the big wave arrives, you've got two ways, you can go:
 
Either, you ride it, or you don't do.
 
But, if you don't ride, you'll never know wether you'd have gone wet. | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		jb
 
  
  Anmeldungsdatum: 14.01.2005 Beiträge: 2010
 
  | 
		
			
				 Verfasst am: 10.09.2005, 16:38    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Schon klar, die (zumindest die für Addition und Subtraktion) funktionieren auch in C/C++.
 
 
Aber das zuweisen eines neuen Wertes während eines cout geht nicht. 
 
 
jb | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		tilli
 
  
  Anmeldungsdatum: 10.09.2005 Beiträge: 73
 
  | 
		
			
				 Verfasst am: 10.09.2005, 19:02    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Moin, 
 
 
zu Eurem Beispiel:
 
 
 
funkt durchaus - allerdings ist es ein anderes Ergebnis wie bei C/C++:
 
 
bei C wird es errechnet, zugewiesen und dann an die Überroutine (hioer Print) ausgegeben.
 
 
in Basic wird eine Variable erwarte, also das '=' als Vergleich gewertet und A mit A+1 verglichen - Ergebnis ist 'Falsch' (oder als Zahl 0) 
 
 
zum Eigentlichen Problem: Ich denke eine Zuweisung geht, wenn man eine Klammer wählt... 
 
Nichtsdestotrotz weis ich ncht, wass der gute K.I T.T. da will ...     
 
Das Mal(="*") hat normalerweise doch was mit Zeigern zu tun, aber das SK# ist vorher schon in der Beechnung - es kann also keine Zeigervariable sein - und die Ausgabe eines Zeigers(andere Richtung) ist auch nich sinnvoll - was hat die Adresse des Wertes mit einer Berchnung zu tun? 
 
 
Will er das * als Zeichen darstellen, dann frage ich mich warum er es nicht einfach tut - in Anführungszeichen.
 
 
CU2
 
Tilli | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		jb
 
  
  Anmeldungsdatum: 14.01.2005 Beiträge: 2010
 
  | 
		
			
				 Verfasst am: 11.09.2005, 10:10    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Er wollte eine einfache Mutiplikation in eine Print-Routine einbauen, nichts mit 
 
Pointern oder so...
 
 
jb | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		tilli
 
  
  Anmeldungsdatum: 10.09.2005 Beiträge: 73
 
  | 
		
			
				 Verfasst am: 11.09.2005, 15:51    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Moin 
 
 
Frage nur mit was er multiplizieren wollte - mit einer Klammer?    
 
 
CU2
 
 
Tilli | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		MisterD
 
  
  Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
  | 
		
			
				 Verfasst am: 12.09.2005, 12:07    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | jb hat Folgendes geschrieben: | 	 		  | Das ganze geht in C++ überhaupt nicht, da muss ich mich vertan haben. | 	  Wenn dus ausprobiert hast:
 
cout<<a++<<endl; geht schon, aber dann wird a erst nach der ausgabe inkrementiert. Probier mal cout<<++a<<endl; eventuell geht das?   _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
 
Edsger W. Dijkstra | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		 |