Um es vorweg zu nehmen: Es sind 6 Punkte, die alle miteinander verbunden - ohne Ausnahme - 15 Linien ergeben. Als Beispiel seien Telephonverbindungen genannt.

Doch wie kommt man darauf? Muss man immer induktiv alle Möglichkeiten durchgehen oder gibt es eine kleine, feine Formel, die uns berechnen lässt, wieviele Telefonverbindungen ein Dorf mit beispielsweise 1000 Teilnehmern hat?

Initialisieren  |  boolean true or false  |  Schleifen mit if und else

Anzahl der Punkte ( p )
Anzahl der Linien ( l )0
Die Werte...
Freilich können nur Integer eingegeben werden; halbe Punkte gibt es hier nicht. Und negative Zahlen ebenso.

So weiss man die Zahl der Teilnehmer und die Anzahl der Verbindungen entsteht mittels Bildungsvorschrift oder Formel. Erstaunlich, um wieviel höher die Anzahl der Verbindungen ist und diese Anzahl wächst exponentiell.

Welche Bildungsvorschrift oder eben Formel hinter dem Verhältnis Punkte zu Linien steckt, werden Sie bald dem Quellcode entnommen haben.

Wichtig sind neben dem Aufbau des Programms die Bedingungen, die Zeichen von Ziffern trennen sollen. Dazu die Links.

Postleitzahl prüfen  |  Eingaben separieren

Mit der Definition eines Ablaufs beginnt quasi die Automatisierung und der direkte Zugriff auf bestimmte Werte einer ansonsten langwierigen Rechnung. Gerne nennt man eine Bildungsvorschrift oder wie oben erwähnt einfach Formel.

Bei nebenstehender Graphik geht es darum, zu berechnen, wie groß z.B. die Fläche des 20. Dreiecks im Quadrat mit der Seitenlänge 4 cm ist.

Je nach Länge der Seite des Quadrats wird die Fläche des n-ten Dreiecks natürlich winzig klein. Welche Werte dabei noch Sinn machen und welche Werte eher von nummerischem Interesse sind, ist Ermessenssache.

Externe Funktionen  |  Zahlen runden

Seitenlänge des Quadrats (a)
Anzahl der Dreiecke (n)
Die Werte...
Fläche des n-ten Dreiecks0
Die Werte...
Die Ergebnisse sind auf 6 Stellen nach dem Komma gerundet. Das bedeutet, daß Werte kleiner als 0.000001 dieser Rundung zum Opfer fallen. Sobald ein Ergebnis von der Rundung also verschluckt wird, verändern Sie einfach die Seitenlänge und korelativ entsteht ein neues Ergebnis.

Wenn Sie die Anzahl der Dreiecke von 1 auf 0 verändern erhalten Sie freilich die Fläche des Quadrats. Und auch hier bin ich davon ausgegangen, daß Sie nicht gerade geographisches berechnen wollen.

Besonders elegant lässt sich in Pascal runden. Doch ist diese Art der Rundung ist nur ein Ausgabebefehl und kein neuer Wert. Das bedeutet, daß man damit nicht als separatem Wert weiter rechnen kann.

Sie achten natürlich darauf, als Datentyp keinen Integer zu deklarieren, um dem Witz nicht die Pointe zu nehmen!

Etwas spröder ist der Weg im sonst so unkomplizierten C++. Hier ist zunächst die Direktive cstdlib ( C Standard Library ) nötig, wenn das verwendete Kommando precision heißt. Aber auch hier ist die Rundung eine reine Ausabe und leider kein Wert.

Über system("Pause") kann man hier geteilter Meinung sein, da dies eher ein Kommando aus C ist. Bewirkt aber nichts anderes als eine eigene Variable als Programmende.

Programme beenden

Der nächste Weg sind die Kandidaten trunc oder floor, die allerdings die Bibliothek math.h brauchen. Und jetzt erhalten wir einen echten Wert und das per Definition. Der Rechnung samt Kommando floor ( ( a / b ) * 100 + 0.5 ) / 100 wird nämlich die Variable c zugewiesen und die wird dann alleine, also ohne weitere Eingriffe, ausgegeben.

Somit sei der Sprung vom Ausgabebefehl zum isolierten Wert - immer wieder abrufbar - gemacht und eigentlich könnte man damit schon leben.

Doch jetzt packt uns der Ehrgeiz und es kommt der Clou: Wir möchten auch auf die Direktive math.h verzichten und ersetzen den floor durch einen Datentyp. Welcher? Sie ahnen es: Ein Integer. Somit nehmen wir eine Typumwandlung vor und machen aus dem double einen int.
Beachten Sie, daß die Variable aus - gibt wohl bessere Abkürzungen - kein Integer, sondern ein Double ist. Die eigentliche Typumwandlung ist aber nicht die Rechnung, sondern die Definition vor der Rechnung. Also: (int)(...)

Typumwandlung mittels cast  |  Zufallszahlen

Startseite  |  Hinweise und Impressum  |  Facebook  |  Twitter  |  Google plus