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 |
|
|
|