From 9ef36700b12950e1dd77bde978c4f7dd42783200 Mon Sep 17 00:00:00 2001
From: rouhani <majid.rouhani@ntnu.no>
Date: Fri, 7 Apr 2023 20:08:36 +0200
Subject: [PATCH] upd

---
 lectures/lecture1/lab/lab-1.md                |   4 +-
 lectures/lecture2/lab/lab-2.md                |   4 +-
 ..._gjett_tallet.ipynb => gjett_tallet.ipynb} |   0
 ...il_lokker.ipynb => intro_til_lokker.ipynb} |   0
 lectures/lecture3/lab/lab-3.md                |  13 ++-
 ...er_om_lokker.ipynb => mer_om_lokker.ipynb} |   0
 ...tede_lokker.ipynb => nostede_lokker.ipynb} |   0
 ....ipynb => sammenligning_av_strenger.ipynb} |   0
 ...il_lokker.ipynb => intro_til_lokker.ipynb} |   0
 ...er_om_lokker.ipynb => mer_om_lokker.ipynb} |   0
 ...tede_lokker.ipynb => nostede_lokker.ipynb} |   0
 ....ipynb => sammenligning_av_strenger.ipynb} |   0
 lectures/lecture3/notes/slides/lecture-3.md   | 103 ++++++++++++++++++
 lectures/lectures.ipynb                       |  22 +++-
 14 files changed, 136 insertions(+), 10 deletions(-)
 rename lectures/lecture3/lab/{4_gjett_tallet.ipynb => gjett_tallet.ipynb} (100%)
 rename lectures/lecture3/lab/{1_intro_til_lokker.ipynb => intro_til_lokker.ipynb} (100%)
 rename lectures/lecture3/lab/{2_mer_om_lokker.ipynb => mer_om_lokker.ipynb} (100%)
 rename lectures/lecture3/lab/{3_nostede_lokker.ipynb => nostede_lokker.ipynb} (100%)
 rename lectures/lecture3/lab/{4_sammenligning_av_strenger.ipynb => sammenligning_av_strenger.ipynb} (100%)
 rename lectures/lecture3/notes/codes/{1_intro_til_lokker.ipynb => intro_til_lokker.ipynb} (100%)
 rename lectures/lecture3/notes/codes/{2_mer_om_lokker.ipynb => mer_om_lokker.ipynb} (100%)
 rename lectures/lecture3/notes/codes/{3_nostede_lokker.ipynb => nostede_lokker.ipynb} (100%)
 rename lectures/lecture3/notes/codes/{4_sammenligning_av_strenger.ipynb => sammenligning_av_strenger.ipynb} (100%)
 create mode 100644 lectures/lecture3/notes/slides/lecture-3.md

diff --git a/lectures/lecture1/lab/lab-1.md b/lectures/lecture1/lab/lab-1.md
index c4a82ca..548bb68 100644
--- a/lectures/lecture1/lab/lab-1.md
+++ b/lectures/lecture1/lab/lab-1.md
@@ -1,13 +1,13 @@
 # Lab-1
 
-## Læringsutbytte
+### Læringsutbytte
 
 * Komme i gang med jupyter (skjønne forskjellen mellom markdown, python, html)
 * Kunne skrive enkel Python program som inneholder: kommentar, kode som skriver til skjerm og leser fra tastatur.
 * Kunne definere variabler
 * Kunne konvertere mellom enkle datatyper
 
-## Læringsaktiviteter
+### Læringsaktiviteter
 
 * [Introduksjon til Jupyter](intro_til_jupyter.ipynb)
 * [Tall- og Typekonvertering](tall_og_typekonvertering.ipynb)
diff --git a/lectures/lecture2/lab/lab-2.md b/lectures/lecture2/lab/lab-2.md
index 2740167..d26f4eb 100644
--- a/lectures/lecture2/lab/lab-2.md
+++ b/lectures/lecture2/lab/lab-2.md
@@ -1,13 +1,13 @@
 # Lab-2
 
-## Læringsutbytte
+### Læringsutbytte
 
 * Kunne skrive enkle matematiske uttrykk i Python
 * Lære å definere funksjoner i Python
 * Kunne sette opp logiske uttrykk
 * Lære å bruke if-setningen i Python.
 
-## Læringsaktiviteter
+### Læringsaktiviteter
 
 * [Funksjoner og kalkulasjoner](funksjoner_og_kalkulasjoner.ipynb)
 * [Logiske operatorer og uttrykk](logiske_operatorer_uttrykk.ipynb)
diff --git a/lectures/lecture3/lab/4_gjett_tallet.ipynb b/lectures/lecture3/lab/gjett_tallet.ipynb
similarity index 100%
rename from lectures/lecture3/lab/4_gjett_tallet.ipynb
rename to lectures/lecture3/lab/gjett_tallet.ipynb
diff --git a/lectures/lecture3/lab/1_intro_til_lokker.ipynb b/lectures/lecture3/lab/intro_til_lokker.ipynb
similarity index 100%
rename from lectures/lecture3/lab/1_intro_til_lokker.ipynb
rename to lectures/lecture3/lab/intro_til_lokker.ipynb
diff --git a/lectures/lecture3/lab/lab-3.md b/lectures/lecture3/lab/lab-3.md
index fc7211b..dab0423 100644
--- a/lectures/lecture3/lab/lab-3.md
+++ b/lectures/lecture3/lab/lab-3.md
@@ -1,9 +1,14 @@
 # Lab-3
 
-## Læringsutbytte
+### Læringsutbytte
 
-* ...
+* Sammenligne strenger
+* Velge egnet løkkekonstruksjon (for eller while) etter behov
 
-## Læringsaktiviteter
+### Læringsaktiviteter
 
-* ...
+* [Sammenligning ac strenger](sammenligning_av_strenger.ipynb)
+* [Introduksjon til løkker](intro_til_lokker.ipynb)
+* [Oppsamlingsløkker](mer_om_lokker.ipynb)
+* [Nøstede løkker](nostede_lokker.ipynb)
+* [Gjettelek](gjett_tallet.ipynb)
diff --git a/lectures/lecture3/lab/2_mer_om_lokker.ipynb b/lectures/lecture3/lab/mer_om_lokker.ipynb
similarity index 100%
rename from lectures/lecture3/lab/2_mer_om_lokker.ipynb
rename to lectures/lecture3/lab/mer_om_lokker.ipynb
diff --git a/lectures/lecture3/lab/3_nostede_lokker.ipynb b/lectures/lecture3/lab/nostede_lokker.ipynb
similarity index 100%
rename from lectures/lecture3/lab/3_nostede_lokker.ipynb
rename to lectures/lecture3/lab/nostede_lokker.ipynb
diff --git a/lectures/lecture3/lab/4_sammenligning_av_strenger.ipynb b/lectures/lecture3/lab/sammenligning_av_strenger.ipynb
similarity index 100%
rename from lectures/lecture3/lab/4_sammenligning_av_strenger.ipynb
rename to lectures/lecture3/lab/sammenligning_av_strenger.ipynb
diff --git a/lectures/lecture3/notes/codes/1_intro_til_lokker.ipynb b/lectures/lecture3/notes/codes/intro_til_lokker.ipynb
similarity index 100%
rename from lectures/lecture3/notes/codes/1_intro_til_lokker.ipynb
rename to lectures/lecture3/notes/codes/intro_til_lokker.ipynb
diff --git a/lectures/lecture3/notes/codes/2_mer_om_lokker.ipynb b/lectures/lecture3/notes/codes/mer_om_lokker.ipynb
similarity index 100%
rename from lectures/lecture3/notes/codes/2_mer_om_lokker.ipynb
rename to lectures/lecture3/notes/codes/mer_om_lokker.ipynb
diff --git a/lectures/lecture3/notes/codes/3_nostede_lokker.ipynb b/lectures/lecture3/notes/codes/nostede_lokker.ipynb
similarity index 100%
rename from lectures/lecture3/notes/codes/3_nostede_lokker.ipynb
rename to lectures/lecture3/notes/codes/nostede_lokker.ipynb
diff --git a/lectures/lecture3/notes/codes/4_sammenligning_av_strenger.ipynb b/lectures/lecture3/notes/codes/sammenligning_av_strenger.ipynb
similarity index 100%
rename from lectures/lecture3/notes/codes/4_sammenligning_av_strenger.ipynb
rename to lectures/lecture3/notes/codes/sammenligning_av_strenger.ipynb
diff --git a/lectures/lecture3/notes/slides/lecture-3.md b/lectures/lecture3/notes/slides/lecture-3.md
new file mode 100644
index 0000000..8cf04ac
--- /dev/null
+++ b/lectures/lecture3/notes/slides/lecture-3.md
@@ -0,0 +1,103 @@
+---
+marp: true
+size: 4:3
+paginate: true
+---
+<!-- https://marpit.marp.app/directives -->
+
+# Leksjon 3
+
+**Læringsutbytte**
+
+* Lære å sammenligne strenger og bruk av if
+
+---
+
+## Sammenligning av strenger
+
+* Når man sammenligner to strenger i Python vil strengene sammenlignes karakter for karakter
+* Hver karakter har et tallverdi (ascii-kode):
+    * A = 65, B = 66, ..., Z = 90, a = 97, ..., z = 122
+    * '0' = 48, ..., '9' = 57
+
+
+```python
+ord('A') # prints Unicode code for A, which is 65 (ordinal value)
+
+chr(65) # prints letter A
+```
+
+---
+## Hvordan skjer sammenligning?
+
+Anta vi har to strenger s1 og s2.
+
+1. Første tegnet i hver streng sammenlignes. \
+Hvis Unicode verdien i s1[0] er større enn s2[0], er s1 større
+1. Hvis s1[0] == s2[0], sammenlignes s1[1] med s2[1]. \
+Slik fortsetter det inntil et avvik finnes, eller vi er ferdige
+1. Hvis strengene er like, er den lengste større
+
+```python
+student_one = "Penny"
+student_two = "Paul"
+
+if student_one > student_two:
+	print(f"{student_two} comes before {student_one} in the alphabet.")
+elif student_one < student_two:
+	print(f"{student_one} comes before {student_two} in the alphabet.")
+```
+
+---
+# Introduksjon til løkker
+
+![Loops](https://www.incredible-web.com/media/7242/loops.png)
+
+
+---
+
+```python
+print("Hipp Hipp Hurra!",1)
+print("Hipp Hipp Hurra!",2)
+print("Hipp Hipp Hurra!",3)
+print("Hipp Hipp Hurra!",4)
+print("Hipp Hipp Hurra!",5)
+print("Hipp Hipp Hurra!",6)
+print("Hipp Hipp Hurra!",7)
+print("Hipp Hipp Hurra!",8)
+print("Hipp Hipp Hurra!",9)
+print("Hipp Hipp Hurra!",10)
+
+for tell in range(1,11):
+    print("Hipp Hipp Hurra!",tell)
+    
+```
+---
+# Nøstede løkker
+
+* Løkker i løkker
+* Eksempler på situasjoner der vi kan få bruk for nøstede løkker:
+  * Vi har 60 sekunder i et minutt, 60 minutter i en time, 24 timer i et døgn osv.
+  * Vi har en 2-dimensjonal tabell med kolonner og rader (looper gjennom rader og for hver rad, looper gjennom kolonner)
+
+
+---
+
+```python
+def format_card_deck():
+    
+    farger = ['♠', '♣', '♥', '♦']
+    verdier = ['A', '2', '3', '4', '5', '6', '7', '8',
+                  '9', '10', 'J', 'Q', 'K']
+    outer_string = ""
+    
+    for farge in farger: 
+        inner_string = ""
+        for verdi in verdier:
+            inner_string += farge + verdi + " "
+        outer_string += inner_string + "\n"
+           
+    return outer_string
+
+print(format_card_deck())
+```
\ No newline at end of file
diff --git a/lectures/lectures.ipynb b/lectures/lectures.ipynb
index 57220ce..0403775 100644
--- a/lectures/lectures.ipynb
+++ b/lectures/lectures.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 1,
    "metadata": {},
    "outputs": [
     {
@@ -31,6 +31,9 @@
        "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">&emsp;&emsp;&emsp;&emsp;<a target=\"_blank\" href=lecture1/notes/codes/tall_og_typekonvertering.ipynb>Tall og type konvertering</a></blockquote>\n",
        "</details>\n",
        "</details>\n",
+       "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Lab 1</summary>\n",
+       "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">&emsp;&emsp;&emsp;<a target=\"_blank\" href=lecture1/lab/lab-1.md>Lab-1</a></blockquote>\n",
+       "</details>\n",
        "</details>\n",
        "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;Leksjon 2: Funksjoner og pakker, logiske uttrykk, valg</summary>\n",
        "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Introduksjon (slides)</summary>\n",
@@ -48,6 +51,9 @@
        "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Ulike typer if-setninger</summary>\n",
        "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">&emsp;&emsp;&emsp;<a target=\"_blank\" href=lecture2/notes/codes/ulike_typer_if_setninger.ipynb>Ulike typr if-setninger</a></blockquote>\n",
        "</details>\n",
+       "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Lab 2</summary>\n",
+       "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">&emsp;&emsp;&emsp;<a target=\"_blank\" href=lecture2/lab/lab-2.md>Lab-2</a></blockquote>\n",
+       "</details>\n",
        "</details>\n",
        "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;Leksjon 3: Mer om valg, løkker</summary>\n",
        "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Valg</summary>\n",
@@ -64,6 +70,9 @@
        "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">&emsp;&emsp;&emsp;&emsp;</blockquote>\n",
        "</details>\n",
        "</details>\n",
+       "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Lab 3</summary>\n",
+       "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">&emsp;&emsp;&emsp;<a target=\"_blank\" href=lecture3/lab/lab-3.md>Lab-3</a></blockquote>\n",
+       "</details>\n",
        "</details>\n",
        "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;Leksjon 4: Sammensatte datatyper (lister, tupler, set)</summary>\n",
        "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Mer om løkker</summary>\n",
@@ -83,6 +92,9 @@
        "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">&emsp;&emsp;&emsp;&emsp;</blockquote>\n",
        "</details>\n",
        "</details>\n",
+       "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Lab 4</summary>\n",
+       "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">&emsp;&emsp;&emsp;<a target=\"_blank\" href=lecture4/lab/lab-4.md>Lab-4</a></blockquote>\n",
+       "</details>\n",
        "</details>\n",
        "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;Leksjon 5: Filbehandling, unntakshåndtering</summary>\n",
        "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Filbehandling</summary>\n",
@@ -99,11 +111,17 @@
        "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Programmering mot databaser</summary>\n",
        "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">&emsp;&emsp;&emsp;</blockquote>\n",
        "</details>\n",
+       "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Lab 5</summary>\n",
+       "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">&emsp;&emsp;&emsp;<a target=\"_blank\" href=lecture5/lab/lab-5.md>Lab-5</a></blockquote>\n",
+       "</details>\n",
        "</details>\n",
        "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;Leksjon 6: Introduksjon til objekt orientert programmering</summary>\n",
        "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Object Orientert Programmering</summary>\n",
        "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">&emsp;&emsp;&emsp;Introduksjon</blockquote>\n",
        "</details>\n",
+       "<details><summary style=\"font-size:200%;cursor: pointer;\">&emsp;&emsp;Lab 6</summary>\n",
+       "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">&emsp;&emsp;&emsp;<a target=\"_blank\" href=lecture6/lab/lab-6.md>Lab-6</a></blockquote>\n",
+       "</details>\n",
        "</details>\n"
       ],
       "text/plain": [
@@ -137,7 +155,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.11.2"
+   "version": "3.10.6"
   },
   "orig_nbformat": 4
  },
-- 
GitLab