Uppgift 1 (Oläsliga krypterade meddelanden)



Relevanta dokument
Uppgift 1 (Sorterade heltal som är OK)

Tentaupplägg denna gång

Tentaupplägg denna gång

TDP Regler

kl Tentaupplägg

Chapter 3: Using Classes and Objects

Lathund Webbanmälan. till vidareutbildningar

Bygga hus med LECA-stenar

Innehållsförteckning. Manual WebCT

2. Komma igång Skapa grupper och elever Skriv också ut sidan 13 så att eleverna har en snabbguide till programmet.

Uppgift 1a (Aktiekurser utan poster)

Arbetsprover till Bild och Formgivning, Wendela Hebbegymnasiet. Anvisningar och uppgifter.

En handledning för studerande på Högskolan Kristianstad

UPPGIFT 2 KVADRATVANDRING

[MANUAL TILL LUVITS GRUNDFUNKTIONER]

Classfronter Vägledning för Studenter (version 1.1)

Att komma igång med FirstClass (FC)!

Patrik Calén

Uppgift 1 ( Betyg 3 uppgift )

Google Apps For Education

Programmering Grundkurs (6H2950) Grundläggande Programmering (6A2001)

OneDrive/SharePoint. Innehåll

DEN MYSTISKA TÄRNINGEN. Effekt: Läs publikens tankar genom att förutse vilket nummer som valts.

ELEVHJÄLP. Diskussion s. 2 Åsikter s. 3. Källkritik s. 11. Fördelar och nackdelar s. 4. Samarbete s. 10. Slutsatser s. 9. Konsekvenser s.

CSN-rapportering, gymnasiet

E-post för nybörjare

ViTex snabbguide. 1. Inläsning till ViTex från scanner eller PDF Läs in text via scanner Läs in text från en JPEG-bild eller ett PDF-dokument

Krypteringsprogrammet Kryptogamen

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Varmt välkomna till SK Ägirs baby- och minisim på Sollidenbadet!

RS01 Resultat på prov

Inledning. Att bli medlem

Installation av SaySo med Dolphin Bookshelf - hemanva ndningslicens

VASS HBI Användarmanual

Lumbago - Förord. Välkommen till Journalprogrammet Lumbago.

Programmeringsuppgifter 1

Övningar till UNIX/Linux Grundkurs och förslag till LÖSNING

19. Skriva ut statistik

DK-serien. Gör en fotobok med myphotobook.se

Lathund GUL Lärare. Allmänt. Hur du presenterar Dig själv för kursdeltagarna. Hur du lägger upp din kontaktlista

November 2013 Nummer

IRMA - startsida. Byt språk. Logga in

Bruksanvisning för hjälpbegäran

Uppgift 1 (vadå sortering?)

En guide till FirstClass

Microsoft Publisher. Laborationskompendium för digital behandling av publikationer. Detta exemplar tillhör:

Selma Manual Kurstillfälle, kurspaket, programtillfälle. Studentcentrum/Ladokgruppen

Gruppenkät. Lycka till! Kommun: Stadsdel: (Gäller endast Göteborg)

STADSBYGGNADSFÖRVALTNINGEN. Aktivitetsstöd. Behörigheten Föreningsadministratör. Datum: Version 2. Sidan 1 (30)

KLOKA FRÅGOR OM ÄLDRES LÄKEMEDELSBEHANDLING ATT STÄLLA I SJUKVÅRDEN

kl Tentaupplägg

För att använda sifferkrypto använder man en rektangel om 5 gånger 6 bokstäver.

ADAD-net. Användarmanual INDIVIDEN. Råbe och Kobberstad Februari 2010

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.

UPPGIFT 1 KANINER. Håkan Strömberg 1 Pär Söderhjelm

Uppgift 1. Kylskåpstransporter

5 Grundläggande in- och utmatning

Logga in. Elevöversikt. Kolumner. Godkänna. Urval. Hantera inflytt och byte. Sök. Familjebild. Utskriftsrutin Om pengen

1 Ändra kolumnbredd och radhöjd

Gemensamma riktlinjer fo r genomfo rande av Examensarbete Hing Elkraftteknik

Våga Visa kultur- och musikskolor

Vilket program och årskurs läser du? Respondenter: 5. Översikt alla Frågor - Verksamhetsstyrning FÖ5007 FÖ5009 FÖ6007 FÖ

Mer om Outlook. Extratexter till kapitel 4 Mejla. I avsnittet lär du dig: vad Outlook idag är och kan användas till

Kursutvärderingsformulär

Användarmanual CallPad och VoicePad

NyA-webben Nyheter och planerad vidareutveckling

Nyhetsdokument Vitec Teknisk Förvaltning

Administration av landstingsstatistik. Statistiktjänsten

Lathund för överföring av rapporter och ljudfiler

Föreläsning 6: Introduktion av listor

E-post på ett säkrare sätt

Kom igång med din SMART Board. Det praktiska

Stefan Nilsson

Läs detta innan du fortsätter, eller skriv ut det, klicka runt lite och läs samtidigt.

Övning 2: I cellerna B19 och F26 ska du beräkna den totala ytan för respektive hus. I cell C28 den totala ytan, för båda husen.

Kort introduktion till SchoolSoft för vårdnadshavare

Stödet kan vara både praktiskt och socialt och utgår från ditt hem, men kan också omfatta situationer utanför hemmet.

Användarmanual HOIF.org

Dagordning (Kopiera så att alla körmedlemmar kan läsa) Årsmötesprotokoll Färdig mall som du bara fyller i.

KOMMUNALT AKTIVITETSMEDLEMSBIDRAG

Bb October 2014 Studentmanual

Komma igång med Eventor

Diagram. I detta kapitel lär du dig: m Diagrammets beståndsdelar. m Att skapa både inbäddat diagram och diagramblad. m Att ändra diagramform.

1 Skapa Tabell Skapa Relationer Redigera Relationer Redigera Fält i Tabell Lägga till Poster i Tabell...

Några övningar att göra

SmiNet 2 Manual Webanmälan

Tilldelning av roller + Meddelanden i MinPlan

Marie Andersson, IKT-centrum E-post: (Bb Learn 9.1.8) Wikis i Blackboard

SIS Capture Station. IIIIII Användarhandbok

Logga in - forts. Byt roll om du har flera enheter så visas bara den(samma inlogg till alla dina enheter)

Handbok Företagsinteckning

Steg 1 Starta Outlook 2013 och öppna konfigurationsguiden

TENTA: TDDD11 & TDDC68. Tillåtna hjälpmedel. Starta Emacs, terminal och tentakommunikationsfönster. Skicka in frågor och uppgifter

Installationsanvisning för PI-Utbildningar

eller Övningar i filhantering Tema: Mappar och filer i Windows samt Lagringsenheterna OBS! Endast för medlemmar i SeniorNet, Klubb Södertälje!

Vad tycker du om sfi?

4 proffstips för icloud

Kompletterande lösningsförslag och ledningar, Matematik 3000 kurs B, kapitel 1

Liten introduktion till akademiskt arbete

Transkript:

Uppgift 1 (Oläsliga krypterade meddelanden) Ofta vill man kryptera text för att inte andra skall se vad man skrivit. I den givna filen KRYPTERAD_TEXT.TXT finns en krypterad text som kan vara av intresse för dig. Detta är inte en filhanteringsuppgift i egentlig mening utan din uppgift är att skriva två program som utför kryptering respektive dekryptering av indata som kommer via tangentbordet i båda fallen. Utskrifterna skall dessutom skrivas på skärmen i båda programmen. Program nummer 1: Dekrypteringsprogrammet som här skall tillverkas skall läsa ett antal rader med text från tangentbordet och sen skriva ut på skärmen det meddelande som dolde sig. Varje rad som matas in motsvarar ett tecken i utskriften. Tecknet som skall skrivas ut beror enbart på hur många blanktecken det finns på den inlästa raden. Om det är 10 blanktecken på raden skall tecknet med ordningsnumret (kallas ibland ASCIIvärdet) 10 skrivas ut (detta råkar vara tecknet NL som motsvarar nyradstecknet i Unix). Om det är 32 blanktecken motsvarar det ett blanktecken (SPACE) och är det 65 blanktecken på raden skall man skriva ut tecknet A. Detta program är lämpligt att starta med. Det finns som sagt en krypterad text i filen KRYPTERAD_TEXT.TXT och du kan använda denna textmängd genom att köra ditt program på följande sätt (antag att ditt program heter from_white_space ): from_white_space < KRYPTERAD_TEXT.TXT Program nummer 2: Krypteringsprogrammet skall göra det omvända mot program nummer 1. Du skall alltså läsa in en text (som avslutas med Ctrl-D på vårt system) och omvandla alla tecken till rader som innehåller rätt antal blanktecken. OBS! Vissa tecken kan man inte läsa med en vanlig Get-sats för Character så det enda specialtecken vi kommer att ta hand om (eller som vi har krav på från er) är radslutstecknet (NL). Detta kan inte läsas av Get och du får behandla detta separat. När du har båda programmen klara skall följande kunna fungera (antar att ditt andra program heter to_white_space ): to_white_space from_white_space Inmatningen sker då till programmet to_white_space och sen vidarebefordras all utdata från detta program till programmet from_white_space så att detta tar det som indata. Utskriften från from_white_space skrivs sen på skärmen. TIPS: Alla kanske inte har gjort detta med omvanling av tecken till ordningsnummer och vice versa. För säkerhets skull ger jag lite tips här: Omvandling mellan ordningsnummer och tecken sker med Character Val(ordningsnummer) och omvandling åt andra hållet sker med Character Pos(tecken).

Uppgift 2 (Balanserade parenteser) Skriv ett program som kontrollerar om en inmatad text innehåller parentespar som är balanserade. De parentespar som kan ingå är ( - ), [ - ] och { - }. Man kan tänka sig att det är enklare att lösa denna uppgift med hjälp av rekursion (till viss del) än med iteration helt och hållet (bara loopar), men din uppgift är att lösa detta iterativt. Ingen rekursion är tillåten. Till din hjälp kan det vara bra att ha ett fält där du lagrar de startparenteser du finner (inget krav, men ett tips). Vi kan anta att det inte finns mer är 1000 nivåer av parenteser i textmassan (man kan tänka sig att det är ett Lisp-program som är indata (där finns det många parenteser (som behöver kontrolleras))). :-) KRAV: Du får inte lagra hela texten i ditt program. Du måste beta av texten tecken för tecken. Tänk på att man inte får läsa "radslutstecknet" med en Get för Character. Om det är så att texten är balanserad (att parenteserna ligger rätt) skall utskriften "ALLT OK" skrivas ut. Om det är något fel (att det saknas parenteser eller att de ligger i fel ordning) skall texten "MINST ETT FEL" skrivas ut. Körexempel 1: Denna text (som innehåller { och } samt [ och ]) är helt ok. Man kan se att man kan ha parenteser på olika rader (som detta exempel (som också har parenteser av samma sort inuti varandra)).* ALLT OK Denna gång finns det parenteser som inte är matchade i antal (som denna.* MINST ETT FEL Körexempel 3: Denna gång är det rätt antal parenteser, men de är inte matchade i rätt ordning. Som här ( ABC [ DEF ) GHI ]* MINST ETT FEL

Uppgift 3 (Rotera med rekursion) Du skall skriva ett program som vrider en figur 180 grader motsols. Figuren innehåller endast blanktecken och snedstreck (både / och \ ). Det är givet att användaren startar programmet och som kommandoradsargument skickar hen storleken på figuren (i antal tecken). Det är givet att figuren alltid är kvadratisk. När programmet är startat skall användaren mata in figuren. KRAV: Du får inte använda dig av loopar (for, while, loop) i denna uppgift. Använd rekursion istället. TIPS: Om man läser den första figuren baklänges får man den andra figuren. Intressant. Körexempel 1 ( > i början av raden markerar bara kommandoraden i Unix): > rotate_180 4 Mata in figuren (OBS! måste vara 4 tecken per rad): / / \ \ Figuren blir efter rotation: \ \ / / > rotate_180 8 Mata in figuren (OBS! måste vara 8 tecken per rad): / \ / / / / \ \ \ \ \ / Figuren blir efter rotation: / \ \ \ \ \ / / / / \ /

Uppgift 4 (Kursmail! Eller spam?) När det gäller mailhantering är det mängder med mail som hanteras av oss som kursledare/ examinatorer. För att belysa detta lite kan man se på 5 års mailskörd gällande en av våra kurser (TDDD11). I kursen går det normalt sett ca 220-240 studenter per år. År 2011 hölls kursen för två årskullar då kursen flyttades ned i årskurs. Vi har normalt sett flera kurser och ävan andra uppdrag så det ger endast en liten bild av verkligheten. Vad innebär detta i antal mail kan man då undra? Om man räknar ALLA mail som har med kursen att göra. Allt ifrån schemaläggningssaker, kursmöten, administrativa saker som bollas mellan institutionen och andra delar av universitet och dessutom de mail som kommer från studenter eller skickas från oss i kursen till er är det en hel del. Om vi begränsar oss till de mail som kommer till eller skickas från den som är kursledare/examinator blir det lite mindre. På filerna MAIL.TDDD11."årtal" som finns givna i mappen "given_files" ligger en sammanställning av de mail som hade med kursen TDDD11 att göra under de årtal som ingår i filnamnen. Det är givetvis borttaget information om vem som skickat saker till examinatorn för att inte dessa personer skall känna att de blir utpekade. Din uppgift är att skriva ett program som läser data från den fil som användaren anger (årtalet matas in från tangentbordet) och sen skriver ut antalet mail som skickades av personer till examinatorn, från LiU-adresser respektive från icke LiU-adresser, uppdelat på månader under året. De mail som skickats av "torjo" skall alltså inte räknas. Programmet skall också skriva ut hur många mail det var totalt detta år. TIPS: Öppna filerna i Emacs för att se hur formatet ser ut på raderna. Varje rad motsvarar ett mail. Körexempel: Mata in årtal: 2008 Det var totalt 793 mail gällande denna kurs detta år. Månad Totalt LiU EJ LiU -- 01 62 38 24 02 27 17 10 03 119 90 29 04 77 54 23 05 70 57 13 06 30 17 13 07 1 0 1 08 37 24 13 09 14 11 3 10 3 3 0 11 8 6 2 12 10 7 3 -- 2008 458 324 134

Uppgift 1 (Specialstjärna) Skriv ett program som ritar ut följande specialstjärna (se körexemplen). Det är givet att vi kommer att testa med många olika storlekar (inte bara dem som syns i uppgiften). Skriv därför ditt program så att det klarar av att skala upp även till större stjärnor. Körexempel 1: Mata in storlek: 1 17 \ / -*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*- / \ Mata in storlek: 2 1 \ / \ / --*-- / \ / \ Körexempel 4: Mata in storlek: 4 2 \ / \ / \ / \ / \ / \ / \ / -*--*- / \ / \ / \ / \ / \ / \ / \ Körexempel 5: Mata in storlek: 5 4 \ / \ / \ / \ / \ / --*-*-*-*-- / \ / \ / \ / \ / \