11 svar
582 visningar
Qetsiyah 6567 – Livehjälpare
Postad: 23 okt 2020 12:34 Redigerad: 23 okt 2020 12:38

Låd och pildiagram på engelska

Hej, i min kurs ska vi lära oss om låd och pildiagram och jag fattar ingenting och behöver läsa om det någonstans men jag kan inte få upp något när jag googlar. Är det ett oetablerat pedgogiskt påhitt av min lärare? Jag hittar ingeting liknande av att googla "box and arrow diagrams python" eller "box and pointer diagrams python".

För koden:

happy = 2018
new = happy
year = new
happy += 1

Är diagrammet följande:

Lindehaven 820 – Lärare
Postad: 23 okt 2020 13:00

Jag har inte stött på benämningen "låd och pildiagram". Det finns ju "lådagram" men det är för statistik. Det kanske är flödesschema eller unified modelling language som menas?

Qetsiyah 6567 – Livehjälpare
Postad: 24 okt 2020 21:26 Redigerad: 24 okt 2020 21:27

Ja... någon sorts flödesschema ja, med fokus på minnet och vad saker pekar på.

Du kan se vår lärares guide här. Låd och pildiagram verkar förändras längs med ett programs körning, kan du klicka dig vidare till "facit" för det första exemplet?

Han har ritat fyra olika diagram och det blir successivt färre saker i bilden. "När" är det det första diagrammet ritas? När vi är inne på f:s tredje rad verkar det som.

Visa spoiler

Det verkar som att länken inte är sökbar när jag embeddar den i "här". Skönt.

Hondel 1377
Postad: 24 okt 2020 21:52 Redigerad: 24 okt 2020 21:52
Qetsiyah skrev:

Ja... någon sorts flödesschema ja, med fokus på minnet och vad saker pekar på.

Du kan se vår lärares guide här. Låd och pildiagram verkar förändras längs med ett programs körning, kan du klicka dig vidare till "facit" för det första exemplet?

Han har ritat fyra olika diagram och det blir successivt färre saker i bilden. "När" är det det första diagrammet ritas? När vi är inne på f:s tredje rad verkar det som.

Visa spoiler

Det verkar som att länken inte är sökbar när jag embeddar den i "här". Skönt.

Det står följande:

Rita låd- och pildiagram när körningen når den sista printsatsen i varje funktion. Rita också ett diagram då vi har lämnat main på slutet.

Eftersom programmet börjar med att kalla main som kallar på g som kallar på f som får köra klart lär ju första diagrammet ritas när du når print-satsen i f. 

Laguna Online 30435
Postad: 24 okt 2020 21:52 Redigerad: 24 okt 2020 21:57

Flödesschema är något annat för mig. Det illustrerar programflödet vartefter programmet exekveras, medan de här pilarna och rutorna visar vad som finns i minnet vid en viss tidpunkt.

Vill man åskådliggöra vilka variabler som finns och deras värden och vilka som eventuellt pekar på eller in i samma objekt så blir det något sånt här, så det har säkert återuppfunnits många gånger, mer eller mindre formellt.

Edit: om du inte fattar nånting kanske jag kan förklara nånting, men kan du säga vad jag ska förklara? 

Qetsiyah 6567 – Livehjälpare
Postad: 24 okt 2020 22:10
Hondel skrev:

Det står följande:

Rita låd- och pildiagram när körningen når den sista printsatsen i varje funktion. Rita också ett diagram då vi har lämnat main på slutet.

Ah...jag missade det.

Laguna: okej, jag kan vara tydlig med min fråga nästa gång.

Qetsiyah 6567 – Livehjälpare
Postad: 24 okt 2020 22:11 Redigerad: 24 okt 2020 22:11

Så det här är alltså som jag sa, "oetablerat pedagogiskt påhitt"? Har någon av er sett det här förrut? Vad är det på engelska?

Hondel 1377
Postad: 24 okt 2020 22:33 Redigerad: 24 okt 2020 22:34
Qetsiyah skrev:

Så det här är alltså som jag sa, "oetablerat pedagogiskt påhitt"? Har någon av er sett det här förrut? Vad är det på engelska?

Hehe, det låter ju lite negativt när du säger så, men jag tror bara det är som Laguna säger, ett sätt att åskådliggöra vad som finns i minnet och vad som pekar på vad. Om det funnits något standardiserat sätt hade säkert det använts.

Så det viktiga för att lösa uppgifterna är väl snarare att förstå hur Python jobbar med variabler i minnet (vilket definitivt är etablerat) och det är kanske vad du får försöka söka på.

Laguna Online 30435
Postad: 24 okt 2020 23:13 Redigerad: 24 okt 2020 23:21

Lådorna och pilarna kan man väl beskriva ungefär så här: Det finns variabler. En variabel har ett namn och ett värde. Värdet är ett dataobjekt och har en typ. Man ritar en pil från variabeln till objektet som är dess värde. Flera variabler kan ha samma värde. En variabel kan ändra värde, då ritar man om pilen. 

Ett objekt kan bestå av andra objekt, då ritar man pilar från objektet till dess delar. 

En del objekt som består av andra objekt (inte alla) kan man ändra i, då ritar man om pilar där också (eller suddar eller lägger till en bit, som man t. ex. kan göra med listor). 

De små siffrorna i hörnet på ett objekt är referensräknare, dvs. anger hur många pilar som pekar på objektet. När räknaren går ner till noll kan man rensa bort objektet. Det hör till bilden av det hela, men är helt oviktigt för att programmera.

Edit: Man kan rita en stor ruta runt alla variabler. Från början finns bara de globala variablerna. När man gör ett funktionsanrop så börjar man på en ny ruta med variabler, där parametrarna till funktionen får värden. Kommer det ett nytt funktionsanrop inuti det första så blir det ännu en ny ruta, där variablerna från första rutan inte är med. De variabler man kan använda i ett givet ögonblick är de globala, samt de i den senaste funktionsanropsrutan.

Lindehaven 820 – Lärare
Postad: 27 okt 2020 11:19
Hondel skrev:
Qetsiyah skrev:

Så det här är alltså som jag sa, "oetablerat pedagogiskt påhitt"? Har någon av er sett det här förrut? Vad är det på engelska?

Hehe, det låter ju lite negativt när du säger så, men jag tror bara det är som Laguna säger, ett sätt att åskådliggöra vad som finns i minnet och vad som pekar på vad. Om det funnits något standardiserat sätt hade säkert det använts.

Har tittat på Markus Dicanders beskrivning av låd- och pildiagram. Det är måhända "oetablerat" men ett genomtänkt och tydligt "pedagogiskt påhitt". Ska man visa eller förstå objekt, värden, pekare och minne så är det ett bra visuellt medel.

PumaWhiskers 1 – Fd. Medlem
Postad: 27 okt 2020 15:51

Hej! Jag går samma kursen och undrade också vad den heter på engelska. Under föreläsningarna/i föreläsningsanteckningarna pratade han om stacken och heapen. En snabb Google sök ger dig flera resultat som liknar mer eller mindre det han pratade om, och Stack Overflow har ett ganska bra svar. Iallafall, kontrollskrivningen var igår så jag antar att det är lite för sent (fast kompletteringen är nästa vecka). Om du behöver fortfarande lära dig diagrammet, den här videon är väldigt tydligt. Efter att du har tittat på videon, glöm delen om __init__ i stacken, för det är enklare i KSen, och läsa igenom hela sidan med föreläsningsanteckningarna (det är länken du postade här men det är så här jag läste inför KSen).

Laguna Online 30435
Postad: 27 okt 2020 16:06

Stack och heap är i alla fall vedertagna begrepp. I någon form finns de i nästan alla programmeringsspråk.

Svara
Close