Eindimensionale Vektoren *x & *y // Fehlerliste!!!!!!

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Eindimensionale Vektoren *x & *y // Fehlerliste!!!!!!

    ES sollte folgendens berechnet werden bzw. ausgegeben :
    Betrag des Vektores x : %lf
    Betrag des Vektores y : %lf
    Skalarprodukt der beiden Vektoren : %lf


    // Problem ist : Fehler 2 error C2660: 'Einlesen': Funktion akzeptiert keine 2 Argumente c:\users\hassan\documents\visual studio 2010\projects\11.2\11.2\main.cpp 14
    Fehler 3 error C2660: 'Einlesen': Funktion akzeptiert keine 2 Argumente c:\users\hassan\documents\visual studio 2010\projects\11.2\11.2\main.cpp 17
    Fehler 4 error C2059: Syntaxfehler: ')' c:\users\hassan\documents\visual studio 2010\projects\11.2\11.2\calc.cpp 9
    Fehler 5 error C2059: Syntaxfehler: ')' c:\users\hassan\documents\visual studio 2010\projects\11.2\11.2\calc.cpp 9
    Fehler 6 error C2059: Syntaxfehler: ';' c:\users\hassan\documents\visual studio 2010\projects\11.2\11.2\calc.cpp 9
    7 IntelliSense: Es wurde "{" zur Einführung eines Lambda-Textes erwartet. c:\users\hassan\documents\visual studio 2010\projects\11.2\11.2\calc.cpp 9




    Hie rist main [ main.cpp]

    Quellcode

    1. #include"global.h"
    2. #include"calc.h"
    3. void main()
    4. {
    5. int n;
    6. double *x;
    7. double *y;
    8. // Eingabe
    9. printf(" geben Sie wie viele Dimensionen ein\n"); scanf("%d",&n);
    10. // Einlesen X_Vektor
    11. printf(" geben Sie bitte die koordinanten des Vektores _X ein \\n");
    12. Einlesen(x,n); <=== hier ist der Fehler ( compiler sagte, die Funktion akzeptier keine zwei Argumente! ).
    13. // Einlesen Y_Vektor
    14. printf(" geben Sie bitte die koordinanten des Vektores _Y ein \\n");
    15. Einlesen(y,n);
    16. // Betrag ( Berechnung).der beiden Vektoren *X & *Y .
    17. printf(" der Betrag der X_Vektores ist : %lf \n",Betrag(x,n));
    18. printf(" der Betrag der Y_Vektores ist : %lf \n",Betrag(y,n));
    19. printf(" Skalarprodukt der beiden Vektoren ist : %lf \n",Skalarprodukt(x,y,n));
    20. getchar();
    21. getchar();
    22. }
    23. // man könnte sicherlich einen Speicherplatz reservieren für die beiden Vektoren bzw. Skala..und dann // free (x); den Platz frei geben!
    Alles anzeigen

    ############################################################
    und hier sind alle Funktionen [ Einelsen, Betrag , Skalarprdkt, ]

    Quellcode

    1. #include"calc.h"
    2. // Einlesen der Koordinanten
    3. void Einlesen( double *x, int n)
    4. {
    5. int i=0;
    6. for (i=0;i<n;i++)
    7. {
    8. scanf("%lf",&[i]);
    9. }
    10. }
    11. // Betrag.
    12. double Betrag( double *x, int n)
    13. {
    14. int i;
    15. double Betr=0.0;
    16. for (i=0;i<n;i++)
    17. {
    18. Betr+=x[i]*x[i];
    19. }
    20. return(Betr);
    21. }
    22. double Skalarprodukt( double *x, double *y, int n)
    23. {
    24. int i;
    25. double skala=00;
    26. for (i=0;i<n;i++)
    27. {
    28. skala+= x[i]*y[i];
    29. }
    30. return(skala);
    31. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MTB1122471 ()

  • Der eigentliche Fehler ist denk ich nicht der mit den 2 Argumenten der Funktion sondern die Fehler 4-7. Du hast in der Funktion Einlesen nen Syntaxfehler:

    Quellcode

    1. scanf("%lf",&[i]);

    Da fehlt wohl noch ein x an der richtigen Stelle.

    Dadurch kann er dann die Funktion nicht mehr richtig übersetzen und es kommt der andere Fehler in der Folge.

    Und noch ein Hinweis:

    Quellcode

    1. // man könnte sicherlich einen Speicherplatz reservieren für die beiden Vektoren bzw. Skala..und dann // free (x); den Platz frei geben!


    Das könnte man nicht nur, dass musst du machen. Du kannst deine Vektoren nicht einfach irgendwo in den Speicher schreiben, das wird schiefgehen. Bei sehr kleinen kurzen Programmen kann das manchmal durch Zufall gut gehen, aber das sollte man niemals tun, da kommt man bei minimal längeren Programmen sofort in Teufels Küche.

    Ob du den Speicherplatz manuell reservierst und ihn wieder freigibst, oder ob du einfach ein Array mit entsprechend vielen Elementen deklarierst ist egal. Das gilt aber nur für die Vektoren, bei allem anderen hast dus soweit ich das auf den ersten Blick sehe richtig gemacht.
  • Quellcode

    1. #include"global.h"
    2. #include"calc.h"
    3. // So speicher platz reserviert und freigegeben...hat nix gebracht!!!!
    4. void main()
    5. {
    6. int n;
    7. double *x;
    8. double *y;
    9. // Eingabe
    10. printf(" geben Sie wie viele Dimensionen ein\n"); scanf("%d",&n);
    11. x=(double * ) malloc(n*sizeof(double));
    12. y=(double * ) malloc(n*sizeof(double));
    13. // Einlesen X_Vektor
    14. printf(" geben Sie bitte die koordinanten des Vektores _X ein \\n");
    15. Einlesen(x,n);
    16. // Einlesen Y_Vektor
    17. printf(" geben Sie bitte die koordinanten des Vektores _Y ein \\n");
    18. Einlesen(y,n);
    19. // Betrag ( Berechnung).der beiden Vektoren *X & *Y .
    20. printf(" der Betrag der X_Vektores ist : %lf \n",Betrag(x,n));
    21. printf(" der Betrag der Y_Vektores ist : %lf \n",Betrag(y,n));
    22. printf(" Skalarprodukt der beiden Vektoren ist : %lf \n",Skalarprodukt(x,y,n));
    23. free(x);
    24. free(y);
    25. getchar();
    26. getchar();
    27. }
    Alles anzeigen


    // genau hier ist das Problem :

    Quellcode

    1. printf(" geben Sie bitte die koordinanten des Vektores _X ein \\n",n);
    2. Einlesen(x,n);
    3. // Einlesen Y_Vektor
    4. printf(" geben Sie bitte die koordinanten des Vektores _Y ein \\n",n);
    5. Einlesen(y,n);
  • Ich danke dir,

    das war der Fehler, hats Funktioniert..

    ich bedanke mich
    ####################################################################

    1> Die Datei "Debug\11.2.unsuccessfulbuild" wird gelöscht.
    1> Aktualisieren des Timestamps von "Debug\11.2.lastbuildstate".
    1>
    1>Das Erstellen war erfolgreich.
    1>
    1>Verstrichene Zeit 00:00:03.59
    ========== Alles neu erstellen: 1 erfolgreich, Fehler bei 0, 0 übersprungen ==========

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MTB1122471 ()