Feilmeldinger, brukerinput og kontrollflyt
|
|
- Torhild Tønnessen
- 7 år siden
- Visninger:
Transkript
1 Feilmeldinger, brukerinput og kontrollflyt Skjønne hvordan et program presist utføres og forberede seg på håndtering av feil INF1000, uke2 Ragnhild Kobro Runde
2 Programmeringskrøll Programmet vil ikke kjøre (riktig), og dette viser seg å skyldes detaljer som ikke har å gjøre med noe viktig (dvs hovedideen er riktig). Feil som skyldes at datamaskinen er dum.. Det er riktig at den virkelige utfordringen i programmering er kreativ problemløsning. Men før man kommer til dette, må man få inn den nødvendige presisjonen.
3 U2Kompileringsfeil1.java Eksempel
4 I INF1000 Essensen i faget er de underliggende prinsippene. Tekniske triks er uviktig (for nå). Vi har forsøkt å fjerne kilder til krøll der vi kan. Men noe krøll oppstår om man vil eller ikke. Angrep er det beste forsvar.
5 Strategier for å håndtere krøll Kjenne til ulike feilmeldinger Hvorfor de oppstår. Hvordan de kan rettes. Ha en presis forståelse av hvordan et program utføres (eksekveres). Hvordan uttrykk (høyresiden til =-tegnet) evalueres. Hvordan et program flyter fra linje til linje. Bli kjent med «stammespråket».
6 FEIL OG FEILMELDINGER
7 Hva er en programfeil? Kompileringsfeil Kompilatoren finner feil/svakhet. (javac protesterer) Kjøretidsfeil Ugyldig situasjon oppstår under kjøring. (java protesterer) Logisk feil Alt kjører, men resultatet er ikke i tråd med intensjonen (enten man merker det eller ikke).
8 Vanlige kompileringsfeil - noen eksempler U2Kompileringsfeil2.java - U2Kompileringsfeil7.java
9 Vanlige kjøretidsfeil - noen eksempler U2Kjoretidsfeil1.java - U2Kjoretidsfeil2.java
10 Logiske feil - noen eksempler U2LogiskFeil1.java - U2LogiskFeil2.java
11 Vær obs på følgefeil Ved kompileringsfeil Første feilmelding er typisk den opprinnelige. I tillegg får man ofte mange etterfølgende feil, fordi kompilatoren kommer av sporet. Ved kjøretidsfeil En ugyldig tilstand kan skyldes en feil tidligere i koden enn der den merkes. Ved logiske feil Man kan få uønsket oppførsel ett sted, fordi man ikke tok høyde for bestemte utfall et annet sted.
12 Bli kjent med programmeringsfeil Bruk tid på å fremprovosere flest mulig feil, og legg de bak øret (eller noter dem ned)! Senker frustrasjonsnivået betraktelig når feil oppstår. Feilretting går mye raskere når man gjenkjenner feilmelding og hva den kan skyldes. Det er mye å lære av å se hva som ikke fungerer.
13 INNLESING FRA TASTATUR
14 Slipp brukeren til! De fleste program tar jevnlig en eller annen input fra brukeren. Dette gir også mye mer dynamikk i programmene enn det vi har sett på til nå.
15 Enkel input fra brukeren U2Input.java
16 Input av tall fra brukeren U2InputSum.java
17 KONTROLLFLYT
18 Hvordan et program presist utføres Hvordan (i hvilken rekkefølge) utføres operasjoner helt detaljert på én enkelt linje Hvordan flyter (helt presist) et program fra linje til linje
19 Hva skjer innad på en linje? alder = 6; alder = alder + 3;
20 Videre om evaluering av uttrykk Visse operasjoner gjøres alltid før andre F.eks. alltid multiplikasjon før addisjon. Sammenlign: alder = 5 * alder = * 3 Blir tydeligere med parenteser, bruk det! alder = (5 * 3) + 18
21 Videre om evaluering av uttrykk (forts.) For noen formål må man uansett ha parenteser alder = (3+2) * Nesting av parenteser er definitivt lovlig alder = ((3+2) * 3) + 18 I praksis er det ikke tall man putter inn på slik måte, men variabler: alder = ((bachelor+master) * antallfagfelt) + barndom
22 En liten oppgave om variable og uttrykk (fra eksamen 2014)
23 Boolske uttrykk Kan teste flere ting i samme uttrykk. && betyr "og" - altså må begge deler være sant if (alder>=3 && alder<6) { System.out.println("liten"); Man kan også sjekke enten eller med if (alder<18 alder>66) { System.out.println("Halv pris");
24 Boolske uttrykk (forts) Uttrykk kan naturligvis inneholde ulike variabler if (alder > 80 dagertiltermin < 60) { System.out.println("Vil du sitte?"); Uttrykkene kan være nestede if ((dag == 17 && maaned == 5) (dag == 29 && maaned == 8)) { System.out.println("Gratulerer med dagen!");
25 Boolske verdier Vi har tidligere i kurset lært to typer verdier: Typen int som representerer hele tall. Typen String som representerer tekst. boolean er en tredje type verdi Typen boolean representerer noe som er sant eller ikke sant. Den har altså kun to mulige verdier: true og false.
26 Boolske variable Boolske verdier kan holdes på av variabler (på samme måte som for tall og tekst) betalerhalvpris = alder<18 alder>66 ;
27 Boolske variable Boolske verdier kan holdes på av variabler (på samme måte som for tall og tekst) Slike variable er av typen boolean boolean betalerhalvpris; betalerhalvpris = alder<18 alder>66 ;
28 Boolske variable Boolske verdier kan holdes på av variabler (på samme måte som for tall og tekst) Slike variable er av typen boolean En boolsk variabel kan brukes alle steder hvor man kan bruke en boolsk verdi boolean betalerhalvpris; betalerhalvpris = alder<18 alder>66 ; if (betalerhalvpris) {...
29 KONTROLLFLYT
30 Hvordan et program flyter fra linje til linje Dette er temmelig enkelt for det vi har lært frem til nå (endrer seg snart..) Hovedregel: Gjør ferdig en linje, deretter gå til linjen nedenfor Ved en if-setning (uten else) Dersom det som testes er sant: gå til første linje i blokken ellers: hopp over blokken
31 Hvordan et program flyter fra linje til linje Ved en if-else-setning Dersom det som testes er sant: gå til første linje i blokken etter if ellers: gå til første linje i blokken etter else
32 Etterlign kjøring, med blyant og papir Gjør manuelt det samme som datamaskinen ville gjort, linje for linje Kan gjøres i hodet, men enklere på papir (print ut koden og bruk blyant) Vær presis - her er hver detalj viktig
33 Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if (lengde==bredde){ omkrets = 4*lengde; else { omkrets = (2*lengde) + (2*bredde); System.out.println("Omkrets: " + omkrets) ;
34 Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 ==bredde){ omkrets = 4*lengde; else { omkrets = (2*lengde) + (2*bredde); System.out.println("Omkrets: " + omkrets) ;
35 Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = (2*lengde) + (2*bredde); System.out.println("Omkrets: " + omkrets) ;
36 Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = (2* 7 ) + (2*bredde); System.out.println("Omkrets: " + omkrets) ;
37 Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = ( 14 ) + (2*bredde); System.out.println("Omkrets: " + omkrets) ;
38 Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = ( 14 ) + (2* 4 ); System.out.println("Omkrets: " + omkrets) ;
39 Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = ( 14 ) + ( 8 ); System.out.println("Omkrets: " + omkrets) ;
40 Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = 22 ; System.out.println("Omkrets: " + omkrets) ;
41 Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = 22 ; System.out.println("Omkrets: " + 22 ) ;
42 METODER
43 Vi trenger mer struktur! Vi har frem til nå skrevet programmer linje for linje nedover under "static void main" Realistiske program er imidlertid ofte tusener eller millioner av linjer! Ingen kan ha oversikt over en flat liste på mange tusen (eller millioner) av linjer Et første nivå av strukturering er metode: en navngitt blokk med kodelinjer, som kan kalles og tilpasses
44 Ulike versjoner av metoder Metoder kommer i ulike versjoner, av gradvis økende kompleksitet Vi vil introdusere de involverte aspektene stegvis Først i dag: Statisk void-metode uten parametre Neste uke: Statisk void-metode med parametre Om tre uker: Statisk metode med returverdi Litt senere i høst: Instans-metode (OO)
45 Hvordan kan en metode se ut public static void mittmetodenavn(){ kodelinje1; kodelinje2;... For å kjøre alle kodelinjene i metoden (kalle metoden): mittmetodenavn();
46 Eksempel på metode: kodeblokk public class u2voidmetodeutenparameter1{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); System.out.println("Da var jeg ferdig!"); public static void main(string[] args) { gibeskjed();
47 Eksempel på metode: navn public class u2voidmetodeutenparameter1{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); System.out.println("Da var jeg ferdig!"); public static void main(string[] args) { gibeskjed();
48 Eksempel på metode: kall public class u2voidmetodeutenparameter1{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); System.out.println("Da var jeg ferdig!"); public static void main(string[] args) { gibeskjed();
49 Eksempel på metode: ramme rundt kallet public class u2voidmetodeutenparameter1{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); System.out.println("Da var jeg ferdig!"); public static void main(string[] args) { gibeskjed();
50 Eksempel på metode: ramme rundt hele koden public class u2voidmetodeutenparameter1{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); System.out.println("Da var jeg ferdig!"); public static void main(string[] args) { gibeskjed();
51 Kontrollflyt og metoder public class u2voidmetodeutenparameter{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); static void kallvidere(){ System.out.println("Her kommer det"); gibeskjed(); System.out.println("Og en gang til"); gibeskjed(); System.out.println("Det var ikke mye"); public static void main(string[] args) { System.out.println("Hei, jeg vil si deg noe"); kallvidere(); System.out.println("Fikk du det likevel med deg?");
52 Kontrollflyt og metoder public class u2voidmetodeutenparameter{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); static void kallvidere(){ System.out.println("Her kommer det"); gibeskjed(); System.out.println("Og en gang til"); gibeskjed(); System.out.println("Det var ikke mye"); public static void main(string[] args) { System.out.println("Hei, jeg vil si deg noe"); kallvidere(); System.out.println("Fikk du det likevel med deg?");
53 Kontrollflyt og metoder public class u2voidmetodeutenparameter{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); static void kallvidere(){ System.out.println("Her kommer det"); gibeskjed(); System.out.println("Og en gang til"); gibeskjed(); System.out.println("Det var ikke mye"); public static void main(string[] args) { System.out.println("Hei, jeg vil si deg noe"); kallvidere(); System.out.println("Fikk du det likevel med deg?");
54 Oppsummering Feil kan fanges opp ved kompilering, ved kjøring, eller bare gi uønsket resultat Å kjenne til vanlige feilmeldinger senker frustrasjon når feil uunngåelig oppstår Programkode kjøres på en presist definert måte innad i en linje, og fra linje til linje Å «leke datamaskin» med blyant og papir er nyttig! Metoder strukturerer kode og unngår redundans Kan tilpasses med parametre tema neste uke, sammen med arrayer og løkker.
Feilmeldinger, kontrollflyt og void-metoder
Feilmeldinger, kontrollflyt og void-metoder Skjønne hvordan et program presist utføres og forberede seg på håndtering av krøll INF1000, uke2 Geir Kjetil Sandve Krøll Programmeringskrøll: Programmet vil
DetaljerFeilmeldinger, kontrollflyt og void-metoder
Feilmeldinger, kontrollflyt og void-metoder Skjønne hvordan et program presist utføres og forberede seg på håndtering av krøll INF1000, uke2 Geir Kjetil Sandve Krøll Programmeringskrøll: Programmet vil
DetaljerINF uke 2. Inputt, beslutninger, kontrollflyt og prosedyrer
INF1001 - uke 2 Inputt, beslutninger, kontrollflyt og prosedyrer Repetisjon fra forrige uke Lese inn fra tastaturet Beslutninger Kontrollflyt Prosedyrer Outline: Repetisjon fra forrige uke Lese inn fra
DetaljerIN uke 2. Presis forståelse av programmering
IN1000 - uke 2 Presis forståelse av programmering Forrige uke Programmering er problemløsing Bruke variabler for å ta vare på verdier Feilmeldinger Innlesing fra tastatur Beslutninger (if) - avgjøre hvilken
DetaljerIN uke 2. Presis forståelse av programmering
IN1000 - uke 2 Presis forståelse av programmering Forrige uke Programmering er problemløsing Bruke variabler for å ta vare på verdier Feilmeldinger Innlesing fra tastatur Beslutninger (if) - avgjøre hvilken
DetaljerLøse reelle problemer
Løse reelle problemer Litt mer om løkker, metoder med returverdier, innlesing fra fil og strenger INF1000, uke5 Ragnhild Kobro Runde MER OM LØKKER Repetisjon fra forrige uke: while Syntaks: while (condition)
DetaljerMetoder med parametre, løkker og arrayer
Metoder med parametre, løkker og arrayer Løse problemer med programmering INF1000, uke3 Ragnhild Kobro Runde METODER MED PARAMETRE Statiske void-metoder med parametre Den typen metoder vi så på forrige
DetaljerINF 1000 høsten 2011 Uke september
INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 INF1000 undervisningen Forelesningene: Første
DetaljerINF1000 undervisningen INF 1000 høsten 2011 Uke september
INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første
DetaljerINF1000 (Uke 5) Mer om løkker, arrayer og metoder
INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse
DetaljerJentetreff INF1000 Debugging i Java
Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren ingridgg@student.matnat.uio.no 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver
DetaljerProgrammering Høst 2017
Programmering Høst 2017 Tommy Abelsen Ingeniørfag - Data Innledning Dette er et dokument med litt informasjon og eksempler om kontrollstrukturer, samt oppgaver til forskjellige kontrollstrukturer. Spør
DetaljerLøkker og arrayer. Løse problemer med programmering. INF1000, uke3 Geir Kjetil Sandve
Løkker og arrayer Løse problemer med programmering INF1000, uke3 Geir Kjetil Sandve Hva vi har lært så langt Variabler og uttrykk Beslutninger Kontrollflyt og feilmeldinger Metoder og parametre Fokus i
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
Detaljer13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
DetaljerLøse reelle problemer
Løse reelle problemer Litt mer om løkker, prosedyrer, funksjoner, tekst og innlesing fra fil INF1000, uke4 Geir Kjetil Sandve 1 Tilbakeblikk Dere bør nå beherske det sentrale fra uke 1 og 2: Uttrykk, typer,
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5
DetaljerKort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon
Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: fredrso@ifi.uio.no Utdanning: Dataingeniør, 2000 Cand.Scient,
DetaljerOversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program
Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning
DetaljerIN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
DetaljerPraktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder
Praktisk informasjon INF (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Når disse timene er over har du lært nok til å løse oblig Frist.
DetaljerOversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon
Oversikt INF1000 Uke 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning Uttrykk
DetaljerIN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
DetaljerFinne ut om en løsning er helt riktig og korrigere ved behov
Finne ut om en løsning er helt riktig og korrigere ved behov Finurlige feil og debugging av kode IN1000, uke5 Henrik H. Løvold Oppgave (Lett modifisert fra eksamen 2014) Skriv en funksjon Dersom parameteren
DetaljerEksempel: Body Mass Index (BMI) Forelesning inf1000 - Java 3. Ferdig program (første del) Ferdig program (siste del)
Forelesning inf1000 - Java 3 Eksempel: Body Mass Index (BMI) Tema: Mer om forgreninger Løkker Arrayer Litt om easyio Ole Christian Lingjærde, 5. september 2012 Ole Chr. Lingjærde Institutt for informatikk,
Detaljeri=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
Forelesning inf - Java 4 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
DetaljerForelesning inf Java 4
Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette
DetaljerFra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr
Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser
DetaljerINF1000 (Uke 4) Mer om forgreninger, While-løkker
INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen I dag Repetisjon easyio Enkle if-setninger
DetaljerPraktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut
Praktisk informasjon INF (Uke 5) Mer om løkker, arrayer og metoder Oblig er lagt ut Frist 8. februar Kan løses etter denne forelesningen Grunnkurs i programmering Institutt for Informatikk Universitetet
DetaljerInnhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java
INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:
DetaljerINF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
DetaljerI 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 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Repetisjon easyio Enkle if-setninger Mer om forgrening While-løkker Are Magnus
DetaljerEksempel: Body Mass Index (BMI)
Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 3 Tema: Forgreninger Løkker Arrayer Ole Christian Lingjærde, 5. september 2013 1 Eksempel: Body Mass Index (BMI) Vi skal lage et program som beregner BMI
DetaljerTre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm
Mer om easyio Mer om forgreninger Løkker 7. september 2004 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 4 1 Tre måter å lese fra terminal Først:
DetaljerHvordan løse problemer med programmering?
Start screencast!! (tidlig..) Ha klar glass med linser Lukk programmer, untatt Atom, Keynote, Terminal Hvordan løse problemer med programmering? Problemløsning, løkker, og funksjoner med parametre IN1000,
DetaljerLøsningsforslag ukeoppg. 2: 31. aug - 6. sep (INF Høst 2011)
Løsningsforslag ukeoppg. 2: 31. aug - 6. sep (INF1000 - Høst 2011) Variabler, uttrykk, fogreninger (if-else) (kapittel 2 og 4.1-4.2 i læreboka, "Rett på Java" 3. utg.) Mål Få trening i teorien du trenger
DetaljerINF1000: Forelesning 4. Mer om arrayer Metoder
INF1000: Forelesning 4 Mer om arrayer Metoder MER OM ARRAYER 2 Array som en samling verdier Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene: String[] studenter = new String[500];
DetaljerForelesning inf Java 5
Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen
DetaljerForelesning inf Java 5
Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen til et Java-program
DetaljerProgrammeringsspråket C
Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen : 09.00
DetaljerINF1000 : Forelesning 3
INF1000 : Forelesning 3 Programeksempler Løkker Arrayer Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet i Oslo 1 Body Mass Index (BMI) Vi skal lage et program
DetaljerInnlesing fra fil og metoder med returverdier
Innlesing fra fil og metoder med returverdier Løse reelle problemer INF1000, uke4 Geir Kjetil Sandve 1 En merknad angående kompleksitet Jeg vil i dag vise mer komplekse problemstillinger enn dere er forventet
DetaljerINF1000 Uke 4. Innlesning fra terminal. Uttrykk og presedens. Oversikt
Oversikt INF1000 Uke 4 Forgreininger, løkker og arrayer Litt repetisjon Blokker og forgreininger if-setninger if-else-setninger switch-setninger Løkker while-løkker do-while-løkker for-løkker Arrayer Opprette,
DetaljerINF1000 : Forelesning 4
INF1000 : Forelesning 4 Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet
DetaljerForkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.
Forkurs INF1010 Dag 2 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Gard Inge Rosvold (gardir@ifi.uio.no) Institutt for Informatikk, 14. januar 2016 Forkurs INF1010 - dag 2 Feilmeldinger 2 Forkurs INF1010
Detaljeri=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
Repetisjon: nesting av løkker Kort repetisjon av doble (nestede) løkker Mer om D-arrayer Introduksjon til D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk
DetaljerBlokker. Uke 4, INF 1000, 13 sept Løkker og arrayer. Eksempel. Deklarasjoner inne i blokker. Institutt for Informatikk Universitet i Oslo
Blokker Uke 4, INF, 3 sept. 5 - Løkker og arrayer. Institutt for Informatikk Universitet i Oslo Arild Waaler En blokk er en samling instruksjoner omgitt av krøllparenteser: { instruksjon ; instruksjon
DetaljerHva 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; }
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; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =
DetaljerJava 4. Mer om easyio Mer om forgreninger Løkker. 7. september 2004
Java 4 Mer om easyio Mer om forgreninger Løkker 7. september 2004 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo 1 Tre måter å lese fra terminal Først:
DetaljerBlokker og metoder INF1000 (Uke 6) Metoder
Blokker og metoder INF1000 (Uke 6) Metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Are Magnus Bruaset og Arild Waaler En blokk er en samling instruksjoner omgitt av krøllparenteser:
DetaljerI dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal.
I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Repetisjon easyio Enkle if-setninger Mer om forgrening While-løkker Are Magnus
DetaljerFinne ut om en løsning er helt riktig og korrigere ved behov
Finne ut om en løsning er helt riktig og korrigere ved behov Finurlige feil og debugging av kode IN1000, uke5 Geir Kjetil Sandve Oppgave (Lett modifisert fra eksamen 2014) Skriv en funksjon Dersom parameteren
DetaljerLøkker og lister. Løse problemer med programmering. INF1001, uke3 Geir Kjetil Sandve
Løkker og lister Løse problemer med programmering INF1001, uke3 Geir Kjetil Sandve Hva vi har lært så langt Variabler og uttrykk Beslutninger Kontrollflyt Prosedyrer Fokus i dag Repetert kjøring (løkker)
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 10. juni 2005 Tid for eksamen: 14.30 17.30 Oppgavesettet er på
DetaljerLøsningsforslag ukeoppg. 3: sep (INF Høst 2011)
Løsningsforslag ukeoppg. 3: 7. - 13. sep (INF1000 - Høst 2011) Utskrift/ lesing med easyio, arrayer, løkker (kapittel 3-4 i læreboka, "Rett på Java" 3. utg.) NB! Legg merke til at disse er løsningsforslag.
DetaljerBody Mass Index (BMI) INF1000 : Forelesning 3. Ferdig program (forts.) Ferdig program
Body Mass Index (BMI) Programeksempler Løkker Arrayer Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet i Oslo INF1000 : Forelesning 3 1 Vi skal lage et program
DetaljerINF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012
INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver
DetaljerForkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen
Forkurs INF1010 Dag 1 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Tuva Kristine Thoresen (tuvakt@ifi.uio.no) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output
DetaljerINF1000 Uke 3. Innlesning fra terminal. Uttrykk og presedens. Oversikt. Litt repetisjon Blokker og forgreininger
Oversikt INF1000 Uke 3 Forgreininger, løkker og arrayer Litt repetisjon Blokker og forgreininger if-setninger if-else-setninger switch-setninger Løkker while-løkker do-while-løkker for-løkker Arrayer Opprette
DetaljerForelesning inf Java 3
Forelesning inf1000 - Java 3 Tema: Forgreninger Løkker Arrayer Ole Christian Lingjærde, 5. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 5. september 2013 1 Eksempel: Body Mass Index (BMI)
DetaljerLøse reelle problemer
Løse reelle problemer Litt mer om løkker, metoder med returverdier og innlesing fra fil INF1000, uke4 Geir Kjetil Sandve Repetisjon fra forrige uke: while Syntaks: while (condition) do1; do2;... Eksempel:
DetaljerLitt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator
Litt mer om uttrykk: ++ og -- INF : Forelesning Løkker og arrayer Mye og viktig stoff. Du MÅ løse oppgaver selv for å lære!. september 6 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for
DetaljerINF1000 (Uke 15) Eksamen V 04
INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a
DetaljerINF1000 (Uke 15) Eksamen V 04
INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a
DetaljerMER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:
INF1000: Forelesning 4 Mer om arrayer Metoder MER OM ARRAYER 2 Array som en samling verdier Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene: String[] studenter = new String[500];
DetaljerKort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder
INF1000 : Forelesning 4 Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet
DetaljerInput og beslutninger
Input og beslutninger Hvordan få et program til å gjøre noe INF1000, uke1 Geir Kjetil Sandve Et lite oppdrag i bakgrunnen Under pultene på bakerste rad er det klistret post-it lapper med to tall skrevet
DetaljerLøse reelle problemer
Løse reelle problemer Løse problemer med data fra fil, samt litt mer om funksjoner IN1000, uke6 Geir Kjetil Sandve Mål for uken Få enda mer trening i hvordan bruke løkker, samlinger og beslutninger for
DetaljerUke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO
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
DetaljerUNIVERSITETET I OSLO
FASIT UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen :
Detaljerprogrameksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"
Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte En større problemstilling I uke 4 skrev vi et program for å sjekke om et gen (en tekstfil) inneholdt ordet "TGA"
DetaljerLæringsmål og pensum. if (be): else (not_to_be):
1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk - 3rd edition: Kapittel 3 Professor Alf Inge Wang 2 if (be): else (not_to_be): 3 Læringsmål og pensum Mål Lære å bruke og
Detaljerfor (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print(i*j); System.out.println();
Repetisjon: nesting av løkker Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk
DetaljerDagens tema Kapittel 8: Objekter og klasser
Dagens tema Kapittel 8: Objekter og klasser Hva er objekter og klasser? Programmering med objekter Klassedeklarasjoner Generering av objekter Tilgang til elementer i objektene Objekt- og klassevariable
DetaljerINF1000: noen avsluttende ord
Pensum Det som er gjennomgått på forelesningene INF1000: noen avsluttende ord Arne og Fredrik Stoff som er behandlet i oppgaver/obliger Notat om Informasjonsteknologi, vitenskap og samfunnsmessige virkninger
DetaljerINF 1010, vår 2005 Løsningsforslag uke 11
INF 1010, vår 2005 uke 11 Anders Brunland 11. april 2005 Oppgave 1 Oppgave 1 i kapittel 19, Rett på Java Er følgende metoder lovlige? Hovorfor/hvorfor ikke? a) void koknverter ( int mnd ) { konverterdato
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 10. juni 2009 Tid for eksamen: 9.00 12.00 Oppgavesettet
DetaljerInf1000 uke 5 18.sept. 2007
En klasse er noe - en metode gjør noe Inf1000 uke 5 18.sept. 2007 Metoder Arne Maus, Gruppen for objektorientering, modellering og språk (OMS) Inst. for informatikk, Univ i Oslo 1 Metoder: Vi deler opp
DetaljerIntroduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
DetaljerOversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp
INF1000: Grunnkurs i objektorientert programmering Uke 0, høst 2014 Oversikt Informatikk - hva & hvorfor? Datasystemer, maskinvare, programmer Objektorientert programmering i INF1000 Programmeringsspråket
DetaljerDagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering?
Dagens tema Dagens tema Kildekode Hva er kompilering? Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Hvordan oppdage feil? Anta at vi lager dette lille
DetaljerTDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang
1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk - 3rd edition: Kapittel 3 Professor Alf Inge Wang 2 if (be): else (not_to_be): 3 Læringsmål og pensum Mål Lære å bruke og
DetaljerVariabler, input og beslutninger
Variabler, input og beslutninger Hvordan få et program til å gjøre noe INF1000, uke1 Geir Kjetil Sandve Programmert fra før? Faget forutsetter ingen programmeringserfaring, og opplegget er tilpasset deretter
DetaljerForelesning inf Java 3
Forelesning inf1000 - Java 3 Tema: Mer om forgreninger Løkker Arrayer Litt om easyio Ole Christian Lingjærde, 5. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Eksempel:
DetaljerINF1010 Sortering. Marit Nybakken 1. mars 2004
INF1010 Sortering Marit Nybakken marnybak@ifi.uio.no 1. mars 2004 Dette dokumentet skal tas med en klype salt og forfatter sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet
DetaljerEksempel 1 Eksempel 2 Dramatisering. INF1000 uke 3. Sundvollen 7. september 2015 Dag Langmyhr. INF1000 Sundvollen
INF1000 uke 3 Sundvollen 7. september 2015 La oss starte med noe helt trivielt Problem: Sangtekster Du har fått ansvaret for å lage hefter for en allsangsaften. Den store favoritten er 99 bottles of beer
DetaljerVelkommen til. INF våren 2016
Velkommen til INF1010 - våren 2016 Denne uken (onsdag og torsdag): Om INF1010 Java datastrukturer Klasser med parametre i Java Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 INF1010
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 11. juni 2004 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 8
DetaljerINF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004
INF1000 Metoder Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere
DetaljerLøsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse
DetaljerDel 3: Evaluere uttrykk
Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret
DetaljerI dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger
I dag INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Litt repetisjon Mer om uttrykk Lesing og skriving til terminal Forgreninger
DetaljerINF1000 oppgaver til uke 38 (17 sep 23 sep)
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
DetaljerOBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK
INF1000: Forelesning 6 Klasser og objekter del 1 OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK Motivasjon Anta at vi ønsker å lage et studentregister hvor vi for hver student lagrer, bruker og telefonnummer Med
DetaljerOblig4 - forklaringer. Arne og Ole Christian
Oblig4 - forklaringer Arne og Ole Christian Struktur og alle (?) klassene import easyio.*; import java.util.*; class Oblig4 { public static void main (String[] args) { String s1 = "Stasjoner-1.txt"; String
Detaljer