Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

1 Repetisjon JSP Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker Førsteamanuensis Alf Inge Wang TDT4110 IT Grunnkurs.

Liknende presentasjoner


Presentasjon om: "1 Repetisjon JSP Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker Førsteamanuensis Alf Inge Wang TDT4110 IT Grunnkurs."— Utskrift av presentasjonen:

1 1 Repetisjon JSP Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker Førsteamanuensis Alf Inge Wang TDT4110 IT Grunnkurs

2 2 Repetisjon JSP Informasjon om eksamen Fikk spørsmål etter forelesning 10/11 angående om det er lov å ta med seg tilleggshefte på eksamen? –Svar: Ja det er lov å ta med seg hefte på eksamen. Dere må imidlertid sjekke at dere har et tilleggshefte med CSS (grønn). Hvis ikke må dere lære dere alt om CSS utenat :(

3 3 Repetisjon JSP Undervisningsmål Målet for forelesningen er å gjennom gå følgende tema i dybden og gi en repetisjon av: –Variabler, –Tabeller –if-setninger –for/while-løkker Oppfordrer sterk til spørsmål underveis hvis det er enda ting som er uklart i dette stoffet!

4 4 Repetisjon JSP Variabler Variabler brukes til å ta vare på informasjon som vi trenger under kjøring av et program. I JSP/Java må man deklarere en variabel med en datatype før man kan bruke variabelen. Navnet på en variabel bør si noe om hvilken type informasjon den skal inneholde. For tellere og lignende kan man bruke korte variabelnavn som x,y,i, j etc.

5 5 Repetisjon JSP Deklarering (opprettelse) og tilordning av verdi (s.31) Bruker den ”vanlige” JSP-merkelappen Variabel opprettes slik (deklarerer data type): Deretter kan vi gi variabelen en verdi slik: Kan manipulere (endre) på verdi

6 6 Repetisjon JSP Oversikt over datatyper vi bruker i kurset int brukes til heltall: int antall=1; double brukes til flyttall: double pi=3.14; boolean brukes til sannhetsverdier (true eller false): boolean harFunnetElement=false; String brukes til strenger (samling av flere tegn): String setning=”Dette er en fin setning”; –Variabler av typen String blir objekter som man kan kjøre metoder på: setning.equals(”Nasse nøff”);

7 7 Repetisjon JSP Oppgave 1: Lag variabler med datatype til dette problemet ”Det skal lages et program som skal ta vare på og sende rapporter til bilister som fyller bensin på GasTex bensinstasjoner som inneholder alle nødvendige personinformasjon om kunde, hvor mye bensin har har kjøpt, hvor mye penger han har brukt på bensin, distanse kjørt (basert på at kunde taster inn ved kjøp) gjennomsnittspris på bensin, om kunden har gullkort, og hvor mange ganger kunden har kjøpt bensin”. –Trenger ikke å bruke tabeller!

8 8 Repetisjon JSP Svar på oppgave 1: <% String fornavn; String etternavn; String gateadresse; int postnummer; String poststed; int hjemmeTelefon; int mobilTelefon; int kundenummer; boolean gullkort; double totaltBensin; double totaltDistanse; double totaltBetaling; double snittPris; int antallKjøp; %>

9 9 Repetisjon JSP Bruk av variabler Man kan initiere en variabel med en startverdi: int lengde=7; Man kan beregne aritmetiske uttrykk: lengde=256*23+12*2-12*2; Man kan regne på andre variabler: lengde=distanse*4+avstand*2; Man kan øke/minske sin egen verdi: lengde=lengde+10; lengde=lengde-5;

10 10 Repetisjon JSP Bruk av variabler (2) Man kan typeomforme uttrykk til riktig datatype: double svar= (double) 150/100; –Uten typeomformingen (double) får man svaret 1.0 –Alternativ: double svar= 150.0/100; Man kan beregne sannhetsverdi i logiske uttrykk: int a=2; int b=5; int c=8; boolean sant= (a>b || b>c || c>a);

11 11 Repetisjon JSP Bruk av variabler (3) Konkatenere strenger (sette sammen strenger): String navn=”Alf ”+”Inge ”+” Wang”; –Gir strengen navn=”Alf Inge Wang”; Legge til tekst i strenger: String vers=”Jeg gikk en tur på stien ”; vers=vers+”og hørte skogens ro, ”; vers=vers+”da hørte jeg fra stien, ”; vers=vers+”en løk som sa koko.”; –Gir strengen vers=”Jeg gikk en tur... løk som sa koko.”;

12 12 Repetisjon JSP Bruk av variabler (4) For å bruke dobbelfnutter (” ”) i strenger må man bruke backslash (\) foran hver dobbelfnutt: String vers=”Jeg gikk en tur på \”stien\”, ”; vers=vers+”og hørte skogens \”ro\”, ”; out.println(vers); –Gir utskriften: Jeg gikk en tur på ”stien”, og hørte skogens ”ro”,

13 13 Repetisjon JSP Bruk av metoder som har String som parameter I metoder som bruker String som parameter (f.eks. out.println() og executeQuery() kan man gjøre på samme måte som man bruker strenger: String vers=”Jeg gikk tur på stien”; vers = vers + ”og \”gidda\” ikke mer”; out.println(”Variabelen: ”+ vers +” og litt til”);

14 14 Repetisjon JSP Bruk av metoder som har String som parameter (2) Å bruke en egen streng til spørring i databasen kan være nyttig for executeUpdate(): String navn = ”Alf Inge”; String status = ”smurf”; int telefonnr = ; String sp = ”INSERT INTO person”; sp = sp + ”VALUES (’” + navn + ”’,”; sp = sp + ”’” + status + ”’,”; sp = sp + telefonnr + ”)”; st.executeUpdate(sp);

15 15 Repetisjon JSP Operatorer i logiske uttrykk Logiske utrykk er et utrykk (påstand) som evaluerer til sann (true) eller usann (false Operatorer man bruker i logiske uttrykk: Større ennPI > 3.12true >=Større enn eller likPI >= 3.14true !=Ikke lik (ulik)7 != 5true ==Lik8 == 8true !Snur sannhetsverdien!falsetrue

16 16 Repetisjon JSP Kombinasjon av logiske uttrykk Man kan kombinere logiske uttrykk med på bruke && (og) og || (eller): – 7)&&(3>9) %>Leses 5>7 OG 3>9 For at uttrykket skal være sant, må begge sider av && være sanne (true). – 2)||(4 Leses 4>2 ELLER 4<8 For at uttrykket skal være sant, må minst en av sidene av || være sanne (true).

17 17 Repetisjon JSP Tabeller (array) Brukes til å lagre flere elementer av samme datatype i en variabel Tabell brukes typisk til å lagre lister av navn, en serie med måledata, og returnering av flere parametere fra en metode. Eks: String[] navneliste = new String[20]; –Denne strengen inneholder 20 elementer fra index 0 til 19. navneliste[0] = ”Petter Hansen”; navneliste[1] = ”Johan Pedersen”;

18 18 Repetisjon JSP Tabeller i flere dimensjoner I enkelte tilfeller er det ønskelig å kunne lage tabeller av flere dimensjoner: String[][] kartNavn = new String[100][100]; –Oppretter en tabell med navn kartnavn i to dimensjoner med størrelse 100,100. kartNavn[30,50] = ”Nidarosdommen”; –Setter inn verdi på tabellen på index 30,50. int[][][][][] pentaDimensjon = new int[10][10][10][10][10]; –Oppretter en tabell med 5 dimensjoner. Husk at antall bytes som settes av i minnet: –(Multiplikasjon av størrelsen på alle dimensjoner) x (antall bytes for datatype)

19 19 Repetisjon JSP Oppgave 2: Hvor mye plass blir satt av i minnet (bytes)? Oppgave 2a)int tar 4 bytes (32 bits) int[][][] måledata = new int[30][30][30]; Oppgave 2b)double tar 8 bytes (64 bits) double[][][][][][] multidimensjon = new double[20][10][15][10][30][40]; Oppgave 2c)hvor mye trengs for booelan? boolean[][] funnetKart = new boolean[200][200];

20 20 Repetisjon JSP Svar oppgave 2: 1 Kbyte = 1024 bytes (2 10 ), 1 Mbyte =1,048,576 (2 20 ) Oppgave 2a) int tar 4 bytes (32 bits) int[][][] måledata = new int[30][30][30]; Svar: 30x30x30 x 4 bytes= 108,000 bytes = ca 105 Kbytes Oppgave 2b) double tar 8 bytes (64 bits) double[][][][][][] multidimensjon = new double[20][10][15][10][30][40]; Svar: 20x10x15x10x30x40 x 8 bytes= 288,000,000 bytes = 275 Mbytes Oppgave 2c) boolean tar 1 byte (8 bits) boolean[][] funnetKart = new boolean[200][200]; Svar: 200x200 x 1 byte = 40,000 bytes = 39 Kbytes

21 21 Repetisjon JSP Valg: if-setning Skrivemåte for en betingelse og eventuelt handlinger i JSP: if ( ) { ; } Handlingen(e) utføres kun dersom betingelsen er sann VIKTIG: Betingelsen er hva som helst som evaluerer eller returnerer en av verdiene true eller false. Krøllparantes

22 22 Repetisjon JSP if-setning med flere alternativer: else if Mange påfølgende betingelser og handlinger: if( ){ ; } else if( ){ ; }... (evt. flere else if) else { ; } NB! Bare en av handlingen(e) utføres hver gang programmet utføres Hvis ikke vi har else til slutt kan evt. ingen ting utføres

23 23 Repetisjon JSP Ulike typer if-setninger Sammenlikning av størrelser på variabler: if (x>5 && (y==2 || z!=9)) {... } –Her evalueres det logiske uttrykket til å få verdien true eller false Bruk av metoder som returnerer true/false inne i betingelsen på if-setning: if (fornavn.equals(”Alf Inge”)) {... } –Her kjøres metoden equals som returnerer enten true eller false if (rs.next()) {... } –Her kjøres metoden next() som returnerer true eller false avhengig om det finnes mer data igjen.

24 24 Repetisjon JSP Ulike typer if-setninger (2) Bruk av metoder som returnerer andre verdier enn true/false: if (mittNavn.compareTo(dittNavn)>0) {...} –Her kjøres metoden compareTo som returnerer et heltall. Dette heltallet settes inn i uttrykket som evalueres i uttrykket til enten true eller false Bruk av boolean variabler: if (erSant) {... } –boolean variabler kan enten ha verdien true eller false og kan settes direkte inn i en if-setning. Denne setningen sjekker om erSant har verdien true

25 25 Repetisjon JSP To alternative skrivemåte av samme if-setning: int a=3; int b=8; int c=12; if (c>a+b) { out.println(”Yeah”); } else { out.println(”Noah”); } int a=3; int b=8; int c=12; boolean sant=(c>a+b); if (sant) { out.println(”Yeah”); } else { out.println(”Noah”); } Variabelen sant kan få verdien true eller false - det samme som uttrykket (c>a+b)

26 26 Repetisjon JSP To alternative skrivemåte av samme if-setning: (2) Alternativt kunne man ha skrevet (smør på flesk): int a=3; int b=8; int c=12; boolean sant=(c>a+b); if (sant==true) { out.println(”Yeah”); } else { out.println(”Noah”); }

27 27 Repetisjon JSP Nøstede if-setninger Man kan ha if-setninger inne i if-setninger (nyttig der du har hierarkiske nivåer): if (livsform.equals(”dyr”)) { if(art.equals(”hund”){ out.println(”Voff”); else { out.println(”Mjau eller noe annet...”); } } else { out.println(”Du er antagelig et menneske..”); }

28 28 Repetisjon JSP while-løkke while ( ) { handling(er); } Utfører handling(er) i blokka hvis betingelsen er true Betingelsen er lik som for if-setning og kan inneholde logiske uttrykk som inkluderer variabler, tall og metoder som kan evaluere til true eller false

29 29 Repetisjon JSP Huskeregel for while-løkke Sørg for at betingelsen første gang while-løkka skal kjøres er sann. Sørg for at handlingene i while-løkka en eller annen gang gjør at betingelsen blir false. Før du kjørere JSP-skriptet, sjekk betingelsen og sjekk innholdet i handlingene i løkka.

30 30 Repetisjon JSP Nyttig bruk av while-løkker Hente ut resultatsett fra en databasespørring: while(rs.next()) {... } –Metoden next() returnerer true så lenge det er noe data å hente ut fra spørringen. –Når resultatsettet (rs) er tomt, returnerer next() false og while-løkka stopper. Algoritmer for sortering: while(harByttet) { harByttet=false;... (sjekke om data i tabell må bytte plass) –Bruker en boolean variabel for å registrere at to elementer i en tabell har byttet plass og skal dermed fortsette while-løkka

31 31 Repetisjon JSP for-løkker Brukes til å gjenta en blokk et bestemt antall ganger. Bruker en teller og en betingelse: <% for (initialisering teller; betingelse; endring teller) { handling(er); } Gangen i en for-løkke: 1.Initialiser teller (f.eks. int x=0; 2.Sjekk betingelse og hvis den er true utfør blokk 3.Endre teller 4.Sjekk betingelse og hvis den er true utfør blokk 5....

32 32 Repetisjon JSP Nyttig bruk av for-løkker Utføre noe et bestemt antall ganger: for(int i=1; i<=10;i=i+1) {... } –Hvor mange ganger blir for-løkka utført? Gå igjennom en tabell: for(int i=0; i

33 33 Repetisjon JSP Hvorfor bruker man ikke i<=tabell.length i betingelsen? String[] tabell = new String[10]; Gir en tabell med 10 elementer og tabell.length=10 –tabell[0]Husk at index 0 er første element! –tabell[1] –tabell[2] –... –tabell[9]Husk at index n-1 er siste element der størrelsen er n Det siste elementet er altså tabell[9] som gjør at i

34 34 Repetisjon JSP Bruk av tabell.length for tabeller av flere dimensjoner tabell.length gir antall rader i en tabell tabell[0].length gir lengden på rad 1 tabell[0][0].length gir lengden på rad 2 osv. Eks: String[][][] tabell = new String[10][7][5]; out.println(tabell.length);// Skriver ut verdien 10 out.println(tabell[0].length);// Skriver ut verdien 7 out.println(tabell[0][0].length);// Skriver ut verdien 5

35 35 Repetisjon JSP Nøstede for-løkker (for-løkker inne i for-løkker) Som for if-setningen kan man også ha flere nivåer med for-løkker (dette gjelder også while): int z=0; for (int x=1; x<10; x=x+1) { for (int y=1; y<10; y=y+1) { z=z+1; } // slutt for(y) }// slutt for (x) out.println(”zx”+z); Hva blir skrevet ut her og hvordan blir programmet kjørt?

36 36 Repetisjon JSP Oppgave1: Bruk av for-løkker til traversering av tabell Gitt at du har en tabell nedbor som er definert: double[][] nedbor = new double[24][60]; –Tabellen inneholder mm nedbør for 24 timer og 60 mintter av en dag: nedbor[time][minutt] Lag et JSP-script som skriver ut nedbør for hvert kvarter for hver fjerde time: –00:00, 00:15, 00:30, 00:45, 04:00, 04:15, 04:30, 04:45, Her må man bruke nøstende for-løkker oppgave1.jsp

37 37 Repetisjon JSP Oppsummering Variabler: –int: Brukes til beregninger og tellere. Aritmetiske uttrykk –double: Brukes til beregninger. Aritmetiske uttrykk –boolean: Tar vare på sannhetsverdier. Logiske uttrykk –String: Tar vare på tekster. Kan konkateneres Tabeller: –Samling av data av samme type –Kan ha flere dimensjoner –Kan bruke tabell.length for å finne størrelse på tabell (n) –Index på elementer begynner på 0 og slutter på n-1

38 38 Repetisjon JSP Oppsummering (2) if-setninger –Betingelsen må kunne evalueres til true eller false –Betingelsen kan bestå av evaluering av variabler, en boolean variable, evaluering av resultat fra en metode, eller evaluering av en metode som returnerer true eller false –Kan bestå av else if og avsluttes ofte med else –Kan ha nøstede if-setninger som brukes som regel når betingelsene er av hierarkisk type

39 39 Repetisjon JSP Oppsummering (3) while-løkker –Betingelsen er lik som for if-setninger og må evaluere til true eller false –Bruker i tilfeller der man har en metode som man kaller som en eller gang vil bli false, f.eks. rs.next() –Brukes i tilfeller der man er usikker på når man er ferdig (f.eks. sortering av innhold i en tabell).

40 40 Repetisjon JSP Oppsummering (4) for-løkker: –Brukes i tilfeller der man skal utføre en blokk et beste antall ganger. –Utførelse av for er på følgende måte: Initialisering av telle variabel Sjekk av betingelse Utføre blokk Øk teller Sjekk av betingelse... –Nøstede for-løkker er nyttige til å gå igjennom flerdimensjonale tabeller.

41 41 Eksamensoppgave (5%) Følgende kode inneholder 5 feil. Finn disse feilene. Skriv ned linjenummer hvor feilen er og hva den riktige koden skal være. Repetisjon JSP

42 42 Eksamensoppgave Repetisjon JSP


Laste ned ppt "1 Repetisjon JSP Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker Førsteamanuensis Alf Inge Wang TDT4110 IT Grunnkurs."

Liknende presentasjoner


Annonser fra Google