Skip to content

Commit 4d0e60e

Browse files
author
dodonator
committed
fixed some typos
1 parent 9df2f86 commit 4d0e60e

20 files changed

Lines changed: 82 additions & 81 deletions

Bugs.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Bugs und Fehlerbehebung
2-
Grundsätzlich müssen drei Arten von Fehlern unterschieden werden: Syntaxfeheler, Laufzeitfehler und Semantikfehler.
2+
Grundsätzlich müssen drei Arten von Fehlern unterschieden werden: Syntaxfehler, Laufzeitfehler und Semantikfehler.
33

44
## Syntaxfehler
55
Syntaxfehler sind ähnlich zu verstehen wie Rechtschreibfehler. Ein Befehl wurde nicht richtig geschrieben, eine Zeile nicht richtig eingerückt, eine Klammer nicht geschlossen. Syntaxfehler werden dabei gemeldet, bevor das eigentliche Programm ausgeführt wird.
@@ -36,7 +36,7 @@ ValueError: invalid literal for int() with base 10: 'a'
3636
3737
```
3838

39-
Hier wurde versucht den String "a" in einen Integer umzuwandeln. Spezifischer in einen Integer mit der Basis 10, welches die Standardbasis für die Integerumwandlung ist. Dies ist ein Beispiel für einen `ValueError`. Diese Fehler können auftreten, wenn zum Beispiel die Nutzereingaben nicht überprüft wurden.
39+
Hier wurde versucht den String "a" in einen Integer umzuwandeln. Spezifischer in einen Integer mit der Basis 10, welches die Standardbasis für die Umwandlung in einen integer ist. Dies ist ein Beispiel für einen `ValueError`. Diese Fehler können auftreten, wenn zum Beispiel die Nutzereingaben nicht überprüft wurden.
4040

4141
Laufzeitfehler zu finden ist weiterhin sehr einfach, da die Fehlermeldung sehr genau angibt, wo man zu suchen hat, weitaus schwieriger kann es allerdings werden einen Laufzeitfehler zu beheben, da dabei geklärt werden muss, ab wann das Programm den gewollten Zustand verlassen hat.
4242

@@ -51,4 +51,4 @@ RecursionError: maximum recursion depth exceeded
5151
Hier wurde eine rekursive Funktion ohne Abbruchbedingung gestartet. Die wird bis zu einem Limit an Durchläufen durchlaufen und wirft dann einen `RecursionError`. Dieser ist zweifelsohne ein sehr spezieller Fehler.
5252

5353
## Semantikfehler
54-
Semantikfehler sind von den beschriebenen drei Fehlerarten die weitaus schwierigste Kategorie, da sie vom Compiler oder Interpreter nicht angezeigt werden. Bei semantische Fehler, macht der Quellcode alles richtig, leider macht er nicht das, was er tun soll. Dabei sind Semantische Fehler sehr leicht zu erreichen. Wenn ich zum Beispiel in einer verschachtelten Schleife eine Anweisung in der falschen Einrückungsebene platziere, wird der Code wahrscheinlich noch funktionieren, allerdings nicht mehr das tun, was er soll. Somit ist beim Finden von Semantischen Fehlern sehr wichtig den erwarteteten Output mit dem tatsächlichen Output zu vergleichen.
54+
Semantikfehler sind von den beschriebenen drei Fehlerarten die weitaus schwierigste Kategorie, da sie vom Compiler oder Interpreter nicht angezeigt werden. Bei semantische Fehler, macht der Quellcode alles richtig, leider macht er nicht das, was er tun soll. Dabei sind Semantische Fehler sehr leicht zu erreichen. Wenn ich zum Beispiel in einer verschachtelten Schleife eine Anweisung in der falschen Einrückungsebene platziere, wird der Code wahrscheinlich noch funktionieren, allerdings nicht mehr das tun, was er soll. Somit ist beim Finden von Semantischen Fehlern sehr wichtig den erwarteten Output mit dem tatsächlichen Output zu vergleichen.

Glossar.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Glossar
22
## Level 0:
33
### Programmiersprache
4-
Eine Programmiersprache ist eine formalisierte Form um den Computer in menschenlesbarer Form Anweisungen zu geben.
4+
Eine Programmiersprache ist eine formalisierte Form um den Computer in menschen-lesbarer Form Anweisungen zu geben.
55
Diese Anweisungen werden bei höheren Programmiersprachen vom Compiler bzw. Interpreter in eine vom Computer lesbare Sprache übersetzt. Höhere Programmiersprachen brauchen dieses Zwischenschritt um vom Computer verstanden werden zu können.
66
### Interpreter
77
Ein Interpreter ist ein Programm, dass Anweisungen in einer Programmiersprache entgegennimmt und verarbeitet. Dabei arbeitet es eine Anweisung nach der anderen ab. Somit wird der Programmcode zur Laufzeit geschrieben. Im Interpreter lassen sich sehr leicht kleine Codestücke testen.
@@ -21,7 +21,7 @@ Ein Typ wird definiert durch den Wertebereich und die möglichen Operationen, di
2121
### Schlüsselwort
2222
Schlüsselwörter dienen der Strukturierung des Programmcodes und können daher nicht als Namen für **[Variablen](#variable)** verwendet werden.
2323
### Integer
24-
Ein Integer ist ein **[Typ](#typ)**, der von Python mitgeliefert wird und die ganzen Zahlen behandelt. Er bietet als Operationen die Grundrechenarten, sowie die Modulodivision, die Negation und Vergleichsoperationen. Ein Integer wird im Pythoncode durch die entsprechende Zahl ausgedrückt.
24+
Ein Integer ist ein **[Typ](#typ)**, der von Python mitgeliefert wird und die ganzen Zahlen behandelt. Er bietet als Operationen die Grundrechenarten, sowie die Modulodivision, die Negation und Vergleichsoperationen. Ein Integer wird im Python-Code durch die entsprechende Zahl ausgedrückt.
2525
### Float
2626
### String
2727
Ein String ist ein **[Typ](#typ)**, der von Python mitgeliefert wird. Die **[Werte](#wert)** eines Strings sind Zeichenketten beliebiger Länge. In Python wird ein String durch eine Zeichenkette in doppelten `""` oder einfach `''` Anführungszeichen ausgedrückt.
@@ -45,7 +45,7 @@ Als Index bezeichnet man die Position, bei 0 beginnend, eines **[Elementes](#ele
4545
Eine Liste ist ein **[Typ](#typ)**, der in Python mitgeliefert wird. In einer Liste können beliebig viele **[Werten](#wert)** mit beliebigen **[Typen](#typ)** gespeichert werden. Dabei kann ein Wert beliebig häufig in der selben Liste auftreten. Ebenso können Werte verschiedenen Typs in der selben Liste gespeichert werden. Häufig werden die Werte in einer Liste als **[Elemente](#element)** bezeichnet. Auf die Elemente einer Liste wird über deren Position in der Liste (ihren **[Index](#index)**) zugegriffen. Die Zählung der Indexe beginnt dabei bei `0`, d.h. das erste Element einer Liste mit `n` Elementen hat den Index `0` und das letzte Element den Index `n-1`. Zu beachten ist, das im Gegensatz zu den Typen **[Integer](#integer)**, **[String](#string)**, **[Float](#float)** und **[Boolean](#boolean)** die Liste ein dynamischer Typ ist.
4646
### Tupel
4747
Ein Tupel ist ein **[Typ](#typ)**, der von Python mitgeliefert wird. Er besitzt ähnliche Eigenschaften wie der Typ **Liste**. Der markante Unterschied zwischen diesen
48-
beiden Typen ist, dass ein Tupel unveränderlich ist, sowohl bzgl. der Anzahl der **[Elemente](#element)** als auch bezgl. der Elemente. Der Zugriff geschieht wie bei dervListe über den **[Index](#index)** eines Elements.
48+
beiden Typen ist, dass ein Tupel unveränderlich ist, sowohl bezüglich der Anzahl der **[Elemente](#element)** als auch bezgl. der Elemente. Der Zugriff geschieht wie bei dervListe über den **[Index](#index)** eines Elements.
4949
### Dictionary
5050
Ein Dictionary ist ein **[Typ](#typ)**, der von Python mitgeliefert wird. Es ist ebenso wie die **[Liste](#liste)** oder das **[Tupel](#tupel)**, ein iterativer Typ. Im Gegensatz zu diesen beiden Typen wird auf ein **[Element](#element)**, dass in einem Dictionary gespeichert wird nicht über einen **[Index](#index)**, sondern über ein Schlüssel zugegriffen.
5151
### Schleife

Home.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# PythonfooLite
2+
23
## Einleitung
34

45
> "The only way to learn a new programming language is by writing programs in it." - Dennis Ritchie
@@ -12,20 +13,20 @@ Wir beschäftigen uns beim Pythonfoo mit Python in der Version 3.x. Python ist e
1213
Grundsätzlich sind alle Texte in Deutsch verfasst, die Codebeispiele jedoch enthalten teilweise englische Namen, da auch die Programmiersprache mit englischen Begriffen arbeitet. An einigen Stellen, werden in den Texten englische Begriffe verwendet, was meistens daran liegt, dass die deutsche Übersetzung sehr sperrig ist ("integer" <-> "ganze Zahl", "float" <-> "Fließkommazahl") oder weil der englische Begriff der weitaus gebräuchlichere ist.
1314

1415
## Glossar
15-
Im Wiki des Github Repositorys findest du ein Glossar, in dem die meisten Begriffe kurz erklärt werden.
16+
Im Wiki des Github Repositories findest du ein Glossar, in dem die meisten Begriffe kurz erklärt werden.
1617

1718
## Kontakt und Feedback
1819
Falls du Anregungen, Fragen, Einwände oder Ideen hast, kannst du uns natürlich an den ersten beiden Donnerstagen im Monat im Chaosdorf erreichen, oder eine Nachricht im Github Repository hinterlassen oder eine E-Mail an [pythonfoo@chaosdorf.de](mailto:pythonfoo@chaosdorf.de) schicken, zudem bietet GitHub noch ein Issue System, um Fehler im Repository zu melden. Wir sind über jegliche Art von Feedback dankbar.
19-
Da wir nur zwei Studenten sind, die Spaß daran haben, anderen die Grundlagen der Programmierung in Python näherzubringen, sind wir natürlich weder allwissend oder unfehlbar. Die Codebeispiele und das Wiki im Repository sind insofern als "work in progress" zu sehen, dennoch sind wir für jegliches Feedback dankbar. Wir sind stetig damit beschäftigt die Codebeispiele und beiliegenden Texte zu erweitern und verbessern, auch in diesem Zusammenhang freuen wir uns über jegliches Feedback.
20+
Da wir nur zwei Studenten sind, die Spaß daran haben, anderen die Grundlagen der Programmierung in Python näher zu bringen, sind wir natürlich weder allwissend oder unfehlbar. Die Codebeispiele und das Wiki im Repository sind insofern als "work in progress" zu sehen, dennoch sind wir für jegliches Feedback dankbar. Wir sind stetig damit beschäftigt die Codebeispiele und beiliegenden Texte zu erweitern und verbessern, auch in diesem Zusammenhang freuen wir uns über jegliches Feedback.
2021

21-
## Levelaufteilung
22-
Wir haben den Ablauf in Level unterteilt, die aufeinander aufbauen. Das sorgt dafür, dass wir den Ablauf individuell an den Kenntnisstand der Anwesenden anpassen können, was es nicht langweilig werden lässt. Die Level sind unten grob skiziert und geben einen Überblick. Zu jedem Level sind Stichwörter aufgeführt, die sich entweder im Glossar oder im Internet suchen lassen, und einen Einblick geben sollen um was es geht, damit du falls du bereits Erfahrung im Programmieren mit Python oder einer anderen Programmiersprache hast, weißt wo du am besten einsteigen kannst.
22+
## Gliederung
23+
Wir haben den Ablauf in Level unterteilt, die aufeinander aufbauen. Das sorgt dafür, dass wir den Ablauf individuell an den Kenntnisstand der Anwesenden anpassen können, was es nicht langweilig werden lässt. Die Level sind unten grob skizziert und geben einen Überblick. Zu jedem Level sind Stichwörter aufgeführt, die sich entweder im Glossar oder im Internet suchen lassen, und einen Einblick geben sollen um was es geht, damit du falls du bereits Erfahrung im Programmieren mit Python oder einer anderen Programmiersprache hast, weißt wo du am besten einsteigen kannst.
2324

2425
### Zeiteinteilung
25-
Da die Level nicht gleich umfangreich sind und die Geschwindigkeit des Durchgehens stark vom Kenntnisstand bzw. eventuellen Vorkenntnissen abhängig ist, ist es schwierig allgemein zu sagen, wie viel Zeit für die Level eingeplant werden muss; die Erfahrung zeigt aber, dass die ersten 5 Level gut in einen bis zwei Abenden à 3 Stunden beendet werden können. Da zwischen Level 5.5 und Level 6 ein großer inhaltlicher Sprung besteht, bietet es sich an zwischen den Leveln eine Pause zur Auffrischung und Wiederholung einzulegen. Zudem ist der Einstieg in Level 6 zuerst theoretisch, weshalb es besser ist, ausgeruht in das Level zu starten.
26+
Da die Level nicht gleich umfangreich sind und die Geschwindigkeit des Durchgehens stark vom Kenntnisstand bzw. eventuellen Vorkenntnissen abhängig ist, ist es schwierig allgemein zu sagen, wie viel Zeit für die Level eingeplant werden muss; die Erfahrung zeigt aber, dass die ersten 5 Level gut in einen bis zwei Abenden à 3 Stunden beendet werden können. Da zwischen Level 5.5 und Level 6 ein großer inhaltlicher Sprung besteht, bietet es sich an zwischen den Levels eine Pause zur Auffrischung und Wiederholung einzulegen. Zudem ist der Einstieg in Level 6 zuerst theoretisch, weshalb es besser ist, ausgeruht in das Level zu starten.
2627

2728
### Aufgaben
28-
Zur Auffrischung und Anwendung des Gelernten, bieten wir zu den meisten Leveln Aufgaben an, die sich auf das Level beziehen und der Übung dienen sollen. Die Aufgaben sind natürlich vollkommen freiwillig wir schauen gerne über Lösungen drüber. In einigen Leveln gibt es auch Beispiellösungen zu den Aufgaben. Da es für uns schwierig ist den Schwierigkeitsgrad der Aufgaben richtig zu wählen, sind wir hier auf Feedback angewiesen.
29+
Zur Auffrischung und Anwendung des Gelernten, bieten wir zu den meisten Level Aufgaben an, die sich auf das Level beziehen und der Übung dienen sollen. Die Aufgaben sind natürlich vollkommen freiwillig wir schauen gerne über Lösungen drüber. In einigen Levels gibt es auch Beispiellösungen zu den Aufgaben. Da es für uns schwierig ist den Schwierigkeitsgrad der Aufgaben richtig zu wählen, sind wir hier auf Feedback angewiesen.
2930

3031
### Level 0
3132
Level 0 ist Programmieranfänger gedacht und klärt die Grundlagen von Programmierung im Allgemeinen und mit Python.
@@ -89,7 +90,7 @@ Level 5 beschäftigt sich mit dem Erstellen von Funktionen (ob mit oder ohne Par
8990
* Docstrings
9091

9192
### Level 5.5
92-
Dieses Level beschäftigt sich mit Themen, die in bisherigen Leveln nicht behandelt wurden, weil sie nichts mit Python zu tun haben oder nicht dem Fortschritt entsprachen. Dennoch sind diese Themen, nicht nur für die Programmierung in Python, sondern auch in anderen Programmiersprachen, sehr wichtig.
93+
Dieses Level beschäftigt sich mit Themen, die in bisherigen Level nicht behandelt wurden, weil sie nichts mit Python zu tun haben oder nicht dem Fortschritt entsprachen. Dennoch sind diese Themen, nicht nur für die Programmierung in Python, sondern auch in anderen Programmiersprachen, sehr wichtig.
9394

9495
#### Stichwörter:
9596
* Texteditor
@@ -98,7 +99,7 @@ Dieses Level beschäftigt sich mit Themen, die in bisherigen Leveln nicht behand
9899
* [PEP8](https://www.python.org/dev/peps/pep-0008/)
99100
* `s.format()`
100101
* Bash / Terminal / Shell
101-
* Bugssuche
102+
* Fehlersuche
102103
* Refactoring
103104

104105
### Level 6

Level2.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Level 2
22

3-
In Level 1 hast du gelernt Konsoleneingaben vom Benutzer entgegen zu nehmen und, diese EIngaben zu verarbeiten und die Ergebnisse dieser Verarbeitung in der Konsole auszugeben.
3+
In Level 1 hast du gelernt Eingaben in der Konsole vom Benutzer entgegen zu nehmen und, diese EIngaben zu verarbeiten und die Ergebnisse dieser Verarbeitung in der Konsole auszugeben.
44

55
In Level 2 wirst die `if`-Bedingung kennenlernen, die es dir ermöglicht Bedingungen zu prüfen, die erfüllt sein müssen, damit ein Codeabschnitt ausgeführt werden kann.
66
Desweiteren wirst du die `while`-Schleife kennenlernen, welche einen Codeabschnitt wiederholt ausführt, solange eine Bedingung erfüllt ist.

Level3.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ ValueError: 'test' is not in list
105105

106106
Mit `count()` wird die Anzahl eines Objektes in einer Liste gezählt, sollte das Objekt
107107
nicht in der Liste enthalten sein, wird 0 zurückgeben.
108-
108+
109109
``` python
110110

111111
>>> print(a.count("foo"))
@@ -116,7 +116,7 @@ nicht in der Liste enthalten sein, wird 0 zurückgeben.
116116

117117
##### pop()
118118
Mit der Methode pop() ist es möglich Elemente einer Liste anhand ihres Indexes zu
119-
entfernen. Das entfernte Element wird daei zurückgegeben.
119+
entfernen. Das entfernte Element wird dabei zurückgegeben.
120120
``` python
121121
>>> a = [True, 'foo', 'python', 'foo', 'spam', 42]
122122
>>> print(a.pop(0))
@@ -135,7 +135,7 @@ Das entfernte Element wird dabei nicht zurückgegeben.
135135
['foo', 'python', 'foo', 42]
136136
```
137137
##### sort()
138-
Mithilfe von sort() lassen sich Listen alphanummerisch sortieren. Dabei wird die Liste verändert.
138+
Mithilfe von sort() lassen sich Listen alphanumerisch sortieren. Dabei wird die Liste verändert.
139139
``` python
140140
>>> a = ["foo", "python", "spam", "hamster", "test"]
141141
>>> a.sort()
@@ -270,7 +270,7 @@ verschiedenen Anwendungsfällen die eine Möglichkeit mehr Sinn als die andere.
270270

271271
### for-Schleifen
272272
Die for-Schleife ist eine der beiden Schleifenarten. Bei der for-Schleife gibt es eine
273-
Durchlaufvariable die durch ein iterierbares Objekt läuft. Die Syntax für eine for-Schleife ist
273+
Variable die durch ein iterierbares Objekt läuft und dabei den aktuellen Wert enthält. Die Syntax für eine for-Schleife ist
274274
wie folgt:
275275
``` python
276276
>>> a = [1,2,3,4,5]
@@ -280,8 +280,8 @@ wie folgt:
280280
2
281281
3
282282
```
283-
Hier bei ist `i`die Durchlaufvariable und die Liste `a` das iterierbare Objekt.
284-
Mit einer for-Schleife kann über folgende Objekte beispielwwiese iteriert werden:
283+
Hier bei ist `i`die Durchlaufvariable und die Liste `a` das iterierbare Objekt.
284+
Mit einer for-Schleife kann über folgende Objekte beispielsweise iteriert werden:
285285

286286
* string
287287
* Listen
@@ -302,7 +302,7 @@ Keys annimmt.
302302
'Deutsch: drei'
303303
'Englisch: three'
304304
'Deutsch: vier'
305-
'Englisch: four'
305+
'Englisch: four'
306306
```
307307

308308
#### range()
@@ -319,7 +319,7 @@ dem dann über die Integer iteriert wird.
319319
3
320320
4
321321
```
322-
322+
323323
Wie zu sehen ist, ist der Endwert exklusive.
324324
Es ist allerdings auch möglich einen Startwert und eine Schrittweite anzugeben
325325

@@ -337,7 +337,7 @@ Objektes bestimmt wird. Es gibt keine Möglichkeit mehr Durchläufe durchzuführ
337337
Falls man jedoch aus einer Schleife ausbrechen möchte, d.h. sie frühzeitig beenden, kann
338338
man das Schlüsselwort `break` benutzen. Dabei ist zu beachten, dass mit `break` nur aus
339339
der aktuellen Schleife ausgebrochen wird. Sollte diese Schleife in einer weiteren enthalten
340-
sein, läuft diese weiter.
340+
sein, läuft diese weiter.
341341
``` python
342342
l = range(10)
343343
>>> for i in l:
@@ -350,7 +350,7 @@ l = range(10)
350350
2
351351
3
352352
Fertig
353-
```
353+
```
354354

355355
Mit dem Schlüsselwort `continue` ist es möglich den aktuellen Durchlauf abzubrechen, um
356356
mit dem nächsten fortzufahren.

Level3_Aufgaben.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,5 @@ Wenn das vordere Element größer als das hintere Element ist, werden diese vert
4747
4 [2, 1, 3, 4, 5, 6, 7, 8] # Vertauscht = True
4848
5 [1, 2, 3, 4, 5, 6, 7, 8] # Vertauscht = False
4949
```
50-
In dem Coderepository findet ihr im Ordner Level_3 eine Datei "bubblesort.py". Diese erstellt eine Liste mit `n`Elementen und durchmischt diese, das bedeutet, dass kein Element doppelt auftauchen wird.
50+
In dem Code-Repository findet ihr im Ordner Level_3 eine Datei "bubblesort.py". Diese erstellt eine Liste mit `n`Elementen und durchmischt diese, das bedeutet, dass kein Element doppelt auftauchen wird.
5151
**Schreibe ein Programm in diese Datei, dass die Liste `unsortet_list` mit Hilfe von Bubblesort sortiert.**

Level4.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Es sollte darauf geachtet werden, die Datei nach dem Lesen oder dem Bearbeiten w
2323

2424
``` python
2525
file_object.close()
26-
```
26+
```
2727

2828
## Datei einlesen
2929
``` python
@@ -93,16 +93,16 @@ file_object.close()
9393

9494
## An eine Datei anfügen
9595
Beim Anhängen an eine Datei wird beim Öffnen der Datei der Zeiger auf das Dateiende gelegt,
96-
sodass etwas, das in die Datei geschrieben wird, an die Datei drangehängt wird.
96+
sodass etwas, das in die Datei geschrieben wird, an das Ende der Datei dran gehangen wird.
9797

9898
``` python
9999
content = 100*"spam\n"
100100
filename = "test.txt"
101101
file_object = open(filename, "a")
102102
file_object.write(content)
103103
file_object.close()
104-
```
104+
```
105105

106106
Ebenso wie beim Schreiben, wird die Datei erstellt, sollte sie nicht vorhanden sein.
107-
Das Verhalten der Methoden `writeline()`und `writeline()`ist in diesem Modus analog zu ihrem
108-
Verhalten im Schreiben Modus.
107+
Das Verhalten der Methoden `writeline()`und `writeline()`ist in diesem Modus analog zu ihrem
108+
Verhalten im Schreiben Modus.

Level4_Aufgaben.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Schreibe ein Programm, dass seinen Quellcode ausgibt.
66
### a)
77
**Schreibe ein Programm, dass:**
88

9-
* die Datei `monty.txt` aus dem Coderepository einliest,
9+
* die Datei `monty.txt` aus dem Code-Repository einliest,
1010
* eine Worthäufigkeitstabelle erstellt,
1111
* eine Buchstabenhäufigkeitstabelle erstellt,
1212
* die Worthäufigkeiten lesbar formatiert in "words.txt" abspeichert,
@@ -28,7 +28,7 @@ Schreibe ein Programm, dass seinen Quellcode ausgibt.
2828

2929
## Tipps:
3030

31-
1. Bei Aufgabe 1 gibt es eine Beispiellösung im Coderepository, versuche
31+
1. Bei Aufgabe 1 gibt es eine Beispiellösung im Code-Repository, versuche
3232
aber trotzdem selber auf die Lösung zu kommen.
3333
2. Überlege dir für Aufgabe 2 eine sinnvolle Formatierung, um die
3434
Tabellen in den Dateien zu speichern.

0 commit comments

Comments
 (0)