Frage zu Fließkommazahlen und zum Rechnen



  • Hi,

    ich habe mal eine Frage zu dem folgenden Beispiel:

    [cpp]
    int main (void) {

    float wkursF = 1.4906;
    float betragF = 100100.12;

    double wkursD = 1.4906;
    double betragD = 100100.12;

    printf("[float] : %f Dollar = %f Euro\n";
    betragF, betragF/wkursF );
    printf("[double] : %f Dollar = %lf Euro\n";
    betragD, betragD/wkursD );
    return 0;
    }
    [/cpp]

    Warum benötigen wir die Zeile hier?
    Diese eine Sache hab ich nicht verstanden. Hoffe mir kann das einer kurz erklären, wofür man die Zeilen brauch.

    Dann hab ich noch kurz eine Frage. Wofür benötigt man das float? Ich kenn nur das floaten von html, das hat mich deswegen jetzt etwas verwirrt.

    Und wie gesagt, ich hab ja auch noch eine Frage zum folgenden Mathe Beispiel:

    int main(void)
    double r, pi=3.14...
    double AKreis;
    
    printf("Kreisflächenberechnung\n");
    printf("----------------------\n");
    printf("Radius eingeben : ");
    scanf("%lf", %r);
    AKreis = r * r * pi;
    printf("Kreisflaeche bei Radius %lf betraegt %lf\n",
                                                 r, AKreis);
    return 0;
    }
    

    Meine Frage jetzt: Das kleingeschrieben r in der 1. Zeile, steht für Radius? Ist das richtig, oder irre ich mich da? Und was bedeutet das AKreis?
    Warum schreiben wir wieder in die vorletzte Zeile r, AKreis? Hoffe, dass Ihr mir nochmal bei der Beantwortung der Fragen helfen könnt. Ich lese gerade ein Buch über C (Grundkurs), und mein Wissensstandard ist noch nicht sehr hoch. (Bin gerade auf Seite 54:))



  • Du solltest schon richtig abschreiben. Am Ende der Zeile mit dem printf ist ein , (kein 😉

    Und da Befehle in C mit dem ; abgeschlossen werden, ist der Befehl printf auch erst in der nächsten Zeile zu Ende. Darin stehen die Variablen (Werte) die mit printf auagegeben werden sollen.
    Das geschieht an den Stellen wo das %f steht.

    printf("[float] : %f Dollar = %f Euro\n",
                       betragF,    betragF/wkursF );
    

    Mach dich über printf und Formatstrings schlau. z.B. hier: http://www.cplusplus.com/reference/clibrary/cstdio/printf/

    r und AKreis sind Variablennamen. Du hättest sie auch f1 und f2 oder x und y nennen könen. Sinnvoller wäre evtl. auch radius und Kreisflaeche .
    Aber r und AKreis sind für einen Mathematiker ganz aussagekräftig. 🙂
    Das daraus Radius und Fläche werden liegt auch an der Berechnung AKreis = r * r * pi; (Die Flächenformel für den Kreis)



  • Ahh okay 😃 Deswegen sagt man immer, dass das viel mit Mathematik zu tun hat 😃

    Und wegen dem

    betragF, betragF/wkursF );

    soll ich mich über Formatstrings informieren?

    Sonst danke ich erstmal für deine Antwort 😉



  • Kleine Nachhilfe Geometrie:

    r = radius
    A = Fläche daraus folgt AKreis = Flächekreis in D dann Kreisfläche

    Zum 2.

    Warum schreibst du folgendes so:

    printf("[float] : %f Dollar = %f Euro\n";
    betragF, betragF/wkursF );
    

    und nicht so:

    printf("[float] : %f Dollar = %f Euro\n",betragF, betragF/wkursF );
    

    Letzteres ist für Anfänger leichter zu lesen. Denn da ist alles was zu printf gehört in einer Zeile. Dein Compiler schluckt beide Varianten, wenn sonst kein Fehler drin ist.

    Hier noch mal etwas was eigentlich aus deinen Unterlagen schon klar sein sollte:

    printf("[float] : %f Dollar = %f Euro\n"
    

    Die Zeile ist unvollständig und bedeutet bis hier:
    drucke formatiert("[Beispiel: float] : Platzhalter für formatierten Wert Dollar = Platzhalter für formatierten Wert Euro Zeilenvorschub"

    Da du ja für die formatierten Werte noch Daten brauchst der Rest der Zeile:

    ,betragF, betragF/wkursF );
    

    ,betrag Dollar, berechnung = betrag Dollar/ wechselkurs);
    das f in den Bezeichnern steht für das float-Beispiel,
    das d für double.

    Ich hoffe du begreifst diese kompakte Langversion 😃



  • Das könnte noch ein wenig missverständlich sein:
    A = Fläche daraus folgt AKreis = Fläche Kreis
    Da Compiler oft etwas gegen Leerzeichen in Bezeichnern haben also:
    Fläche des Kreis = AKreis



  • Windassel schrieb:

    Ahh okay 😃 Deswegen sagt man immer, dass das viel mit Mathematik zu tun hat 😃

    Nein, aber man kann mit Computern halt gut rechnen. Wie du die Variablen benennst ist deine Sache.

    Windassel schrieb:

    Und wegen dem

    betragF, betragF/wkursF );

    soll ich mich über Formatstrings informieren?

    Sonst danke ich erstmal für deine Antwort 😉

    Du sollst dich wegen printf über Formatstrings informieren.
    Dann klärt sich auch die Sache warum da betragF, betragF/wkursF steht.


Anmelden zum Antworten