Frage zu iostream !!!! Wichtig.
-
Hallo Leute,
ich habe mit Mühe und Not eine Exponentialfunktion programmiert mit sehr viel Hilfe und hab jetzt nur noch einen Fehler, wo ich nicht weiß wie ich den behoben bekomme, nämlich iostream. Die Exponentialfunktion soll die Matrikelnummer berechnen. Unter http://C.mv.fh-duesseldorf.de soll man diese eingeben und berechnen lassen.
Bitte um Hilfe!
Hier die Programmierung:
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;int martikel_nummer=123456;
double pow(double x, int k){
double ret=1.0;
if(k==0)return ret;
for(int i=0; i<k; i++){
ret*=x;
}
return ret;
}
double fakultaet(int k){
double ret=1.0;
for(int i=2; i<=k;i++){
ret*=i;
}
return ret;
}
double naechstesGlied(double x, int k){
double power=pow(x,k);
double fakult=fakultaet(k);
return power/fakult;
}int main()
{
double x;
scanf("%lf", &x);
int abbruch=martikel_nummer%100;
if(abbruch<10)abbruch=10;
double summe=0;
for(int k=0; k<=abbruch; k++){
summe+=naechstesGlied((double)x, k);
cout<<"k: "<<k<<" Summe: "<<summe<<"\n";
}
cout<<"----------------------\n";
summe=0;
int k=0;
bool run=true;
double ergebnis=exp(x);
double endDifferenz=100/(double)martikel_nummer;
double differenz=0;
while(run){
summe+=naechstesGlied((double)x, k);
differenz=fabs(summe-ergebnis);
cout<<"k: "<<k<<" Summe: "<<summe<<" Differenz: "<<differenz<<"\n";
k++;
if(differenz<=endDifferenz)run=false;
}
}
-
Code-Tags und Fehlermeldungen existieren.
-
Du sollst offensichtlich ein C Programm schreiben und da abliefern, iostream und Konsorten sich aber C++. C weiß nichts von C++.
Du brauchst also dein cout nur durch printf zu ersetzen, statt cin hast du ja schon mal scanf benutzt.
-
Du vermischt C++ und C. Der Compiler auf der Seite ist für C. Entferne iostream und ersetze std::cout durch was passendes, z.B. printf aus stdio.h!
-
Meine Güte ist euer Kurs hilfsbedürftig. Das ist schon mindestens der dritte aus der Truppe.
-
an Wutz oder etc.
habe cout durch printf ersetzt alle und iostream einfach entfernt...wenn ic hdann auf programm ausführen und übersetzen gehe kommen nur viele Fehler
Was nun?? Habe schon umgestellt etc
-
Hatte gerade langeweile, also so compiliert es zumindest:
#include <stdio.h> #include <math.h> int martikel_nummer=123456; // Gibt es in math.h schon /* double pow(double x, int k){ double ret=1.0; if(k==0)return ret; for(int i=0; i<k; i++){ ret*=x; } return ret; }*/ double fakultaet(int k){ double ret=1.0; for(int i=2; i<=k;i++){ ret*=i; } return ret; } double naechstesGlied(double x, int k){ double power=pow(x,k); double fakult=fakultaet(k); return power/fakult; } int main() { double x; scanf("%lf", &x); int abbruch=martikel_nummer%100; if(abbruch<10)abbruch=10; double summe=0; for(int k=0; k<=abbruch; k++){ summe+=naechstesGlied((double)x, k); printf("k: %d Summe: %d\n", k, summe); //cout<<"k: "<<k<<" Summe: "<<summe<<"\n"; } printf("----------------------\n"); //cout<<"----------------------\n"; summe=0; int k=0; bool run=true; double ergebnis=exp(x); double endDifferenz=100/(double)martikel_nummer; double differenz=0; while(run){ summe+=naechstesGlied((double)x, k); differenz=fabs(summe-ergebnis); printf("k: %d Summe: %d Differenz: %d\n", k, summe, differenz); //cout<<"k: "<<k<<" Summe: "<<summe<<" Differenz: "<<differenz<<"\n"; k++; if(differenz<=endDifferenz)run=false; } }
Ob das was das Programm macht korrekt ist, hab ich aber nicht getestet.
-
Oh, hab was vergessen umzustellen. quick und dirty weitere Änderungen vorgenommen:
#include <stdio.h> #include <math.h> int martikel_nummer=123456; // Gibt es in math.h schon /* double pow(double x, int k){ double ret=1.0; if(k==0)return ret; for(int i=0; i<k; i++){ ret*=x; } return ret; }*/ double fakultaet(int k){ double ret=1.0, i; for(i = 2; i<=k;i++){ ret*=i; } return ret; } double naechstesGlied(double x, int k){ return pow(x,k)/fakultaet(k); } int main() { double x; int abbruch=martikel_nummer%100; double summe=0; int k; int run=1; double ergebnis; double endDifferenz; double differenz; scanf("%lf", &x); if(abbruch<10)abbruch=10; for(k=0; k<=abbruch; k++){ summe+=naechstesGlied((double)x, k); printf("k: %d Summe: %d\n", k, summe); //cout<<"k: "<<k<<" Summe: "<<summe<<"\n"; } printf("----------------------\n"); //cout<<"----------------------\n"; summe=0; k=0; ergebnis=exp(x); endDifferenz=100/(double)martikel_nummer; differenz=0; while(run){ summe+=naechstesGlied((double)x, k); differenz=fabs(summe-ergebnis); printf("k: %d Summe: %d Differenz: %d\n", k, summe, differenz); //cout<<"k: "<<k<<" Summe: "<<summe<<" Differenz: "<<differenz<<"\n"; k++; if(differenz<=endDifferenz)run=0; } }
-
-
Vielen Vielen Dank an Alle.
Wir wünschen euch trotz unangenehmen Fragen etc ein frohes Neues Jahr
und nochmals Vielen Dank, dass Ihr uns so geholfen habt.
Danke :xmas1: :xmas1: :xmas1: