tutorium 03
This commit is contained in:
55
Tutorium/tut03/GIT.md
Normal file
55
Tutorium/tut03/GIT.md
Normal file
@ -0,0 +1,55 @@
|
||||
# Beispiel Workflow mit Git
|
||||
|
||||
## SSH-Key generieren
|
||||
|
||||
1. `ssh-keygen` in der Konsole eingeben
|
||||
- generiert einen privaten und öffentlichen Schlüssel in euer SSH-Verzeichnis `~/.ssh`
|
||||
2. Kopiert den Inhalt des öffentlichen Schlüssel `<key-name>.pub`
|
||||
|
||||
```sh
|
||||
cd ~/.ssh # wir gehen in unser .ssh directory
|
||||
ssh-keygen # danach key namen eingeben und enter bis zum ende
|
||||
cat eidp_key.pub # gibt den public key aus, diesen kopieren
|
||||
```
|
||||
|
||||
Wie das ganze aussieht:
|
||||
|
||||

|
||||
|
||||
## SSH-Key zum Git hinzufügen
|
||||
|
||||
1. Settings
|
||||
2. Keys
|
||||
3. Add Key
|
||||
4. Kopiert den Inhalt von `<key-name>.pub` in Content
|
||||
|
||||

|
||||
|
||||
## Repository clone und VSCode
|
||||
|
||||
1. Wir kopieren oder besser gesagt klonen das Git Repository mit `git clone <url>`
|
||||
- die URL findet ihr rechts oben im repository auf der Website
|
||||
2. Das Repository wird in einem Ordner gespeichert der wie das Repository heißt
|
||||
3. Jetzt öffnen wir diesen Ordner in VSCode
|
||||
4. Über den Git Tab können wir Datein hinzufügen und hochladen oder Änderungen herunterladen
|
||||
|
||||

|
||||
|
||||
alternative kann man auch direkt in VSCode das Repository herunterladen
|
||||
|
||||
1. Git-Tab auswählen
|
||||

|
||||
2. Clone Repository
|
||||
3. Die URL zum Repository einfügen
|
||||
4. Speicherort auswählen
|
||||
|
||||
Nach dem öffnen sieht das dann so aus:
|
||||
|
||||

|
||||
|
||||
## Dateien über Git-Tab hochladen
|
||||
|
||||
1. Fügt die Datein mit dem `+` hinzu
|
||||
2. Gebt eine Nachricht ein und drückt auf `Commit`
|
||||
3. Zum endgültigen hochladen `Sync changes`
|
||||

|
173
Tutorium/tut03/README.md
Normal file
173
Tutorium/tut03/README.md
Normal file
@ -0,0 +1,173 @@
|
||||
---
|
||||
marp: true
|
||||
paginate: true
|
||||
theme: rose-pine
|
||||
footer: EidP 2024 - Nils Pukropp - https://git.narl.io/nvrl/eidp-2024
|
||||
style: ".columns {\r display: grid;\r grid-template-columns: repeat(2, minmax(0, 1fr));\r gap: 1rem;\r }"
|
||||
|
||||
---
|
||||
|
||||
# Tutorium 03 - 2024-10-31
|
||||
|
||||
Blatt 02, Workflow, Blatt 03
|
||||
|
||||
---
|
||||
|
||||
# Blatt 02
|
||||
|
||||
Welche Fehler wurden gemacht?
|
||||
|
||||
---
|
||||
|
||||
# Hochladen
|
||||
|
||||
- Probleme beim Hochladen
|
||||
- Binary statt Textdatei
|
||||
- Tutorial: [Beispiel Workflow mit Git](./GIT.md)
|
||||
|
||||
---
|
||||
|
||||
# keine korrekte Ausgabe
|
||||
|
||||
<div class="columns">
|
||||
|
||||
<div>
|
||||
|
||||
- Expectation:
|
||||
|
||||
```
|
||||
p = -4.0
|
||||
q = -5.0
|
||||
x1 = 5.0
|
||||
x2 = -1.0
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
- Reality:
|
||||
|
||||
```
|
||||
Geben Sie nun einen Wert für p an:
|
||||
> -4.0
|
||||
Geben Sie nun einen Wert für q an:
|
||||
> -5.0
|
||||
Die Lösungsmenge ist L := {5.0, -1.0}
|
||||
```
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
- Gebt bitte alles exakt wie vorgeschrieben in der Console aus!
|
||||
|
||||
---
|
||||
|
||||
# One-Liner in 2.4
|
||||
|
||||
```python
|
||||
print((((((float(input())) * 2) + 3) ** 2) - (float(input()))) / 4)
|
||||
```
|
||||
|
||||
Falsch, weil `input` zwei mal aufgerufen wird
|
||||
|
||||
---
|
||||
|
||||
# One-Liner in 2.4
|
||||
|
||||
```python
|
||||
print((((((float(x := input())) * 2) + 3) ** 2) - (float(x))) / 4)
|
||||
```
|
||||
|
||||
Das wäre korrekt, aber `:=` kam noch nicht in der Vorlesung vor
|
||||
|
||||
---
|
||||
|
||||
# Blatt 02 - Vorrechnen
|
||||
|
||||
---
|
||||
|
||||
# Recap Vorlesung
|
||||
Funktionen, Loops
|
||||
|
||||
---
|
||||
|
||||
# Funktionen
|
||||
|
||||
- Ihr habt schon die ganze Zeit mit Funktionen gearbeitet
|
||||
- `print(...)`
|
||||
- `int(...)`
|
||||
- ...
|
||||
- Funktionen haben ihren eigenen *Scope*
|
||||
- Funktionen sollten auch nur lokale Objekte verwenden
|
||||
|
||||
---
|
||||
|
||||
```python
|
||||
def my_func(param1: type, param2: type) -> type:
|
||||
...
|
||||
|
||||
if __name__ == '__main__':
|
||||
my_func(...)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
```python
|
||||
def add(a: int, b: int) -> int:
|
||||
return a + b
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(add(1, 2)) # 3
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Was ist `if __name__ == '__main__'?
|
||||
|
||||
- Damit bestimmter Code auch nur ausgeführt wird wenn wir die Datei als Hauptdatei ausführen
|
||||
- Beim importieren von anderen Python-Datein möchten wir nicht dass irgend etwas Ausgegeben wird/Eingaben erfragt werden
|
||||
|
||||
---
|
||||
|
||||
# Iteration - for
|
||||
|
||||
```python
|
||||
for some_item in some_iterable:
|
||||
...
|
||||
```
|
||||
|
||||
- Wenn wir für jedes *Element* in einer *Menge* machen wollen
|
||||
|
||||
---
|
||||
|
||||
```python
|
||||
def print_even_numbers(max: int):
|
||||
for num in range(0, max + 1):
|
||||
print(num)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Iteration - while
|
||||
|
||||
```python
|
||||
while condition:
|
||||
...
|
||||
```
|
||||
|
||||
- Wenn wir eine Bendingung haben die vor jedem Durchlauf gelten muss
|
||||
|
||||
---
|
||||
|
||||
```python
|
||||
def find_next_prime(n: int) -> int:
|
||||
next_prime = n + 1
|
||||
while !is_prime(next_prime):
|
||||
next_prime += 1
|
||||
return next_prime
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Blatt 03
|
BIN
Tutorium/tut03/tutorium-03.pdf
Normal file
BIN
Tutorium/tut03/tutorium-03.pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user