URL: https://www.overclockers.at/coding-stuff/c-frage_199833/page_1 - zur Vollversion wechseln!
Hallo an alle,
ich lerne aktuell (seit 2 Wochen) in der Schule C++. Nun haben wir eine Übungsaufgabe bekommen, die ich doch lösen möchte. Ausgegeben werden soll folgendes:
ZitatBerechnungen zum Kegel {mittig}
Kegeldurchmesser in mm: <Eingabe>
Kegelhöhe in mm: <Eingabe>
Volumen des Kegels: xxxxxxx.xx Kubikmillimeter.
Mantelfläche des Kegels: xxxxxxx.xx Quadratmillimeter.
Oberfläche des Kegels: xxxxxxx.xx Quadratmillimeter.
ENDE mit beliebiger TASTE (mittig)
Code://------------------------------------------------------------ #pragma hdrstop #include <stdio.h> #include <conio.h> #include <math.h> #define geteilt 2 //Wert zu Umrechnung von Durchmesser zu Radius #define pi 3.141592654 /*Kreiszahl Pi zur Errechnung der Grundflaeche und Mantelflaeche*/ #define geteiltt 3 //--------------------------------------------------------------------------- void main() { float Durchmesser, Hoehe, Volumen, Mantelflaeche, Oberflaeche, Grundflaeche, Radius, Seite, Seite1; printf("\n\tProgramm zur Errechnung von Volumen, Mantelflaeche\n "); printf("\tund Oberflaeche eines Kegels\n\n"); printf("\tKugeldurchmesser in mm: "); scanf("%f", &Durchmesser); printf("\n\n\n"); printf("\tKegelhoehe in mm : "); scanf("%f", &Hoehe); Radius= Durchmesser / geteilt; Seite1= Radius * Radius + Hoehe * Hoehe; //Nicht sicher double Seite1 = sqrt("%f", &Seite); //falsch Grundflaeche= pi * Radius * Radius; Volumen= Grundflaeche * Hoehe / geteiltt; Mantelflaeche= pi * Radius * Seite; printf("\n\tVolumen : "); printf("%f", Volumen); printf("\n\n\n"); printf("%f", Mantelflaeche); getch(); /* #pragma argsused int main(int argc, char* argv[]) { return 0; */ } //---------------------------------------------------------------------------
Mein Programmieren ist schon lange her, aber du lässt bei der sqrt die Adresse berechnen imho. Ich glaube, hier liegt das Problem, gib einfach das & einmal weg.
(Sorry, falls das nicht stimmen sollte)
Hab das & weggegeben, hat leider nichts gebracht. Sonst noch Vorschläge?
Ist auch schon eine weile her das ich c++ programmiert habe, aber kannst du das %f nicht weglassen und nur
double Seite1 = sqrt(Seite);
schreiben?
Aber wie gesagt, is schon eine weile her ...
Lg
hat leider auch nichts genützt
sqrt nimmt als parameter variablen und keine adressen. du übergibst ihm nur adressen, kein wunder, dass es ihn komplett aufbrennt.
außerdem seh ich, wenn in der c++ referenz nachschau, kein sqrt, welches 2 parameter nehmen würd... i versteh ned wie das ding überhaupt compilen kann
Überseh ich da grad was, aber du definierst "Seite" ja nur am Anfang als "float". Aber du weist ihm nirgends einen Wert zu, oder? (-somit kannst du dann auch keine wurzel draus ziehen)
lg
das ist das nächste
Also die Höhe und den Durchmesser muss man ja eingeben. Wie sieht dann der Quelltext aus mit dem ich dann die Seite s bei dem Kegel bekomme? Bin für alles offen
a² + b² = c²
Wenn a und b Katheten sind und c die Hypothinuse
In deinem Fall ist die Hypothinuse die Seite des Kegels s und a bzw b sind der Radius (Durchmesser/2) und die Höhe h.
Sprich:
(d/2)² + h² = s²
=> s = sqrt((d/2)²+h²);
edit: natürlich kannst in cpp ned '²' schreiben sondern musst halt h*h schreiben...
Aua, das ist ja kein C++, das ist falsches C.
Fangen wir oben an:
Code:#pragma hdrstop
Code:#include <stdio.h> #include <conio.h> #include <math.h>
Code:#define geteilt 2 //Wert zu Umrechnung von Durchmesser zu Radius #define pi 3.141592654 /*Kreiszahl Pi zur Errechnung der Grundflaeche und Mantelflaeche*/ #define geteiltt 3
Code:void main()
Code:float Durchmesser, Hoehe, Volumen, Mantelflaeche, Oberflaeche, Grundflaeche, Radius, Seite, Seite1;
Code:printf("\n\tProgramm zur Errechnung von Volumen, Mantelflaeche\n ");
Code:scanf("%f", &Durchmesser);
Code:double Seite1 = sqrt("%f", &Seite); //falsch
edit: that hats so schön zerlegt, da brauch ich gar nix mehr sagen
edit2: wie konnte das ding überhaupt compilen? i check das noch immer ned....
edit3: i tipp mal das is typische htl, wir schreiben c++ drauf, bringen den kindern erst mal C bei und am ende kommen eventuell noch ein paar OO konzepte.
Flame on semtex
Ich war auch in einer HTL...aber ich hab so Probleme wie mathematische Formelberechnungen durchaus in C gelernt.
Objektorientierung kommt erst im 2. Jahrgang.
Find ich aber durchaus richtig so...NICHT RICHTIG (und ich glaub auch nicht, dass ihm das so beigebracht wurde) find ich wenn cpp auf ein c-Programm gepappt wird.
MMn hat der liebe ass21 hier einfach neu mit OOP angefangen - funktionale Vorbildung - und den Bogen noch nicht ganz raus.
Da helfen ihm gute Tipps mehr als Flame über seine Schule!
edit:
Hoffe ich...
"übungsaufgabe in der schule" => i denk mal er hat sich die scanf und printf mit parametern ned aus den fingern gesaugt... das wird ihm scho wer in der schule so beigebracht haben
und wenn ich mich dran erinner, was bei uns unter c++ und java gelaufn ist in der HTL... brrrr...
JEDENFALLs musst du IM sqrt den Radius und die Höhe quadrieren und addieren.
KEINESFALLs irgendwelche Adressen übergeben...
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025