INF1000 oppgaver til uke 38 (17 sep 23 sep)

Like dokumenter
Ukeoppgaver INF1000: 12. feb 16. feb

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

INF1000 (Uke 4) Mer om forgreninger, While-løkker

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal.

Ukeoppgaver 2: sep (INF Høst 2010)

Eksempel: Body Mass Index (BMI) Forelesning inf Java 3. Ferdig program (første del) Ferdig program (siste del)

Java 4. Mer om easyio Mer om forgreninger Løkker. 7. september 2004

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

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

INF1000 : Forelesning 3

Eksempel: Body Mass Index (BMI)

Body Mass Index (BMI) INF1000 : Forelesning 3. Ferdig program (forts.) Ferdig program

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

Forelesning inf Java 3

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

switch: - terminal-i/o (bruker-i/o)

TEMA: Kommunikasjon med Bruker INF1000 Plenumsgruppe 1, formatert utskrift

Forelesning inf Java 3

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

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

INF1000 Uke 4. Innlesning fra terminal. Uttrykk og presedens. Oversikt

INF Uke 10. Ukesoppgaver oktober 2012

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

UNIVERSITETET I OSLO

INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september

Løsningsforslag ukeoppg. 2: 31. aug - 6. sep (INF Høst 2011)

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator

INF1000 Uke 3. Innlesning fra terminal. Uttrykk og presedens. Oversikt. Litt repetisjon Blokker og forgreininger

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Blokker. Uke 4, INF 1000, 13 sept Løkker og arrayer. Eksempel. Deklarasjoner inne i blokker. Institutt for Informatikk Universitet i Oslo

Praktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder

UNIVERSITETET I OSLO

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

Innlesning fra tastatur med easyio. INF1000 høst Vi må først skrive i toppen av programmet: import easyio.*;

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Praktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut

Forelesning inf Java 4

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

UNIVERSITETET I OSLO

INF1000 : Forelesning 4

INF1000: Forelesning 11. Oppgave 2. Oppgave 1. Husk å melde deg på prøveeksamen i INF1000! Ole Christian Lingjærde 7.november 2006

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

INF1000 høst Forelesning 2: Innlesning fra terminal Boolean-variable if-setninger Løkker Litt mer om heltall: divisjon og modulo Arrayer

Endret litt som ukeoppgave i INF1010 våren 2004

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

Oversikt. INF1000 Uke 3. Repetisjon Program. Repetisjon Program. Litt repetisjon Program Variabler og Uttrykk Presedens Matematiske funksjoner

UNIVERSITETET I OSLO

De neste ukene. INF1000 Uke 12. Prøveeksamen. Nå - Prøveeksamen. Forelesning om IT og samfunn neste uke (13/11).

MAT-INF 1100: Obligatorisk oppgave 1

Programmering Høst 2017

INF1000: Forelesning 4. Mer om arrayer Metoder

UNIVERSITETET I OSLO

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

INF 1000 Prøveeksamen. 23. november Ole Christian og Arne. Oppgave 1 (10 poeng) Er disse programsetningene lovlige i Java? Oppgave 2 (10 poeng)

Løsningsforslag til eksamen i INF1000 våren 2006

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

MAT-INF 1100: Obligatorisk oppgave 1

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oversikt. INF1000 Forelesning 6. Variable Deklarasjon. Variabel en plass i lageret int radius;

Ole Christian Lingjærde, 12. september 2013

Forelesning inf Java 4

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

INF1000: noen avsluttende ord

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:

Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO

UNIVERSITETET I OSLO

TDT4100 Objektorientert programmering

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2008

INF1000 Uke 14. Løsningsforslag - prøveeksamen. Institutt for Informatikk Fredrik Sørensen og Arne Maus

løsningsforslag-uke5.txt

INF1000 Behandling av tekster

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 h2006

Blokker og metoder INF1000 (Uke 6) Metoder

Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder

Mer om uttrykk, terminal I/O, forgreninger. Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo

UNIVERSITETET I OSLO

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2009

Oppgave 2 (20 poeng) float og long i oppgave 2:

UNIVERSITETET I OSLO

Beregning av med svært mange desimaler

Transkript:

INF1000 oppgaver til uke 38 (17 sep 23 sep) Formål: Øve på programmering med forgreninger, løkker og arrayer. Teoritimer (plenumsøvinger): 1. Oppgave 4 og 6 i kapittel 4 i læreboka. 2. En blokk er en samling programsetninger som er omsluttet av krøllparenteser (se avsnitt 4.1 i læreboka). Hvilke av disse programmene er lovlige (begrunn svaret)? a. class Prog1 { System.out.println(m); b. class Prog2 { System.out.println(m); c. class Prog3 { System.out.println(k); 3. Et program inneholder blant annet følgende programsetninger: int alder = 4; int nyalder; nyalder = alder--; alder += nyalder; alder++; Hvilken verdi har variabelen alder like etter at setningene over er utført?

4. Anta at følgende programsetninger utføres: int i = 11; int j = i; int k = 32; if (k > j * i k < i) { System.out.println("A"); else { if (k < j * i && k > i) { System.out.println("B"); else { System.out.println("C"); Hva skriver setningene over ut på skjermen? 5. Anta at følgende programsetninger utføres: int k = 1; while (k < 10) { k = k + 1; 6. Anta at følgende programsetninger utføres: int k = 1; while (k < 10) { k = -2 * k; 7. Anta at følgende programsetning utføres: for ( k<3; k++) { System.out.println(3-k); //slutt for 8. Er følgende program lovlig? Hvorfor/hvorfor ikke? class ForTest { for ( k < 4; k++) { System.out.println("k^2 = " + k*k); //slutt main //slutt class ForTest 9. Lag et program med en løkke som teller ned fra 10 til 1, og som skriver ut tallene 10, 9,..., 1 på hver sin linje ved hjelp av outln(...).

10. Anta at vi har følgende programsetninger: for (int i = 0; i < 100; i++) { for (int j = 0; j < 99; j++) { System.out.println("Eksamen"); Hvor mange ganger skrives teksten "Eksamen" ut? 11. Anta at vi har følgende programsetninger: for (int i = 0; i < 3; i++) { for (int j = 0; j <= i; j++) { System.out.println("INF 1000"); Hvor mange ganger skrives teksten "INF 1000" ut? 12. Lag et program med en while-løkke hvor programmet i hvert gjennomløp spør brukeren om et heltall, leser tallet og skriver det ut på skjerm. Dette skal gjøres helt til brukeren gir tallet 0 da skal programmet avslutte. 13. Hva skjer når brukeren taster inn 7 i følgende program? Eller 1? class HvaSkjer { public static void main(string[] args) { int valg; In tast = new In(); System.out.println("Tast inn et tall mellom 1 og 4"); valg=tast.inint(); switch(valg){ case 1: System.out.println("Du tastet 1"); case 2: System.out.println("Du tastet 2"); case 3: System.out.println("Du tastet 3"); case 4: System.out.println("Du tastet 4"); default: System.out.println( "Feil, tast et tall mellom 1 og 4"); //slutt switch //slutt main //slutt class HvaSkjer 14. Når setningen int[] a = new int[50]; utføres, skjer det både en deklarasjon og en oppretting av et array-objekt. Forklar hvilken del av setningen som gjør hva, og vis hvordan setningen kunne vært splittet opp i to setninger: en deklarasjonssetning og en setning som oppretter array-objektet. 15. Hvilke av setningene under er lovlige (og hva gjør de isåfall)? a. int verdier = new int[50]; b. int[] verdier = new int[50]; c. int[50] verdier = new int[50]; d. int[] verdier = new int; e. double[] x = new int[5]; f. double[] x = {1, 2, 3, 4, 5;

g. double[] x = new double {1.0, 2.0, 3.0, 4.0, 5.0; h. double[] x, y;d 16. Hvor mange verdier er det plass til i hver av disse arrayene? a. int[][] a1 = new int[10][100]; b. int[][] a2 = new int[1][10]; c. int[][] a3 = new int[9][9]; 17. Lag et program som kan brukes til å lagre informasjon om hvilke personer som har hvilke kontorer nedover en gang. Det er kun kontorer på den venstre siden, så er bare den siden du trenger å tenke på. Kontorene har nummer 403, 404,..., 408. I hvert kontor kan det sitte en og bare en person. Lag en String-array hvor man kan lagre navn på hvilken arbeider som har hvilket kontor. Du skal altså programmere en løkke som skal gå igjennom hvert kontor en gang - og spørre brukeren om hvem som eventuelt sitter der (eventuelt ta imot et linjeshift for tomme kontorer). Etter å ha lest inn navn skal programmet gå i en ny løkke som skal skrive ut hvem som har hvilke kontorer. Programmet skal skrive ut eksten "ledig" på ledige kontorer, ellers navnet på den ansatte som har kontoret. Programmet skal dessuten telle opp antall ledige kontorer, og skrive ut dette antallet til skjerm. 18. Lag en enkel kalkulator som støtter de fire regneartene (+ - * /). Programmet skal begynne med å spørre brukeren om hvilken regneart han/hun ønsker å benytte seg av. Brukeren svarer da f.eks. '*' og programmet leser svaret med inchar og lagrer svaret i en char-variabel. Programmet skal så be om to heltall (disse lagres i hver sin intvariabel). Bruk en forgrening (enten en kjedet if-else setning eller en switch-setning) til å sjekke hvilken regneart brukeren valgte og skriv ut svaret av å utføre den valgte regneoperasjonen på de to tallene. Tenk gjennom hva som skjer ved divisjon (hva slags divisjon får vi utført?) og forklar hvordan vi kan modifisere programmet hvis vi ønsker den andre typen divisjon Terminaltimer: 1. Oppgave 1 og 2 i kap 4 i læreboka. 2. Oppgave 8 og 9 i kap 5 i læreboka. 3. Kristoffer Robin har lært om aritmetiske rekker i mattetimen sin, og sist gang lærte han en formel. Denne formelen sa at summen av tallene 1, 2, 3,..., n (hvor n er et positivt heltall) er lik n * (n+1) / 2. Kristoffer har bestemt seg for å undersøke om dette stemmer i praksis også (han stoler ikke så mye på teorien), og han lager derfor et Java-program (utrolig hva den gutten kan) med en int-variabel som initialiseres til 0 og med en løkke som i det k'te gjennomløpet adderer k til int-variabelen.

Etter 100 gjennomløp av løkken er verdien i variabelen 1 + 2 +... + 100, og han skriver ut resultatet. Han skriver også ut verdien som han skulle ha fått i følge formelen (altså 100 * 101 / 2), og han legger inn en if-test i slutten av programmet som sjekker om verdiene han fikk er like og som skriver ut "Hurra!" hvis de er det og "Jeg visste det!" hvis de ikke er det. Lag et slikt program du også. 4. Skattemyndighetene i Ruritania, har i likhet med myndighetene i Norge pålagt serveringsstedene to forskjellige merverdiavgiftssatser 12 % for takeaway, og 24 % for inneservering. Du er innleid av serveringsstedet BurgerHam som lever av å selge burgere i Ruritania. Hos BurgerHam A/S fastsettes prisen for burgerne fra dag til dag, men alle burgerne har samme pris. Du skal lage et program som tar seg av administrasjon av merverdiavgift. Når programmet startes opp skal det spørre brukeren om dagens pris. Denne skal gi selgeren to valg: 1 for å spise inne, 2 for å spise ute. Programmet skal gå i løkke helt til brukeren taster 0 (slutt for dagen). Det skal så summere hva bedriften skal betale inn av merverdiavgift. Summen skal skrives ut ved dagens slutt (altså når brukeren taster 0 for å avslutte).