• No results found

itf10213-innforing-i-programmering-sensorveiledning-28.11.18

N/A
N/A
Protected

Academic year: 2022

Share "itf10213-innforing-i-programmering-sensorveiledning-28.11.18"

Copied!
10
0
0

Laster.... (Se fulltekst nå)

Fulltekst

(1)

 

SEN

Emnek

Emnen

Eksam

Dato: 

Faglæ

Eventu  

   

NSO

kode:  

navn: 

mensform: 

  

rer(e): 

uelt: 

RVEI

ITF   Inn

 

  Sk

  28   To

 

ILED

F10213 

nføring i pr

kriftlig (digi

8/11‐2018 

om Heine N

 

NING

rogrammer

ital) 

ätt 

G

  

ring 

 

 

(2)

Oppgavene vektes slik det står i oppgavesettet. 

Karakterer settes basert på standard retningslinjer. 

 

 (som for eksempel kan finnes her 

https://www.fellesstudentsystem.no/dokumentasjon/rutiner/felles‐mal‐for‐

vitnemal/arbeidsgruppe/motedokumenter‐2014‐06‐19/standardtekst.pdf) 

Merk: 

Det skal ikke gis uttelling for at kandidaten opplagt skriver av kode som medbringes i håp om at dette 

"er i nærheten". Det skal kun gis uttelling dersom kandidaten har forstått hva som bør endres. 

For å få en ståkarakter må studentene til en viss grad vise at de behersker de tre sentrale delene i  programmering som eksamenssettet tester: 

 Lese kode 

 Skrive kode  

 Omforme et problem til en programmert løsning 

Under følger et løsningsforslag. Merk at dette er et løsningsforslag, og at det finnes mange mulige  løsninger. Merk også at løsningsforslaget viser kjørbare løsninger, og på enkelte av oppgavene kan  HTML eller noe av JS sløyfes da det er oppgitt i oppgavesettet at de ikke skal skrives i studentens  løsning. 

   

Oppgave 1 

  1: 9  2: 5  3: 5  4: 2  5: 5  6: 4  7: 10 

8: 0#1#0#1#0# 

9: ‐1  10: 18   

(3)

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>Testside</title>

<script>

window.onload = oppstart;

var tall = [2,4,2,3,1,2,5,6,5];

function oppstart() {

for(var i = 0; i<tall.length;i++) { var finnes = 0;

for(var j = 0; j<tall.length;j++) { if(tall[j] === tall[i]) { finnes++;

} }

if(finnes === 1) {

document.getElementById("utskrift").innerHTML += tall[i] + "<br />";

} }

}

</script>

</head>

<body>

<p id="utskrift"></p>

</body>

</html> 

   

   

(4)

Oppgave 2.2 

 

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>Testside</title>

<script>

window.onload = oppstart;

function oppstart() { var ctx =

document.getElementById("tegneflate").getContext("2d");

ctx.beginPath();

ctx.rect(0,0,400,400);

ctx.stroke();

for(var j=0;j<10;j++) {

for(var i=0;i<10;i++) { ctx.beginPath();

ctx.arc(i*40,j*40,i*j,0,Math.PI*2);

ctx.stroke();

} }

}

</script>

</head>

<body>

<canvas id="tegneflate" width="400" height="400"></canvas>

</body>

</html>

   

(5)

Oppgave 2.3 

 

function aktiv(start,slutt,tidspunkt) {

var startD = new Date(start);

var sluttD = new Date(slutt);

if(tidspunkt.getTime() >= startD.getTime() &&

tidspunkt.getTime() <= sluttD.getTime() ) { return true;

} else {

return false;

} }

(6)

Oppgave 3.1  

 

<!DOCTYPE html>

<html>

<head>

<title>Avtaler</title>

<meta charset="utf-8" />

<script>

window.onload = oppstart;

var navn = "Tom Heine Nätt";

var fil = "avtaler.dat";

var xmlhttp;

function oppstart() {

document.getElementById("navn").innerHTML = navn;

xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = lastet;

xmlhttp.open("GET",fil+"?id="+Math.random(),true);

xmlhttp.send();

}

function lastet() {

if(xmlhttp.readyState === 4 && xmlhttp.status === 200) { var data = xmlhttp.responseText;

var linjer = data.split("\n");

linjer = sorterAvtaler(linjer);

var naa = new Date("2018-12-02T12:00:00+01:00");

for (var i =0; i < linjer.length; i++) { var deler = linjer[i].split(";");

if(deler.length !== 5) { continue;

}

if (aktiv(deler[0],deler[1],naa) === true) { document.getElementById("naa").innerHTML+=formaterUtskrift(deler);

}

else if (innenforDato(deler[0],deler[1], naa)

=== true) {

document.getElementById("idag").innerHTML+=formaterUtskrift(deler);

}

} }

}

function sorterAvtaler(avtaleliste) {

//Masse magi som ikke oppgaven spør etter return avtaleliste;

(7)

function aktiv(start,slutt,tidspunkt) { var startD = new Date(start);

var sluttD = new Date(slutt);

if(tidspunkt.getTime() >= startD.getTime() &&

tidspunkt.getTime() <= sluttD.getTime() ) { return true;

} else {

return false;

} }

function innenforDato(start,slutt,dato) { var dagStart = new

Date(dato.getFullYear(),dato.getMonth(),dato.getDate(),0,0,0);

var dagSlutt = new

Date(dato.getFullYear(),dato.getMonth(),dato.getDate(),23,59,59);

var startD = new Date(start);

var sluttD = new Date(slutt);

if(startD.getTime() <= dagStart.getTime() &&

sluttD.getTime() >= dagStart.getTime() ) { return true;

}

else if(startD.getTime() >= dagStart.getTime() &&

startD.getTime() <= dagSlutt.getTime() ) { return true;

} else {

return false;

} }

function formaterKlokkeslett(datoString) { var dato = new Date(datoString);

var h = dato.getHours();

var m = dato.getMinutes();

if(h<10) {h="0"+h;}

if(m<10) {m="0"+m;}

return h+":"+m;

}

function formaterUtskrift(data) {

return "<div><p>"+"<img class=\"icon\"

src=\""+data[4].toLowerCase()+".png\"/>"+data[2]+" ("+data[3]+")"+

" - Fra "+formaterKlokkeslett(data[0])+" til

"+formaterKlokkeslett(data[1])+"</p></div>";

}

</script>

<style>

.icon {

width:50px;

height:50px;

}

</style>

(8)

</head>

<body>

<h1>Kalender for <span id="navn"></span></h1>

<h2>Nå</h2>

<div id="naa">

</div>

<h2>I dag</h2>

<div id="idag">

</div>

</body>

</html>

(9)

Oppgave 3.2 

 

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>Testside</title>

<script>

window.onload = oppstart;

var xmlhttp;

var emner;

function oppstart() {

xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = lastet;

xmlhttp.open("GET","status.json?id="+Math.random(),true);

xmlhttp.send();

}

function lastet() {

if(xmlhttp.readyState === 4 && xmlhttp.status ===

200) {

koder = JSON.parse(xmlhttp.responseText);

for(var i=0;i<koder.length;i++) { var el =

document.createElement("option");

el.value = koder[i].kode;

el.innerHTML = koder[i].status;

document.getElementById("selStatus").appendChild(el);

} }

document.getElementById("btnRegister").onclick = registrer;

}

function registrer() { var status =

document.getElementById("selSatatus").value;

var tittel =

document.getElementById("txtTittel").value;

var rom = document.getElementById("txtRom").value;

var fra = document.getElementById("dtFra").value;

var til = document.getElementById("dttil").value;

var fraDato = new Date(fra);

var tilDato = new Date(til);

if(tittel.length < 5 ) {

alert("Du må fylle ut tittel");

}

else if(rom.length < 5 ) {

alert("Du må fylle ut rom");

}

else if(fraDato.getTime() > tilDato.getTime() ) {

(10)

alert("Feil: Til kan ikkt være før fra") }

else {

xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = ferdig;

xmlhttp.open("GET","registrer.php?status="+status+"&tittel="+tittel+"

&rom="+rom+"&fra="+fra+"&til="+til,true);

xmlhttp.send();

} }

function ferdig() {

if(xmlhttp.readyState === 4 && xmlhttp.status === 200) { alert("Registrering OK");

} }

</script>

</head>

<body>

Titel: <input type="text" id="txtTittel" size="80" /><br />

Rom: <input type="text" id="txtRom" size="80" /><br />

Status: <select id="selStatus"></select><br />

Fra: <input type="datetime-local" id="dtFra" size="10"/><br />

Til: <input type="datetime-local" id="dtTil" size="10"/><br />

<button id="btnRegister" type="button">Registrer</button>

</body>

</html>

     

Referanser

RELATERTE DOKUMENTER

Sensorveiledning utarbeides jfr Institusjonelle retningslinjer for sensorveiledning ved HiØ Oppgavetekst.. En dag i november 2020 blir Ola akutt syk med feber og frostanfall. Han

string substr ( string $string , int $start int $length ] ) Returns the portion of string specified by the start and length parameters.

Vi vet ikke hvor mange linjer filen har, og vi vet ikke hvor mange tall det er på hver linje.. Det vi vet er at det er minst én linje, at det firmes minst ett tall på hver linje og

Før knappen Registrer sender data videre til et PHP-script, som skriver informasjonen til slutten av fila gullkorn.dat, skal du sjekke følgende:. Sitatet kan ikke

Husk at du også skal lage selve PHP-fila som skal benyttes til skriving. Denne skal ha

Knappen skal kalle en funksjon som heter «addCD», du må dermed skrive overnevnte kode i denne funksjonen.

Registrering gjøres hver dag, så når det gjelder selve nettsiden trenger du ikke bekymre deg for hvor i fila linja skal skrives og til hvilken fil data skal skrives. I PHP-scriptet

Merk deg at du også blir bedømt på hvor ryddig og god kode du skriver. At alle oppgaver fungerer betyr ikke automatisk at du får beste karakter. Dersom noen oppgaver er så vanskelige