funktion: kreisberechnung als tabelle



  • hallo zusammen,
    ich möchte folgendes realisieren: ich möchte eine tabelle mit verschiedenen kreisberechnungen (radien) durchführen und diese untereinander ausgeben. ausgabe stelle ich mir so vor:
    Radius | Umfang | Flaeche
    0.000 x.xxx x.xxx etc.

    meine bisherife idee:

    #include<stdio.h>
    
    float const PI=3.14;
    
    void ktabelle(float, float, float);/*Prototyp Funktion*/
    
    void main(){
    float minRad = 0.000; /*kleinster Radius*/
    float maxRad = 2.000; /*größter Radius*/
    float schritte = 0.200; /*Schrittweite der Radien*/
    
    printf("\n%-10s | %-10s | %-10s", "Radius", "Umfang", "Fläche");/*geht das??*/
    printf("\n_______________________\n);
    
    ktabelle(minRad,maxRad,schritte); /*sollen Funktion übergeben werden*/
    
    return 0;
    
    }/*main*/
    
    void ktabelle(float min,float max,float rad){
    
    float flaeche; 
    float umfang;
    float radius;
    
    ...
    

    und an der Stelle gehts los mit der großen Ratlosigkeit. Für die Berechnungen brauche ich ja jeweils den aktuellen radius*radius*PI als Fläche und 2.0*aktuellen Radius*PI als Umfang. wie kann ich es hinbekommen, dass der radius von 0.000 mit den 0.200 schrittweite bis 2.000 immer zur Berechnung herangezogen wird? Könnte es so ähnlich aussehen:

    for(radius=min,radius<=max,radius + schritt){}
    

    ??? Für Anregungen, Idee, Hinweise auf Denkfehler wäre ich sehr dankbar!

    Grüße, j.
    }



  • Hi,

    es kann so gemacht werden:

    void ktabelle(float min, float max, float schritt)
    {
        float flaeche;
        float umfang;
        float radius;
    
        for(radius = min, radius <= max, radius += schritt)
        {
            //Berechnungen
            //Ausgabe
        }
    }
    


  • printf("\n%-10s | %-10s | %-10s", "Radius", "Umfang", "Fläche");/*geht das??*/

    Yepp.

    float const PI=3.14;
    

    Ist das eigentlich ANSI C konform. Ich glaube mich zu erinnern, dass es im Std. keine Konstanten gibt und man die ganze Sache lieber als

    #define PI 3.14
    

    vereinbaren sollte.



  • Richard schrieb:

    float const PI=3.14;
    

    Ist das eigentlich ANSI C konform. Ich glaube mich zu erinnern, dass es im Std. keine Konstanten gibt und man die ganze Sache lieber als

    #define PI 3.14
    

    vereinbaren sollte.

    natürlich ist es standardkonform.
    nur ist const in C nicht so const wie in C++. Deshalb sind idR #defines besser.



  • sind defines typenlos?



  • MasterCounter schrieb:

    sind defines typenlos?

    Ein #define macht eigentlich nicht mehr als Text durch anderen Text zu ersetzen.



  • also im prinzip ein const char*



  • MasterCounter schrieb:

    sind defines typenlos?

    Jap.
    Die entsprechenden Stellen im Quellcode werden vor dem Complieren ersetzt.
    Es ist also auch so etwas möglich(, aber hässlich).

    #define a +
    
    int x = 5 a 3;
    


  • und warum soll man dann lieber defines statt const verwenden??


Anmelden zum Antworten