1.3 Kontrollfluss
Contents
1.3 Kontrollfluss#
Zugriff auf Hilfe zur Standard-Library#
Es kann dazu im Notebook direkt auf die Hilfsseiten der STL zugegriffen werden über `?Begrif``, zum Beispiel
?std::vector
Dies öffnet die Informationen direkt aus dem Netz (und kann daher ein paar Sekunden benötigen).
?std::vector
Arrays#
Definition: int data1[42];
Statt der expliziten Größenangabe kann ein Array implizit mit einer Initialisierungsliste definiert werden:
int data2[] = {1, 2, 3, 44, 55, 110};
Zugriff auf Elemente:
int a = data2[0]; // a == 1
data2 [1] = a;
*Achtung: Keine Exception bei unerlaubtem Zugriff wie z.B. data2[6] = 24;
Es gibt keine Funktion array_name.length()!
Die Länge eines Arrays muss separat gespeichert/an Funktionen übergeben werden (Die Anzahl der Elemente eines Arrays a
kann zwar mit sizeof(a)
/sizeof(a[0])
ermittelt werden, nicht jedoch, wenn ein Array-Typ als Parameter an eine Funktion übergeben wird, da hierbei implizit in den zugrunde liegenden Pointer-Typ umgewandelt wird.)
Aufgabe: For-Schleife#
Schreiben sie ein Programm, dass das Maximum der Elemente eines vorgegebenen Arrays bestimmt. Als Test können sie zum Beispiel den Array int numbers[] = {5,7,13,2,6,5,19};
nutzen.
Hinweis: Die Anzahl der Elemente eines Arrays können Sie mit sizeof(numbers)
berechnen, das einen int
zurückgibt (Anmerkung: sizeof
liefert die Größe im Speicher, nicht die Anzahl an Einträgen).
Hilfe zu Kontrollstrukturen.
#include <iostream>
int main(int argc, const char* argv[])
{
int numbers[] = {5,7,13,2,6,5,9};
int max = 0;
// Provide code for finding the max in the array.
std::cout << max << std::endl;
}
In den folgenden Zellen sind zwei mögliche Lösungen angegeben, die dies kurz in Code umsetzen. Später werden sie noch weitere Vereinfachungen zum Zugriff kennen lernen.
#include <iostream>
int main(int argc, const char* argv[])
{
int numbers[] = {5,7,13,2,6,5,9};
int size = sizeof(numbers) / sizeof(int);
int max = numbers[0];
for (int i = 0; i < size; ++i)
{
if (numbers[i] > max)
max = numbers[i];
}
std::cout << max << std::endl;
}
#include <iostream>
int main(int argc, const char* argv[])
{
int numbers[] = {5,7,13,2,6,5,9};
int max = numbers[0];
for (int num : numbers)
max = num > max ? num : max;
std::cout << max << std::endl;
}
Diese Aufgabe ist aus dem WWU C++ Kurs übernommen.