Workshop Programmierung

Dies ist der Workshop zum Programmierungsmodul des Online-Vorbereitungskurses Informatik der TU Dresden.
In diesem Modul lernt ihr die Grundkonzepte der Programmierung mit Python kennen und werdet dabei eure ersten Programme schreiben. Am Ende dieses Kurses weißt du, was Befehle, Parameter, Datentypen, Variablen, Operatoren, Verzweigungen und Schleifen sind und kannst sie in kleinen Programmen verwenden.

Links

   Online-Vorbereitungskurs Informatik: https://tud.link/902w
   oder alternativ https://dditools.inf.tu-dresden.de/ovk/progra/?o=0
   E-learning Website W3Schools: https://www.w3schools.com/python/
   Dokumentation Python 3.x: https://docs.python.org/3/

Thonny entdecken

Thonny Icon Hier seht ihr den geöffneten Thonny und seine Komponenten, das Editorfenster, die Ausgabe und die Fenster zur Auswertung des Heaps z. B. und von Variablen.

AUFGABE 1
Öffne Thonny auf deinem Laptop und führe die Befehle


        print("Hallo Welt")
        abs(-3)
    
aus, indem du auf Run klickst. Wie ändert sich das Verhalten deines Editors, wenn du stattdessen den Debugger benutzt? Probiere hier auch einmal die anderen Schaltflächen deines Debuggers aus.

HINWEIS
Thonny hat viele Tools, die dir dabei helfen, deinen Quelltext besser zu verstehen, darunter sind:

  • Autovervollständigung
  • Syntaxhervorhebung
  • Hervorhebung zusammengehöriger Klammern
und der Debugger:

Parameter

Die print() Funktion kann nicht nur einen sondern beliebig viele Parameter ausgeben. Es gibt auch Parameter, deren Namen du explizit angeben musst.

AUFGABE 2
Wie unterscheidet sich die Ausgabe folgender Quelltextzeilen?

    print(3,4,5)
    print(3,4,5, sep="-")

Variablen

Mit Variablen können Datenwerte gespeichert und zu einem späteren Zeitpunkt wiederverwendet werden.

AUFGABE 3
Wie lautet die Ausgabe folgender Zeilen und wie ist das Ergebnis zu erklären?
1)
a = 5
print(a)
3)
a = 5
b = a
print(a, b)
2)
a = 5
a = 76
print(a)



Operatoren

Operatoren sind Funktionen, die einen Datenwert zurückgeben. In Python kannst du die mathematischen Operatoren +, -, / und * verwenden, es gibt auch die logischen Operatoren and, or und not.

AUFGABE 4
Wie ist die folgende Ausgabe zu eklären?

    x = 3 < 2
    y = 3 + 2
    z = 3 % 2
    print("x: {0},\ny: {1},\nz: {2}".format(x,y,z))
    print(x or y > 10)

Listen

Python kennt einige zusammengesetzte Datentypen, die dazu dienen zusammengehörige Datenwerte zu gruppieren. Ein solcher Datentyp ist Liste. Listen haben die Form [a, b, c, ..], wobei [] für eine leere Liste steht.

HINWEIS
Die Elemente der Liste müssen nicht denselben Typ haben, Listen der Form
x = [True, "Ferien", 25]
sind zulässig. In der Regel haben die Elemente aber denselben Typ, wie in
y = [1,3,5,7]
oder in
Z = ["Montag", "Dienstag", "Mittwoch"]

AUFGABE 5
Gebt die folgenden Quelltextzeilen in euren Thonny ein. Was passiert, wenn ihr die Parameter der Funktionen pop() und range() variiert?

    l = list()
    l.append(1)
    l.pop()
    print(l)

    x = list(range(10))
    y = list(range(2,16,2))
    print("x: ", x)

Schleifen

Mit Schleifen können Anweisungen mehrmals hintereinander ausgeführt werden.



AUFGABE 6
Wie muss der folgende Quellcode geändert werden, damit beide Schleifen die gleiche Ausgabe erzeugen?

    for i in range(3):
        for j in range(3):
            print("i: ", i, " j: ", j)

    i=0
    j=0
    while i < 3:
        while j < 3:
            print("i: ", i, " j: ", j)
            j+=1
        i+=1

Verzweigungen

Verzweigungen dienen dazu, Anweisungen nur unter einer bestimmten Bedingung auszuführen, oder dann, wenn diese Bedingung nicht erfüllt ist. Nun benötigen wir also wieder unsere Operatoren!

AUFGABE 7
Schreibe ein Programm, dass eine natürliche Zahl x vom Benutzer einliest. Das Programm gibt dann zwei Listen aus, eine Liste aller geraden Zahlen bis einschließlich x und eine Liste der ungeraden Zahlen.
Du kannst hierfür die Funktion input() verwenden.

Alles in einem Programm

ZUSATZ 1
Mithilfe von Zufallszahlen soll ein Sudoku-Puzzle generiert werden.

In einem Sudoku-Puzzle dürfen die Ziffern von 1-9 in jeder Zeile und Spalte jeweils nur genau einmal vorkommen. Zusätzlich dürfen diese Ziffern in jedem 3x3 Unterquadrat auch nur jeweils einmal auftauchen.

Ob es sich bei unserem zufällig generierten Puzzle um ein gültiges Sudoku handelt, müssen wir also noch testen.
CC BY-SA 3.0 https://de.wikipedia.org/wiki/Sudoku

HINWEIS
Mit der Funktion random.randint(a,b) kann eine Zufallszahl zwischen a und b erzeugt werden.

    import random
    x = random.randint(0,9)
    print(x)

ZUSATZ 2
Gib alle Zahlen zwischen 1 und 1000 aus, die Palindrome sind. Ein Palindrom ist eine Zeichenkette, welche rückwärts geschrieben identisch zur Ausgangszeichenkette ist.
Beispiele für Palindrome: 465, 8, 55