Thema 1: Algorithmen

  1. Öffnen Sie auf dem USB-Stick die Datei hauptstaedte.txt und kopieren Sie deren Inhalt in den C++-Online-Compiler: https://www.onlinegdb.com/online_c++_compiler
    Erläutern Sie anhand dieses Beispiels den Sortieralgorithmus Selectionsort, und erstellen Sie in der Sprache C++ den Programmcode für die Sortierung der Hauptstädte in alphabetischer Reihenfolge.
    Ergänzen Sie alle dafür notwendigen Variablen.
    Speichern Sie den Programmcode in einer Textdatei auf dem USB-Stick.
  2. Erstellen Sie im Online-C++-Compiler den Programmcode zum Testen der Primzahleigenschaft einer beliebigen eingegebenen natürlichen Zahl.
    Anforderungen an das Programm:
    • Der Programmnutzer (user) wird aufgefordert, eine beliebige natürliche Zahl einzugeben.
    • Die eingegebene Zahl wird mittels der separaten Funkion "ist_primzahl" auf ihre Primzahleigenschaft getestet.
    • Es erscheint die Ausgabe, ob es sich um eine Primzahl handelt oder nicht.
    Erläutern Sie den Programmcode.
    Speichern Sie den Programmcode in einer Textdatei auf dem USB-Stick.

Erwartungsbild

1. Aufgabe
hauptstaedte.txt
#include <iostream>

using namespace std;

int main()
{
    string hauptstadt[10] = {"Budapest", "Paris", "Warschau", "London", "Berlin", "Amsterdam", "Athen", "Stockholm", "Oslo", "Madrid"};
    string help;
    int i, j, min;
    //unsortiertes Array anzeigen
    for(i=0; i<=9; i++) {
        cout<<hauptstadt[i]<<" ";
    }
    cout<<endl;

    return 0;
}
Lösung:
#include <iostream>

using namespace std;

int main()
{
    string hauptstadt[10] = {"Budapest", "Paris", "Warschau", "London", "Berlin", "Amsterdam", "Athen", "Stockholm", "Oslo", "Madrid"};
    string help;
    int i, j, min;
    //unsortiertes Array anzeigen
    for(i=0; i<=9; i++) {
        cout<<hauptstadt[i]<<" ";
    }
    cout<<endl;

    //äußere Schleife i++
    for(i=0; i<=8; i++) {
        //Minimum setzen
        min=i;
        //innere Schleife j++		
        for(j=i+1; j<=9; j++) {
            if(hauptstadt[j]<hauptstadt[min]) min=j;
        }
        //min und i vergleichen
        if(i<min) {           
            //bei Bedarf tauschen		
            help=hauptstadt[min];
            hauptstadt[min]=hauptstadt[i];
            hauptstadt[i]=help;
        }
    }
    //sortiertes Array anzeigen
    for(i=0; i<=9; i++) {
        cout<<hauptstadt[i]<<" ";
    }

    return 0;
}

2. Aufgabe
Lösung:
#include <iostream>
#include <math.h>

using namespace std;

bool ist_primzahl(int n) {
    int rest = 1;
    int i = 2;
    while(rest>0 && i<=sqrt(n)) {
        rest=n%i;
        i++;
    }
    // Rückgabewert true oder false
    return rest != 0;
}

int main() {
    int n;
    cout<<"Dieses Programm prüft, ob eine bestimmte Zahl n eine Primzahl ist.\n";
    cout<<"n = ";
    cin>>n;
    if (ist_primzahl(n)) 
        cout << "Ergebnis: Primzahl";
    else 
        cout << "Ergebnis: keine Primzahl";
        
    return 0;
}