Uppgift 1 (grundläggande konstruktioner)

Relevanta dokument
Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram

kl Tentaupplägg

kl Tentaupplägg

Uppgift 1a (Aktiekurser utan poster)

kl Tentaupplägg

Uppgift 1 (vadå sortering?)

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 (Sorterade heltal som är OK)

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

Föreläsning 13 Testning och strängar

kl Tentaupplägg

Uttryck, satser och strömhantering

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

kl Examination - Ada

HI1024 Programmering, grundkurs TEN

DUGGA Tentaupplägg

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

kl Tentaupplägg

Uppgift 1 ( Betyg 3 uppgift )

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Uppgift 1 ( Betyg 3 uppgift )

Föreläsning 4: Poster

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

Rekursion och induktion för algoritmkonstruktion

Tentamen i Grundläggande Programvaruutveckling, TDA548

TDP Regler

Uppgift 1 ( Betyg 3 uppgift )

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

Tentamen i Programmering grundkurs och Programmering C

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

Arduinokurs. Kurstillfälle 4

Tentamen TEN1 HI

Tentaupplägg. Betygsgränser: 1 uppg 19:00 Betyg 3 2 uppg 18:00 Betyg 4 2 uppg 16:30 Betyg 5 3 uppg 18:00 Betyg 5

kl Tentaupplägg

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

HI1024 Programmering, grundkurs TEN

Introduktion till MATLAB, med utgångspunkt från Ada

kl Tentaupplägg

kl Tentaupplägg

i LabVIEW. Några programmeringstekniska grundbegrepp

Tentaupplägg denna gång

Tentamen i Grundläggande Programvaruutveckling, TDA548

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Föreläsning 5: Dynamisk programmering

kl Tentaupplägg

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

Planering Programmering grundkurs HI1024 HT TIDAA

Planering Programmering grundkurs HI1024 HT data

kl Tentaupplägg

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Föreläsning 6: Introduktion av listor

SCB :-0. Uno Holmer, Chalmers, höger 2 Ex. Induktiv definition av lista. // Basfall

Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011

Anteckningar 1: Grundläggande saker

Kursmaterial för laborationer i

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

2D1310 Programmeringsteknik Tentamen (1p) lördag 29 april 2000 kl 14-17

TDIU Regler

Tentamen i. Programmering i språket C

Metoder. Inledande programmering med C# (1DV402)

Tentamen i Introduktion till programmering

TENTAMEN OOP

Uppgift 1 ( Betyg 3 uppgift )

TAIU07 Matematiska beräkningar med Matlab

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

HI1024 Programmering, grundkurs TEN

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi.

Språket Python - Del 1 Grundkurs i programmering med Python

3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter. Funktionen cosinus deriveras för x-värdena på följande sätt.

Programmeringsteknik med C och Matlab

Datalogi för E Övning 3

C++ Slumptalsfunktioner + switch-satsen

Kapitel 15: Data/Matrix Editor

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Tentamen i Programmering

TDP Regler

Övning från förra gången: readword

JavaScript del 5 Funktioner

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

kl Tentaupplägg

Funktioner, Procedurer och Parametrar. Funktioner, Procedurer och Parametrar... Funktioner, Procedurer och Parametrar procedurspecifikation

JAVA Mer om klasser och objektorientering

kl Tentaupplägg

Uppgifter till praktiska tentan, del A. (7 / 27)

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Lösningar till uppgifterna sätts ut på kurssidan och på WebCT (Gamla Tentor) i dag kl 19. Tentamen i Programmering C, 5p, Distans, övriga,

Föreläsning 3.1: Datastrukturer, en översikt

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

JavaScript del 3 If, Operatorer och Confirm

Magnus Nielsen, IDA, Linköpings universitet

Transkript:

Uppgift 1 (grundläggande konstruktioner) a) Skriv ett program som låter användaren mata in 7 heltal och som gör utskrifter enligt nedanstående körexempel. Mata in 7 heltal: 1 0 0 3 1 1 1 Tal nr 2 var en nolla. Tal nr 3 var en nolla. Mata in 7 heltal: 1 0 2 2 2 0 0 Tal nr 2 var en nolla. Tal nr 6 var en nolla. Tal nr 7 var en nolla. Körexempel 3: Mata in 7 heltal: 1 1 1 1 1 1 1 Det var inga nollor! b) Modifiera ditt program så att programmet läser in tal tills man matar in -1. Mata in ett antal heltal: 1 3 0 3 1 1 Tal nr 3 var en nolla. Mata in ett antal heltal: 1 3 1 0 0 2 5 1 Tal nr 4 var en nolla. Tal nr 5 var en nolla. Körexempel 3: Mata in ett antal heltal: 1 1 Det var inga nollor! c) Modifiera ditt program igen så att bara tal i intervallet [0, 9] skall räknas. Alla andra tal skall ignoreras. Programmet skall fortfarande sluta läsa in heltal när man matar in -1. Mata in ett antal heltal: 12 0 15 3 99 16 0 1 0 14 Tal nr 1 var en nolla. Tal nr 3 var en nolla.

Uppgift 2 (grundläggande konstruktioner) a) Skriv ett program som låter användaren mata in leksaker (antal och namn) tills användaren matar in 0. Programmet skall summera antalet leksaker och skriva ut summan. Mata in ditt namn : Svea Mata in leksaker (på egna rader, avsluta med 0): 3 Bilar 5 Hopprep 12 Brädspel 4 Kulor 0 Du har 24 leksaker! Mata in ditt namn : Karin Mata in leksaker (på egna rader, avsluta med 0): 0 Du har 0 leksaker! b) Skapa en kopia av ditt program och modifiera det så att det också använder sig av ditt namn. Du kan utgå ifrån att man inte har ett namn som är längre än 16 tecken. Om man har ett längre namn så får man skylla sig själv! Mata in ditt namn (max 16 tecken): Ingvar Mata in leksaker (på egna rader, avsluta med 0): 23 Legobitar 10 Bollar 20 Kritor 0 Ingvar har 53 leksaker! Mata in ditt namn (max 16 tecken): Guy Manuel De Homen Christo Mata in leksaker (på egna rader, avsluta med 0): 23 Legobitar 5 Flöjtar 2 Trummor 0 Guy Manuel De Ho har 30 leksaker! c) Skapa en kopia av ditt program och modifiera nu det så att programmet även skriver ut vilken sorts leksak man har flest av. I del (a), körexempel 1, hade detta varit "brädspel" och i del (b) så hade det varit "legobitar".

Uppgift 3 (underprogram) a) Tag din lösning från uppgift 1 (c) och skapa ett underprogram som sköter inmatning och felhantering av ett heltal. Anropa sedan detta underprogram från huvudprogrammet istället för att göra felhanteringen där. Uppgift 4 (underprogram) a) Tag din lösning från 2 (b) och låt inmatningen av namnet (inklusive ledtexten) ligga i ett underprogram. b) Flytta nu inmatning för (alla) leksakerna, (inklusive ledtext) till ett underprogram, detta skall vara en procedur. c) Skapa nu en kopia av ditt program från förra deluppgiften. Gör nu om proceduren från (b) till en funktion. d) Modifiera nu dina lösningar till de två föregående deluppgifterna så att de nu löser problemet som står i uppgift 2 (c). Här kan du råka ut för problem. Diskutera detta med din assistent om du kör fast!

Uppgift 5 (underprogram) a) Skriv ett underprogram som byter värden i två variabler. Blir detta en procedur eller en funktion, eller går det att lösa med båda? b) Gör ett underprogram som tar emot fyra parametrar (A, B, C och D), värdena skall roteras, d.v.s A skall få Bs värde, B skall få Cs värde, C skall få Ds värde och D skall få As värde. Mata in A, B, C och D: 10 20 30 45 A blev 20 B blev 30 C blev 45 D blev 10 c) Modifiera programmet så att man vid anropet kan bestämma åt vilket "håll" värdena skall roteras. Uppgift 6 (underprogram) a) Skriv ett underprogram som tar en temperatur i Celcius och omvandlar detta till motsvarande temperatur i Kelvin. Låt underprogrammet heta To_Kelvin. Blir detta en procedur eller en funktion, eller går det att lösa med båda? b) Antag att man vill kunna anropa underprogrammet på detta sätt: if To_Kelvin(C) < 0.0 then Put_Line("Inte helt ok..."); end if; Är underprogrammet i koden ovan en procedur eller en funktion, eller kan det vara vilket som? c) Skriv ett underprogram som tar en temperatur i Celcius (ett heltal) och omvandlar detta till Farenheit.

Uppgift 7 (underprogram) a) Skriv ett underprogram som tar ett heltal N som parameter och tar fram det N:te Fibonaccitalet. Fibonaccitalen ser ut så här: 1, 1, 2, 3, 5, 8, 13, 21, 34,... D.v.s varje tal i serien är summan av de två föregående talen, förutom de två första talen, vilka båda är 1. Du skall inte lösa denna uppgift rekursivt. Fundera över om ditt underprogram skall vara en procedur eller en funktion, vad är lämpligast? b) Skriv ett underprogram som tar ett heltal N som parameter och kontrollerar huruvida talet är rikt, fattigt eller perfekt. Ett perfekt tal är ett tal som är lika med summan av sina delare. Ett tal där summan av delarna är mindre än talet är fattigt. Ett tal där summan av delarna är större än talet är rikt. Talet 1 är definitionsmässigt inte ett perfekt tal. c) Skriv ett underprogram som räknar ut hur många fattiga, rika och perfekta tal som finns i intervallet [2, 100].

Uppgift 8 (underprogram och fält) a) Skriv en funktion (och ett huvudprogram som anropar den) som letar igenom en sträng efter ett visst tecken. Funktionen skall returnera vilket index som tecknet fanns på. Du kan utgå ifrån att tecknet finns någonstans i strängen. Om tecknet finns på flera platser så skall funktioner returnera det lägsta indexet som tecknet finns på. Mata in en sträng (max 16 tecken): sommartider Mata in ett tecken: t Tecknet fanns på index 7. Mata in en sträng (max 16 tecken): superskoj Mata in ett tecken: s Tecknet fanns på index 1. b) Modifiera din funktion så att den returnerar -1 om tecknet inte finns i strängen. Mata in en sträng (max 16 tecken): dunderhonung Mata in ett tecken: a Tecknet fanns på index 1. c) Modifiera din funktion så att man nu kan leta efter en delsträng i strängen. Funktionen skall nu returnera logiskt sant om delsträngen finns, falskt annars. Mata in en sträng (max 16 tecken): dunderhonung Mata in en delsträng: hon Delsträngen fanns i strängen. Mata in en sträng (max 16 tecken): dunderhonung Mata in en delsträng: gott Delsträngen fanns INTE i strängen.

Uppgift 9 (underprogram och fält) Skriv ett program som låter användaren mata in fem heltal och som skriver ut dessa heltal i omvänd ordning. Inget program eller underprogram i din kod får ha mer än 5 satser mellan begin och end. Mata in en fem tal: 1 2 3 4 5 Du matade in talen: 5 4 3 2 1 Mata in fem tal: 36 125 0 0 1 Du matade in talen: 1 0 0 125 36

Uppgift 10 (underprogram och fält) a) Skriv ett program som låter användaren mata in sju heltal som skall lagras i ett fält. Användaren skall sedan mata in ett heltal N. Därefter skall programmet skriva ut alla heltal som var större än N. Inget program eller underprogram i din kod får ha mer än 5 satser mellan begin och end. Mata in en sju tal: 1 2 3 4 5 6 7 Mata in N: 3 Dessa tal är större än 3: 4 5 6 7 Mata in fem tal: 36 125 95 24 44 100 8 Mata in N: 44 Dessa tal är större än 44: 125 95 100 Körexempel 3: Mata in fem tal: 16 22 1 15 49 3 90000 Mata in N: 50 Dessa tal är större än 50: b) Skapa en kopia av ditt program. Du skall nu modifiera kopian så att det bara skriver ut det största talen bland de som matades in. Inget program eller underprogram i din kod får ha mer än 5 satser mellan begin och end. Körexempel: Mata in fem tal: 16 22 1 15 49 3 90000 Det största talet var: 49

Uppgift 11 (underprogram och fält) Skriv ett program som låter användaren mata in sju heltal som skall lagras i ett fält V. Användaren skall sedan mata in ytterligare sju heltal som skall lagras ett annat fält W. Därefter skall programmet skriva ut summan av V och W (se körexempel). Inget program eller underprogram i din kod får ha mer än 5 satser mellan begin och end. Mata in en talen i V (7 st): 1 2 3 4 5 6 7 Mata in en talen i W (7 st): 3 0 3 0 3 0 3 Summan av V och W: 4 2 6 4 8 6 10 Mata in en talen i V (7 st): 12 22 32 42 5 6 72 Mata in en talen i W (7 st): 31 10 3 20 3 10 3 Summan av V och W: 43 32 35 62 8 16 75

Uppgift 12 (underprogram och fält) Skriv ett program som låter användaren mata in sträng med maximalt 100 tecken. Programmet skall sedan skriva ut strängen, tecken för tecken, med en liten fördröjning mellan varje. Du kan använda kommandot delay för att pausa programmet. Inget program eller underprogram i din kod får ha mer än 5 satser mellan begin och end. Körexempel: Mata in en sträng: Superdupermegaskurken Turbo Torbjörn J Du skrev: Superdupermegaskurken Turbo Torbjörn J

Uppgift 13 (underprogram och fält) Skriv ett program som låter användaren mata in ett ord med maximalt 16 tecken. Programmet skall sedan kontrollera huruvida detta ord är ett palindrom. Ett palindrom är ett ord som blir sig självt när det läses baklänges. Du kan utgå ifrån att användaren endast matar in gemener (små bokstäver). Inget program eller underprogram i din kod får ha mer än 5 satser mellan begin och end. Mata in ett ord: kanadakanot Ordet 'kanadakanot' är inte ett palindrom. Mata in ett ord: naturrutan Ordet 'naturrutan' är ju ett palindrom!

Uppgift 14 (underprogram och fält) Skriv ett program som låter användaren mata in två sorterade sekvenser med fem heltal. Programmet skall merga dessa så att de bildar en sorterad sekvens. Mata in första sekvensen: 3 5 5 7 10 Mata in andra sekvensen: 2 4 6 8 9 Den mergade sekvensen är: 2 3 4 5 5 6 7 8 9 10 Mata in första sekvensen: 3 4 5 7 10 Mata in andra sekvensen: 1 2 10 11 12 Den mergade sekvensen är: 1 2 3 4 5 7 10 10 11 12

Uppgift 15 (underprogram och fält) Skriv ett program som låter användaren mata in siffror i en 3x3-uppställning. Programmet skall sedan kontrollera huruvida denna uppställning är en magisk kvadrat. En magisk kvadrat är en kvadrat där varje kolumn och rad har samma summa. Mata in 3x3 siffror: 4 2 9 3 7 5 8 6 1 Detta är en magisk kvadrat! Mata in 3x3 siffror: 1 2 3 4 5 6 7 8 9 Detta är bara en vanlig matris.