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

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

UNIVERSITETET I OSLO

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

INF Uke 10. Ukesoppgaver oktober 2012

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

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

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

INF 1000 høsten 2011 Uke september

INF1000 Eksamensforberedelser og -tips. Høst 2014 Siri Moe Jensen

INF1000 undervisningen INF 1000 høsten 2011 Uke september

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

UNIVERSITETET I OSLO

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

INF1000: noen avsluttende ord

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

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

UNIVERSITETET I OSLO

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

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

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

UNIVERSITETET I OSLO

INF1000: noen avsluttende ord

UNIVERSITETET I OSLO

Introduksjon til objektorientert programmering

Velkommen til. IN1010 Objektorientert programmering Våren 2018

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

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

Hva er en metode. Hva skjer når vi kaller en metode

Innhold. INF1000 Høst Hva skal evalueres? Fra kurssidene. Hvorfor har vi en lærebok? Uke 11: Repetisjon og pensumgjennomgang

Hva er en metode? INF1000 Forelesning 8. Hva skjer når vi kaller en metode? Hvorfor bruke metoder?

Forelesning inf Java 5

Forelesning inf Java 5

UNIVERSITETET I OSLO

løsningsforslag-uke5.txt

INF1000 Forelesning 8. Litt repetisjon: Metoder og klasser Innkapsling av variable og metoder Hvordan gripe an et stort problem?

INF1000 Metoder. Marit Nybakken 16. februar 2004

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

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

2 Om statiske variable/konstanter og statiske metoder.

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Velkommen til. INF våren 2016

UNIVERSITETET I OSLO

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

Løse reelle problemer

UNIVERSITETET I OSLO

Løsningsforslag ukeoppg. 9: okt (INF Høst 2011)

INF1010, 15. januar time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010 våren januar. Objektorientering i Java

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

for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print(i*j); System.out.println();

Gjennomgang av eksamen H99

UNIVERSITETET I OSLO

Løsningsforslag til eksamen i INF1000 våren 2006

UNIVERSITETET I OSLO

INF1000 Behandling av tekster

Seminaroppgaver IN1010, uke 2

INF1000 Prøveeksamen Oppgave 7 og 9

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

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

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

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 : Forelesning 4

Løse reelle problemer

Gjennomgang av en tenkt eksamensoppgave

IN1010 Objektorientert programmering Våren 2019

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

Gjennomgang av en tenkt eksamensoppgave

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

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

INF1000 oppgaver til uke 38 (17 sep 23 sep)

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

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

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

INF1000: Forelesning 7

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

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

Endret litt som ukeoppgave i INF1010 våren 2004

INF1000: Forelesning 7. Konstruktører Static

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

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; }

INF1000 : Forelesning 3

UNIVERSITETET I OSLO

INF1000 (Uke 6) Mer om metoder, tekster

2 Om statiske variable/konstanter og statiske metoder.

Innhold. IN1000 Høst Hva skal evalueres? Fra kurssidene. Uke 12: Pensumgjennomgang og eksamenstips

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

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

Rep: Metoder. INF1000 (Uke 6) Mer om metoder, tekster. Rep: Metoder. 3 typer variable: Klassevariable. Java-programmene så langt i kurset:

Blokker og metoder INF1000 (Uke 6) Metoder

Enkle generiske klasser i Java

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

INF1010, 21. januar Klasser med parametre = Parametriserte klasser = Generiske klasser

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Transkript:

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

Innhold Eksamen INF1000 Høst 2011: Oppgave 4-7 Tekstmanipulering Metoder med og uten returverdi og parametere Klasser, objekter, pekere UML Mål for uke 8: * Løse eksamensoppgaver i sentrale deler av gjennomgått pensum. * Studieplanlegging, læringsstrategier, motivasjon * Oblig 3: Selvstendighet i programmeringen: Velge og implementere egne datastrukturer, planlegge og forstå programflyt og endringer i data, feilsøk og -retting gjennom å følge programmers flyt og datastrukturer 2

Tilbud for INF1000-studenter INF1000 forelesninger grupper INF1000-lab fredag 14:15-18:00 Modula Orakler uken før obliginnlevering: tir-ons-tor 14:15-18:00 Assember og Limbo Midtveisevaluering som flervalgstest uke 8 bruk muligheten! Studielaben Samtale/ veiledning tir 10:30-11:30 og 14:30-15:30 i 3.etg syd Sonen: Kurs etc Fagutvalget INF1000-seminar lørdag 15.10, 11-17. Hjelp til Oblig 3 på termstue, pizza, forelesning med tips til oblig3 3

Anbefalinger for INF1000-arbeid fremover For alle: Gå gjennom gjennomgåtte kapitler av læreboken. Mye vil være lettere å forstå nå som du har lært og trent mer. Løs ukeoppgaver, spesielt nøkkeloppgavene, identifiser hull. Løs obliger selvstendig. Prioriter sentrale emner: Enkel manipulasjon av ulike variabeltyper, metoder med returverdi og parametere, klasser/ objekter/ pekere, programoppsett med flere klasser med data og metoder. Tekst og i/o: Forstå prinsipper og enkel manipulasjon da kan du løse spesialtilfeller ved behov. Løs eksamensoppgaver. Gjerne først på papir (eksamenstrening) deretter taste inn og teste på maskin (kan kreve at du skriver mer kode enn du skal gjøre til eksamen). Er kurset for enkelt? Oppsøk INF1000-lab, be om vanskeligere oppgaver (evt gruppelærer) Oppsøk Sonen og følg kurs Lag dine egne oppgaver/ utvidelser til programmer du skriver bytt med andre Ikke helt kontroll? Forståelse på spesifikke tema: Spør gruppelærer om gjennomgang, eller send mail til josek(a)ifi.uio.no og be om tid på INF1000-lab for gjennomgåelse. Slå opp i læreboka på forhånd! Beherske stoffet til eksamen: Programmér, test og få til på egen hånd! Bekymret for obliger, eksamen, videre studier eller annet: Oppsøk veiledning tirsdager eller send mail til siriamj(a)ifi.uio.no 4

Eksamen H-2010, oppg. 4a) I denne oppgaven kan det være nyttig å bruke String-metodene public char charat(int index); public int length(); Hjelpemetoder (tips) Oppgave Metoden under, som du skal kode, skal returnere true hvis tegnet t forekommer i Stringvariabelen tekst, og false ellers. Algoritme: sammenlign ett og ett tegn i tekst med t boolean forekommer (char t, String tekst){ Løsning: Metode-deklarasjon for (int i =0; i<tekst.length(); i++ ) if (tekst.charat(i)== t) return true; return false; NB: for en annen løsning der det kanskje er tydeligere hva som blir gjort, se lysark bakerst merket ALTERNATIV 4a)! 5

Bruk av (kall på) metoden forekommer() NB class Oppg4a { public static void main (String[] args) { String s = "tekst-med-*"; char a = *'; TekstMetoder tm = new TekstMetoder(); if (tm.forekommer(a, s)) System.out.println (a+" er i "+s); class TekstMetoder { boolean forekommer (char t, String tekst){ for (int i =0; i<tekst.length(); i++ ) if (tekst.charat (i)== t) return true ; return false; 6

Hva skjer under kjøring? oppg 4a, forekommer(); 4 Parameter args [] Metodeobjekt som opprettes ved kall på main()

Hva skjer under kjøring? oppg 4a, forekommer(); Situasjonen etter deklarasjonene i main(): Parameter Metodeobjekt som opprettes ved kall på main() args [] a * s : String "tekst-med-*" : TekstMetoder tm boolean forekommer (char t, String tekst) Lokale variable i metoden main() deklareres og initialiseres: s, a og tm Nyopprettet objekt av klassen TekstMetoder. Inneholder kun en metode.

Hva skjer under kjøring? oppg 4a, forekommer(); Parameter args [] Situasjonen etter kall på forekommer() i if-testen: Metodeobjekt som opprettes ved kall på main() a * Metode-objektet som opprettes ved kall på forekommer() s : TekstMetoder tm boolean forekommer (char t, String tekst) t Parametere i metoden * "tekst-med-*" tekst : String "tekst-med-*"

Hva skjer under kjøring? oppg 4a, forekommer(); Parameter Metodeobjekt som opprettes ved kall på main() args [] a * Metode-objektet som opprettes ved kall på forekommer() s : TekstMetoder tm boolean forekommer (char t, String tekst) t Parametere i metoden Variabelen i opprettes og initialiseres ved utføring av deklarasjon i metoden Situasjonen etter deklarasjon og initialisering av i i forløkken i forekommer() : 0 * tekst i : String "tekst-med-*" "tekst-med-*"..og inkrementeres i for-løkka

Eksamen H-2010, oppg. 4b) Skriv kode til metoden under. Den skal returnere en streng der alle repetisjoner av tegn i Stringvariabelen tekst er fjernet. For eksempel skal utenrepetisjon("aababbabbac") returnere "abc". Hint: Bruk metoden i oppgave 4a. boolean forekommer (char t, String tekst); Algoritme: flytter ett og ett tegn over i ny tekst dersom det ikke allerede forekommer i den nye teksten String utenrepetisjon (String tekst){ String svar = ""; for (int i =0; i< tekst.length (); i++) if (!forekommer (tekst.charat(i), svar)) svar = svar + tekst.charat(i); return svar ; NB: for en annen løsning der det kanskje er tydeligere hva som blir gjort, se lysark bakerst merket ALTERNATIV 4b)! 11

Manipulasjon av tekststrenger (oppg 4b) tekst i 0 opp til tekst.length() a a b a b b a b b a c Tekstsrengen svar peker på : før for-løkken svar a a b a b c etter første a etter første b etter for-løkken 12

Eksamen H-2010, oppg. 4c) 4c) Antall forskjellige tegn (4 poeng) Skriv kode til metoden under. Den skal returnere antall forskjellige tegn som forekommer i String-variabelen tekst. For eksempel skal metoden returnere 3 hvis den kalles med Stringverdien "aababbabbac". Hint: Bruk metoden i oppgave 4b. String utenrepetisjon (String tekst) int antallforskjellige (String tekst){ String kort = utenrepetisjon(tekst); return kort.length(); 13

ALTERNATIV løsning på 4a) Mindre komprimert kode som gjør akkurat det samme som løsningsforslaget gjennomgått på forelesning: boolean forekommer (char t, String tekst){ for (int i=0; i<tekst.length(); i++) { char nestetegn = tekst.charat(i); if (nestetegn == t) { return true; return false; Mellomlagrer neste tegn fra tekst i variabelen nestetegn før vi tester den mot t, i stedet for å bruke returverdien fra charat() direkte i testen. 14

ALTERNATIV løsning på 4b) Mindre komprimert kode som gjør akkurat det samme som løsningsforslaget gjennomgått på forelesning: String utenrepetisjon (String tekst){ String svar = ""; for (int i =0; i< tekst.length (); i++) char nestetegn = tekst.charat(i); boolean funnet = forekommer (nestetegn, svar); if (!funnet) { svar = svar + nestetegn; return svar; Mellomlagrer neste tegn i tekst som returneres av metoden charat() i en egen variabel før vi sjekker om den allerede finnes i svar. Mellomlagrer returverdien fra metoden forekommer() i en boolsk variabel før vi tester på den ( i stedet for å kalle metoden inne i iftesten og bruke returverdien direkte) 15