Wo liegt hier der Fehler??? In den Funktionsaufrufen



  • Hi allerseits,

    ich bin grade bei der Suche nach einer Lösung für mein Problem hier gelandet, Ich hoffe ihr könnt mir helfen.

    #include <stdio.h>
    
    #define TERM 1/n;
    #define GRENZWERT 2;
    #define START_WERT 1;
    #define END_WERT 100;
    
    void main(void)
    {
    
    	double summe, absoluteAbweichung, relativeAbweichung;
    
    1	summe=berechneSumme(START_WERT, END_WERT);
    2	absoluteAbweichung=absAbweichung(GRENZWERT, summe);
    3	relativeAbweichung=relAbweichung (GRENZWERT, summe);
    4	zeigErgebnisse(GRENZWERT, summe, absoluteAbweichung, relativeAbweichung);
    
    }
    

    berechneSumme, absAbweichung, relAbweichung sind Funktionen die einen Wert mit return zurück geben.
    zeigErgebnisse ist eine Funktion die die Werte dann mit printf ausgiebt.

    So und nun mein Problem:
    Der obere Code ergibt folgende Fehlermeldungen:

    Diese Meldungen sind zu 1:
    Se5\Se5-4.cpp(71) : error C2143: Syntaxfehler : Fehlendes ')' vor ';'
    Se5\Se5-4.cpp(71) : error C2660: 'berechneSumme' : Funktion akzeptiert keine 1 Parameter
    Se5\Se5-4.cpp(71) : error C2143: Syntaxfehler : Fehlendes ';' vor ','
    Se5\Se5-4.cpp(71) : error C2059: Syntaxfehler : ')'

    Diese zu 2:
    Se5\Se5-4.cpp(72) : error C2143: Syntaxfehler : Fehlendes ')' vor ';'
    Se5\Se5-4.cpp(72) : error C2660: 'absAbweichung' : Funktion akzeptiert keine 1 Parameter
    Se5\Se5-4.cpp(72) : error C2143: Syntaxfehler : Fehlendes ';' vor ','
    Se5\Se5-4.cpp(72) : error C2059: Syntaxfehler : ')'

    Diese zu 3:
    Se5\Se5-4.cpp(73) : error C2143: Syntaxfehler : Fehlendes ')' vor ';'
    Se5\Se5-4.cpp(73) : error C2660: 'relAbweichung' : Funktion akzeptiert keine 1 Parameter
    Se5\Se5-4.cpp(73) : error C2143: Syntaxfehler : Fehlendes ';' vor ','
    Se5\Se5-4.cpp(73) : error C2059: Syntaxfehler : ')'

    Diese zu 4:
    Se5\Se5-4.cpp(74) : error C2143: Syntaxfehler : Fehlendes ')' vor ';'
    Se5\Se5-4.cpp(74) : error C2660: 'zeigErgebnisse' : Funktion akzeptiert keine 1 Parameter
    Se5\Se5-4.cpp(74) : error C2143: Syntaxfehler : Fehlendes ';' vor ','
    Se5\Se5-4.cpp(74) : error C2059: Syntaxfehler : ')'

    So, ich wär euch echt dankbar wenn ihr mir ein paar Tipps hättet was ich gegen die Fehlermeldungen machen kann.

    Schonmal vielen Dank :p



  • du hast die Funktionen die du aufrufst gar nicht deklariert.

    btw. heisst das int main! void main ist falsch
    und du solltest ein besseres Topic wählen wrf



  • Hi,

    also die Funktionen sind schon deklariert nur keine Fheler hatte und da sie zeimlich lang sind der Post sonst auch sehr lang geworden wär. Es heißt ja immer man soll sich auf das Wesentliche beschränken.

    Wenn ich int main schreib ändert sich an den Fehlern trotzedem nichts.

    Was für einen Topic würdest du den hierfür wählen? 😕



  • dann zeig doch mal deine deklarationen und funktionen



  • Snake schrieb:

    Was für einen Topic würdest du den hierfür wählen? 😕

    zB
    Makro und Funktionsaufruf - Syntaxfehler

    denk mal nach:
    END_WERT wird durch 100; ersetzt und jetzt schau dir an was dann
    berechneSumme(START_WERT, END_WERT);
    für den Compiler darstellt.



  • Ihr drückt das sehr kompliziert aus, dass er die Semikolons hinter den #defines weglassen soll 😉



  • Bashar schrieb:

    Ihr drückt das sehr kompliziert aus, dass er die Semikolons hinter den #defines weglassen soll 😉

    Shitt 🙄 , ich wusst doch das es ein einfaches Problem war.

    Tja dsa war das Ergebnis wenn man zu spät abends noch was programmiert, man sieht den Wald vor lauter Bäumen nicht mehr. 😃



  • Also,

    ich hab es jetzt immerhin so, dass ich weiterarbeiten kann.

    1. Waren die ; bei define falsch 🙄
    2. Musste ich START_WERT und GRENZWERT umbennen da ich sonst eine Makroneudefinition bekommen hätte

    So nun sind die Fehler wech und ich kann weiter machen.

    Vielen Dank für die Denkanstöße 😉



  • Ok ich hät da nochmal was wo ich nen Anstoß bräuchte.

    #define TERM 1/n
    
    double berechneGliedwert (int n)
    {
    	double ergebnis;
    	ergebnis = TERM;
    
    	return ergebnis;
    }
    

    Mein Problem ist, dass wenn ich n in der Funktion an TERM übergebe nichts gerechnet wird.
    Wäre n=2 müsste ja 0.5 in ergebnis gespeichert werden, was aber nicht der Fall ist.

    Schreibe ich aber in der #define TERM 1*n, funktioniert die rechnerei ohne Probleme.
    Wäre n=2 hier gegeben, kommt in ergebnis auch 2 raus.

    so und nu???



  • int/int ist int
    1/2 ist (theoretisch int(0.5)) 0

    du meinst sicher
    1.0/2

    aber achtung: das Makro TERM ist blöd, da es nur dann verwendbar ist, wenn es eine variable n gibt.

    wie wäre es mit
    #define Term(n) 1.0/(n)

    wobei man statt term noch einen besseren Namen finden sollte.



  • HI,

    Danke für die Hilfe so gehts besser. Sowas in der Art hab ich mir gedacht hab nur ".0" an der falschen Zahl gesetzt.



  • @shade
    Müsste nicht der Teiler eine Gleitkommazahl sein, um eine Gleitkommazahl rauszukriegen egal welchen Typ die Zahl hat durch die geteilt wird?



  • AJ schrieb:

    @shade
    Müsste nicht der Teiler eine Gleitkommazahl sein, um eine Gleitkommazahl rauszukriegen egal welchen Typ die Zahl hat durch die geteilt wird?

    ne, es wird immer der 'größere' Typ als Zieltyp genommen.



  • Hmmm komisch. Ich hab irgendwo mal gelesen, dass immer der Datentyp des Teilers genommen wird. Vielleicht wars auch in einer anderen Programmiersprache 😕

    Aber für C(++) merk ich mir das mal, dass immer der größere Typ verwendet wird. (Man lernt nie aus :))


Anmelden zum Antworten