Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Fehler beim komilieren
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
K.I.T.T.



Anmeldungsdatum: 24.01.2005
Beiträge: 79

BeitragVerfasst am: 09.09.2005, 14:25    Titel: Fehler beim komilieren Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 09.09.2005, 14:42    Titel: Antworten mit Zitat

Der Fehler ist hier:
PRINT "Laufzeit = (";Ek# - Sk#;") / (";Sk# *;" (";Zs#/100;"))"

Das * stört. zwinkern

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
K.I.T.T.



Anmeldungsdatum: 24.01.2005
Beiträge: 79

BeitragVerfasst am: 09.09.2005, 15:21    Titel: Antworten mit Zitat

Aber das isg doch ein Mal-Zeichen??

Gruß K.I.T.T.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 09.09.2005, 15:26    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 09.09.2005, 15:31    Titel: Antworten mit Zitat

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. lächeln

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
K.I.T.T.



Anmeldungsdatum: 24.01.2005
Beiträge: 79

BeitragVerfasst am: 09.09.2005, 15:45    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 09.09.2005, 16:05    Titel: Fehler beim komilieren Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 09.09.2005, 16:07    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 09.09.2005, 16:49    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 09.09.2005, 23:02    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 10.09.2005, 00:28    Titel: Antworten mit Zitat

++ 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
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 10.09.2005, 12:49    Titel: Antworten mit Zitat

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 (peinlich)
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 peinlich

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 10.09.2005, 16:16    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 10.09.2005, 17:08    Titel: Antworten mit Zitat

Wir meinten aber C++, Dusky zwinkern

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 10.09.2005, 17:19    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 10.09.2005, 17:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
tilli



Anmeldungsdatum: 10.09.2005
Beiträge: 73

BeitragVerfasst am: 10.09.2005, 20:02    Titel: Antworten mit Zitat

Moin,

zu Eurem Beispiel:
Code:
 PRINT  A=A+1


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 ... Hmmm....
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 11.09.2005, 11:10    Titel: Antworten mit Zitat

Er wollte eine einfache Mutiplikation in eine Print-Routine einbauen, nichts mit
Pointern oder so...

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
tilli



Anmeldungsdatum: 10.09.2005
Beiträge: 73

BeitragVerfasst am: 11.09.2005, 16:51    Titel: Antworten mit Zitat

Moin

Frage nur mit was er multiplizieren wollte - mit einer Klammer? verlegen

CU2

Tilli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 12.09.2005, 13:07    Titel: Antworten mit Zitat

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? zwinkern
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz