EG
thinking with portals
|
JEDENFALLs musst du IM sqrt den Radius und die Höhe quadrieren und addieren.  KEINESFALLs irgendwelche Adressen übergeben...
|
semteX
begehrt die rostschaufel
|
^2 und ^3 gehen ALLE nicht, es gibt zwar funktionen wie "pow" (ist in math.h dabei) allerdings wenn du es dir einfach machen willst: schreib a*a... ist das selbe ich hab dir jetzt grad einen kleinen code geschrieben, der funktioniert und alles das beinhaltet, was du brauchst... generell: nutz google. wenn du bei ner funktion ned weißt, wie sie richtig aufrufbar ist, google nach der funktion, häng ein c noch dran und du kommst zum beispiel zu so einer seite: http://www.cplusplus.com/reference/...cmath/sqrt.htmlweiters brauchst du jetzt am anfang das &Variable NUR beim scanf! Das wird für dich erst interessant wenn ihr zu so sachn wie zeiger kommt. wird am anfang natürlich a nie erklärt, weil das konzept eher schwer zu verdauen ist. was ist double: "ein besserer float" reicht im moment zum verständniss, wird auch für kommazahlen verwendet. ich hab dir jetzt nen kurzen code geschrieben, welcher funktioniert. normalerweise musst M_PI nicht extra definieren, ich musste es, liegt am visual studio compiler und ich wollt mich nimmer damit spielen: #include <stdio.h>
#include <math.h>
#define M_PI 3.14159265358979323846
int main() {
double a, b, c;
printf("insert a double for a: ");
scanf("%lf", &a);
printf("value for a is : %lf\n", a);
printf("let's make a square root...\n");
b = sqrt(a);
printf("Squareroot of %lf is %lf\n", a, b);
printf("let's multiply b with PI!\n");
c = b * M_PI;
printf("and the result is... %lf", c);
return 0;
}
|
that
Hoffnungsloser Optimist
|
1. Ich glaub dir kein Wort. 4. Was ist 4.? 5. double ist so wie float, nur genauer. 8. dort steht nix von %f oder &. Und "double sqrt(double x)" bedeutet ja nur, dass die Funktion ein "double" als Parameter erwartet und ein "double" zurückgibt - nicht dass du den Rückgabewert dort lokal deklarieren musst.
Was spricht gegen eine übersichtliche 1:1-Umsetzung der Formeln aus dem Mathebuch?
double r = d / 2; double G = M_PI * r*r; double V = G * h / 3; double s = sqrt( h*h + r*r ); double M = r * s * M_PI;
|
Burschi1620
24/7 Santa Claus
|
die conio.h ist eine Lustige. Die verwendet man im Unterricht gerne für die Befehle getch(). Mit denen macht man gerne "ENDE mit beliebiger TASTE (mittig)". Ihr Unixhasen müsst bedenken, dass man im Unterricht als Neuling meistens irgendeine Entwicklungsumgebung, beispielsweise Borlands, verwendet und das reicht auch mal fürn Anfang. Diese Entwicklungsumgebungen führen das Programm unter Windows dann direkt aus und das Konsolenfenster schließt sich natürlich dann gleich wieder. Deshalb wollen die Lehrer immer das mit der Taste, weil sonst das Programm direkt verschwindet. (Wie macht man das ohne getch() und System("pause")? - Wegen dem Befehl in die CLI hab ich schonmal mächtig vom that eins aufs Schüsserl bekommen  ) that, ich glaub erms, dass das "Programm" den Befehl macht. Einfach irgend eine Entwicklungsumgebung die irgendwelche Befehle reinklopft am Anfang. Borland hat glaub ich auch gute 5 Zeilen includes und so drinnen. Und, ja leider wird die Programmiersprache C immer als C++ im Unterricht deklariert. Ich weiß nicht warum. Gestört, kA. Ich hab mich damals immer so darüber aufgeregt  (HTL) Sogar die Klassenkameraden haben mich dann immer veräppelt weil ich immer jemanden anderen ausgebessert habe weil er meinte "ich programmiere C++"
|
ass21
Big d00d
|
|
Marcellus
OC Addicted
|
Ich hab in der htl offiziell C gelernt mit gvim und mingw Aber es stimmt, wir haben diesen grauslichen C++ adim bekommen nur das den keiner verwendet hat.
|
semteX
begehrt die rostschaufel
|
Ja, hab von der Schule den Borland C++Builder 5 bekommen. N bischen angestaubt aber es funktioniert 
@ that: hab ich dir irgendwas gemacht oder warum so harte antworten?... er hat dir nur die fehler aufgezeigt, dabei muss ma ned nett sein. ne harte antwort wär gewesn "les dein sch... buch aber nerv uns nicht, noob"
|
ica
hmm
|
Ich hab in der htl offiziell C gelernt mit gvim und mingw  richtig so. es ist sicher nicht schlecht mit c anzufangen - aber dann soll man gefälligst auch c und nicht c++ dazu sagen.
|
that
Hoffnungsloser Optimist
|
@ that: hab ich dir irgendwas gemacht oder warum so harte antworten?... Nimms nicht persönlich, sollte kein Angriff sein. Ich bin nun manchmal etwas direkt.
|
ass21
Big d00d
|
er hat dir nur die fehler aufgezeigt, dabei muss ma ned nett sein. ne harte antwort wär gewesn "les dein sch... buch aber nerv uns nicht, noob"  Das ist es. Ich hab kein Buch. Das meiste hab ich mir per Google angeeignet. Die anderen sind nunmal noch bei der einfachen Ausgabe. Das wurde mir aber zu langweilig und ich wollte etwas versuchen. Deshalb habe ich hier gefragt  Anbei jetzt mal die Datei was ich jetzt programmiert habe. Ob der jetzt richtig rechnet weiss ich nicht; dass er auf wwi wieviele Kommastellen rundet weiss ich auch  Das mit dem double hab ich übrigens nicht hinbekommen.... Man muss doch oben statt float double hinschreiben und bei scanf statt "scanf("%f");" "scanf("%d");" schreiben, oder? Wenn ich es so mache kommt überall 0 raus.
Bearbeitet von ass21 am 26.09.2008, 06:56
|
that
Hoffnungsloser Optimist
|
Das Posten von ausführbaren Dateien (*.exe) ohne dazugehörigen Quellcode ist unerwünscht.
Bitte poste den aktuellen Sourcecode deiner Anwendung.
|
that
Hoffnungsloser Optimist
|
Das mit dem double hab ich übrigens nicht hinbekommen.... Man muss doch oben statt float double hinschreiben und bei scanf statt "scanf("%f");" "scanf("%d");" schreiben, oder? Wenn ich es so mache kommt überall 0 raus. Das sollte so funktionieren, ja. Edit: Quatsch, %d ist für Integers. Du willst %lf.
Bearbeitet von that am 20.09.2008, 22:44
|
ass21
Big d00d
|
//---------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include <math.h>
//---------------------------------------------------------------------------
int main()
{
float Durchmesser, Hoehe, Volumen, Volumen1, Mantelflaeche, Oberflaeche, Grundflaeche,
Radius, seite, Oberflaeche1, Mantelflaeche1;
printf("\t\t\t\tJ.Schmid, TG11/3 Vers. 0.1a");
printf("\n\n\n\tProgramm zur Errechnung von Volumen, Mantelflaeche\n ");
printf("\tund Oberflaeche eines Kegels\n\n\n\n\n");
printf("\tKegeldurchmesser in mm: ");
scanf("%f", &Durchmesser);
printf("\tKegelhoehe in mm : ");
scanf("%f", &Hoehe);
Radius= Durchmesser / 2;
seite = sqrt(Radius * Radius + Hoehe * Hoehe);
Grundflaeche= M_PI * Radius * Radius;
Volumen1= Grundflaeche * Hoehe / 3;
Volumen= Volumen1 / 1000;
Mantelflaeche1= M_PI * Radius * seite;
Mantelflaeche= Mantelflaeche1 / 100;
Oberflaeche1= Grundflaeche + Mantelflaeche;
Oberflaeche= Oberflaeche1 / 100;
double x = Mantelflaeche;
Mantelflaeche= (int)(Mantelflaeche*100+0.5)/100.0;
printf("\n\n\tVolumen : ");
printf("%f", Volumen);
printf(" Kubikzentimeter");
printf("\n\tMantelflaeche : ");
printf("%f", Mantelflaeche);
printf(" Quadratzentimeter");
printf("\n\tOberflaeche : ");
printf("%f", Oberflaeche);
printf(" Quadratzentimeter");
printf("\n\n\n\n\t\t\tENDE mit beliebiger TASTE");
getch();
}
//---------------------------------------------------------------------------
k sry, das ist jetzt der aktuellste sourcecode EDIT: fataler fehler entdeckt...statt radius * radius hab ich radius + radius....
Bearbeitet von ass21 am 20.09.2008, 22:48
|
that
Hoffnungsloser Optimist
|
Kegeldurchmesser in mm: 10 Kegelhoehe in mm : 0
Volumen : 0.000000 Kubikzentimeter Mantelflaeche : 0.790000 Quadratzentimeter Oberflaeche : 0.793252 Quadratzentimeter Das ist offensichtlich falsch, da brauch ich noch nichtmal rechnen.  printf("\n\n\tVolumen : ");
printf("%f", Volumen);
printf(" Kubikzentimeter");
Das ist nicht falsch, aber es geht kürzer und übersichtlicher: printf("\n\n\tVolumen : %f Kubikzentimeter", Volumen);
Und ein "return 0;" fehlt am Ende, da müsste dein Compiler eigentlich meckern.
|
vanHell
Tauren Marine
|
Und, ja leider wird die Programmiersprache C immer als C++ im Unterricht deklariert. Ich weiß nicht warum. Das liegt daran das der Lehrer meistens fast keinen plan von der ganzen Gschicht hat und ned mal selbst in der lage ist C von C++ zu unterscheiden.
|