Webprogrammering høsten 2017

Størrelse: px
Begynne med side:

Download "Webprogrammering høsten 2017"

Transkript

1 for-løkker - innføring og eksempel Webprogrammering høsten 2017 for-løkker gjentar instruksjonene et gitt antall ganger. for-løkkens oppbygging: [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 15/09-17 Tilbakeblikk Idag: Byggestein så langt: variabler, betinget utføring, løkker: (for), while enkle arrayer I tillegg: innebygde funksjoner, slik som print() og count(). for og foreach-løkker assosiative arrayer Funksjoner flere innebygde PHP-funksjoner fra PHP-biblioteket egendefinerte funksjoner funksjoner og hovedprogram Eksempel 1: en enkel for-løkke <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" <body > print("her kommer en for-løkke</p>"); 3. for ( $i = 0 ; $i < 5 ; $i = $i + 1 ){ 4. print ("dollar-i er nå lik $i</p>"); print ("Nå er løkken slutt, fordi dollar-i er lik $i</p>"); 7. </body> </html> Linje 3 kontrollerer løkkens gang i = 0 oppstart - tellervariabelen $i (testvariabelen) tilordnes en startverdi $i < 5 forsettelsesbetingelsen - false => Løkken slutter. $i = $i + 1 oppdatering - for hver omgang. Her kommer en for-løkke dollar-i er nå lik 0 dollar-i er nå lik 1 dollar-i er nå lik 2 dollar-i er nå lik 3 dollar-i er nå lik 4 Nå er løkken slutt fordi dollar-i er lik 5 1 of 20 9/15/2017, 2:03 PM 2 of 20 9/15/2017, 2:03 PM

2 Forskjellen mellom while- og for-løkker foreach-løkken En for-løkke er strukturert. All styringen ligger mellom klammene foreach-løkken - "skreddersydd" for å håndtere arrayer (Oppstart, fortsettelsesbetingelse, oppdatering) er konsentrert i for-parentesen. bare nyttekoden mellom { og. "Parentesen" i en while-løkke oppgir bare en fortsettelsesbetingelse. Oppstart ordnes før løkkekoden starter (se linje 2 nedenfor) oppdatering ordnes som en del av løkkens "nyttekode" (mellom { og ). Begge løkketyper kan, i prinsippet, brukes i alle situasjoner som krever løkker for-løkker - når vi vet hvor mange ganger løkken skal kjøres. while-løkker når antallet ganger avhenger av ting som skjer "underveis". foreach-løkken utføresfor hver innførsel. Trenger ikke tenke initialisering eller oppdatering. Eksempel 2:(Gjentar eksempel 2 med begge former) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" <body > <h1> Enda en enkel while-løkke </h1> $i=0;//oppstart 3. while( $i < 10 ){ 4. print ("dollar-i er nå lik $i</p>"); 5. $i = $i + 2;//oppdatering print ("Nå er løkken slutt, fordi dollar-i er lik $i</p>"); 8. </body> </html> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" <body > <h1> Enda en enkel for-løkke </h1> //oppstart og oppdatering i parentesen 3. for ( $i = 0 ; $i < 10 ; $i = $i + 2 ){ 4. print ("dollar-i er nå lik $i</p>"); print ("Nå er løkken slutt, fordi dollar-i er lik $i</p>"); 7. </body> </html> For hver runde : fortløpende innførselverdi legges inn i variabelen $inførselvariabel (navnet er valgfritt, vi kan bruke hvilket variabelnavn vi vil) vi kan bruke verdien i løkkehandlingen (i print, eller på annet vis). as er et "reservert ord", som betyr noe spesielt i PHP, på linje med if, while for osv. Eksempel 3: Skriver ut bynavnene med en foreach-løkke $byer=array("oslo", "Bergen", "Trondheim", "Stavanger", "Kristiansand"); foreach ($byer as $bynavn){//$bynavn inførselvariabel print ("navn=$bynavn</p>"); navn=oslo navn=bergen navn=trondheim navn=stavanger navn=kristiansand for-løkken er lettere å programmere med, men vanskeligere å forstå. Dette fordi mange av detaljene, som programmereren selv må holde styr på i og rundt while-løkker, "abstraheres vekk" i for-løkken. Assosiative Arrayer (Zandstra (2003), s. 110) Assosiative arrayer indekserer sine innførsler med tekststrenger Så langt har vi sett på og arbeidet med arrayer som har tallindeks. Innførslene i de assosiative arrayene har streng-indeks. Å legge en innførsel i en assosiativ array gjøres som følger: $fodselsdager["niels"]="11.desember"; 3 of 20 9/15/2017, 2:03 PM 4 of 20 9/15/2017, 2:03 PM

3 Eksempel 4: fødselsdager Eksempel 5: Gjennomgå en assosiativ array med en foreach-løkke Vi ønsker å holde orden på fødselsdagsdatoene til noen av våre venner Med en assosiativ array kan vi gjøre det på følgende måte: //Oppretter arrayen $fodselsdager["niels"] = "11. desember"; $fodselsdager["jens"] = "12. juni"; $fodslesdager["mari"] = "21. oktober"; //Oppretter arrayen $fodselsdager["niels"] = "11. desember"; $fodselsdager["jens"] = "12. juni"; $fodselsdager["mari"] = "21. oktober"; //Gjennomgår arrayen og skriver ut indeksene og verdiene print ("Her kommer utskriften av navnene og datoene</p>"); foreach($fodselsdager as $navnvariabel => $datovariabel){ print ("navn = $navnvariabel, dato = $datovariabel</p>"); Assosiative arrayer holder mer informasjon enn de tall-indekserte To typer informasjon samtidig: vennens navn vennens fødselsdag De "gamle" tallindekserte arrayene lagrer bare én type informasjon. Hvordan kunne vi brukt våre gamle arrayer til å holde orden på fødselsdagsinformasjonen? ett mulig svar (klikk) (Se også Horgens hjemmeside for en liten videosnutt) Gjennomgå en assosiativ array foreach løkkestruktur for å gjennomgå en assosiativ array Her kommer utskriften av navnene og datoene navn = Niels, dato = 11. desember navn = Jens, dato = 12. juni navn = Mari, dato = 21. oktober Eksempel 6: Holde orden på en "handlekurv" (summen av prisene representerer prisnivået i butikken) //Oppretter arrayen $pris_i_kroner["coca-cola"] = 10; $pris_i_kroner["kvikklunsj"] = 15; $pris_i_kroner["sjampo"] =25; //Gjennomgår arrayen, og skriver ut vare og pris, og beregner summen 8. $sum = 0; print ("Her kommer utskriften av navnene og datoene</p>") ; foreach($pris_i_kroner as $varenavn => $pris){ print ("navn = $varenavn, pris = $pris kroner </p>"); 12. $sum = $sum + $pris; print ("Totalpris på handlekurven = $sum kroner. </p>"); Legg merke til linje 8. og linje 12. i koden En liten utvidelse av foreach løkken for vanlige arrayer utføres for hver innførsel. Ingen initialisering eller oppdatering. For hver runde: fortløpende indeks legges inn i variabelen $indeksvariabel (navnet valgfritt) fortløpende verdi legges inn i variabelen $verdivariabel ( navnet valgfritt). gjennom disse variablene kan alle indeksene og verdiene brukes etter tur. assosierer en indeks med en verdi. Må ikke blandes sammen med tegnet >= ( større eller lik ). linje 8 definere en sum-variabel med startverdi linje 12 plusser på sumvariabelen med varens pris for hver omgang. $varenavn og $pris er løpevariabler som, for hver runde antar hhv. indeks og verdi i arrayinnførselen Her kommer utskriften av varene og prisene i handlekurven navn = Coca-cola, pris = 10 kroner navn = Kvikklunsj, pris = 15 kroner navn = sjampo, pris = 25 kroner Totalpris på handlekurven = 50 kroner. 5 of 20 9/15/2017, 2:03 PM 6 of 20 9/15/2017, 2:03 PM

4 Arbeide med HTML-forms og arrayen $_Get Eksempel 7: Verdioverføring gjennom den assosiative arrayen $_GET Fornavn? <form action= "respons_tekst.php"> <label for="id_fornavn"> Fornavn? <input type="text" name= "fornavn" id="id_fornavn" /> </label></p> <input type="submit" /> <input type="reset" /></p> </form> Respons på tekst-elementet:</p> $fornavn= $_GET['fornavn']; print (" $fornavn</p>"); respons_tekst.php(utdrag) Her er $_GET en assosiativ array med innførsler for alle variabler brukt i skjemaet. Eksempel 8: Et PHP-program som skriver ut alle forms-variablene i skjemaet Navn? Alder? kjønn? mann kvinne Variablene fra formen "legger seg inn" som innførsler i arrayen $_GET $_GET kan også gjennomløpes med en foreach-løkke. <form action= "skrive_form_elem.php" target="_blank" method="get"> Navn? <input type="text" id="fornavn" name="navn"/> </p> Alder? <input type="text" id="id_alder" name="alder"/> </p> Kjønn?</p> <input type="radio" name= "kjonn" value="mann"/> Mann </p> <input type="radio" name= "kjonn" value="kvinne"/> Kvinne </p> <input type="submit" name="submit" /> <input type="reset" name="reset"/> </p> </form> //Gjennomgår $_GET[]-arrayen, og skriver ut data til skjermen print ("Her er data du tastet inn i skjemaet </p>") ; foreach($_get as $elementnavn => $elementverdi){ print ("elementet $elementnavn hadde verdien $elementverdi</p>"); print ("Takk for din påmelding. Nedenfor får du vite hvor mye du må betale</p>\n"); //Resten av skjemabehandlingen (utelatt her) skrive_form_elem.php Her er data du tastet inn i skjemaet elementet fornavn hadde verdien Michael Premingr elementet alder hadde verdien 46 elementet kjonn hadde verdien mann elementet submit hadde verdien send Takk for din påmelding. Nedenfor får du vite hvor mye du må betale Funksjoner - en utvidelse av programmeringsspråket. En liten introduksjon Funksjon: et lite hjelpeprogram, med navn, som utfører en bestemt oppgave. En funksjon: en sekvens av instruksjoner som har et navn. //funksjonsdefinisjon function printhallo(){ print("hallo</p>"); Navnet (her printhallo) kan brukes til å kalle funksjonen. Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. //funksjonskall printhallo(); //enda en gang printhallo(); HALLO HALLO Å skrive en funksjon er det samme som å lage en ny "privat" PHP-kommando til eget bruk. Eksempel 9 : Funksjonsdefinisjon og funksjonskall i en PHP-fil //funksjonsdefinisjon function printhallo(){ print("hallo</p>"); <!DOCTYPE html> <html xmlns=" <head>... </head> <body> Nå skal vi printe hallo:</p> //funksjonskall printhallo(); </body> </html> Nå skal vi printe hallo: HALLO printhallo() er en egendefinert funksjon. vi skrev den selv den er "vår private" utvidelse av PHP-språket 7 of 20 9/15/2017, 2:03 PM 8 of 20 9/15/2017, 2:03 PM

5 Innebygde og egendefinerte funksjoner Noen Innebygde funksjoner Innebygde: forhåndsskrevet av andre, alle PHP-programmerere kan bruke. Mange av PHP-instruksjonene vi bruker ofte, er "innebygde funksjoner" "noen" har skrevet dem og plassert dem i et "bibliotek" utfører oppgaver de fleste programmerere trenger ofte IKKE en del av kjernespråket". "kjernespråket": if, else, while, for og noen få andre kodeord Innebygde funksjoner: print,count og mange mange andre Egendefinerte funksjoner: for å svare på spesifikke behov Vi kan definere våre egne funksjoner for å "pakke inn" sekvenser av instruksjoner vi bruker ofte og kalle disse ved behov dele opp sammensatte problemer inn i oversiktlige deloppgaver strukturere våre programmer printhallo (): egendefinert funksjon Eksempel 10 : funksjonen print Vi kjenner print. print har en parameter (som skrives til nettleservinduet). Nedenfor er direkteverdien "Dette er et enkelt program" et argument - en realisering av parameteret. print("dette er et enkelt program"); Eksempel 11 : funksjonen count (også kjent) count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen. $byer=array("oslo", "Bergen", "Trondheim", "Stavanger", "Kristiansand"); $antallbyer = count($byer); print ("$antallbyer byer</p>") Typer funksjoner 5 byer bare handing (gjør nøyaktig det samme hver gang den kalles (printhallo) funksjoner med parametre som spesifiserer handlingen funksjoner som returnerer verdier Parametre og argumenter En parameter er en variabel som spesifiserer funksjonen. Et argument er en variabel eller verdi som angir verdien på en parameter i et bestemt kall. (Kommer tilbake til dette. ) 9 of 20 9/15/2017, 2:03 PM 10 of 20 9/15/2017, 2:03 PM

6 Enkle egendefinerte funksjoner Funksjoner med parametre Vi skriver egendefinerte funksjoner Innebygde funksjoner som har parametre (og tar argumenter) når vi identifiserer en oppgave som gjøres ofte strukturere programmet mao: ganske ofte. En sekvens av instruksjoner som har et navn. pakker instruksjonene inn i en blokk gir funksjonen et navn function funksjonsnavn($parameter1, $parameter2... ){ //instruksjoner plasserer funksjonen et sted i programkoden (for eksempel øverst) kaller den for å utføre handlingen spesifisert med instruksjonene funksjonsnavn($argument1, $argument2... ); Kan ingen -- eller flere -- parametre. argumenter for å "fylle" parametrene med verdier ved kall. Eksempel 12 (enkel egendefinert funksjon -uten parametre) Jeg har definert funksjonen skrivopphavsrett(). Denne ligner på printhallo() vi skrev tidligere. Når den kalles, skriver den en en copyright seksjon i en HTML-fil function skrivopphavsrett(){ 3. print('<p class="bakgrunn" > Denne filen er beskyttet av opphavsrett. Dersom du ønsker å kopiere 4. fra den eller bruke den til andre formål enn personlig bruk, må du 5. kontakte Michael Preminger.</p> '); 6. //slutt funksjonsdefinisjon <!DOCTYPE <html xmlns=" 10. <head> </head> 12. <body > 13. Dette er et meget enkelt dokument, med bare en linjes innhold. </p> skrivopphavsrett(); </body> 18. </html> Dette er et meget enkelt dokument, med bare en linjes innhold. Denne filen er beskyttet av opphavsrett. Dersom du ønsker å kopiere fra den eller bruke den til andre formål enn personlig bruk, må du kontakte Michael Preminger. print($argument) skriver ut (verdien til) sitt argument til nettleseren. count($argument) "måler" antall innførsler på sitt argument. Begge disse funksjoner er programmert med parametre Egendefinerte funksjoner med parametre Eksempel 13: skrivopphavsrett($navn) Vi definerer og kaller en funksjon som skal hete skrivopphavsrett($navn). Vi bygger på funksjonen skrivoppgavsrett() fra forrige eksempel. Parameteren $navn gjør funksjonen mer anvendelig. Hvorfor? function skrivopphavsrett($navn){ 3. print(" Denne filen er beskyttet av opphavsrett. Dersom du ønsker å kopiere 4. fra den eller bruke den til andre formål enn personlig bruk, 5. må du kontakte $navn.</p> "); 6. //slutt funksjonsdefinisjon <!DOCTYPE <html xmlns=" 10. <head> </head> 12. <body > 12. Dette er et meget enkelt dokument, med bare en linjes innhold. </p> skrivopphavsrett("jens Olsen"); </body> 17. </html> Dette er et meget enkelt dokument, med bare en linjes innhold. Denne filen er beskyttet av opphavsrett. Dersom du ønsker å kopiere fra den eller bruke den til andre formål enn personlig bruk, må du kontakte Jens Olsen. I dette eksemplet er $navn (linje 2) parameter "Jens Olsen" (linje 14) argument Parameteren gjør at funksjonen kan brukes av forskjellige opphavspersoner dermed gir økt fleksibilitet referansen $navn på linje 5,, gjør at argumentverdien (i vårt tilfelle "Ole Olsen"), blir skrevet til nettleseren. Linje 2-6 utgjør funksjonsdefinisjonen. På linje 13 skrives et fast avsnitt. På linje 15 blir funksjonen kalt, og instruksjonssekvensen i den utført. 11 of 20 9/15/2017, 2:03 PM 12 of 20 9/15/2017, 2:03 PM

7 Eksempel 14: printinvertertform($fornavn, $etternavn) Et lite program som definerer en funksjon og kaller den function printinvertertform( $fornavn, $etternavn ){ 3. print("$etternavn, $fornavn</p>"); 4. //slutt funksjonsdefinisjon I det følgende skrives to navn i invertert form: </p> $fnavn="michael"; 9. $enavn="preminger"; //kaller funksjonen 12. printinvertertform($fnavn, $enavn); 13. printinvertertform("jens", "Olsen"); 14. På Linje 2 til 4 defineres funksjonen. På Linje 12 kalles funksjonen med to variabler som argumenter. På linje 13 kalles funksjonen enda en gang, denne gang med to faste strenger som argumenter. $fornavn og $etternavn er parametre. $fnavn og $enavn er argumenter. Samme gjelder "Jens" og "Olsen". Rekkefølgen på parametrene bestemmer hvilke argument mappes til hvilken parameter. Programmet ovenfor skriver ut: I det følgende skrives to navn i invertert form Preminger, Michael Olsen, Jens Funksjoner med returverdi kan illustreres med hjelp av en drikkeautomat: De tar imot argumenter: pengebeløp og produktvalg, gir tilbake en kopp med innhold (og mengde) som tilsvarer argumentverdiene. En funksjon med en returverdi produserer en verdi mens den kjører. Returverdien kan hentes i en returvariabel. En funksjon med en returverdi kan kalles slik: $resultat=funksjon($argument1, $argument2...); her er $resultat returvariabelen. Noen flere innebygde funksjoner med returverdi I de neste eksemplene hopper jeg over og foran og bak eksemplene, for å spare plass og papir. Eksemplene 15-18: Flere innebygde funksjoner De fleste innebygde funksjoner har returverdier. Noen funksjoner produserer en tekststreng og returnerer denne. Eksempel: 15. funksjonen date: $klokkestreng=date("g\.i\.s"); print("klokkeslett= $klokkestreng"); klokkeslett= Andre funksjoner produserer tall som sine returverdier. 16. strlen(argument) beregner lengden ( antall tegn) på tekststreng-argumentet: $lengde=strlen("michael"); print( $lengde); Funksjonen abs(argument) tar et tallargument, og returnerer dets absolutte verdi. abs(-5) returnerer 5. Eksempel: $tall=-5; $absverdi=abs($tall); print ("absoluttverdien av $tall er $absverdi"); 18. absoluttverdien av -5 er 5 Kan også legges direkte i et uttrykk. Eksempel: $tall=-5; $absverdi=abs($tall); $sum=abs($tall) + 6; print ("summen er $sum"); summen er of 20 9/15/2017, 2:03 PM 14 of 20 9/15/2017, 2:03 PM

8 Egendefinerte funksjoner med returverdi Eksempel 19: Funksjonen printinvertertform gjøres om til en funksjon som returnerer en streng istedenfor å printe den function returnerinvertertform( $fornavn, $etternavn ){ 3. $returstreng="$etternavn, $fornavn"; 4. return $returstreng; 5. //slutt funksjonsdefinisjon I det følgende skrives 2 navn i invertert form: </p> $fnavn1="michael"; 10. $enavn1="preminger"; //kaller funksjonen 13. $invertertstreng1 = returnerinvertertform($fnavn1, $enavn1); 14. $invertertstreng2 = returnerinvertertform("jens", "Olsen"); 15. print ("invertertstreng1: $invertertstreng1; invertertstreng2: $invertertstreng2") ; 16. skriver ut: Dokumentasjon på innebygde funksjoner - dokumentasjon på utallige innebygde funksjoner Å programmere i PHP er i stor grad å benytte innebygde funksjoner å programmere sine egne (egendefinerte) funksjoner og benytte disse egendefinerte funksjoner benytter (så klart) også innebygde funksjoner. Informasjon om alle innebygde funksjoner finnes på nettstedet php.net. Der er dokumentasjon av alle innebygde funksjoner et tastetrykk unna. Det er viktig å kunne lese funksjonsdokumentasjon. Dokumentasjon på kjente innebygde funksjoner print count Dokumentasjonen skal gi oss nok opplysninger om funksjonen slik at vi kan bruke den slik den er ment brukt. Eksempel 21: (en del av) Dokumentasjonen av print-funksjonen: invertertstreng1: Preminger, Michael; invertertstreng2: Olsen, Jens Ordet "return" på linje 4 har følgende rolle: funksjonen avgir verdien i angitt variabel til programmet som kalte den funksjonen avsluttes, og programmet kjører videre, utstyrt med den nye verdien. Etter at funksjonen har kjørt (linjer 13 og 14), har variablene $invertertstreng1 og $invertertstreng2 hhv. verdiene "Preminger, Michael" og "Olsen, Jens". Eksempel 20: funksjonen minstav(arg1, arg2) finner og returnerer det minste av to tall 1. function minstav($tall1, $tall2){ 2. if ($tall1<$tall2){ 3. return $tall1; 4. else { 5. return $tall2; //end function //bruk av funksjonen: 10. $t1=3; 11. $t2=5; 12. $minst=minstav($t1, $t2); 13. print("fant ut at $minst er minst av $t1 og $t2"); skriver ut: fant ut at 3 er minst av 3 og 5 Ordet "return" på linje 3 og 5 har samme rolle som i forrige eksempel: funksjonen avgir verdien i angitt variabel til programmet som kalte den funksjonen avsluttes, og programmet som kalte den kjører videre, utstyrt med den nye verdien. Etter at funksjonen har kjørt (linje 12), har returvariabelen, $minst, verdien 3 print (PHP 3, PHP 4, PHP 5) print -- Output a string Description int print ( string $arg ) Outputs arg. Returns 1. Always int print (string $arg) (string $arg) betyr at funksjonen tar et argument som den tolker som en tekststreng. int betyr at funksjonen returnerer et tall ( "returverdien"). Dette er funksjonens formelle resultat. For print sin del pleier vi å ignorere returverdien. Eksempel 22: Dokumentasjon på og bruk av strlen-funksjonen: strlen (PHP 3, PHP 4, PHP 5) strlen -- Get string length Description int strlen ( string $string ) Returns the length of the given string. int strlen (string $string) betyr at funksjonen tar en variabel (eller direkteverdi) av type tekststreng som argument, og returnerer en verdi av type heltall (lengden, eller antallet karakterer i strengen). Verdien som returneres kan legges i en variabel. Sistnevnte kan, for eksempel printes. $lengde=strlen("michael"); print( $lengde ) ; 7 15 of 20 9/15/2017, 2:03 PM 16 of 20 9/15/2017, 2:03 PM

9 Eksempel 23: Dokumentasjonen av count-funksjonen: Eksempel 24: en PHP-bibliotekfil med én funksjon count ( PHP 4, PHP 5) count -- Count elements in an array, or properties in an object Description int count ( mixed $var [, int $mode] ) Returns the number of elements in var, which is typically an array, since anything else will have one element.... int count (mixed $var [, int $mode]) mixed $var betyr at funksjonen kan ta alle mulige typer variabler som første argument, int $mode betyr at funksjonen returnerer en verdi av type heltall (lengden, eller antallet innførsler i arrayen). Denne kan vi printe (eller bruke på annen måte) $byer=array("oslo", "Bergen", "Trondheim", "Stavanger", "Kristiansand"); $antallbyer = count($byer); print ("$antallbyer byer</p>") 5 byer [, int $mode] betyr at funksjonen har en valgfri parameter (skarpe klammer står ofte for valgfrihet), som modifiserer dens oppførsel. Denne ser vi som oftest bort fra når det gjelder count. Funksjoner og "hovedprogram" Et program er et tre av funksjonskall Et program er gjerne organisert slik at mellom start og slutt skjer instruksjonene én etter én - én instruksjon av gangen. Ofte vil enkeltinstruksjonene, sett fra programmet, være kall til funksjoner, enten innebygde eller egendefinerte. Enhver funksjon kaller så gjerne andre funksjoner. Vi får en tre-struktur av funksjoner som kaller funksjoner osv. De egendefinerte funksjonene kan enten defineres i samme fil som programmet, eller i separate filer Filen funksjoner.inc.php inneholder (foreløpig) bare én funksjon, som kan brukes flere steder. Filen mitt_program.php inneholder et program som bruker denne funksjonen ved å inkludere funksjoner.inc.php function minstav($tall1, $tall2){ if ($tall1<$tall2){ return $tall1; else{ return $tall2; //end function minstav filen funksjoner.inc.php include 'funksjoner.inc.php'; 3. //Nå er funksjonen minstav tilgjengelig, og kan brukes: 4. $t1=3; 5. $t2=5; 6. $minst=minstav($t1, $t2); 7. print("fant ut at $minst er minst av $t1 og $t2\n"); 8. filen mitt_program.php Instruksjonen "include" på linje 2 gjør filen funksjoner.inc.php og alle funksjoner i den (foreløpig bare én) tilgjengelig for vårt program. Linje 6 kaller funksjonen på samme måte som i det forrige eksemplet. Samme fil kan inkluderes av flere programmer. En slik fil kalles ofte en bibliotekfil. Et funksjonsbibliotek kan gjerne inneholde flere slike filer, som hver inneholder et antall funksjoner som hører naturlig sammen. Skrive funksjoner i egne filer (funksjonsbibliotek) En funksjon vi skriver kan brukes i mange sammenhenger, og ikke bare i programmet det ble skrevet for. PHP gir oss mulighet til å skrive funksjoner i egne filer, som vi kan deretter bruke i forskjellige programmer. 17 of 20 9/15/2017, 2:03 PM 18 of 20 9/15/2017, 2:03 PM

10 Print med "here-document" "print"-instruksjonen brukes ofte til å skrive én linje av gangen: print ("mitt navn er $fornavn\n"); Skal vi skrive flere linjer kan det ofte være ugreitt å bruke den vanlige "print"-syntaksen. Da er "here-dokument" et alternativ. Med "here-dokument" setter vi det som skal skrives ut mellom to forekomster av et markeringsord. markeringsordet er en hvilken som helst tegnkombinasjon. "here-dokumentet" tillater oss å skrive flere sammenhengende linjer til nettleseren, samtidig som vi slipper anførselstegn og parenteser foran og bak strengene våre linjeskifter blir respektert (i kildekoden) "here"-dokumentet tolker også variabler (se for eksempel $variabel i følgende eksempel Eksempel 25: Here-Dokument $variabel="michael"; 3. print <<<PRINTSLUTT Dette er en utskrift produsert 6. med hjelp av språket PHP. 7. Vi bruker here-document-metoden for å skrive flere linjer til 8. nettleseren. Kildevisningen følger linjeskiftene i HERE-dokument. 9. Men for å få linjeskiftene i Nettleseren, må vi bruke linjeskift, 10. eller avsnittsmerke. 11. </p> 12. Here-dokumentet tolker variabler. For eksempel: Mitt navn er $variabel. 13.PRINTSLUTT; 14. Dette er en utskrift produsert med hjelp av språket PHP. Vi bruker here-document-metoden for å skrive flere linjer til nettleseren. Kildevisningen følger linjeskiftene i HERE-dokument. Men for å få linjeskiftene i Nettleseren, må vi bruke linjeskift, eller avsnittsmerke. Here-dokumentet toker variabler. For eksempel: Mitt navn er Michael. Viktig: Denne konstruksjonen er teknisk litt sårbar. To ting som er viktig å passe på er: markeringsordet (i eksemplet over: PRINTSLUTT på linje 3 og linje 13) må ikke etterfølges av noen mellomrom markeringsordet (linje 13) må stå "helt inn til veggen", uten mellomrom eller tab foran Det er flere tekstoperasjoner som kan bruke denne formen, for eksempel $variabel=<<<varslutt Michael VARSLUTT; 3. print <<<PRINTSLUTT Dette er en utskrift produsert 6. med hjelp av språket PHP. 7. Vi bruker here-document-metoden for å skrive flere linjer til 8. nettleseren. Kildevisningen følger linjeskiftene i HERE-dokument. 9. Men for å få linjeskiftene i Nettleseren, må vi bruke linjeskift, 10. eller avsnittsmerke. 11. </p> 12. Here-dokumentet tolker variabler. For eksempel: Mitt navn er $variabel. 13.PRINTSLUTT; 14. Sist oppdatert 15/09-17 av Michael Preminger, michael.preminger@jbi.hio.no 19 of 20 9/15/2017, 2:03 PM 20 of 20 9/15/2017, 2:03 PM

}?> <!DOCTYPE... <html xmlns="http://www.w3.org/1999/xhtml"> <head>... </head> <body> <p>nå skal vi printe hallo:</p> <?php //funksjonskall

}?> <!DOCTYPE... <html xmlns=http://www.w3.org/1999/xhtml> <head>... </head> <body> <p>nå skal vi printe hallo:</p> <?php //funksjonskall Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] //funksjonskall printhallo(); //enda en gang printhallo(); Michael Preminger (michaelp@hio.no)

Detaljer

$i < 5 forsettelsesbetingelsen - false => Løkken slutter.

$i < 5 forsettelsesbetingelsen - false => Løkken slutter. for-løkker gjentar instruksjonene et gitt antall ganger. for-løkkens oppbygging: [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 17/09-18 Byggestein så langt: variabler, betinget

Detaljer

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen. Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] Webprogrammering høsten 2015 //funksjonskall printhallo(); //enda en gang printhallo();

Detaljer

Tilgjegelighet av XHTML-forms

Tilgjegelighet av XHTML-forms [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 08/02-14 Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 Eksempel 1: For å lage en liten array (bare 5 innførsler)

Detaljer

En enkel while-løkke. 1 of 12 15.09.2015 15:28. 2 of 12 15.09.2015 15:28. while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt

En enkel while-løkke. 1 of 12 15.09.2015 15:28. 2 of 12 15.09.2015 15:28. while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 15/09-15 En liten repetisjon Løkker Arrayer (tabeller) Løkker

Detaljer

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Page 1 Page 2 [Kurssidene] [ JBI] [ ] Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Vi kommer for det meste til å bruke while-løkker, men for-løkker anses viktige å kjenne til Michael

Detaljer

while-løkker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

while-løkker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke while-løkker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 01/09-17 En liten repetisjon Løkker Arrayer

Detaljer

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke [Kurssidene] [ ABI - fagsider bibin ] Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Michael Preminger

Detaljer

Utvikling av dynamiske nettsteder med PHP og databaser, våren 2009

Utvikling av dynamiske nettsteder med PHP og databaser, våren 2009 [Kurssidene] [ JBI] [ ] Utvikling av dynamiske nettsteder med PHP og databaser, våren 2009 Michael Preminger (michaelp@hio.no) 30/01-09 Eksempel 1: For å lage en liten array (bare 5 innførsler) kan vi

Detaljer

$antall_maaneder =12; Variablene $pris og $antall_maaneder i eksemplet ovenfor har

$antall_maaneder =12; Variablene $pris og $antall_maaneder i eksemplet ovenfor har Et program som legger sammen to brukergitte tall må hente det ene hente det andre legge tallene sammen [Kurssidene] [ ABI - fagsider bibin ] presentere resultatet. Mellom operasjonene må data tas vare

Detaljer

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Page 1 Page 2 [Kurssidene] [ JBI] [ ] Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Et program som er installert på en tjenermaskin, og som tillater eksterne programmer å utføre spørringer

Detaljer

Når en bruker skriver sitt navn ("Ole") i et form-element med name="fornavn" som attributt. klikker på submit-knappen

Når en bruker skriver sitt navn (Ole) i et form-element med name=fornavn som attributt. klikker på submit-knappen Når en bruker skriver sitt navn ("Ole") i et form-element med name="fornavn" som attributt klikker på submit-knappen [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 09/09-16...

Detaljer

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Page 1 Page 2 [Kurssidene] [ JBI] [ ] Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Introduksjon til kontrollstrukturer Michael Preminger (michaelp@hio.no) 07/09-06 I denne forelesningen

Detaljer

Et forsøk på definisjon

Et forsøk på definisjon Et forsøk på definisjon [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 21/08-16 Engelsklignende språk, med rigid syntaks, som kan brukes til å skrive instruksjoner (eksempel

Detaljer

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Page 1 Page 2 Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Introduksjon Michael Preminger (michaelp@hio.no) 23/08-06 I denne forelesningen: Motivasjon: Hvorfor vi lærer å programmere

Detaljer

Et forsøk på definisjon

Et forsøk på definisjon Et forsøk på definisjon [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 18/08-17 Engelsklignende språk, med rigid syntaks, som kan brukes til å skrive instruksjoner (eksempel

Detaljer

Aritmetiske operasjoner. Litt om forrige times øvelsesoppgaver

Aritmetiske operasjoner. Litt om forrige times øvelsesoppgaver Aritmetiske operasjoner Numeriske variabler (som har en tallverdi) kan brukes i aritmetiske operasjoner Variablene $pris, $maaneder og $gebyr ovenfor er numeriske. [Kurssidene] [ ABI - fagsider bibin ]

Detaljer

Et forsøk på definisjon. Eksempel 1

Et forsøk på definisjon. Eksempel 1 [Kurssidene] [ ABI - fagsider bibin ] Introduksjon Michael Preminger (michael.preminger@hioa.no) 13/12-13 I denne forelesningen: Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 Motivasjon:

Detaljer

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Page 1 Page 2 Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Verdier, variabler og forms Michael Preminger (michaelp@hio.no) 30/08-06 Et program kan ha mange variabler, og alle trenger

Detaljer

Verdier, variabler og forms

Verdier, variabler og forms [Kurssidene] [ ABI - fagsider bibin ] Verdier, variabler og forms Michael Preminger (michaelp@hio.no) 16/01-14 Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 Litt om forrige times øvelsesoppgaver

Detaljer

Et forsøk på definisjon. Eksempel 1

Et forsøk på definisjon. Eksempel 1 Et forsøk på definisjon [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michael.preminger@hioa.no) 19/08-15 Engelsklignende språk, med rigid syntaks, som kan brukes til å skrive instruksjoner

Detaljer

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

Detaljer

[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/09-15. Vi holder orden på verdier med hjelp av variabler

[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/09-15. Vi holder orden på verdier med hjelp av variabler [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/09-15 Vi holder orden på verdier med hjelp av variabler Vi lagrer verdier i variabler. Variabelnavn uttrykker verdienes rolle

Detaljer

Introduksjon til beslutningsstrukturer

Introduksjon til beslutningsstrukturer [Kurssidene] [ ABI - fagsider bibin ] Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 Introduksjon til beslutningsstrukturer Michael Preminger (michaelp@hio.no) 24/01-14 Repitisjon fra

Detaljer

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

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

Detaljer

Kapittel 1 En oversikt over C-språket

Kapittel 1 En oversikt over C-språket Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske

Detaljer

Løse reelle problemer

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,

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 11. mai 2004 Varighet: Fagnummer: Fagnavn: Klasse(r): 3 timer LV197D Webprogrammering med PHP FU Studiepoeng:

Detaljer

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Page 1 Page 2 [Kurssidene] [ JBI] [ ] Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 PHP og databaser IV Eksempel 1: koden for nedtrekksmenyen (kopi av eksempel 3 fra uke 43) Michael

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

Utførelse av programmer, metoder og synlighet av variabler i JSP

Utførelse av programmer, metoder og synlighet av variabler i JSP Utførelse av programmer, metoder og synlighet av variabler i JSP Av Alf Inge Wang 1. Utførelse av programmer Et dataprogram består oftest av en rekke programlinjer som gir instruksjoner til datamaskinen

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Programmeringsspråket C

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

Detaljer

1.2 Dynamiske, tjenerbaserte og interaktive nettsteder

1.2 Dynamiske, tjenerbaserte og interaktive nettsteder Kapittel 1 Innledning og motivasjon 1.1 Innledning Mye av dagens virksomhet på WWW, alt fra nettbanker til bibliotekkataloger, er dynamisk, interaktiv og databasestyrt. Alle som leser denne boken har brukt

Detaljer

Informasjon Prøveeksamen i IN1000 høsten 2018

Informasjon Prøveeksamen i IN1000 høsten 2018 Prøveeksamen IN1000-INF1001-H18 Informasjon Prøveeksamen i IN1000 høsten 2018 Tid Fra tirsdag 6.11 kl. 14:15 til tirsdag 13.11 kl. 12:00 (Normal eksamenstid er 4 timer) Oppgavene Oppgave 2b og 2c er flervalgsoppgaver.

Detaljer

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

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

Detaljer

Forelesning inf Java 4

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

Detaljer

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

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7 Gjennomgang prøveeksamen 2014 oppgave 1, 2, 4, 5, 7 1a: Hva er verdien til tall etter at følgende kode er utført: 17 int tall = 5; tall = (tall*3) + 2; 5 15 17 1b: Anta at følgende programsetninger utføres.

Detaljer

lage og bruke funksjoner som tar argumenter lage og bruke funksjoner med returverdier forklare forskjellen mellom globale og lokale variabler

lage og bruke funksjoner som tar argumenter lage og bruke funksjoner med returverdier forklare forskjellen mellom globale og lokale variabler 42 Funksjoner Kapittel 4 Funksjoner Etter dette kapitlet skal du kunne lage og bruke enkle funksjoner lage og bruke funksjoner som tar argumenter lage og bruke funksjoner med returverdier forklare forskjellen

Detaljer

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14. IN1000-INF1001-2018 Informasjon Eksamen i IN1000 og IN1001 høsten 2018 Tid 30. november kl. 14.30 (4 timer) Faglærere vil besøke lokalet ca kl 15-16. Oppgavene Oppgave 1a-f er kortsvarsoppgaver som rettes

Detaljer

Klasser. Webprogrammering høsten 2015. Objekter. Eksempelklasser og -objekter. 2 of 11 14.10.2015 07:56. 1 of 11 14.10.2015 07:56

Klasser. Webprogrammering høsten 2015. Objekter. Eksempelklasser og -objekter. 2 of 11 14.10.2015 07:56. 1 of 11 14.10.2015 07:56 [Kurssidene] [ ABI - fagsider bibin ] Objekter Webprogrammering høsten 2015 Et objekt er en "ting" som representeres i et program. Representasjonen tar for seg attributter og oppførsel Attributter (egenskaper)

Detaljer

Repetisjon Novice Videregående Python PDF

Repetisjon Novice Videregående Python PDF Repetisjon Novice Videregående Python PDF Introduksjon I denne oppgaven skal vi repetere litt Python-syntaks. Hele dette kurset er for de som har programmert Python før. Dersom ikke har mye erfaring med

Detaljer

Programmering i R. 6. mars 2004

Programmering i R. 6. mars 2004 Programmering i R 6. mars 2004 1 Funksjoner 1.1 Hensikt Vi har allerede sette på hvordan vi i et uttrykk kan inkludere kall til funksjoner som er innebygd i R slik som funksjonene sum, plot o.s.v. Generelt

Detaljer

INF1000 : Forelesning 4

INF1000 : 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

Detaljer

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS Løkker og if-tester Gløer Olav Langslet Sandvika VGS 29.08.2011 Informasjonsteknologi 2 Funksjoner, løkker og iftester Læreplansmål Eleven skal kunne programmere med enkle og indekserte variabler eller

Detaljer

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

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

Detaljer

I denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå.

I denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå. Repetisjon Skrevet av: Ole Kristian Pedersen, Kodeklubben Trondheim Kurs: Python Tema: Tekstbasert Fag: Programmering Klassetrinn: 8.-10. klasse Introduksjon I denne oppgaven skal vi repetere litt Python-syntaks,

Detaljer

TDT4105 IT Grunnkurs Høst 2016

TDT4105 IT Grunnkurs Høst 2016 TDT4105 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Auditorieøving 1 Vennligst fyll ut følge informasjon i blokkbokstaver Navn:

Detaljer

Løse reelle problemer

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)

Detaljer

</html> </head> <form action= rtkst.php > <p> Fornavn? <input type= text name= fornavn <input type= submit />

</html>  </head> <form action= rtkst.php > <p> Fornavn? <input type= text name= fornavn <input type= submit /> 2.3. Variabler og forms Eksempel 2.K: Et tekstelementet gir verdi til en PHP-variabel. Nedenfor: form-sidens kode med nettleserbilde. Motstående side: målprogramet med nettleserbilde av kjøringen (URLen

Detaljer

Løse reelle problemer

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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Kandidatnummer: Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF1000 Grunnkurs i objektorientert programmering Prøveeksamensdag : Onsdag 12. november 2014 Tid

Detaljer

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2 Programmeringsspråket C Del 2 Michael Welzl E-mail: michawe@ifi.uio.no 8/25/10 inf1060 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. 8/25/10 inf1060

Detaljer

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Løkker TDT4110 IT Grunnkurs Professor Guttorm Sindre Denne uka Vi trenger å Støttes av Hente data fra bruker Vise data til bruker Lagre data i minnet for bruk videre i programmet Fra tastatur:

Detaljer

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Intro til funksjoner TDT4110 IT Grunnkurs Professor Guttorm Sindre Snart referansegruppemøte Viktig mulighet for å gi tilbakemelding på emnet Pensumbøker Forelesninger Øvingsforelesninger Veiledning

Detaljer

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

Kort 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

Detaljer

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består

Detaljer

INF1000 Behandling av tekster

INF1000 Behandling av tekster INF1000 Behandling av tekster Marit Nybakken marnybak@ifi.uio.no 23. februar 2004 Tekster Vi kommer nesten aldri utenom å bruke tekststrenger i programmene våre, ikke minst fordi det nesten alltid skal

Detaljer

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2 Programmeringsspråket C Del 2 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 30.08.2005 inf1060 H05 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. 30.08.2005

Detaljer

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson

Detaljer

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2 Et eksempel Programmeringsspråket C Del 2 Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no inf1060 1 inf1060 2 Forklaring:

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når

Detaljer

Webformularer, PHP og databaser

Webformularer, PHP og databaser PHP-arkitektur Webformularer, PHP og databaser Jfr Fra kjernen og ut, fra skallet og inn Appendix B WWWklient Netscape, Internet Explorer, Opera Dynamisk web-side bygges opp på grunnlag av spørring mot

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 2 Læringsmål Mål Introduksjon til filer (som inndata og utdata) Å bruke

Detaljer

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

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

Detaljer

Eksamensoppgaver 2014

Eksamensoppgaver 2014 Eksamensoppgaver 2014 Først kommer alle de relevante små-oppgavene og deretter den store oppgaven. Oppgave 1 (4 p) a) Hva er verdien til tall etter at følgende kode er utført? tall = (5+3)*2 tall = tall+2

Detaljer

TDT4110 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2016 TDT4110 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til Auditorieøving 1 1 Teori 1. Hvilket tall kan IKKE lagres

Detaljer

Øvingsforelesning 1 Python (TDT4110)

Øvingsforelesning 1 Python (TDT4110) Øvingsforelesning 1 Python (TDT4110) Introduksjon, Kalkulasjoner Ole-Magnus Pedersen Oversikt Praktisk Info Repetisjon fra sist Oppgaver for øving 2 2 Praktisk Info Last opp øvinger på Blackboard før godkjenning

Detaljer

Norsk informatikkolympiade runde

Norsk informatikkolympiade runde Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.

Detaljer

C# (.Net) Tema: Loops (Løkker) Leksjon 7 Kap 18

C# (.Net) Tema: Loops (Løkker) Leksjon 7 Kap 18 C# (.Net) Tema: Loops (Løkker) Leksjon 7 Kap 18 Olav Dæhli - C#-kurs høsten 2017 1 Løkker Dagens temaer Inkrementering/dekrementering Løkkebetingelser Løkketyper Nøstede løkker Escape-sequences Debugger

Detaljer

INF1000 Eksamen 2014 (modifisert)

INF1000 Eksamen 2014 (modifisert) INF1000 Eksamen 2014 (modifisert) Oppgave 1 (4 poeng) a) Hva er verdien til tall etter at følgende kode er utført? tall = (5+3)*2 tall = tall+2 b) Anta at følgende programsetninger utføres. Hva skrives

Detaljer

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.) Utførelse av programmer, funksjoner og synlighet av variabler (Matl.) Av Jo Skjermo (basert på Alf Inge Wang sin versjon om JSP). 1. Utførelse av kode i kommando/kalkulatormodus Et dataprogram består oftest

Detaljer

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 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 =

Detaljer

TDT4110 IT Grunnkurs Høst 2015

TDT4110 IT Grunnkurs Høst 2015 TDT4110 IT Grunnkurs Høst 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforlag Auditorieøving 1 1 Teori Løsning er skrevet med uthevet tekst

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 11. mai 2004 Varighet: Fagnummer: Fagnavn: Klasse(r): 3 timer LV197D Webprogrammering med PHP FU Studiepoeng:

Detaljer

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2017

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2017 Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.

Detaljer

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER

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,

Detaljer

Forelesning inf Java 5

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

Detaljer

Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen.

Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen. IN1000 - Seminaroppgaver til uke 1 Nyttig å vite: PEP 8 -- Style Guide for Python Code. Dersom det som undervises i IN1000 ikke samstemmer med PEP, så skal dere følge den stilen som undervises og ikke

Detaljer

Forelesning inf Java 5

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

Detaljer

Innføring i bruk av CGI4VB

Innføring i bruk av CGI4VB Innføring i bruk av CGI4VB Her kommer en enkel innføring i bruk av modulen CGI4VB som kan benyttes for å lage CGI programmer i Visual Basic. CGI er en forkortelse for Common Gateway Interface den kommunikasjonsprotokollen

Detaljer

Løse reelle problemer

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:

Detaljer

Høgskoleni østfold EKSAMEN

Høgskoleni østfold EKSAMEN Høgskoleni østfold EKSAMEN Emnekode: Emne: ITF10208 og Webprogrammering 1 og ITF10212 Innføring i programmering Dato: Eksamenstid: 03/12-2013 09.00-13.00 Hjelpemidler: Faglærer: 2 A4 ark (4 sider) med

Detaljer

Systemarkitektur. Webformularer, PHP og databaser. Hva skal applikasjonsprogrammet gjøre? PHP. Ta i mot data fra brukergrensesnittskjermbildet

Systemarkitektur. Webformularer, PHP og databaser. Hva skal applikasjonsprogrammet gjøre? PHP. Ta i mot data fra brukergrensesnittskjermbildet Systemarkitektur Virkeligheten (interesseområdet) Webformularer, PHP og databaser Dynamisk webside bygges evt opp på grunnlag av spørring mot databasen Jfr Fra kjernen og ut, fra skallet og inn Appendix

Detaljer

TDT4110 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2016 TDT4110 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Auditorieøving 1 Vennligst fyll ut følgende informasjon i blokkbokstaver

Detaljer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 12. desember 2002 Varighet: Fagnummer: Fagnavn: Klasse(r): 3 timer LO116D Programmering i Visual Basic FU

Detaljer

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

Detaljer

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

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

Detaljer

Informasjon Eksamen i IN1000 høsten 2017

Informasjon Eksamen i IN1000 høsten 2017 Informasjon Eksamen i IN000 høsten 207 Tid 8. desember kl. 09.00 (4 timer) Faglærerne vil besøke lokalet ca kl 0. Oppgavene Oppgave 2b og 2c er flervalgsoppgaver. Her får man det angitte antall poeng om

Detaljer

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

EKSAMEN (Konvertert fra en gammel PHP-eksamen) EKSAMEN (Konvertert fra en gammel PHP-eksamen) Emnekode: Emne: ITF10208 Webprogrammering 1 Dato: Eksamenstid: 06/12-2011 09.00-13.00 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne)

Detaljer

Eksempel 1: Bestemmer om tallet som skrives inn er et partall eller et oddetall side 12

Eksempel 1: Bestemmer om tallet som skrives inn er et partall eller et oddetall side 12 1 INNHOLD PROGRAMMERING I MATEMATIKK side 3 MINIKURS I PROGRAMMERING side 4 TRINKET side 5 LØKKER side 6 ARRAYER side 8 GRAFTEGNING MED PYTHON side 10 Eksempel 1: Bestemmer om tallet som skrives inn er

Detaljer

Web-programmering med JSP Løsningsforslag leksjon 4

Web-programmering med JSP Løsningsforslag leksjon 4 Web-programmering med JSP Løsningsforslag leksjon 4 Oppgave 1 String adr = request.getremoteaddr() ; out.println(adr); Oppgave 2 Først her kommer HTML-filen med JavaScript et vi lagde i forrige leksjon.

Detaljer

Kap 2: Løkker og lister

Kap 2: Løkker og lister Kap 2: Løkker og lister Ole Christian Lingjærde, Inst for Informatikk, UiO 26-30 August, 2019 (Del 2 av 2) Forrige forelesning på en foil Formatert utskrift: %-operator og f-strings To typer løkker: while-løkker

Detaljer

TDT4105 Informasjonsteknologi grunnkurs Øvingsforelesning 2. Iver Dihle Skjervum Vit.ass. ITGK

TDT4105 Informasjonsteknologi grunnkurs Øvingsforelesning 2. Iver Dihle Skjervum Vit.ass. ITGK 1 TDT4105 Informasjonsteknologi grunnkurs Øvingsforelesning 2 Iver Dihle Skjervum Vit.ass. ITGK 2 Program Praktisk informasjon Kollokvie If / else og logiske utrykk Funksjoner Formatert utskrift Lage et

Detaljer

Innføring i bruk av CGI4VB

Innføring i bruk av CGI4VB Innføring i bruk av CGI4VB Her kommer en enkel innføring i bruk av modulen CGI4VB som kan benyttes for å lage CGI programmer i Visual Basic. CGI er en forkortelse for Common Gateway Interface den kommunikasjonsprotokollen

Detaljer

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål Variabler og datatyper Gløer Olav Langslet Sandvika VGS Høst 2012 Informasjonsteknologi 2 Hva er programmering? Når du skal bake en kake følger du gjerne en oppskrift. Først er det beskrevet hva kaken

Detaljer

Introduksjon til objektorientert programmering

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

Detaljer

YouTube-kanal ITGK. Læringsmål og pensum

YouTube-kanal ITGK.  Læringsmål og pensum 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner - 3rd edition: Kapittel 5.1-5.6 Professor Alf Inge Wang 2 YouTube-kanal ITGK Professor Guttorm Sindre (foreleser den andre Python-parallellen

Detaljer