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:
Detta innebär inte att scriptet behöver hantera båda typerna av indata, enbart ett av dem. Du väljer själv vilket.abcde123_uppgift1 schema.txt C1B-3 abcde123_uppgift1 schema.txt C1 B 3
- 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
