C++ Programmieren Funktionen,Werte,Zeiger und for-schleife
-
Hi,
ich habe hier eine kleine Aufgabe aus dem Bereich c++, die ich schon seit längerem Versuche zu lösen. Leider komme ich im Moment nicht weiter, da ich seit langem nicht mehr programmiert habe.
Aufgabe:
Die 1.Funktion(genannt werteparameter) erhält über die Tastatur zwei Werte(wert1,wert2) mitgeteilt. Diese Werte werden miteinander multipliziert. Das Ergebnis(wert3) wird an die 2.Funktion(zeigerparameter) übergeben mithilfe von zeigern.
In der 2.Funktion soll von 0 bis zum übergebenen Wert(wert3) alle Zahlen, mit der größten Zahl beginnend, in der Konsole erscheinen ((also wert3-bis0)mithilfe einer for-schleife zu lösen). Diese Werte sollen miteinander addiert werden und die Summe soll an die Main-Funktion übergeben werden.
In der Main-Funktion soll die Summe ausgegeben werden und das Programm muss man wiederholen können.Danke schonmal für die Hilfe
-
Was hast du denn schon gemacht, wo liegen denn die Probleme konkret. Oder suchst du jemand der dir ne fertige Mustrelösung bereitstellt ? Dann stelle die Fragen besser unter dem Sub-Forum Projekte und überleg dir dann gleich wieviel du zahlen willst.
-
Ich weiß nicht genau wie ich von der werteparameter-funktion den wert zur zeigerparameterfunktion übergeben muss und die for-schleife weiß ich nicht.
-
Das hier habe ich bis jetzt gemacht mit Microsoft Visual C++ 2008:
#include <iostream> using namespace std; //1.Funktion int werteparameter(int wert1,int wert2,int *wert3) { //EINGABE cout<<"Bitte geben Sie den ersten Wert ein!"<<endl; cin>>wert1; cout<<"Bitte geben Sie den zweiten Wert ein!"<<endl; cin>>wert2; //BERECHNUNG *wert3=wert1*wert2; //RÜCKGABE return(*wert3); } //2.Funktion int zeigerparameter(&wert3) { //for-Schleife for() { wert3=0 } } //Main-Funktion void main() { //Funktionsaufrufe werteparameter(wert1,wert2,*wert3); zeigerparameter(&wert3); //Ausgabe cout<<"Das Ergebnis ist: "<<wert3<<endl; }
-
Kann mir jemand helfen???
-
Redneet schrieb:
Das hier habe ich bis jetzt gemacht mit Microsoft Visual C++ 2008:
#include <iostream> using namespace std; //1.Funktion int werteparameter(int wert1,int wert2,int *wert3) { //EINGABE cout<<"Bitte geben Sie den ersten Wert ein!"<<endl; cin>>wert1; cout<<"Bitte geben Sie den zweiten Wert ein!"<<endl; cin>>wert2; //BERECHNUNG *wert3=wert1*wert2; //RÜCKGABE return(*wert3); } //2.Funktion int zeigerparameter(&wert3) { //for-Schleife for() { wert3=0 } } //Main-Funktion void main() { //Funktionsaufrufe werteparameter(wert1,wert2,*wert3); zeigerparameter(&wert3); //Ausgabe cout<<"Das Ergebnis ist: "<<wert3<<endl; }
Na dann wollen wir deine Hausaufgabe mal lösen.
Hoffentlich noch rechtzeitig zum Abgabetermin?int werteparameter() { int wert1,wert2; //EINGABE cout<<"Bitte geben Sie den ersten Wert ein!"<<endl; cin>>wert1; cout<<"Bitte geben Sie den zweiten Wert ein!"<<endl; cin>>wert2; //hier aufpassen: bei großen Werten für wert1/wert2 kann int überlaufen/negativ werden! return wert1*wert2; } int zeigerparameter(int *wert3) { int result=0; for(;*wert3>=0;--*wert3) { result+=*wert3; } //auch hier: Überlauf möglich, LONGLONG-Typ wäre hier wie oben besser return result; }
main: int r; cout<<zeigerparameter((r=werteparameter(),&r));
-
Kann mir noch jemand helfen?
Blick bei der if-Schleife irgendwie nicht durch und auch bei der Main-Funktion weiß ich nicht was das r bedeuten soll. Außerdem erfüllt das Programm von dir nicht die Aufgabe, die ich zu lösen habe. Es soll nämlich von wert3 bis 0 runterzählen und dies auch anzeigen und dann sollen die angezeigten zahlen addiert werden.Die erste Funktion habe ich schon, sogar mit wertübergabe
#include <iostream> using namespace std; int werteparameter() { int wert1,wert2,erg; //EINGABE cout<<"Funktion Werteparameter"<<endl; cout<<"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ"<<endl; cout<<"Bitte geben Sie den ersten Wert ein!"<<endl; cin>>wert1; cout<<"Bitte geben Sie den zweiten Wert ein!"<<endl; cin>>wert2; //BERECHNUNG erg=wert1*wert2; //AUSGABE cout<<"Das Ergebnis der Multiplikation ist: "<<erg<<"\n"<<endl; //ÜBERGABE return (erg); } int zeigerparameter(int *erg) { int y; cout<<"Funktion Zeigerparameter"<<endl; cout<<"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ\n"<<endl; for(y=0;*erg>=y;*erg--) { *erg=y--; } return (*erg); } int main(int erg) { int r; cout<<zeigerparameter((r=werteparameter(),&r)); }[
Na dann wollen wir deine Hausaufgabe mal lösen.
Hoffentlich noch rechtzeitig zum Abgabetermin?int werteparameter() { int wert1,wert2; //EINGABE cout<<"Bitte geben Sie den ersten Wert ein!"<<endl; cin>>wert1; cout<<"Bitte geben Sie den zweiten Wert ein!"<<endl; cin>>wert2; //hier aufpassen: bei großen Werten für wert1/wert2 kann int überlaufen/negativ werden! return wert1*wert2; } int zeigerparameter(int *wert3) { int result=0; for(;*wert3>=0;--*wert3) { result+=*wert3; } //auch hier: Überlauf möglich, LONGLONG-Typ wäre hier wie oben besser return result; }
main: int r; cout<<zeigerparameter((r=werteparameter(),&r));
[/quote]
-
BRAUCHE HILFE !!!
Danke schonmal