Göm menyn

Seminarium 4 - Experimentering

Kapitel som ska ha lästs

Denna sida visar en del av det som kommer att diskuteras på seminariet. Ofta tar handledarna också upp andra uppgifter som inte behöver något specifikt studentmaterial och då syns dessa uppgifter inte på sidan.

Uppgift: Listbyggare

Skriv följande listbyggare:

  1. Givet en lista med tal, bygg en ny lista av alla icke-negativa tal
 [1, -1, 45.3, 4711, -273.15] => [1, 45.3, 4711]
  1. Givet en lista med strängar, bygg en ny lista av teckenkoden för första bokstaven i varje sträng (använd ord-funktionen för att få ut teckenkoden)
["Apa", "Banan", "Citron"] => [65, 66, 67]
  1. Bygg en lista av alla näst minsta tal i underlistorna i en given lista (du kan förutsätta att listan består av underlistor med minst två tal)
[[17, 4, 8], [9, 14, 2, 7], [33, 14]] => [8, 7, 33]
  1. Bygg en lista av strängar som endast innehåller 'a' i given lista men byt ut alla 'a':n mot *'
['apelsin', 'banan', 'citron'] => ['*pelsin', 'b*n*n']
  1. Skapa en lista med alla tal mellan 0 och 100 som är delbara med 3 eller 5 men ej delbara med 15
  2. Skapa en 5x5 identitetsmatris (dvs. en 2d-lista fylld med nollor, men ettor längs ena diagonalen)
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1

Uppgift: Git

Ibland kan git vara lite ointuitivt, speciellt när man vill göra ovanliga saker. Det kan därför vara bra att ha en känsla för vad det klarar av och ungefär hur man gör det. Ta på valfritt sätt reda på hur man gör följande operationer:

  1. Skapa en commit som ångrar en tidigare commit
  2. Ångra en commit som inte har pushats (utan att skapa en ny commit)
  3. Ändra commit-meddelandet eller lägg till fler ändringar på senaste committen
  4. Ångra git add
  5. Ta bort alla ändringar som gjorts sedan senaste committen
  6. Spara undan och återställa ändringar som gjorts sedan senaste committen. (kan vara bra om man vill pulla ändringar utan att committa sina egna)
  7. Se ändringarna som gjordes för 3 commits sedan

Uppgift: Programutvecklingsprocessen

Uppgift

Peter slår bollar på driving rangen vid Campus Valla med sina vänner varje dag. För att få en insyn i hur långt han och hans vänner kan slå vill han kunna lagra resultat på ett enkelt sätt. Resultaten vill han lagra sorterade, och genom att kalla på en funktion vill han kunna lägga till ett eller flera resultat. När ett resultat lagts till ska resultaten fortfarande vara sorterade. Peter kommer endast att använda din funktion till att lägga till resultat.

Detta är en analys av problemet och en specifikation av vad Peter vill ha.

Designa nu de funktioner ni behöver för att lösa problemet!

Vilka datatyper används? Beskriv funktionerna och de parametrar som funktionerna tar in och vilken data de returnerar. Föreslå också namn på funktionerna. Hur löser ni problemet? Skriv ingen kod: Detta är en övning av att utföra designen på hög nivå, för att verifiera i förväg att det ni sedan implementerar faktiskt kommer att kunna struktureras på ett rimligt sätt!


Sidansvarig: Peter Dalenius
Senast uppdaterad: 2021-12-03