brauche hilfe bei programm
-
Hallo,
bin neu hier bin auch c++ anfänger.
bin in der Fachoberschule und habe dort c++habe folgendes problem in c++
komme nicht weiter :
Aufgabe ist ein Programm mit Password abfgrage und folgende Berechnung:Berechne eine beliebige Anzahl von Abschüssen eines Projektils hinsichtlich Projektilweite und Projektilhöhe
Formel:
Weite L=v²/g * sin alpha v=anfangsgeschwindigkeit in m/sG=9.81 m/s²
Höhe H = v² /2g * sin² alpha
Alpha = abschlusswinkel in Grad
Beispiel :
v=100 m/s²; alpha =30 gradErgebnis : L=506m;H=127m
habe folgendes geschrieben
bekomme folgende fehlermeldung
:D:\ruben\aufgabe\aufgabe_test.cpp(27) : error C2297: '*' : Ungültig, da der rechte Operand vom Typ 'double (__cdecl *)(double)' ist#include "d:\hilfe.h"
float v,winkel,alpha,l,h ;
void eingabe()
{
printf (" /n Gebe eine Geschwindigkeit an");
cin>> v;printf (" /n Gebe einen winkel an in grad");
cin>> winkel;
getch();
}void berechne()
{alpha=winkel/360*2*pi;
l=v*(v)/gsin(alpha);
h=v(v)/2*g*sin*(sin)(alpha);
}void ausgabe()
{printf ("/n Ergebniss länge %g meter",l);
printf ("/n Ergebniss höhe %g meter",h);
getch();}
void main()
{
gruss();
zweck();
passw();
eingabe();
berechne();
ausgabe();}
-
sin*(sin)(alpha); ist falsch
Entweder sin(alpha)*sin(alpha) oder mit temporärer Variable oder pow(sin(alpha), 2).
-
Desweiteren:
- Du vermischst c und c++
- Es heißt int main() und nicht void main()
- Die Escape-Sequenz für Neue Zeile lautet: \n
- Globale Variablen sind oft nicht die beste Lösung.btw. Bitte benutze das nächste Mal code-tags [cpp][/cpp ] (Ohne das Leerzeichen vor ]!)
Caipi
-
--- Sorry, komme heute irgendwie mit den Links Editieren und Zitieren durcheinander
---
-
//edit erledigt
-
Caipi schrieb:
- Globale Variablen sind nicht oft nicht die beste Lösung.
Doppelt gemoppelt :p .
-
//erledigt
@peerffm: bitte schreib das nochmal mit [cpp] tags!! es ist furchbar das so zu lesen
-
Walli schrieb:
Caipi schrieb:
- Globale Variablen sind nicht oft nicht die beste Lösung.
Doppelt gemoppelt :p .
Jaja, habs auch gerade gemerkt. Ist verbessert
War mal wieder zu schnell...
@peerffm
Noch eine Sache, die mir aufgefallen ist. getch() ist kein standard. Ich würde es weglassen. (Ist zwar nicht so wichtig, aber so ergibt dieser Post wenigstens ein bischen Sinn :))Caipi
-
thanx es funktioniert !
aber irgendiwe ist da noch ein fehler also die aufgabe war :
Aufgabe ist ein Programm mit Password abfgrage und folgende Berechnung:**Berechne eine beliebige Anzahl von Abschüssen eines Projektils hinsichtlich Projektilweite und Projektilhöhe
Formel:
Weite L=v²/g * sin alpha v=anfangsgeschwindigkeit in m/sG=9.81 m/s²
Höhe H = v² /2g * sin² alpha
Alpha = abschlusswinkel in Grad
Beispiel :
v=100 m/s²; alpha =30 gradErgebnis : L=506m;H=127m
**mein quellcode
[cpp]
#include "d:\hilfe.h"float v,winkel,alpha,l,h ;
void eingabe()
{
printf (" \n Gebe eine Geschwindigkeit an");
cin>> v;printf (" \n Gebe einen winkel an in grad");
cin>> winkel;
getch();
}void berechne()
{alpha=winkel/360*2*pi;
l=v*v/g*sin(alpha);
h=v*v/2*g*sin(alpha)*sin(alpha);
}void ausgabe()
{printf ("\n Ergebniss länge %g meter",l);
printf ("\n Ergebniss höhe %g meter",h);
getch();}
void main()
{
gruss();
zweck();
passw();
eingabe();
berechne();
ausgabe();}
[b]die ergebnisse von beispiel stimmen nicht überein
-
das liest sich ja grauenvoll, tu mal das so machen tun (c++)
#include "d:\hilfe.h" #include <iostream> using namespace std; float v,winkel,alpha,l,h ; void eingabe() { cout << "Gib eine Geschwindigkeit an: "; cin >> v; cout << "Gib einen Winkel in Grad an: "; cin >> winkel; //ist ein bischen eiganartig gelöst, schlage vor du übergibst zwei werte an die //funktion, und läßt ein ergebnis zurückgeben (return), somit kannst du auf //diese funktion verzichten und übergibst deine werte an die 'berechne'-funktion }; void berechne() { alpha=winkel/360*2*pi; l=v*v/g*sin(alpha); h=v*v/2*g*sin(alpha)*sin(alpha); } void ausgabe() { cout <<"Ergebniss laenge " << l << " meter" << endl; cout <<"Ergebniss höhe " << h << " meter" << endl; cin.get(); //wartet auf enter } int main() { gruss(); //kenn ich nicht zweck(); //kenn ich nicht passw(); //kenn ich nicht eingabe(); berechne(); ausgabe(); }
naja, wie gesagt...ich würde es anders lösen...so:
... int main(){ cout << "geben sie die geschwindigkeit an: "; cin >> speed; cout << "geben sie den winkel an: "; cin >> winkel; cout << "das ergebnis lautet: " << berechne(speed, winkel) << endl;
die funktion 'berechne' müßtest du natürlich anpassen
-
h=v*v/(2*g)*sin(alpha)*sin(alpha);
Da ist wahrscheinlich der Fehler gewesen. Einfach eine Klammer um 2*g machen!