• No results found

Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Tentamen DE14, IMIT14 och SYST14 samt öppen för alla

N/A
N/A
Protected

Academic year: 2022

Share "Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Tentamen DE14, IMIT14 och SYST14 samt öppen för alla"

Copied!
16
0
0

Loading.... (view fulltext now)

Full text

(1)

Namn:

(Ifylles av student) Personnummer:

(Ifylles av student)

Tentamensdatum: 2015-03-27 Tid: 09:00 – 13:00 Hjälpmedel:

Inga hjälpmedel.

Totalt antal poäng på tentamen: 46 poäng För att få respektive betyg krävs:

Preliminärt: G >= 23 poäng, VG >= 34 poäng

Allmänna anvisningar:

OBS!! Den som skriver en tentamen måste visa att han/hon behärskar problemområdet. Många gånger är det möjligt att exemplifiera och illustrera. I dessa fall är det oftast det bästa sättet - ibland även det enda sättet - och kan i högsta grad påverka poängsättningen vid bedömningen av svaret.

Om du tycker att uppgifterna i tentamenstexten är ofullständiga skall du göra egna antaganden för de uppgifter som du saknar. OBS! Redovisa dina egna antaganden.

Skriv in dina lösningar direkt i tentamenshäftet. Om du behöver mer utrymme än vad som finns i häftet måste du tydligt ange på tilläggsbladen vilken uppgift de tillhör.

Skriv namn och personnummer på varje inlämnat blad.

Skriv tydligt på endast en sida av pappersarket.

Påbörja nytt blad för varje ny uppgift.

Lämna uppgifterna i nummerordning.

Markera (på omslagsbladet) vilka uppgifter du lämnat lösning på Svårlästa lösningar kan inte bedömas!

Glöm inte att läsa frågorna mycket noga!

Rättningstiden är normalt tjugo arbetsdagar ,

det vill säga resultatet kommer att anslås senast fredag den 24 april 2015

Viktigt! Glöm inte att skriva namn och personnummer på alla blad du lämnar in.

Lycka till!

Ansvarig lärare: Anna Palmquist och Petter Dessne Telefonnummer:

(2)

Uppgift 1 (15 p)

Ge korta men tydliga svar på följande frågor:

a). Var i arbetsminnet/primärminnet lagras värdet för variabler av värdetyp? (1p)

b) Vilket nyckelord (keyword) gör så att ett objekt skapas i datorns arbetsminne? (1p)

c) Skriv en typdefinition för en sammansatt strukturtyp (av referenstyp) med namnet Anställd.

Posten skall innehålla namnet på den anställde, anställningsnummer, avdelning samt befattning.

Använd lämpliga datatyper. (2p)

d) Givet att en vektor deklareras enligt följande:

double[ , ]försäljning = new double[8, 10];

Hur många kolumner har vektorn? (1p) Hur många element har vektorn? (1p)

(3)

int counter = 0;

while (counter < 100) {

Console.WriteLine(counter);

counter++;

}

Vilket är det första värdet som kommer att skrivas ut och vilket är det värde som kommer att skrivas ut allra sist? (2p)

f) Givet att en vektor deklarerats som int anArray [1000], vilket av nedanstående metodanrop är ett giltigt anrop till metoden DisplayContents(), när man vill skicka hela vektorn som ett argument. (1p)

1)DisplayContents(int anArray[1000]);

2) DisplayContents(anArray[1000]);

3) DispalyContents(anArray[]);

4)DisplayContents(anArray);

g) Utforma en metod som skriver ut siffrorna 1 - 10 med hjälp av en while-loop. (4 p)

(4)

h) Fyll i nedanstående de saknade orden som alla har med objektorientering att göra. (Termerna är hämtade från föreläsningen i objektorientering.) Ser du inte med en gång vad det ska vara så gissa! (2p)

Ett ……… är en instans (ett exemplar) av en klass.

En ……… ärver attribut, properties och metoder från sin basklass.

……… attribut och metoder kan kommas åt genom att skapa en instans och använda punktoperatorn, t.ex. dog.PrintDog(”Rufus”, ”Tax”, true);

För att kunna skriva metoder i Program-klassen används nyckelordet ……… .

(5)

I källkoden nedan har ett antal fel smugit sig in. Din uppgift är att ringa in de felaktiga koddelarna och numrera ställena. Skriv sedan i den heldragna rutan på nästa sida motivering/förklaring till respektive fel. Markerade fel utan korrekt motivering/förklaring ger inga poäng.

namespace T150327_Felsök {

class Program {

static void Meny() {

Console.WriteLine("\n\n***** MENY *****");

Console.WriteLine("################");

Console.WriteLine(" 1 beräkna medelvärde");

Console.WriteLine(" 2 beräkna maxvärde");

Console.WriteLine(" 0 AVSLUTA \n");

}

static int Las_in_alternativ() {

int svar;

Console.WriteLine("\n Ange alternativ: ");

svar = Console.ReadLine();

}

static double Medelvarde() {

double tal1, tal2;

Console.WriteLine(" Ange två tal: ");

tal1 = int.Parse(Console.ReadLine());

tal2 = int.Parse(Console.ReadLine());

Console.WriteLine();

return (tal1 + tal2) / 2.0;

}

static double Max(tal1, tal2) {

if (tal1 > tal2) return tal1 else return tal2;

}

//******************************************************

static void main(string[] args) {

double tal1, tal2, resultat;

int svar = 1;

while (svar != 0) {

meny();

svar = Las_in_alternativ();

Console.Clear();

if (svar = = 1) {

resultat = Medelvarde(tal1, tal2);

Console.WriteLine("Medelvarde : " + resultat);

}

else if (svar = = 2) {

Console.WriteLine(" Ange två tal: ");

tal1 = int.Parse(Console.ReadLine());

tal2 = int.Parse(Console.ReadLine());

resultat = Max(tal1, tal2);

Console.WriteLine("\nMaxvarde : " + resultat);

}

else if (svar != 0);

{

Console.WriteLine("\n Felaktigt val! \n");

} }

Console.WriteLine(’ HEJ DÅ ’);

} } }

(6)

Motiveringar/förklaringar till uppgift 2:

(1 poäng per korrekt motivering.)

(7)

Förutsättningar

Golfklubben Marks GK har planer på att ersätta sina manuella resultatkort med en enkel konsolapplikation för handdator. Med hjälp av applikationen vill man kunna hålla reda på en spelomgångs samtliga spelare och antal slag per hål.

För att hålla ordning på spelarna har man skapat en sammansatt typ, Spelare, som håller reda på hur många slag respektive spelare har slagit under en spelomgång.

namespace MarksGK {

public class Spelare {

public string namn;

public string klubb;

public int[] resultat; //Ett element/fack per hål.

} }

Inläsning från fil

Din uppgift är att komplettera koden till metoden Ladda, som skall läsa in innehållet från filen spelare.txt till vektorn spelare.

Vid inläsningen, från fil, skapar du således en Spelare-post per rad, varefter den, när posten initierats korrekt, skall läggas till vektorn spelare via metoden LäggTillSpelare.

Komplettera koden i den heldragna rutan på nästa sida.

(8)

public static void Ladda() {

StreamReader infil = new StreamReader("spelare.txt");

string rad;

while ((rad = infil.ReadLine()) != null) {

string[] fält = rad.Split('\t');

LäggTillSpelare(m);

}

infil.Close();

}

(9)

Redogör för hur man utökar en vektor med en post. Du kan välja vilken datatyp du vill för vektorn. Skriv vad algoritmen för att utöka en vektor gör, alltså ungefär så här:

1. Från början skickas den gamla vektorn in i metoden.

2. Därefter…

Rita gärna!

Skriv också lämplig programkod för detta (alltså kod som gör det du skriver ovan).

(10)

Uppgift 5 (10 p)

Här nedan ser du ett fullständigt program för att skapa hemliga koder till FBI. Tyvärr har programmeraren (Penelope) varit mycket slarvig med både kommentarer och namngivning och därför är det upp till dig att förstå vad koden gör.

Din uppgift består i att

1) skriva vad varje metod i Program.cs gör och hur den arbetar och att

2) skriva ned vad utskriften från programmet blir, när man skriver in följande värden:

XXX Laban yYy zzz

Skriv dina svar i den heldragna rutan på sidan 12.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace SecretKey {

class Program {

static void Main(string[] args) {

Console.WriteLine("*****************************************");

Console.WriteLine("*****************************************");

Console.WriteLine("******* WELCOME TO THE FEDS :) ********");

Console.WriteLine("*****************************************");

Console.WriteLine("*****************************************");

Console.WriteLine();

Console.WriteLine("Enter your password.");

string pw = "";

bool ok = false;

while (!ok) {

pw = Console.ReadLine().ToUpper();

if ((pw == "XXX") || (pw == "YYY") || (pw == "ZZZ")) ok = true;

if (!ok) {

Console.WriteLine();

Console.WriteLine("Not a valid password.");

Console.WriteLine("Enter your password.");

} }

string[] arr = Method1(pw);

int keycode = Method3(arr);

Console.WriteLine("The keycode is " + keycode);

Console.ReadLine();

}

(11)

PasswordPhrase pwp = new PasswordPhrase();

if (selection == "XXX") arr = Method2(pwp.arr1);

if (selection == "YYY") arr = Method2(pwp.arr2);

if (selection == "ZZZ") arr = Method2(pwp.arr3);

return arr;

}

private static string[] Method2(string[] verySecretPhrase) {

string[] arr = { "", "", "" };

for (int i = 0; i < verySecretPhrase.Length; i++) {

bool found = false;

if (verySecretPhrase[i].Contains("f")) found = true;

if (verySecretPhrase[i].Contains("b")) found = true;

if (verySecretPhrase[i].Contains("i")) found = true;

if (found == true) arr[i] = verySecretPhrase[i];

}

return arr;

}

private static int Method3(string[] phrase) {

int sum = 0;

for (int i = 0; i < phrase.Length; i++) {

if (phrase[i] != "") sum += phrase[i].Length;

}

return sum * 42;

} } }

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace SecretKey {

public class PasswordPhrase {

public string[] arr1 = { "We", "fight", "crime" };

public string[] arr2 = { "Really", "cool", "badge" };

public string[] arr3 = { "Don't", "be", "evil" };

} }

(12)

Svar till uppgift 5:

Här är tentamensuppgifterna slut.

(13)

Sammanställning flödesdiagram

Utökning av vektor

Minskning av vektor

(14)

Swap

BubbleSort

(15)

Linjär sökning

(16)

Binär sökning

References

Related documents

Johansson, Sten-Erik Johansson, Sture Johansson, Tobias Johansson, Torbjörn Johansson, Ulf Jokumsen, Niklas Jonsson, Martin Jönsson, Robert Jörnvik, Ulf Kallberg, Erik

Sen kommer också den ”nya” domarutbildningen igång förhoppningsvis till hösten, i 5 olika steg som kanske underlättar en del för oss, hoppas jag.. Funktionärssidan ser

Den grundläggande fråga som uppsatsen bygger på är varför fotbollsklubbar får redovisa sina spelare som tillgångar i balansräkningen, samtidigt som vanliga företag inte

D˚ a planen vi speglar i ¨ar egenrum till 1 f¨or respektive avbildning inses att vektorer l¨angs sk¨arningslinjen mellan planen ¨ar egenvektorer till 1 f¨or b˚ ada avbild-

Alla koordinater f¨ or vektorer och punkter ¨ ar, om ej annat anges, givna med avseende p˚ a ett positivt orienterat ON-system, R n ¨ ar ett euklidiskt rum med standardskal¨

4-1) Beskriv och förklara VAD ”Goda kostnader” är, samt ge exempel på dessa kostnader från fastighetsmäklarbranschen, eller en annan bransch (2+1p).. 4-2) Beskriv och förklara

Man får ett material på varje sida av varan vilket kan vara fördelaktigt vid fleece-tillverkningA. Plätering är detsamma som sammanfogning av två

Wiklund beskriver begreppen begär och behov. a) Vilken skillnad är det mellan begär och behov utifrån teoretiskt