Feilmeldinger, brukerinput og kontrollflyt
|
|
|
- Torhild Tønnessen
- 8 å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.
INF 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
IN 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
IN 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
Lø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)
Metoder 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
INF1000 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
INF1000 (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
Jentetreff INF1000 Debugging i Java
Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren [email protected] 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver
Programmering 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
Lø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
public 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
public 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
13.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,
Lø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,
UNIVERSITETET 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
Kort 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: [email protected] Utdanning: Dataingeniør, 2000 Cand.Scient,
Oversikt. 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
IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden [email protected] Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
Oversikt. 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
IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden [email protected] Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
Finne 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
Eksempel: 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,
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
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
UNIVERSITETET 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
Forelesning 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
Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr
Fra Python til Java En introduksjon til programmeringsspråkenes verden [email protected] Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser
INF1000 (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
INF1000 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
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 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Repetisjon easyio Enkle if-setninger Mer om forgrening While-løkker Are Magnus
Eksempel: 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
Tre 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:
Hvordan 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,
Lø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
INF1000: 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];
Forelesning 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
Forelesning 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
Programmeringssprå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
UNIVERSITETET 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
INF1000 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,
Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.
Forkurs INF1010 Dag 2 Andreas Færøvig Olsen ([email protected]) Gard Inge Rosvold ([email protected]) Institutt for Informatikk, 14. januar 2016 Forkurs INF1010 - dag 2 Feilmeldinger 2 Forkurs INF1010
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 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 =
Blokker 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:
Finne 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
Lø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)
INF1000 - 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
Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen
Forkurs INF1010 Dag 1 Andreas Færøvig Olsen ([email protected]) Tuva Kristine Thoresen ([email protected]) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output
Forelesning 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)
Lø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:
Litt 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
INF1000 (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
INF1000 (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
Input 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
Lø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
Uke 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
UNIVERSITETET 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 :
programeksempel 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"
Læ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
for (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
Dagens 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
UNIVERSITETET 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
Introduksjon 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
Oversikt. 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
Dagens 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
TDT4110 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
Forelesning 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:
INF1010 Sortering. Marit Nybakken 1. mars 2004
INF1010 Sortering Marit Nybakken [email protected] 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
Velkommen 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
UNIVERSITETET 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
INF1000 Metoder. Marit Nybakken [email protected] 16. februar 2004
INF1000 Metoder Marit Nybakken [email protected] 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere
Lø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
INF1000 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
OBJEKTER 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
Oblig4 - 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
