Göm menyn

Unix-uppgifter

1. Uppgifter i webbkursverktyget STONE

Första steget är att göra alla uppgifter i webbkursverktyget STONE. Läs igenom materialet, gör övningarna och genomför slutligen diagnoserna som hör till respektive steg. Materialet är avsett för självstudier, men du får givetvis hjälp av din klassassistent vid behov.

2. Slutuppgift

När du är klar med uppgifterna i STONE ska du genomföra en slutuppgift.

Förutsättningar

Som slutuppgift ska du göra en av nedanstående uppgifter, dvs du får själv välja vilken. Resultatet ska sedan redovisas för din handledare, dvs den handledare som är klassansvarig för din klass. Redovisningen ska ske muntligen under schemalagda tider.

Observera att du inte kan bli godkänd på kursen enbart genom att göra den här uppgiften. Du måste också bli helt godkänd på webbkursen.

Innan du gör uppgiften kan du vilja läsa på lite mer om hur man gör script i webbkursen.

Nedanstående allmänna förutsättningar gäller för båda alternativen. Lösningsförslag som inte uppfyller dessa krav beaktas ej. Handledare kan besluta om åsidosättningar i enskilda fall.

  • Scriptet ska fungera enligt specifikationerna i uppgiften när det körs på IDA:s Sun-arbetsstationer med normala inställningar (dvs de inställningar som fanns när du fick ditt konto). Det är ointressant om scriptet fungerar på andra UNIX-liknande installationer, t.ex. din egen dator hemma.
  • Det är fullt tillåtet att använda andra skal än sh, så länge de finns åtkomliga på IDA med standardinställningar.
  • Det är inte tillåtet att anropa program som man har skrivit själv i andra språk. Uppgiften ska lösas enbart med hjälp av det valda skalet och de UNIX-kommandon som finns åtkomliga i standardinstallationen på IDA.
  • Det är tillåtet att skapa temporära filer om det sätt att lösa uppgiften som du har valt kräver detta. Dock måste temporära filer tas bort.

Uppgift (alternativ 1)

I en textfil finns ett schema för en godtycklig kurs. Schemat innehåller föreläsningar som alla ska gå på, resurstillfällen fördelade på klasser, gruppövningar i halvklass och laborationer i grupper om åtta personer. Därför är det betydligt fler tillfällen i schemat än vad man behöver gå på. Detta gör schemat rörigt och bäddar för fel.

En student som tillhör grupp C1B-3 är bara intresserad av det som på schemat är markerat som C1B-3, C1B och C1. Om vi filtrerar bort övriga rader ur den första veckan i schemat skulle det se ut så här:

VECKA: 43

MÅ 15-17  Godtycklig kurs          C1             FÖ P42  
  
TI 13-15  Godtycklig kurs          C1B-3          LA SU13  
  
ON  8-10  Godtycklig kurs          C1             FÖ P42  
ON 13-17  Godtycklig kurs          C1B            LA SU14  
ON 13-17  Godtycklig kurs          C1B            LA SU13  
  
TO 17-19  Godtycklig kurs          C1B-3          LA SU15  

FR  8-10  Godtycklig kurs          C1B-3 C1B-4    GU P30  

Uppgiften är att skriva ett script som gör den här filtreringen automatiskt, dvs tar en textfil med schema som indata och filtrerar bort alla tillfällen som inte berör en viss grupp.

Följande förutsättningar gäller för alternativuppgift 1:

  • Scriptet ska kunna anropas på ett av nedanstående två sätt:
    abcde123_uppgift1 schema.txt C1B-3
    
    abcde123_uppgift1 schema.txt C1 B 3
    
    Detta innebär inte att scriptet behöver hantera båda typerna av indata, enbart ett av dem. Du väljer själv vilket.
  • Utdata ska skrivas direkt till skärmen så att det lätt kan omdirigeras till en fil vid behov.
  • Utdata ska enbart innehålla de tillfällen som hör till den grupp som angivits som argument. Utdata ska innehålla samtliga de tillfällen som hör till den grupp som angivits som argument. Tillfällen ska i utdatat vara i samma ordning som i indatat.
  • Utdata ska innehålla veckorubriker men behöver inte nödvändigtvis innehålla blankrader mellan dagarna.
  • Scriptet ska vara utformat så att det kan användas även för andra utbildningsprogram och klasser.

Uppgift (alternativ 2)

I en textfil finns en lista över (påhittade) studenter som läser en viss kurs. Varje rad innehåller uppgifter om en enskild student och är på formen

andan100:Anders:Andersson:800101-1234:TNCCC_1:TDDB46 TDDB80:
berbe101:Bertil:Bertilsson:800102-1234:TNCCC_1:TDDB46 TDDB80:

Det här formatet är inte särskilt användbart, utan vi vill ha en lista som istället ser ut så här

andan100     Andersson,Anders
berbe101     Bertilsson,Bertil

Uppgiften går ut på att skriva ett script som tar en textfil på formatet ovan och genererar en ny lista med det senare formatet, naturligtvis sorterad på efternamn.

Följande förutsättningar gäller för alternativuppgift 2:

  • Scriptet ska kunna anropas på nedanstående sätt:
    abcde123_uppgift2 studenter.txt
    
  • Utdata ska skrivas direkt till skärmen så att det lätt kan omdirigeras till en fil vid behov.
  • Utdata ska bestå av exakt lika många rader som indata. Utdata ska innehålla samma personer som indata.
  • Utdata ska vara sorterat i bokstavsordning, stigande enligt efternamn.
  • De svenska tecknen Å, Ä och Ö kan komma att hamna i fel ordning inbördes. Det är okej.

Sidansvarig: Peter Dalenius
Senast uppdaterad: 2011-08-18