Debugging & stegvis förfining Flashcards
Vad är debugging?
Debugging är processen att åtgärda fel i ett program.
Vilket verktyg används i VS Code?
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.
Vad är breakpoints i debugging?
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.
Vad gör kontrollen “Continue” i debugging?
“Continue” kör vidare programmet tills nästa breakpoint eller tills programmet avslutas.
Vad gör kontrollen “Step in” i debugging?
“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.
Vad gör kontrollen “Step over” i debugging?
“Step over” går vidare till nästa rad. Om det finns ett funktionsanrop på raden, utförs det bakom kulisserna.
Vad gör kontrollen “Step out” i debugging?
“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.
Vad är exekveringsfel?
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.
Vad är logiska fel?
Logiska fel är fel i själva logiska uppbyggnaden av programmet och uppstår ofta i komplicerade villkorssatser.
Vad är kompileringsfel?
Kompileringsfel är syntaxfel och liknande problem som gör att Python inte förstår koden.
Hur hanterar du de andra rutorna (ruta 2 till 64)?
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.
Vad är abstraktion i programmering?
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.
Hur kan man börja skriva funktionen skriv_faktura()?
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.
Hur fungerar stegvis förfining i verkligheten?
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.
Vad visar programmet till slut?
Programmet visar den totala mängden guld som har lagts på alla 64 rutor.
Kan man verkligen skjuta problemen framför sig med abstraktion?
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.
Vad är stegvis förfining (Stepwise Refinement)?
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.
Vad är problemet med riskornen på schackbrädet?
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.
Några korrekta påstående gällande “Stepwise-refinement”?
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
Hur börjar du skriva ett program för att lösa schackbrädsproblemet?
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.
Vad gör du i första steget av programmet?
Börja med att räkna ut hur mycket guld det är på den första rutan, vilket är 1 gram.