wie lautet die Ausgabe ?



  • Hallo ! Ich habe mal eine ganz einfach Frage.... ich bin mir nicht sicher ob meine Ausgabewerte so richtig sind.
    Habe leider keine Möglichk. mein Programm zu kompilieren:
    -----------------------------------------------

    int main()
    
        {
              float x=4.8, y=2.0, erg1=0, erg2=0;
              cout << "vor dem Fktn Aufruf" << x << y << erg1 << erg2;
              demo (&x, y, &erg1, &erg2);
              cout << "nach dem Aufruf" << x << y << erg1 << erg2;
        }         
    void demo(float *x, y,*z1,*z2)
       {
        x=3**x;
        y=4*y;
        z1=*x+y;
        z2=*x-y;
        cout <<"innerhalb der Fkt" << *x  <<y  <<*z1  <<*z2;
    getch();
    }
    

    ---------------------------------------------

    gesucht sind jeweil die Werte für x,y, erg1, erg2- vor dem Funktionsaufruf, innerhalb der funktion und nach der Funktion.

    komme mit den Zeigern noch nicht ganz klar.

    vor der Funktion komme ich auf x=4.8, y=2.0, erg1=0, erg2=0
    innerhalb der Fktn. auf : x=14.4, y=8, erg1=16.4, erg2= 12.4

    und danach ??
    stimmen die Werte ?

    würde mich über eine Antwort freuen !

    }



  • Wie? Kein Compiler?
    Dann besorg Dir einen...

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-130812.html

    oder compilier hier:

    http://www.comeaucomputing.com/tryitout/



  • hab dev cpp - kommen aber ständig fehlermeldungen, bei denen ich nicht weiß wie ich die "beheben" soll.....



  • Das ist bei dem obigen Code auch kein Wunder...Ersetze mal

    void demo(float *x, y,*z1,*z2)
    

    durch

    void demo(float &x, &y, &z1, &z2)
    

    und entferne alle unnötigen "*"



  • na, aber so wie ich es gepostet hatte steht es in der Klausur die ich vor mir liegen habe...
    Es geht ja im Grunde genommen nur um die Ausgabe...

    die "*" sind doch die Zeiger - die kann ich doch nicht einfach weglöschen...



  • Aber dann solltest Du auch ein "*" vor das y machen und die zuweisungen korrigieren:

    *x=3**x; 
    *y=4**y; 
    *z1=*x+*y; 
    *z2=*x-*y;
    


  • niklasen schrieb:

    na, aber so wie ich es gepostet hatte steht es in der Klausur die ich vor mir liegen habe...
    Es geht ja im Grunde genommen nur um die Ausgabe...

    die "*" sind doch die Zeiger - die kann ich doch nicht einfach weglöschen...

    tja bei dem wissen fällst eh durch, also mach dir n ruhigen abend

    sorry aber vor der klausur nciht mal wissen was zeiger sind, geschweige denn ein programm durch einen compiler laufen zu lasse 😮

    fall durch und lerne ernsthaft fürs nächste mal oder such dir was anderes.



  • na dann scheint die Aufgabe in der Klausur der Fachhochschule unlösbar.... wenn soviele Fehler in dem Quelltext vorhanden sind !!

    ...mmh. Danke.



  • ajax schrieb:

    sorry aber vor der klausur nciht mal wissen was zeiger sind, geschweige denn ein programm durch einen compiler laufen zu lasse 😮

    fall durch und lerne ernsthaft fürs nächste mal oder such dir was anderes.

    Dann hilf mir doch bitte und sag wie die Ausgabe lautet !
    zudem steht keine Klausur an, sondern habe ich die Aufgabe eine Klausur entnommen... wer lesen kann, ist klar im Vorteil !



  • Die Ausgabe des obigen Programmes (wenn Du es compiliert bekommst) ist wirklich simpel:

    Allgemeine Schutzverletzung



  • wofür nimmst de da überhaupt die ganzen Zeiger? mach es doch so:

    #include <conio.h>
    
    int _tmain(int argc, _TCHAR* argv[]);
    void demo(float x, float y, float z1, float z2);
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	float	x		= 4.8f;
    	float	y		= 2.0f;
    	float	erg1	= 0.0f;
    	float	erg2	= 0.0f;
    
    	std::cout << "Vor dem Funktionsaufruf: " << x << y << erg1 << erg2 <<"\n"; 
    	demo(x, y, erg1, erg2); 
    	std::cout << "Nach dem Aufruf: " << x << y << erg1 << erg2 << std::endl; 
    
    	getch(); 
    
    	return 0;
    }
    
    void demo(float x, float y, float z1, float z2) 
    { 
    	x	*= 3; 
    	y	*= 4; 
    	z1	= x+y; 
    	z2	= x-y; 
    	std::cout <<"Innerhalb der Funktion: " << x << y << z1 << z2 <<"\n"; 
    }
    

    So bekommst de keinen Fehler 😃 Weiß ja nicht ob es das ist was du haben willst.... davon mal abgesehen das wir hier im Board MFC und nicht im Board Konsolenanwendung sind -.-



  • (D)Evil schrieb:

    .... davon mal abgesehen das wir hier im Board MFC und nicht im Board Konsolenanwendung sind -.-

    Stimmt, ich werds mal verschieben. 🙂



  • Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Also das einzige was mir komisch vorkommt, ist der Funktionskopf:

    void demo(float *x, y,*z1,*z2)
    

    Ich würde das so schreiben:

    void demo(float * x, float y, float * z1, float * z2)
    

    Vielleicht hilft das auch gegen die allgemeine Verwirrung hier im Thread.

    @niklasen
    Welche Fehlermeldungen bekommst du denn genau?


Anmelden zum Antworten