Ein Zählvorgang ist per se unendlich. Die for Schleife bestimmt aber nur die Arbeitsweise eines Ausschnitts. Dieser Ausschnitt wird durch die Bedingungen begrenzt. So heißt es sinngemäß in jeder for Schleife:

Deklaration der Zählvariablen, Definition des Anfangs und des Endes sowie Inkrementierung der Zählvariablen

Der Zählvorgang - also die Inkrementierung ( lat. Zuwachs ) - ist elementar, denn es wird öfter gezählt als Sie anfangs vielleicht denken. Wenn Sie beispielsweise in einem Text alle Buchstaben e durch o ersetzen möchten, wird gezählt. Denn alle ist in der Logik auch nur ein Quantor.

Der output kann entweder innerhalb der Schleife oder am Ende stehen; je nachdem, ob Sie die gezählte Variable schrittweise ( + 1 ) oder gesammelt am Schluss ausgeben möchten.

do... while...  |  Addition und Summation   |  Eine Alternative in Pascal

Start oder Ende Ende oder Start
0
  

Passiert schon mal, daß man die Richtung von klein bis groß einfach verwechselt. Dem Inkrement ist das nicht so ganz egal. Daher sorgen wir vor und drehen den Zählvorgang per Bedingung um. Somit wird von rechts nach links gezählt und die Richtung stimmt wieder.

Ferner gilt: x - x = 0 bei gleichen Werten in den Feldern und Werte bis -10 und +10 sollten ausreichen, um das Prinzip zu verdeutlichen.

Das Besondere quadratischer Funktionen ist der Umstand, daß negative Werte der Definitionsmenge positiv werden. Beachten Sie hierbei: - x ² ≠ ( - x ) ²

In diesem Beispiel ist ferner der Öffnungsfaktor a positiv und somit ist die Parabel nach oben geöffnet. Sie ist mit 0,5 doppelt so breit wie die Normalparabel mit a = 1. Da die Variable c mit 0 belegt ist, ergibt sich für den Scheitel S (0|0)

c: y = 0,5 · x² + 0 hat also die Grundform y = a · x² + c

Im Folgenden geht es darum, mittels for Schleife ein Programm zu schreiben, das für einen frei wählbaren Definitionsbereich mit ebenfalls frei wählbarer Schrittweite den Wertebereich ausgibt.

Als Kontrolle der Werte zum nächsten Programm soll diese Graphik dienen, in der nur die markantesten Punkte eingetragen sind.

Geben Sie Dezimalzahlen in der Konsole immer mit Punkt und nicht mit Komma ein! In Java werden Kommas durch replace in Punkte umgewandelt.

Das Programm soll mit der Rekursion arbeiten und vorerst ohne Spezialkommando auskommen.

Die for Schleife wird angelegt und arbeitet zur Ausgabe hin korrekt. Allerdings werden die Werte des Exponenten 1, 2 ... ( n - 0 ) nicht dargestellt, weil der cout ausserhalb der Schleife steht. Falsche Datentypen werden noch nicht berücksichtigt. So reagiert das Programm mit seinen spracheigenen Fehlermeldungen.

Zuerst werden die Datentypen verglichen. Das muss freilich vor der eigentlichen Rechnung geschehen. Die Variable char x fungiert nur als Exemplar für falsche Eingaben und wird nicht weiter verarbeitet.

Wenn man also die Ausgabe in die Schleife setzt, werden n Rechnungen ausgegeben. Leider immer mit dem letzten Exponenten. Hier ist eine neue Variable nötig, die ausschließlich die Exponenten zählt. Diese Variable wird auch ausgegeben und so heißt es statt base hoch expo nun base hoch zae. Achten Sie auf die Initialisierung der neuen Variable.

Da negative Exponenten grundlegend anders berechnet werden, sollen diese hier noch keine Anwendung finden. Negative Exponenten werden gleich nach der Prüfung des Datentyps erkannt und aussortiert. Es bietet sich an, die Größe der Basis und die des Exponenten mit logischem ODER prüfen zu lassen, um sich eine if Bedingung zu sparen.

Es fällt auf, daß keine externe Funktion verwendet wurde. Das soll an anderer Stelle nachgeholt werden, da die for Schleife im Mittelpunkt steht.

In nebenstehender Graphik habe ich die wichtigsten Punkte der Funktion eingetragen. Somit gilt z.B. für den Definitionsbereich -4 < x < 4 bei einer Schrittweite 1 der Wertebereich 8; 4.5; 2; 0.5; 0; 0.5; 2; 4.5; 8

Kontrollieren Sie das untere Programm einfach anhand der Grafik oder nutzen Sie das Skript.

Startwert ( x )

Schrittweite ( x + s )

Endwert ( x )

  

Zunächst die Potenzen ohne Rekursion aber mit Funktion, worin die wichtigste Bedingung enthalten ist. Durch die Funktion hat man auch mehr Möglichkeiten grundlegende Bedingungen vorweg zu nehmen und man muss nicht alles in den Corpus packen.

Die Bezeichnungen der Variablen unterscheiden sich. Das ist zwar gängige Praxis aber hier nicht unbedingt nötig. Die Anzahl der Variablen muss jedoch übereinstimmen.

Unzulässige Eingaben werden nicht explizit berücksichtigt, da ich sonst ins Thema der Datentypen abgleite.

Die Funktion bleibt erhalten aber die Potenzierung tritt etwas in den Hintergrund, weil der Focus jetzt auf dem numerischen Ausschnitt der Bildungsvorschrift liegt.

In der for Schleife wird die Variable i mit anf gleichgesetzt, da sonst immer ab 0 gezählt wird. Die Schleife des Exponenten mit 0 entfällt, weil expo mit 2 definiert wird. Statt zum separaten Zähler zae wird zu anf immer 1 addiert. Immer? Nur bis zur Variablen end !

Die 2 in der Potenz wird der Deklaration der externen Funktion entnommen. Sehen Sie sich dazu nocheinmal die Datentypen der Funktion potenz genauer an.

Zuletzt geht es um die Schrittweite, die nur innerhalb des Bereichs anf bis end liegt. Somit können wir mit Integern nicht mehr viel anfangen. Also double step; für kleine Schritte im Dezimalbereich.

Und nun in der for Schleife quasi der Kern des Ablaufs: anf = anf + step ;

Somit wird die Schrittweite zum Anfang addiert und da der Anfang die Initialisierung der for Schleife ist, wird diese Addition immer wieder ausgeführt. Bis zum definierten Ende natürlich.

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