TDT4105 IT Grunnkurs Høst 2014



Like dokumenter
TDT4105 IT Grunnkurs Høst 2014

TDT4105 IT Grunnkurs Høst 2012

Øvingsforelesning TDT4105

Høst Øving 5. 1 Teori. 2 Månedskalender. Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

TDT4110 IT Grunnkurs Høst 2012

Binærfiler versus tekstfiler

TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering

TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling - load, save, type - fopen, fgetl, feof, fprintf, fclose

Eksamensoppgave i TDT4105 Informasjonsteknologi grunnkurs, med Matlab LØSNINGSFORSLAG

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

TDT4110 IT Grunnkurs Høst 2016

TDT4105 IT Grunnkurs Høst 2016

Øvingsforelesning 3 Python (TDT4110)

TDT4110 IT Grunnkurs Høst 2015

TDT4105 IT Grunnkurs Høst 2017

Løsningsskisse til avsluttende eksamen i TDT4105 Informasjonsteknologi, grunnkurs Torsdag 8. desember :00 13:00

Læringsmål og pensum

TDT4105 Informasjonsteknologi, grunnkurs

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

TDT4110 IT Grunnkurs Høst 2014

TDT4110 IT Grunnkurs Høst 2012

Hangman. Level. Introduksjon

Repetisjon. INF gruppe 13

Datastrukturer (kap. 8)

TDT4110 IT Grunnkurs Høst 2015

TDT4110 IT Grunnkurs: Kommunikasjon og Nettverk. Læringsmål og pensum. Hva er et nettverk? Mål. Pensum

Eksamensoppgave i TDT4105 Informasjonsteknologi grunnkurs, med Matlab LØSNINGSFORSLAG

Løsningsforslag til kontinuasjonseksamen i TDT4105 Informasjonsteknologi, grunnkurs Mandag 13. august

TDT4105 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2016

TDT4105 Informasjonsteknologi, grunnkurs. Mer om funksjoner: - rekursive funksjoner

TDT4110 IT Grunnkurs Høst 2017

TDT4105 IT Grunnkurs Høst 2014

TDT4110 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2014

Øvingsforelesning i Python (TDT4110)

Repetisjon Novice Videregående Python PDF

Lynkurs i shellprogrammering under Linux

Løsningsforslag for øving 9 TDT4105 IT Grunnkurs

Dette er en demonstrasjonsside som vi skal bruke for å se litt nærmere på HTTP protokollen. Eksemplet vil også illustrere et par ting i PHP.

Introduksjon til beslutningsstrukturer

[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/ Vi holder orden på verdier med hjelp av variabler

Hangman. Steg 1: Velg et ord. Steg 2: Gjett en bokstav. Sjekkliste. Sjekkliste. Introduksjon

Øvingsforelesning TDT4105 Matlab

Mattespill Nybegynner Python PDF

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Kontinuasjonseksamen i TDT4105 Informasjonsteknologi - grunnkurs Matlab

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

HØGSKOLEN I SØR-TRØNDELAG

Fakultet for informasjonsteknologi,

Øvingsforelesning i Python (TDT4110)

UNIVERSITETET I OSLO

TDT4105 Informasjonsteknologi grunnkurs Øvingsforelesning 2. Iver Dihle Skjervum Vit.ass. ITGK

Auditorieøving 2 Matlab. Appendix Matlab 1/19

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Først må vi få datamaskinen til å velge et tilfeldig ord, så la oss begynne. Lagre programmet ditt og kjør det. Hvilket ord skrives ut?

Brukerveiledning for For å opprette en ny bruker vennligst send en epost til

Sikkerhet og internett

Ta kontakt i pausen. Viktig at vi kommer i gang med dette arbeidet!

Del 1 En oversikt over C-programmering

TDT4110 Informasjonsteknologi grunnkurs: Programmering: En større case. Professor Alf Inge Wang

Læringsmål og pensum. En større case. Mål Lære å lage større og sammensatte programmer Pensum Kapitlene 1-9 og 12.

Læringsmål og pensum. if (be): else (not_to_be):

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case. Terje Rydland - IDI/NTNU. Lære å lage større og sammensatte programmer

TTM4175 Del 2: Etisk hacking. Lab E5: Nettverkssniffing

Eksamensoppgave i TDT4105 Informasjonsteknologi grunnkurs, med Matlab LØSNINGSFORSLAG

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

TDT4110 IT Grunnkurs Høst 2014

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

Programmeringsspråket C Del 3

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

GJØVIK INGENIØRHØGSKOLE

6105 Windows Server og datanett

TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og mengder (sets) - Kapittel 9. Professor Alf Inge Wang

6105 Windows Server og datanett

Google Cloud Print-guide

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

Oppsummering - Kurset (10/ )

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

Kontinuasjonseksamen i TDT4105 Informasjonsteknologi - grunnkurs

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Programmeringsspråket C Del 3

Tirsdag 21/11. Onsdag 24/11. Tirsdag 12/12. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case

Administrivia INF 3110/ INF /02/2005 1

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

TDT4102 Prosedyreog objektorientert programmering Vår 2016

HØGSKOLEN I SØR-TRØNDELAG

Øvingsforelesning 5 Python (TDT4110)

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

TDT Prosedyre- og objektorientert programmering

I denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå.

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Google Cloud Print-guide

Sikkerhet og internett. Kan vi være vi trygge? Kan vi beskytte oss? Bør vi slå av nettet

MENGDER (SETS) Læringsmål og pensum. Kapittel 9.2

TDT4110 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

Transkript:

TDT4105 IT Grunnkurs Høst 2014 Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag Øving 9 1 Teori a) En protokoll er et regelverk som bestemmer hvordan kommunikasjon skal foregå, og hvilke funksjoner som kan brukes. b) HTTP er en forkortelse for Hypertext Transfer Protocol. Det er en protokoll for overføring av tekst og bilder over Internet. Protokollen brukes i hovedsak av nettlesere og webservere til å utveksle nettsider. c) Applikasjonslaget, transportlaget, nettverkslaget, linklaget og det fysiske laget. 2 Strukturer a) date = struct ( 'day ', 20, ' month ', 5, ' year ', 1990) ; b) c) d) function print_ date ( date ) fprintf ( '%02 i.%02 i.% i ', date. day, date. month, date. year ); person = struct ( ' name ', 'Per ', ' date_of_birth ', struct ( 'day ', 20, ' month ', 5, ' year ', 1990), ' phone ', 48151623) ; function print_ person ( person ) fprintf ( '%s, ', person. name ); print_date ( person. date_of_birth ); fprintf ( ', %i, ', person. phone ); Side 1 av 6

e) function person = prompt_ person () name = input ( 'Hva heter du? ', 's '); day = input ( ' Hvilken dato er du foedt paa? '); month = input ( ' Hvilken maaned er du foedt i? '); year = input ( ' Hvilket aar er du foedt i? '); phone = input ( ' Hva er telefonnummeret ditt? '); date_of_birth = struct ( 'day ', day, ' month ', month, ' year ', year ); person = struct ( ' name ', name, ' date_of_birth ', date_of_birth, ' phone ', phone ); f) function age = get_ age ( person ) day = person. date_of_birth. day ; month = person. date_of_birth. month ; year = person. date_of_birth. year ; [Y M D] = datevec ( now ); age = Y - year ; if M < month ( M == month && D < day ) age = age - 1; g) function persons = batch_register_persons () i = 1; while true persons (i) = prompt_person () ; answer = input ( ' Skal du registrere flere personer ( ja / nei )? ', ' s '); if strcmp ( answer, 'nei ') break ; i = i + 1; h) function list_ persons ( list_ of_ persons ) for i = 1: length ( list_of_persons ) print_person ( list_of_persons (i)); fprintf ( '\n '); Side 2 av 6

3 Persondatabase a) function serialized = serialize_ date ( date ) d = int2str ( date. day ); m = int2str ( date. month ); y = int2str ( date. year ); if date. day < 10 d = strcat ( '0 ', d); if date. month < 10 m = strcat ( '0 ', m); serialized = strcat (d, '. ', m, '. ', y); function serialized = serialize_ person ( person ) n = person. name ; d = serialize_date ( person. date_of_birth ); p = int2str ( person. phone ); serialized = strcat (n, '# ', d, '# ', p); b) function deserialized = deserialize_ date ( date ) [ tok rest ] = strtok ( date, '. '); d = str2num ( tok ); [ tok rest ] = strtok ( rest, '. '); m = str2num ( tok ); tok = strtok ( rest, '. '); y = str2num ( tok ); deserialized = struct ( 'day ', d, ' month ', m, ' year ', y); function deserialized = deserialize_ person ( person ) [ tok rest ] = strtok ( person, '# '); n = tok ; [ tok rest ] = strtok ( rest, '# '); d = deserialize_date ( tok ); tok = strtok ( rest, '# '); p = str2num ( tok ); deserialized = struct ( ' name ', n, ' date_of_birth ', d, ' phone ', p); Side 3 av 6

c) function store ( filename, persons ) fileid = fopen ( filename, 'w '); for p = persons fprintf ( fileid, '%s\n ', serialize_person (p)); fclose ( fileid ); d) function persons = loadfile ( filename ) persons = []; fileid = fopen ( filename, 'r '); line = fgets ( fileid ); while ischar ( line ) person = deserialize_ person ( line ); persons = [ persons person ]; line = fgets ( fileid ); fclose ( fileid ); 4 Personprogram a) function person_ program () choice = -1; P = []; print_header () ; while choice ~= 0 print_menu () ; choice = input ( ' Velg et tall : '); if choice == 0 continue ; P = process (P, choice ); print_footer () ; b) function print_ header () fprintf ( ' Velkommen til persondatabasen \ n '); Side 4 av 6

c) function print_ menu () fprintf ( '%s\n ', '1. Hent database fra fil '); fprintf ( '%s\n ', '2. Lagre database til fil '); fprintf ( '%s\n ', '3. List alle personer '); fprintf ( '%s\n ', '4. Legg inn ny person '); fprintf ( '%s\n ', '5. Endre person '); fprintf ( '%s\n ', '0. Avslutt programmet '); d) function print_ footer () fprintf ( ' Programmet avsluttes.\ n '); e) function P = process_ load () fprintf ( ' Skal laste en fil \n '); function process_ store ( P) fprintf ( ' Skal lagre en fil \n '); function process_ list_ persons ( P) fprintf ( ' Skal skrive ut personene \n '); function P = process_ new_ person ( P) fprintf ( ' Skal legge til en ny person \n '); function P = process_change_person (P) fprintf ( ' Skal re en person \n '); f) function P = process ( P, choice ) fprintf ( '\n '); switch choice case 1 P = process_ load () ; case 2 process_store (P); case 3 process_list_persons (P); case 4 P = process_new_person (P); case 5 P = process_change_person (P); otherwise fprintf ( '%s\n ', ' Ugyldig valg '); fprintf ( '\n '); Side 5 av 6

g) function P = process_ load () filename = input ( ' Hvilken fil vil du laste? ', 's '); P = loadfile ( filename ); h) function process_ store ( P) filename = input ( ' Hvilken fil vil du lagre til? ', ' s '); store ( filename, P); i) function process_ list_ persons ( P) list_persons (P); j) function P = process_ new_ person ( P ) P = [P prompt_person () ]; k) function P = process_change_person (P) index = input ( ' Hvilken person vil du re? '); P( index ) = prompt_person () ; Side 6 av 6