TDT4102 Prosedyre og Objektorientert programmering Vår 2014



Like dokumenter
TDT4102 Prosedyreog objektorientert programmering Vår 2016

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4102 Prosedyreog objektorientert programmering Vår 2016

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4102 Prosedyreog objektorientert programmering Vår 2016

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4110 IT Grunnkurs Høst 2014

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Kapittel og 5. september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 4.

Øvingsforelesning i Python (TDT4110)

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Øving 0 - Xcode TDT4102

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

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

TDT4105 IT Grunnkurs Høst 2014

Kanter, kanter, mange mangekanter

TDT Prosedyre- og objektorientert programmering

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

TDT4110 IT Grunnkurs Høst 2015

TDT4105 IT Grunnkurs Høst 2014

INF109 - Uke 1b

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

TDT Prosedyre- og objektorientert programmering

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

TDT4110 IT Grunnkurs Høst 2016

Debugging. Tore Berg Hansen, TISIP

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

Utførelse av programmer, metoder og synlighet av variabler i JSP

HØGSKOLEN I SØR-TRØNDELAG

TDT4110 IT Grunnkurs Høst 2016

Studentene skal kunne. gjøre rede for begrepene naturlige, hele, rasjonale og irrasjonale tall. skrive mengder på listeform

Brukermanual for statistikk på Asset on web: Statistikk salg pr dag, uke eller måned fordelt på alle avdelinger:

Sprettende ball Introduksjon Processing PDF

TDT4105 IT Grunnkurs Høst 2016

Oppsummering fra sist

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

Bruk av oppgaver og grupper i

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

Dublettsammenslåing. GolfBox A/S Sensommervej 34 F 8600 Silkeborg, Danmark Tlf.: :info@golfbox.no Web:golfbox.

TDT4110 IT Grunnkurs Høst 2014

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Øvingsforelesning 1 Python (TDT4110)

Oblig4 - obligatorisk oppgave nr. 4 (av 4) i INF1000

Læringsmål og pensum. Oversikt

1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO

Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin.

TDT4105 IT Grunnkurs Høst 2012

Excel. Excel. Legge inn tall eller tekst i en celle. Merke enkeltceller

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Løsningsforslag ukeoppg. 3: sep (INF Høst 2011)

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

Leksjon 3. Kontrollstrukturer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Kapittel 3: Litt om representasjon av tall

Høgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N. Grunnleggende programmering

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Obligatorisk oppgave nr. 3 (av 4) i INF1000, våren 2006

Algoritmer og Datastrukturer

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

TDT4110 IT Grunnkurs Høst 2012

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

Løsningsforslag Øving 7

Universitetet i Oslo. Oppgaver kurs i bestillingssystemet for rollen Rekvirent

Kontinuasjonseksamen

Komme i gang med Skoleportalen

KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

Introduksjon til beslutningsstrukturer

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

Oblig 4. Alternativ A: Alternativ B: Denne obligen har 3 ulike alternativ: Alternativ A: For de som har lyst til å gjøre et eget prosjekt

Straffespark Introduksjon Scratch Lærerveiledning

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Spøkelsesjakten. Introduksjon

Jo, Boka som snakker har så mange muligheter innebygget at den kan brukes fra barnehagen og helt opp til 10. klasse.

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

KONTROLLSTRUKTURER. MAT1030 Diskret matematikk. Kontrollstrukturer. Kontrollstrukturer. Eksempel (Ubegrenset while-løkke)

Oppgaven består av to deler, del A og del B. Alle skal besvare både del A og del B, men det finnes noen valgmuligheter innenfor hver del.

Kontinuasjonseksamen

infotorg Enkel brukermanual

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

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

Steg 1: Få noe på skjermen

QED 1 7. Matematikk for grunnskolelærerutdanningen. Bind 2. Fasit kapittel 1 Tallenes hemmeligheter

HØGSKOLEN I SØR-TRØNDELAG

IP-telefoni Brukerveiledning

Bygge en pyramide. Introduksjon. Steg 1: Lage en ny mod. Sjekkliste. Skrevet av: Pål G. Solheim

Enarmet banditt Nybegynner Scratch Lærerveiledning

UNIVERSITETET I OSLO

Innkjøpsbudsjett (BA10)

UNIVERSITETET I OSLO

INF1000 (Uke 15) Eksamen V 04

Transkript:

Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 1 Frist: 2014-01-24 Mål for denne øvinga: bli kjent med C++ lære grunnleggende C++ og prosedyreorientert programmering lære hvordan programmer kan ta inn data og skrive ut på skjermen repetere grunnleggende programmering Generelle krav: Bruk de eksakte navn og spesifikasjoner gitt i oppgaven. Det er valgfritt om du vil bruke en IDE (Visual Studio, XCode), men koden må være enkel å lese, kompilere og kjøre. Anbefalt lesestoff: Kapittel 1 & 2, Absolute C++ (Walter Savitch) It s Learning notater Side 1 av 6

1 «Input/Output» og Funksjoner (15%) a) Skriv en funksjon getandprintinteger som lar brukeren skrive inn et heltall (integer), og skriver dette tallet ut på skjermen Eksempel-resultat: Skriv inn et tall: 42 Du skrev: 42 b) Skriv en funksjon getandreturninteger som lar brukeren skrive inn et heltall (integer), og returnerer dette fra funksjonen, funksjonen skal ikke skrive tallet til skjerm c) Skriv en kommentar i koden din som forklarer hva slags returtyper disse funksjonene har, hvorfor de har dem, og forskjellen mellom disse returtypene. (minimum 5 setninger) d) Skriv en funksjon getandprintsum som ved å bruke en av funksjonene du nå har skrevet, tar inn to heltall og skriver ut kun summen på skjermen (cout). e) Skriv en kommentar i koden din som forklarer hvorfor du valgte å bruke den funksjonen du valgte (minimum 5 setninger) 2 Løkker (10%) a) Utvid funksjonen getandprintsum som du lagde i oppgave 1 til å la brukeren velge hvor mange tall som skal summeres, enten ved å angi antallet tall først, eller ved å slutte når brukeren gir tall med sum 0. La den nye funksjonen hete getandprintmoresums b) Skriv en kommentar i koden din som forklarer hvilken type løkke som er best egnet for hver av de to mulighetene i forrige oppgave, og hvorfor (minimum 5 setninger). c) Skriv funksjonen getandreturndouble som skal gjøre det samme som getandreturninteger, men istedenfor å lese inn et heltall, skal denne funksjonen lese inn et desimaltall d) Skriv en funksjon som konverterer NOK til Euro. La brukeren gi beløpet som skal konverteres som et positivt desimaltall. Hvis brukeren gir et negativt tall skal programmet spør etter et nytt tall. Skriv ut det vekslede beløpet med to desimaler. Bruk 1e= 7,84 NOK. Gjenbruk tidligere skrevne funksjoner så langt som mulig, og test funksjonen fra main() e) Skriv en kommentar i koden din som forklarer hvorfor vi ikke bør bruke getandreturninteger i forrige oppgave, men heller getandreturndouble, legg spesielt merke til hva i oppgaveteksten som legger føring på denne bruken. Kommenter også på returtypen til funksjonen du skrev i forrige oppgave. (Minimum 5 setninger). f) Hittil har vi hatt litt usystematisk testing av diverse funksjoner i main, dette skal vi nå rydde opp i. Skriv om main() slik at brukeren kan velge i en meny mellom funksjonene fra foregående oppgaver, eksempel: Side 2 av 6

Velg funksjon: 0) Avslutt 1) Summer to tall 2) Summer flere tall 3) Konverter NOK til EURO. Angi valg (0-3): Hvis brukeren f.eks. velger 2, skal funksjonen som lar brukeren angi tall for summering kjøre, når denne er ferdig, skal menyen kjøre på nytt, programmet skal ikke avslutte før brukeren selv velger dette ved å angi menyvalget for "Avslutt". g) Skriv en funksjon som skriver ut en gangetabell på skjermen (cout). La brukeren gi både bredde og høyde på tabellen. Velg selv navn for funksjonen Hint: Løkke i løkke. 3 Flere operatorer (10%) a) Skriv en funksjon som lar brukeren skrive inn et antall sekunder (ved å bruke cin) og skriver ut (til cout) tilsvarende timer, minutter og sekunder. Velg selv navn for funksjonen. Eksempel-resultat: Skriv antall sekunder: 10000 2 timer, 46 minutter og 40 sekunder Programmet ditt trenger ikke være grammatisk korrekt, du kan med andre ord skrive ut "1 minutter" (Hvis du ønsker å gjøre programmet ditt grammatisk korrekt, kan du skrive ut entallbøyningen av time, minutt og sekund etterfulgt av "r" eller "er" hvis (if) antallet ikke er 1.) Hint: Du kan bruke modulo operatoren (%) for å forenkle koden din. Modulo gir resten om man dividerer venstre side av utrykket på høyre. For eksempel vil 72%60 gi 12 fra forrige oppgave b) Skriv en funksjon som regner ut mva og tips for en resturantregning. Måltidet koster f.eks. $54.70 før mva og tips Mva er 8.75% av prisen (uten tips) Tips er 18% av prisen (inkludert mva) La brukeren angi prisen, og test funksjonen med prisen angitt over. La programmet skrive ut prisen på måltidet, mva, tips og summen av alle tre på skjermen (cout). Pass på at verdiene skrives ut med riktig presisjon (penger skal føres med 2 desimaler). Side 3 av 6

4 Kontrollstruktur (15%) a) Skriv en funksjon som lar brukeren skrive inn et heltall og sjekker om tallet er et partall eller oddetall. La funksjonen skrive resultatet ut på skjermen (cout). Velg selv navn for funksjonen. Gjenbruk tidligere skrevne funksjoner hvis mulig. Eksempel resultat: Skriv inn et tall: 47 Tallet er et oddetall. b) Skriv en funksjon som lar brukeren skrive inn to desimaltall og skriver ut hvilket som er størst på skjermen (cout). Velg selv navn for funksjonen. Gjenbruk tidligere skrevne funksjoner hvis mulig. Eksempel resultat: Skriv inn et tall: 3.14 Skriv inn et tall: 1.23 3.14 er storst c) Skriv en kommentar i koden din hvor du forklarer hva som ville vært forskjellig dersom de foregående oppgavene hadde sagt «Skriv en funksjon som tar inn to desimaltall», istedenfor «Skriv en funksjon som lar brukeren skrive inn to desimaltall». (Minimum 5 setninger) Å forstå forskjellen mellom disse to konseptene er viktig fremover i øvingsopplegget. Side 4 av 6

5 Bruk av funksjoner i funksjoner, og røtter (25%) I funksjonene under skal du tolke hva som skal være argumenter til funksjonen, og lære å bruke funksjoner i funksjoner. Generelt heretter i faget, skal funksjoner returnere verdier, og ikke skrive ut noe til skjerm, med mindre annet er spesifisert. a) Skriv en funksjon internalsum som regner ut b 2 4ac og returnerer verdien (ingen utskrift til skjerm) b) Skriv en funksjon positivesqrt som regner ut x dersom x er positiv eller 0, i alle andre tilfeller skal funksjonen returnere -1. Hint: Bruk en innebygd funksjon til å finne kvadratrota. Slå gjerne opp på http://www. cplusplus.com/ for å finne ut hvilke funksjoner du har tilgjengelig. c) Skriv en funksjon polyroot som bruker de to foregående funksjonene til å regne ut b 2 4ac d) Skriv en funksjon abcformula som regner ut løsning(ene) til b ± b 2 4ac 2a der a, b og c er gitt som argumenter til funksjonen, gjenbruk funksjonene fra forrige oppgave, og skriv ut resultatene til skjerm. Hint: Formelen har 2, 1, eller 0 reelle svar (vi ser bort ifra imaginære løsninger), dette bestemmes ved at: 2 svar hvis: b 2 4ac 0 1 svar hvis: b 2 4ac = 0 0 svar hvis: b 2 4ac < 0 Du har nå skrevet en funksjon for å løse andregradsligninger på formen. ax 2 + by + c = 0 e) Lag en funksjon solveandprintroots som lar brukeren skrive 3 desimaltall, bruk abcformula til å regne ut røtten til andregradsuttrykket gitt ved disse tallene f) Legg til solveandprintroots i testmenyen i main() g) Buk testmenyen til å regne ut røttene til andregradsuttrykket gitt ved disse tallene. Test programmet med verdier som gir 0, 1, og 2 løsninger Hint: Prøv å regne ut røttene til: x 2 + 2x + 4 = 0 4x 2 + 4x + 1 = 0 8x 2 + 4x 1 = 0 NB: Generelt i øvingsopplegget bør dere gjøre noe tilsvarende dette for å teste at koden deres fungerer som den skal. Side 5 av 6

6 Flere Løkker (25%) a) Skriv en calculateloanpayments funksjon som regner ut årlige innbetalinger av et lån over 10 år. La brukeren spesifisere lånebeløp og rente. La programmet for hver innbetaling skrive ut (cout )størrelsen på innbetalingen og det gjenstående lånet. Utskriften skal være i et lettleselig format. Bruk følgende formel for å regne ut innbetalingene: Innbetaling = T otalt_lån Antall_avdrag + Rente 100 Gjenstående_lån Du trenger kun regne med én innbetaling i året, og denne skjer ved slutten av året. Renter skal ikke legges til eller trekkes fra det gjenstående lånebeløpet, men kun regnes med i innbetalingen. b) Utvid funksjonen fra forrige deloppgave til å skrive ut oversikten over innbetalinger som en pen og pyntelig tabell, som ser ca slik ut: År Innbetaling Gjenstående Lån 1 100000 100000000 2 90000 1000000 Hint: Bruk \t som tabulator i utskriften Side 6 av 6