Debugging & stegvis förfining Flashcards

1
Q

Vad är debugging?

A

Debugging är processen att åtgärda fel i ett program.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vilket verktyg används i VS Code?

A

I VS Code används en inbyggd debugger som låter dig stegvis gå igenom programmet, rad för rad, och visar variabelvärden vid olika steg samt hur de förändras.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vad är breakpoints i debugging?

A

Breakpoints är markeringar som sätts ut i koden där man vill att stegandet ska börja. Debugging startas i menyn Run > Start Debugging eller via ikonen i sidomenyn. Programmet körs sedan som vanligt fram till första breakpunkten, där det stannar och låter dig stegvis gå fram rad för rad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vad gör kontrollen “Continue” i debugging?

A

“Continue” kör vidare programmet tills nästa breakpoint eller tills programmet avslutas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Vad gör kontrollen “Step in” i debugging?

A

“Step in” låter dig följa med in i en funktion om det finns ett funktionsanrop på raden, annars går det vidare till nästa rad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vad gör kontrollen “Step over” i debugging?

A

“Step over” går vidare till nästa rad. Om det finns ett funktionsanrop på raden, utförs det bakom kulisserna.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Vad gör kontrollen “Step out” i debugging?

A

“Step out” låter dig kliva ut ur en funktion och fortsätta efter funktionsanropet, vilket innebär att resten av funktionen utförs automatiskt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Vad är exekveringsfel?

A

Exekveringsfel uppstår under programmets gång, till exempel om man försöker öppna en fil som inte finns eller om man stegar utanför gränserna i en datastruktur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Vad är logiska fel?

A

Logiska fel är fel i själva logiska uppbyggnaden av programmet och uppstår ofta i komplicerade villkorssatser.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Vad är kompileringsfel?

A

Kompileringsfel är syntaxfel och liknande problem som gör att Python inte förstår koden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hur hanterar du de andra rutorna (ruta 2 till 64)?

A

För varje ny ruta dubblerar du mängden guld från föregående ruta och lägger till det till den totala mängden guld.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Vad är abstraktion i programmering?

A

Abstraktion innebär att skjuta problemen framför sig genom att anta att funktioner du behöver redan finns. Exempelvis funktioner som skriv_faktura(), berakna_rabatt(kundnr) och berakna_saldobelopp() antas finnas, vilket gör koden enklare att skriva och förstå, även om funktionerna ännu inte är implementerade.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hur kan man börja skriva funktionen skriv_faktura()?

A

Börja med att skriva ut de steg som behövs, som att hämta kundinfo och skriva ut fakturarader. Du fyller i detaljerna senare.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hur fungerar stegvis förfining i verkligheten?

A

Stegvis förfining kan illustreras grafiskt, exempelvis med metoden JSP (Jackson Structured Programming). Man kan också bryta ner processen i steg, såsom att koka pasta: Först kokar du vatten, sedan lägger du i pastan, och till sist häller du av vattnet. Du bryter ner uppgiften i små steg.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Vad visar programmet till slut?

A

Programmet visar den totala mängden guld som har lagts på alla 64 rutor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Kan man verkligen skjuta problemen framför sig med abstraktion?

A

Ja, genom att skjuta problemen framför sig på ett kontrollerat sätt, blir varje del av programmet så enkel och lättförståelig som möjligt. Men vi måste senare implementera dessa funktioner för att programmet ska fungera.

11
Q

Vad är stegvis förfining (Stepwise Refinement)?

A

Stegvis förfining innebär att se ett problem som en samling delproblem, där varje delproblem kan brytas ner i ytterligare mindre delproblem tills varje del är enkel att implementera. Denna metod används främst för mindre projekt och är inte särskilt objektorienterad.

11
Q

Vad är problemet med riskornen på schackbrädet?

A

Du ska räkna ut hur mycket guld det blir om du börjar med 1 gram på den första rutan och sedan dubblerar mängden guld för varje ny ruta på ett schackbräde, ända upp till ruta 64.

12
Q

Några korrekta påstående gällande “Stepwise-refinement”?

A

Var den allra första problemlösningsstrategin för programmering.

Handlar om att bryta ner ett problem i mindre delar som i sin tur bryts ner till mindre delar.

Pseudokod ingår som en del av strategin

är en “top-down” metod

kallas också “divide and conquer” (söndra och härska)

anses var den allra första systematiska ansats till programdesign

man kodar lite i taget och testa varje deg

12
Q

Hur börjar du skriva ett program för att lösa schackbrädsproblemet?

A

Dela upp problemet i tre steg:

Räkna ut guldet på den första rutan.
Räkna ut guldet på rutor 2-64.
Skriv ut det totala antalet gram guld.

12
Q

Vad gör du i första steget av programmet?

A

Börja med att räkna ut hur mycket guld det är på den första rutan, vilket är 1 gram.