Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

04.04.2010, 16:24

c2064: Ausdruck ergibt keine Funktion die zwei Argumente übernimmt

Hallo Community,

probiere seit ein paar Tagen auf eigene Faust ein bisschen C++ zu üben.
Nun wollt ich einen kleinen Taschenrechner schreiben der die Phytagoras Formel berechnet und passend die gewünschten Seiten berechnet.
Aber seht selbst:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
//Header:

#ifndef HEADER_H
#define HEADER_H

double SEITE_A(double dSeiteB, double dSeiteC);
double SEITE_B(double dSeiteA, double dSeiteC);
double SEITE_C(double dSeiteA, double dSeiteC);

#endif HEADER_H



//Quelldatei:

#include "Header.h"
#include <math.h>
#include <iostream>


using namespace std;

int main()

{
    double ergebnis1;
    double ergebnis2;
    double ergebnis3;
    char auswahl;
    double dSeiteB;
    double dSeiteC;
    double dSeiteA;
    double SEITE_A;
    double SEITE_B;
    double SEITE_C;
    
    cout<<"Hallo, hier sehen Sie einen Pythagoras Rechner. Welche Seite soll berechnet werden? Drücken Sie 'a' für Seite A, 'b' für Seite B und 'c' für Seite C";
    cin>>auswahl;

    switch(auswahl)
        {
    case 'a':
        cout<<"Bitte geben Sie die Laenge der Seite B an";
        cin>>dSeiteB;
        cout<<"Bitte geben Sie nun die Laenge der Seite C an";
        cin>>dSeiteC;
        ergebnis1=SEITE_A(dSeiteB, dSeiteC);                                            //Fehlermeldung: "Ausdruck ergibt keine Funktion, die 2 Argumente übernimmt."
        cout<<"Die Seitenlaenge betraegt"<<ergebnis1<<"in Zentimetern";
            break;

    case 'b':
        cout<<"Bitte geben Sie die Laenge der Seite A an";
        cin>>dSeiteA;
        cout<<"Bitte geben sie nun die Laenge der Seite C an";
        cin>>dSeiteC;
        ergebnis2=SEITE_B(dSeiteA, dSeiteC);                                             //Fehlermeldung: "Ausdruck ergibt keine Funktion, die 2 Argumente  übernimmt."
        cout<<"Die Seitenlaenge betraegt"<<ergebnis2<<"in Zentimetern";
            break;

    case 'c':
        cout<<"Bitte geben Sie die Laenge der Seite A an";
        cin>>dSeiteA;
        cout<<"Bitte geben Sie nun die Laenge der Seite B an";
        cin>>dSeiteB;
        ergebnis3=SEITE_C(dSeiteA, dSeiteB);                                             //Fehlermeldung: "Ausdruck ergibt keine Funktion, die 2 Argumente  übernimmt."
        cout<<"Die Seitenlaenge betraegt"<<ergebnis3<<"in Zentimetern";
            break;

    default:
        cout<<"Falsche Eingabe";
            break;


        }

    return 0;
}


    
double SEITE_A(double dSeiteB, double dSeiteC)

{
return sqrt(dSeiteC*dSeiteC-dSeiteB*dSeiteB);
}

double SEITE_B(double dSeiteA, double dSeiteC)
{
return sqrt(dSeiteC*dSeiteC-dSeiteA*dSeiteA);
}

double SEITE_C(double fSeiteA, double fSeiteC)
{
return sqrt(fSeiteC*fSeiteC-fSeiteA*fSeiteA);
}


Aus welchem Grund tritt der Fehler auf? Ich komm einfach auf keine Lösung. Wär schön, wenn jemand eine Erklärung dafür parat hat, danke :)

2

04.04.2010, 16:27

Entferne das mal aus deiner main:

C-/C++-Quelltext

1
2
3
double SEITE_A;
double SEITE_B;
double SEITE_C;
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

3

04.04.2010, 16:31

Entferne das mal aus deiner main:

C-/C++-Quelltext

1
2
3
double SEITE_A;
double SEITE_B;
double SEITE_C;

omg, es hat geklappt. Ich könnte dich küssen.
Aber aus welchem Grund hab ich das entfernen müssen?

4

04.04.2010, 16:36

Weil du damit Variablen definierst, allerdings sind das ja schon Funktionen, deshalb gibt es das 2 Mal und der Compiler bevorzugt dann die lokalen Variablen.
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

5

04.04.2010, 16:37

Entferne das mal aus deiner main:

C-/C++-Quelltext

1
2
3
double SEITE_A;
double SEITE_B;
double SEITE_C;

omg, es hat geklappt. Ich könnte dich küssen.
Aber aus welchem Grund hab ich das entfernen müssen?



Du hast zuerst SEITE_A etc als Funktion deklariert und eingebunden. Dann aber in der main-Funktion aus diesen double-Variablen gemacht, und auf die greift er natürlich zuerst zurück. Und Variablen sind nunmal keine Funktionen und er nimmt sich immer das, was "näher" ist.. xD

EDIT: Zu langsam.
WIP Website: kevinheese.de

Werbeanzeige