Aufgabenstellung Hinweise C++ Hinweise BASIC Musterlösung C++ Musterlösung BASIC
Erstellen Sie ein Programm, das zu den Ganzzahlen 1 ... 20 :
- die Quadratzahlen,
- die Wurzeln und
- die Kubikzahlen berechnet.
Die Ausgabe der Daten soll in Tabellenform erfolgen.
Erweitern Sie das Programm zur Berechnung der Quadratzahlen, Kubikzahlen und Wurzeln, so dass der Benutzer auswählen kann, ob er die Quadratzahlen, Wurzeln oder die Kubikzahlen berechnen will.
Aufgabenstellung Hinweise C++ Hinweise BASIC Musterlösung C++
Musterlösung BASIC
In diesem Programm müssen die Befehle zur Berechnung und Ausgabe mehrfach wiederholt werden, insgesamt 20mal. Hierzu bietet C++ als Programmstruktur die sog. Zählschleife mit FOR.
Diese for-Anweisung bietet die Möglichkeit, Zählvorgänge übersichtlich zu formulieren. In der For-Schleife werden im Schleifenkopf die Startwerte und sämtliche Bedingungen für den Verlauf der Schleife festgelegt. Die Syntax lautet in allgemeiner Form:
for (startwert; ausführungsbedingung;
zählbefehl)
anweisung;
startwert
)
ist der sogenannte Initialisierungsausdruck, d.h. ein
Befehl, der beim Eintreten in den ersten Schleifendurchlauf einmal
durchgeführt wird. Meistens wird hier eine Zählvariable auf einen
Startwert gesetzt.ausführungsbedingung
)
ist der sogenannte Bedingungsausdruck oder auch das Abbruchkriterium.
Hier wird das Abbruchkriterium der
Schleife festgelegt, d.h. die Schleife wird so lange durchlaufen, wie die ausführungsbedingung
wahr (ungleich 0) ist. zählbefehl
)
wird bei jedem Schleifendurchlauf bewertet, d.h. nach
Durchführung der Anweisungen im Schleifenkörper und bevor die
Bedingung erneut geprüft wird. Normalerweise werden im zählbefehl
Schleifenvariablen inkrementiert bzw. dekrementiert, weshalb diesem
Ausdruck auch von einigen Autoren der Name Reinitialisierung
zugeordnet wird. Ein einfaches Beispiel ist die Ausgabe einer Zahlenfolge,
hier von 0 bis 5: for (int i = 0;
i<6; i++)
cout << "i hat den Wert " << i << endl;
Aufgabenstellung Hinweise C++ Hinweise BASIC Musterlösung C++ Musterlösung BASIC
Auch in BASIC besteht die Möglichkeit, Zählschleifen zu programmieren. Die Syntax sieht hier allerdings ganz anders aus als in C++. Die Schleife wird hier mit FOR – NEXT programmiert:
FOR zählvariable = startwert TO endwert [STEP schritt]
Befehl1
Befehl2
...
NEXT zählvariable
Beispiel für eine Zählschleife, die die Zahlen von 0 bis 5 am Bildschirm ausgibt:
10 FOR I = 0 TO 5
20 PRINT I
30 NEXT I
Aufgabenstellung Hinweise C++ Hinweise BASIC Musterlösung C++ Musterlösung BASIC
// Musterlösung zur Grundaufgabe von H.Wehmeyer
//
#include <iostream.h>
#include <math.h>
int main()
{
int c, k, q;
double w;
cout << "x x^2 x^3 Wurzel(x)\n";
cout << "=================================\n";
for (c=1; c<11; c++)
{
w=sqrt(double(c));
k=c*c*c;
q=c*c;
cout << c <<"\t" << q <<"\t" << k <<"\t" << w << endl;
}
return 0;
}
Aufgabenstellung Hinweise C++ Hinweise BASIC Musterlösung C++ Musterlösung BASIC
10 REM Programm Quadratzahlen, Kubikzahlen, Wurzeln
20 REM Musterlösung von H.Wehmeyer
30 REM
40 CLS
50 PRINT
100 PRINT "Dieses Programm berechnet Quadratzahlen, Kubikzahlen und Wurzeln"
110 PRINT "================================================================"
120 PRINT : PRINT
130 PRINT "Bitte eine Auswahl treffen :"
140 PRINT
150 PRINT "(1) Quadratzahlen"
160 PRINT "(2) Kubikzahlen"
170 PRINT "(3) Wurzeln"
180 PRINT "(4) Alles auf einmal"
190 PRINT : PRINT : PRINT
200 INPUT WAHL
210 PRINT :PRINT :PRINT
220 PRINT "x-Wert",
230 IF WAHL=1 OR WAHL=4 THEN PRINT "Quadratzahl",
240 IF WAHL=2 OR WAHL=4 THEN PRINT "Kubikzahl",
250 IF WAHL=3 OR WAHL=4 THEN PRINT "Wurzel",
254 REM
255 REM Das Komma nach dem PRINT-Befehl erzeugt einen Tabulatorsprung
256 REM Beim Semikolon wird direkt danach weitergeschrieben
257 REM PRINT ohne Komma oder Semikolon erzeugt einen Zeilenwechsel
258 REM
260 PRINT
270 PRINT "--------------------------";
280 IF WAHL=4 THEN PRINT "---------------------------";
290 PRINT
500 FOR X=1 TO 20
510 PRINT X,
520 IF WAHL=1 OR WAHL=4 THEN PRINT X*X,
530 IF WAHL=2 OR WAHL=4 THEN PRINT X*X*X,
540 IF WAHL=3 OR WAHL=4 THEN PRINT SQR(X),
550 PRINT
560 NEXT X
600 END
Aufgabenstellung Hinweise C++ Hinweise BASIC Musterlösung C++
Musterlösung BASIC