Modula lässt sich nicht Kompilieren
-
Hallo zusammen,
int FirstJanuar (int iJahr, int iResult) { int iPastJahr,iSchalt, iTageJahr; iPastJahr = iJahr - 1900; iSchalt = iPastJahr / 4; iTageJahr = iSchalt + iPastJahr; iResult = iTageJahr % 7; // diese Zeile will er mir nicht Compilieren return iResult; }
Wieso will er mir die eine Zeile nicht Compilieren ? Ist an dieser war Falsch ?
-
Also erstmal solltest du dir einfach mal die Compilermeldungen durchlesen und hier posten.
Edit: Mist entfernt.
Edit2: Also bei mir kompiliert er es ohne Murren, nur würde ich das int result aus den Parametern herausnehmen und mit den anderen integers initialisieren. Sieht besser aus und ich weiss auch nicht, ob das überhaupt so erlaubt ist.
-
viande schrieb:
Also erstmal solltest du dir einfach mal die Compilermeldungen durchlesen und hier posten.
Edit: Mist entfernt.
Edit2: Also bei mir kompiliert er es ohne Murren, nur würde ich das int result aus den Parametern herausnehmen und mit den anderen integers initialisieren. Sieht besser aus und ich weiss auch nicht, ob das überhaupt so erlaubt ist.
es kommt keine Fehler meldung
-
|23| schrieb:
es kommt keine Fehler meldung
wieso sagtest du dann : "... eine Zeile nicht Compilieren "?
-
ssm schrieb:
|23| schrieb:
es kommt keine Fehler meldung
wieso sagtest du dann : "... eine Zeile nicht Compilieren "?
weil Borland auch keine Fehler sagt. dieser kleine Teil ist halt nicht Kompiliert und mehr ist nicht das programm läuft aber ich bekomme:
iResult = iTageJahr % 7;kein ergebnis .. da passirt halt nix
-
|23| schrieb:
weil Borland auch keine Fehler sagt. dieser kleine Teil ist halt nicht Kompiliert
Woran siehst du das?
und mehr ist nicht das programm läuft aber ich bekomme:
iResult = iTageJahr % 7;Du "bekommst"? Erscheint dieser Text in deinem Kopf, oder wie muss man sich das vorstellen?
kein ergebnis .. da passirt halt nix
Rufst du die Funktion überhaupt auf? Gibst du das Ergebnis aus? Eine ausführliche Beschreibung, was du machst, und was daraufhin passiert, wäre extrem hilfreich.
-
Wahr ein fehler von mir irgendwas stimmt mit der Funktion nicht.. es war auch einer meiner ersten verusche mit Funktionen. Ich werde mir noch mal das kapitel über Funktionen durchlesen und dann es nochmal versuchen.. erst mal mach ich das ganze ausserhalt einer funktion
-
|23| schrieb:
...
int FirstJanuar (int iJahr, int iResult) { ... iResult = iTageJahr % 7; // diese Zeile will er mir nicht Compilieren return iResult; }
...
wie soll das funktionieren?
du gibst der funktion das ergebnis, dieses läßt du neu errechnen und es dir zurückgeben...woher soll der compiler wissen welches iResult er dir zurückgeben soll?
-
ICh glaube, was er will ist
int FirstJanuar (int iJahr, int & iResult)
also iResult als Referenz übergeben. Er wundert sich vermutlich warum das Argument nciht verändert wird.
Warum das so ist kann jetzt bitte jemand anders erklären. Ich muss weg.
-
enno-tyrant schrieb:
|23| schrieb:
...
int FirstJanuar (int iJahr, int iResult) { ... iResult = iTageJahr % 7; // diese Zeile will er mir nicht Compilieren return iResult; }
...
wie soll das funktionieren?
du gibst der funktion das ergebnis, dieses läßt du neu errechnen und es dir zurückgeben...woher soll der compiler wissen welches iResult er dir zurückgeben soll?
in diesem fall weis der compiler genau welches iresult er nehmen soll
es waere auch besser die variable iresult temporaer in der funktion zu erzeugen um die Schnittstelle moeglichst einfach und klein zu halten,
insofern iresult vorher nicht benoetigt wirdHelium schrieb:
ICh glaube, was er will ist
int FirstJanuar (int iJahr, int & iResult)
also iResult als Referenz übergeben. Er wundert sich vermutlich warum das Argument nciht verändert wird.
Warum das so ist kann jetzt bitte jemand anders erklären. Ich muss weg.
eine referenz ist hier auch nicht noetig weil er den wert der variable sowieso returned, und referenzen in ansi c..
-
leo aka qsch schrieb:
und referenzen in ansi c..
ANSI C? Lies dir nochmal die Forum Überschrift genau durch.
-
eine referenz ist hier auch nicht noetig weil er den wert der variable sowieso returned
Das ist mir sehr wohl bewust.
Aber guck dir ncohmal genau die Original-Funktion an:int FirstJanuar (int iJahr, int iResult) { int iPastJahr,iSchalt, iTageJahr; iPastJahr = iJahr - 1900; iSchalt = iPastJahr / 4; iTageJahr = iSchalt + iPastJahr; iResult = iTageJahr % 7; // diese Zeile will er mir nicht Compilieren return iResult; }
Der Parameter iResult wird nie verwendet. Daraus schließt man natürlich, das der Frage-Steller iResult als Rückgabe verwenden will (achte mal genau auf den Namen).
int firstJanuar (int jahr) { int pastJahr = jahr - 1900; int schalt = pastJahr / 4; int tageJahr = schalt + pastJahr; return tageJahr % 7; }
Soe sollte die Funktion wahrscheinlich aussehen.