PHP- og MySQL-innføring

Størrelse: px
Begynne med side:

Download "PHP- og MySQL-innføring"

Transkript

1 PHP- og MySQL-innføring En innføring i PHP og MySQL fra Hardware.no. Vegard Andreas Larsen André Kristoffer Dahl

2 2 Om forfatterne Vegard Andreas Larsen er programvareansvarlig for Hardware.no, og har drevet med PHP siden Han er en Zend Certified PHP Engineer, og studerer datateknikk ved NTNU, retning dataog informasjonsforvaltning. På fritiden driver han e-posttjenesten spamavert.com. Hans personlige nettside finnes på vega.rd.no. Vegard har skrevet kapittel 4 og utover, og har satt sammen og redigert denne boken. Du kan nå Vegard via e-post til vegard@hardware.no. André Kristoffer Dahl er journalist for Hardware.no, og har skrevet de første 3 kapitlene i denne serien. Du kan nå André Kristoffer via e-post til andre@hardware.no. Om e-boken Denne e-boken er utgitt av Hardware.no, og er en redigert samling av artiklene i vår innføring i PHP og MySQL. Kapitlene har blitt noe redigert i forhold til artikkelserien som ble publisert på Hardware.no. E-boken blir oppdatert etterhvert som det kommer nye kapitler i vår introduksjonsserie. Boken er tilgjengelig for gratis nedlasting fra Hardware.no, og skal ikke legges for nedlasting andre steder enn dette. Om du har funnet boken en annen plass kan du rapportere det til vegard@hardware.no. Feil og mangler i boken kan rapporteres til samme adresse.

3 3 Innholdsliste Kapittel 1. Det grunnleggende... 6 Historien til PHP... 6 Hva er egentlig PHP?... 8 Alt foregår på serveren... 8 Så hva trenger man PHP til?... 9 Klientbaserte teknologier... 9 Installasjon av PHP... 9 Hello World! Fra HTML til PHP og tilbake Inkludering av filer Flere inkluderingsfunksjoner Så hvilken av de skal jeg bruke? Oppsummering Kapittel 2. Syntaks, variabler og ut-data PHP er tilgivende PHP er som C Start- og sluttagg PHP bryr seg ikke om mellomrom (whitespace) Semikolon Kommentarer Variabler - mellomlagre av informasjon Variabler er følsomme for store og små bokstaver Endre verdien til variabler Forskjellige typer variabler De forskjellige variabeltypene Apostrof eller anførselstegn? echo print Sammendrag Kapittel 3. Kontrollering av verdier if-else og boolske konstanter Sammenlikne verdier Logiske operatorer Else if Sammenlikne verdier som ikke er heltall Switch Switch med strenger Løkker - while do-while Mer om løkker - for La oss bruke det i praksis! break og continue Uendelige løkker... 33

4 4 Alternativ kontroll-syntaks Oppsummering Kapittel 4. Lister Opprette arrays Løkker og arrays Mer om indekser Sortering Vanlige operasjoner Køer og stakker Oppsummering Kapittel 5. Funksjoner Hva er en funksjon? Vanlige feller Returnere verdier Returnere flere verdier Oppsummering Kapittel 6. Ta imot data fra brukeren Basiskunnskaper Sikkerhet Regulære uttrykk Feilmeldinger Ta imot arrays POST, GET og REQUEST Ta imot filer Oppsummering Kapittel 7. Objekt-orientering Forord Klasser og objekter Lage objekter Arv Synlighet Statiske metoder og variable Objekt-operasjoner Oppsummering Kapittel 8. Databaser og MySQL Tilgang til MySQL Datatyper Tabeller Uthenting av data Mer uthenting Oppdatering Sletting Oppsummering Kapittel 9. Databasenormalisering... 81

5 Dagens eksempel Første normalform Andre normalform Tredje normalform Løsning Oppsummering

6 6 Kapittel 1. Det grunnleggende Kapittel 1. Det grunnleggende Vi starter opp med en stor artikkelserie som gir deg en innføring i bruk av PHP og MySQL. Kapittel 1 gir deg en introduksjon til det helt elementære. Er du en av mange som har lekt litt med HTML, men savner mer funksjonalitet? I denne artikkelserien vil vi lære deg å bruke PHP og MySQL til å lage dynamiske webløsninger, slik at du kan ta webutviklingen til et nytt nivå. For å få best mulig utbytte av denne innføringen er det en fordel at du kan HTML og har en viss kjennskap til programmering. Dette er imidlertid ikke et krav - du skal kunne skjønne det meste uten noen som helst bakgrunnskunnskap. I dette første kapittelet vil vi se på hva PHP egentlig er og hvorfor man skal bruke det. Videre vil du lære å sette opp PHP på din egen maskin, og du vil også lære elementær koding. Planen er at denne artikkelserien skal gå over rundt ti kapitler. Først vil du lære deg PHP, og etterhvert vil vi gå over til å vise hvordan PHP kan brukes sammen med databaseverktøy som MySQL. Så vil vi bruke denne kunnskapen i praksis. Så, la oss starte! Historien til PHP Før vi begynner å bruke PHP i praksis kan det være lurt å vite hva det er vi egentlig driver med. La oss ta en titt på hvordan PHP startet og hvordan det har utviklet seg med tiden. Historien til PHP går så langt tilbake som til Dansk-kanadieren Rasmus Lerdorf 1, programvareutvikler og medlem av utviklingsteamet til Apache, ønsket å holde oversikt over besøkende til hans personlige nettside. 1 Hjemmeside på

7 Kapittel 1. Det grunnleggende 7 Til dette utviklet han en skriptsamling basert på Perl og CGI. Mange fikk øynene opp for Lerdorfs arbeid, og etter stor etterspørsel lanserte han Personal Home Page Tools (a.k.a. the PHP Construction Kit) 8. juni Kort tid senere ble versjon 2 lansert, da under navnet PHP/FI. Denne inkluderte Form Interpreter, et verktøy som gjorde det mulig å sende spørringer til en SQL-database. Det var nå moroa virkelig startet. I midten av 1997 brukte rundt nettsteder PHP. Nå som prosjektet ble så stort var det umulig for én mann å håndtere det alene. Nå står en liten gruppe utviklere for utviklingen av PHP, med hjelp fra bidragsytere over hele verden. To nøkkelpersoner i utviklingen er de to israelske programmererne Zeev Suraski og Andi Gutmans. I 1997 skrev de Rasmus Lerdorf om hele parseren til PHP, og i oktober 1997 ble PHP/FI 2 lansert. Samtidig ble navnet byttet til Hypertext Preprocessor, som er navnet den dag i dag. I juni 1998 ble PHP 3 lansert offentlig. Eksplosiv økning Fra og med fjerde kvartal av 1998 opplevde PHP en eksplosiv økning, da prosjekter basert på åpen kildekode for alvor kom frem i lyset. Rundt nettsteder brukte PHP på en eller annen måte i oktober Året senere var tallet på én million. PHPs vekstkurve I mai 2000 ble versjon 4 lansert, da med den nye Zend Engine. I dag er PHP installert på ca. 20 millioner nettsider verden over. PHP 5 ble lansert 13. juli 2004, og er ved siden av PHP 4.4 de versjonene som har offisiell støtte i dag. PHP 5 forsøker å tilby noe mange brukere har etterspurt opp gjennom årene - mulighet for objektorientert programmering (OOP). Selv om OOP-støtten per dags dato er langt fra optimal, bringer den PHP mer på linje med objektorienterte programmeringsspråk som Java og C++. Du vil lære mer om objektorientert programmering i PHP i et senere kapittel.

8 8 Kapittel 1. Det grunnleggende Hva er egentlig PHP? For dere som ikke har kjennskap til PHP fra før av kan hele opplegget virke litt merkelig. La meg forklare hva PHP egentlig går ut på, og hvorfor vi bruker det. PHP er et skriptespråk på serversiden som kan brukes til å generere blant annet HTML. Andre liknende skriptespråk er blant annet Microsofts Active Server Pages (ASP), Macromedias ColdFusion og Suns Java Server Pages (JSP). PHP er blant de få språkene som er skrevet med åpen kildekode. Dette vil si at hele kildekoden er tilgjengelig gjennom PHP.net 2. Enkelte kaller PHP for "ASP med åpen kildekode" fordi funksjonaliteten er liknende ASP. Formuleringen er imidlertid misledende, ettersom PHP ble utviklet før ASP (første versjon av ASP kom i 1996). Den største fordelen med PHP i forhold til andre liknende teknologier er det at det er så og si helt plattformuavhengig. Du kan kjøre PHP på systemer basert på Unix, Windows og Mac OS X. Alt foregår på serveren PHP er ikke ment til å definere utseendet til en nettside og bestemmer i utgangspunktet heller ikke innholdet. Til slike oppgaver har man klientbaserte teknologier som Cascading Style Sheet (CSS) og Hyper-Text Markup Language (HTML). Hva PHP gjør er i de fleste tilfeller helt usynlig for brukeren. En bruker vil ikke nødvendigvis kunne skille et HTML-dokument som er servert av PHP fra et vanlig HTML-dokument. Dette fordi resultatet av PHP normalt er HTML. PHP genererer HTML-kode som blir levert til en bruker 2

9 Kapittel 1. Det grunnleggende 9 På bildet ovenfor ser vi en HTML-side som blir levert til nettleseren til en bruker. Her ser vi det eksakt samme dokumentet som er levert av et PHP-skript. Som vi ser merker ikke brukeren noen som helst forskjell, for forskjellen ligger på serversiden. Så hva trenger man PHP til? De av dere som har laget nettsider i HTML har sannsynligvis lagt merke til en vesentlig negativ ting. La oss si at du har en stor nettside basert på en rekke HTML-dokumenter. På denne nettsiden har du en meny. Men så finner du ut at du vil endre noe på menyen. Hva i all verden skal du gjøre nå? Den eneste muligheten er å endre hver enkelt HTML-fil. Det er her PHP kommer inn i bildet - med PHP kan du ha en enkelt fil som inneholder kodingen til menyen, og deretter bruke en svært enkel funksjon for å legge menyen inn på hver enkelt side. HTML er altså et statisk språk, mens PHP på sin side er dynamisk. Riktignok finnes det teknologier som gjør en liknende løsning mulig via HTML, slik som frames. Dette er imidlertid ikke en god metode, da det er ansett som en utdatert teknologi. I tillegg til at PHP gjør det svært enkelt å lage statiske websider byr språket på en rekke funksjoner du aldri kunne ha klart å gjøre mulig med bare HTML (du vil oppdage dette etterhvert som du leser flere kapitler av denne innføringen). Har du for eksempel tenkt på hvordan forumet vårt og publiseringssystemet er laget? Jepp, du gjettet riktig. Det er alt basert på PHP. Hadde det ikke vært for PHP og liknende teknologier ville verdensveven fortsatt vært i steinalderstadiet. Klientbaserte teknologier Det finnes i dag en rekke klientbaserte teknologier som muliggjør diverse funksjoner. Jeg kan nevne Javascript, Java applets, Flash og VBscript. Problemet med samtlige av disse teknologiene er imidlertid at de avhenger helt og holdent på brukeren, ikke på serveren som leverer informasjonen. For eksempel kan brukere ha deaktivert JavaScript av sikkerhetshensyn, eller nettleseren kan ha ikke-eksisterende eller utilstrekkelig støtte for Java eller Flash. Disse problemene unngår man med serverbaserte-teknologier som PHP, for all behandling av kode skjer på serveren. Installasjon av PHP Den vanligste bruken er å leie serverplass med støtte for PHP. For vanlig testing kan det imidlertid være like greit å sette det opp på egen maskin. La oss se hvordan det gjøres. Vi har tatt utgangspunkt i bruk av Apache 2.2 som webserver, PHP og MySQL Installasjon på Unix Erfarne PHP-utviklere vil ofte si at Unix-baserte systemer er det beste å bruke for PHP. Det er også derfor svært mange leverandører av serverplass benytter dette operativsystemet. For å sette opp PHP trenger du å ha installert en webserver. Vi tar utgangspunktet i Apache 2.0, som er nyeste versjon av den mest utbredte varianten. Faktisk leveres mange Linux-distrubisjoner med LAMP (Linux Apache MySQL PHP), og i mange tilfeller trenger man derfor ikke å installere noe som helst. Det er imidlertid en stor sjanse for at både Apache- og PHP-versjonen du har installert er utdatert. Brukere av Debian eller Ubuntu kan installere Apache og PHP svært enkelt (takk til Tor Henning Ueland for denne). Alt som trengs å gjøres er å skrive:

10 10 Kapittel 1. Det grunnleggende sudo apt-get install apache2 sudo apt-get install php5 Har du ikke Debian eller Ubuntu må du imidlertid gå for en mer avansert løsning. Det første du må gjøre er å laste ned Apache 3. Deretter må du "unzippe" og "untare" Apache-distrubisjonen: gzip -d httpd-2_0_nn.tar.gz tar xvf httpd-2_0_nn.tar Nå skal Apache-serveren bygges. Du kan selvsagt selv velge hvor den skal bli plassert - vi har tatt utgangspunkt i /usr/local/machine. --enable-so vil la Apache laste inn PHP-støtte og en rekke andre nyttige elementer. cd httpd-2_0_nn./configure --prefix=/usr/local/apache2 --enable-so make make install For å sjekke at Apache-serveren fungerer starter du den på den vanlige måten, altså slik: /usr/local/apache2/bin/apachectl start Deretter avslutter du Apache igjen. /usr/local/apache2/bin/apachectl stop Nå kan gå videre til konfigureringen av PHP. cd../php-nn Nå konfigurerer vi PHP med forskjellige valg. Det du burde gjøre er konfigurere for Apache 2 og MySQL-støtte. Vær obs på at adressen til apxs kan variere fra system til system, den kan like gjerne være kalt apxs2../configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql make make install Nå er det tid for å installere php.ini-filen. Denne filen gir deg mulighet for å endre det meste av instillinger i PHP. Mer om dette kan du lese i et senere kapittel. cp php.ini-dist /usr/local/lib/php.ini Nå er tiden inne for å endre httpd.conf-filen til å laste PHP-modulen. LoadModule php5_module modules/libphp5.so Helt til slutt skal vi gi beskjed til Apache om hvilke filer som skal leses som PHP. I vårt eksempel har vi valgt PHP- og HTML-filer, noe som vil si at alle filer som enten har filendelsen.php eller.html vil bli lest som PHP-filer. AddType application/x-httpd-php.php AddType application/x-httpd-php.html Nå er det bare å starte Apache på nytt, og alt skal fungere. Husk på at hver gang du endrer HTTPkonfigurasjonen eller php.ini-filen må serveren restartes. 3

11 Kapittel 1. Det grunnleggende 11 /usr/local/apache2/bin/apachectl start Installasjon av PHP på Windows NT/2000/XP Mange ønsker sikkert å benytte seg av Windows når de skal teste PHP-koding. Installasjonen er langt lettere på Windows, ettersom den tar utgangspunkt i allerede kompilert kode. Det finnes i dag en rekke pakker som gjør det mulig å installere Apache, PHP og MySQL svært enkelt. Av disse er nok XAMPP 4 den beste, da den i skrivende stund støtter nyeste versjon av Apache (2.2.2), PHP (5.1.4) og MySQL (5.0.21). Svar "ja" til alle spørsmål du får under installasjonen. Et stort Vi bruker XAMPP når vi installerer på Windows problem med XAMPP er at programmet må konfigureres skikkelig for å unngå store sikkerhetshull. Etter installasjonen åpner du og følg deretter instruksjonene for konfigurasjon. For å sjekke at installasjonen av XAMPP var vellykket, gjør følgende: Åpne et nytt dokument i teksteditoren din, og skriv: phpinfo(); Denne filen lagrer du som info.php, og legger den i xampp/htdocs. Deretter starter du en nettleser og åpner localhost/info.php eller /info.php. Har du gjort alt riktig skal du nå få opp masse info om PHP-konfigurasjonen din. Installer selv (Windows) Hvis du imidlertid ønsker å gjøre ting selv, for å ha full kontroll over hva du gjør og hvor du legger ting, så følg innføringen under. Last ned og installer Apache Win32 Binary fra Apache.org 5. Selve installasjonen skal være nokså selvforklarende. Deretter laster du ned PHP fra PHP.net 6. Her burde du velge zip-pakken, ettersom varianten som bruker et installeringsprogram kun virker med Internet Information Services (IIS), som følger med Windows Server Nå pakker du ut zip-filen til stedet du ønsker; C:\PHP er det vanligste. Velg samtlige filer som har filendelsen.dll, og kopier de til C:\Windows\System32. Egentlig trenger du ikke alle filene, men for enkelhetens skyld er det like greit å ta alle sammen. Kopier php.ini-recommended til C:\Windows, og endre navnet på den til php.ini. Deretter åpner du denne filen i en teksteditor, for eksempel Notisblokk (Start > Kjør > notepad). Naviger deg frem til doc_root (Ctrl + B for å søke i Notisblokk). Denne skal bli satt til mappen du har

12 12 Kapittel 1. Det grunnleggende dokumentene til Apache i, for eksempel C:\Programfiler\Apache Software Foundation\Apache2.2\htdocs. Nå går du tilbake til Apache-mappen, og finner mappen kalt conf. Her åpner du httpd.conf med en teksteditor, og sett DocumentRoot (skal finnes to steder) til mappen du skrev inn ovenfor (for eksempel C:/Programfiler/Apache Software Foundation/Apache2.2/htdocs). Finn ServerAdmin (fortsatt i httpd.conf), og sett denne til e-postadressen din. Så finner du ServerName, og setter denne til Deretter føyer du til følgende nederst i dokumentet: AddModule mod_php5.c LoadModule php5_module modules/php5apache2.dll AddType application/x-httpd-php.php.html Åpne et nytt dokument i teksteditoren din, og skriv: phpinfo(); Denne filen lagrer du som info.php, og legger den i mappen for dokumenter, som ved de forrige stegene. Deretter starter du en nettleser og åpner eller /info.php. Har du gjort alt riktig skal du nå få opp masse info om PHPkonfigurasjonen din. Det er imidlertid ikke få ganger ting ikke fungerer som det skal første gang. Fremgangsmåten varierer fra versjon til versjon og fra operativsystem til operativsystem. Fungerer det ikke slik du hadde håpet kan du ta en titt i PHPs 7 eller Apaches 8 dokumentasjon på nettet. Eventuelt kan du benytte metoden med XAMPP (se toppen). Installasjon på Mac OS X Så har tiden kommet for Mac OS X. Det er ikke mange år siden prosjekter med åpen kildekode, slik som PHP, begynte å støtte Macintosh-plattformen. Mange ser på OS X som det beste av to verdener - enkelheten til Windows men samtidig gode muligheter for tekstbaserte kommandoer. Operativsystemet ditt kom sannsynligvis med både Apache og PHP installert på forhånd. Det er imidlertid mulig at dette er eldre versjoner, og det er derfor lurt å laste ned nyeste versjon. Problemet er bare at å laste ned kildekoden og kompilere den selv er langt fra lett for uerfarne brukere. Du kan imidlertid få en del tips i PHP-manualen 9. Det finnes imidlertid en rekke uoffisielle sider som tilbyr nyeste versjon av PHP ferdig kompilert for OS X. Vi kan anbefale Entropy 10. Installasjonen der skal være lett, det er bare å følge instruksjonene. Hvis du har PHP 5 og Apache 2 gjennom operativsystemet ditt, så følg disse stegene for installasjon: Åpne Apaches konfigureringsfil med administratorrettigheter

13 Kapittel 1. Det grunnleggende 13 sudo open -a TextEdit /etc/httpd/httpd.conf Rediger filen, og fjern kommentartegnet (;) fra følgende linjer: Load Module php5_module AddModule mod_php5.c AddType application/x-httpd-php.php Restart serveren. sudo apachectl graceful Nå kan vi sjekke om alt fungerer som det skal. Åpne en teksteditor og skriv følgende: phpinfo(); Denne filen lagrer du som info.php, og legger den i mappen til siden din. Deretter starter du en nettleser og åpner eller /~brukernavn/info.php. Har du gjort alt riktig skal du nå få opp masse info om PHPkonfigurasjonen din. Hello World! Nå som vi har fått PHP til å fungere er det endelig tid for litt koding. Hva er vel da bedre enn den oppbrukte "hello world" som vi alle er så grundig lei av? Det første du må gjøre er selvsagt å åpne en teksteditor. For Windows kan Notisblokk fungere flott, men et skikkelig program som Zend Studio 11 er langt bedre og mer oversiktlig. Minuset er at det koster penger. Et annet alternativ er PHPEclipse 12. Bortsett fra en kronglete installasjon er dette et godt program. Når vi nå har en teksteditor åpen skriver du følgende: echo("hello, evil world!"); PHP starter alltid med, og avsluttes med. All tekst innenfor vil oppfattes som PHP-kode, og vil bli behandlet deretter. Echo()-funksjonen skriver teksten som står innenfor (" og "), og avsluttes (som alle andre funksjoner i PHP) med et semikolon. Lagre filen som hello.php i mappen for filene på serveren. Hvor denne mappen er lokalisert avhenger av hvilket operativsystem du har og hva du selv har valgt (se side 5-7). Når du nå åpner localhost/hello.php skal du se teksten "Hello, evil world!". Gratulerer, du har laget ditt første PHP-skript! Fra HTML til PHP og tilbake En spennende ting med PHP er den tette integrasjonen med HTML. Dette gjør det lett å gå frem og tilbake fra PHP-kode i et dokument. Se det følgende eksempelet:

14 14 Kapittel 1. Det grunnleggende <html> <head> <title> echo("dette er en tittel som er laget ved hjelp av PHP");</title> </head> <body> <p> Dette avsnittet har egentlig ingen funksjon, det er her bare for å vise at du når som helst echo("kan gå over til PHP-kode uten noen som helst problemer (ser du? Kult, eh?)"); </p> </body> </html> Hvis du lagrer denne filen som et PHP-dokument og åpner den i en nettleser vil du se at tittel og tekst fungerer helt flott. Hvis du viser kildekoden til dokumentet vil du også se at det ikke er noen spor av PHP-kode der, alt du ser er HTML-kode. Dette er fordi all PHP-kode blir kjørt på serveren, mens HTML blir tolket hos klienten (leseren). Inkludering av filer Husker du at jeg tidligere snakket om problemet med at HTML er statisk? Det er på tide å vise hvorfor PHP er løsningen på alle slike sorger. La oss fortsatt bruke eksempelet med at vi skal redigere et element på menyen. Vi ser for oss at menyen blir definert slik i HTML: <ul id="meny"> <li><a href="index.php">hovedsiden</a></li> <li><a href="bilder.php">bilder</a></li> <li><a href="forum.php">forum</a></li> </ul> Med PHP kan vi bruke funksjonen include(). Denne inkluderer en valgt fil på det valgte området, og utfører eventuelle kommandoer filen inneholder. include('meny/hovedmeny.php'); Denne kan du lagre som for eksempel index.php. Teksten som står innenfor (' og ') definerer hvilken fil som skal inkluderes. Som alle funksjoner i PHP markerer et semikolon at funksjonen er ferdig. Vi ser for oss at vi har følgende i meny/hovedmeny.php: <ul id="meny"> <li><a href="index.php">hovedsiden</a></li> <li><a href="bilder.php">bilder</a></li> <li><a href="forum.php">forum</a></li> </ul> Nå vil innholdet i hovedmeny.php bli vist hver gang en forespørsel om å vise menyen blir sendt. Skal vi nå gjøre en endring på menyen er det bare å endre hovedmeny.php. Smart, sant? Flere inkluderingsfunksjoner Det finnes totalt fire funksjoner som inkluderer filer. Det er bygd opp av to sett med funksjoner - include-funksjonene og require-funksjonene. I tidligere versjoner av PHP var forskjellen i

15 Kapittel 1. Det grunnleggende 15 funksjonaliteten og hastigheten store mellom disse to settene, men dette stemmer ikke i dag. Den eneste forskjellen er i dag hva slags feilmelding de returnerer hvis noe går galt. include() og include_once() vil normalt generere en feilmelding ved en feil, mens require() og require_once() vil generere en feilmelding av typen "fatal error" og stoppe hele skriptet. Som man ser av navnene til funksjonene, include_once() og require_once() er forskjellig fra include() og require() ved at de bare lar en fil bli inkludert én eneste gang i løpet av hele PHP-skriptet som kjøres. Dette kan være svært nyttig i mange tilfeller, blant annet hvis du inkluderer filer som inneholder PHP-funskjoner. Dette fordi å redeklarere funksjoner vil resultere i en fatal feilmelding og hele skriptet vil bli avbrutt. I tillegg er det ikke uvanlig å ha (i større systemer) filer som inkluderer filer som inkluderer filer som igjen inkluderer filer, og det kan i mange tilfeller være vanskelig å huske om du har inkludert en funksjon tidligere. Dermed er *_once()-funksjonene svært nyttige. Så hvilken av de skal jeg bruke? Ved små skript er det lettest å bruke include(), og det er også funksjonen jeg vil benytte når jeg skriver eksempler i denne innføringen. Generelt sett kommer det mye an på hvordan du koder - hvis du vil holde deg selv i øret og ikke la det fungere hvis du har skrevet noe feil bruker du require(). I den andre enden av skalen finner vi include_once(), som vil gjemme alle konsekvenser av dine dårlige kodevaner. Så er første kapittel av denne innføringen snart over. Jeg håper at du har hatt utbytte av det du har lest, og at du har likt det du har lest like mye som jeg har likt å skrive det. Husk at jeg som alltid er åpen for tilbakemeldinger. Oppsummering PHP er et skriptespråk som kjøres på serversiden, og sender informasjonen i form av HTMLdokumenter til klienten (leseren). PHP har siden lanseringen i 1995 opplevd en eksplosiv vekst, og er i dag i bruk av nærmere 20 millioner nettsteder. PHP gjør det lett å lage dynamiske webløsninger, og brukes aktivt på svært mange store nettportaler verden over. Vårt eget forum og publiseringssystem baserer seg på PHP. PHP-kode markeres med og, og alt innenfor vil bli tolket som PHP-kode. Alle funksjoner skal i PHP avsluttes med et semikolon. Videre printes tekst og HTML-koder ut med funksjonen echo(), og filer blir inkludert med include()- og require()-funksjonene. I neste kapittel vil vi gå løs på syntaksen til PHP, lære om variabler og mer om hvordan ut-data sendes fra PHP. Planen er at kapittel to vil komme om rundt én uke.

16 16 Kapittel 2. Syntaks, variabler og ut-data Kapittel 2. Syntaks, variabler og ut-data Er du en av mange som har lekt litt med HTML, men savner mer funksjonalitet? I denne artikkelserien vil vi lære deg å bruke PHP og MySQL til å lage dynamiske webløsninger, slik at du kan ta webutviklingen til et nytt nivå. For å få best mulig utbytte av denne innføringen er det en fordel at du kan HTML og har en viss kjennskap til programmering. Dette er imidlertid ikke et krav - du skal kunne skjønne det meste uten noen som helst bakgrunnskunnskap. I kapittel 1 av denne guiden så vi på hva PHP er, historien til PHP og hvordan PHP installeres. Til slutt så vi på litt enkel programmering som "hello world" og inkludering av filer. Nå i kapittel 2 vil vi se nærmere på syntaksen til PHP, altså hvordan PHP-kode skrives. Videre vil vi se grundig på variabler, og til slutt se litt på hvordan man sender ut-data fra PHP. Ettersom det er vanskelig å forklare syntaksen til PHP uten å komme med spesifikke eksempler vil forklaringen av syntaksen og forklaringen av variabler gå litt på kryss og tvers av hverandre. Dette vil også fortsette i de neste kapitlene, hvor vi vil se på tall, matematiske operasjoner, kontroll, funksjoner og mye mer. Har du ikke lest kapittel 1 vil jeg anbefale deg å gjøre det før du fortsetter å lese dette kapittelet. PHP er tilgivende Det viktigste å vite om PHP er at språket forsøker å være så tilgivende som mulig. Programmeringsspråk varierer mye i hvor strengt de krever at syntaksen blir overholdt. Hvis du for eksempel skal skrive et program som styrer et kjernekraftverk hadde det vært utrolig kjedelig hvis du hadde gjort en feil i kodingen uten at noen feilmelding kom opp. PHP er imidlertid ikke, tro det eller ei, designet for å styre kjernekraftverk. Siden PHP startet opp som en skriptsamling som enkelt skulle kunne enkelt installeres på personlige nettsider er filosofien den dag i dag at programmereren skal gi et minimum at informasjon, og PHP-parseren skal selv forsøke å finne ut resten. PHP kan imidlertid ikke lese tankene dine, og vil gi beskjed hvis syntaksereglene er så grovt brutt at PHP ikke forstår hva du har tenkt at skal gjøres. Når du ser ordene parse error indikerer det at du har en feil i syntaksen din, og at PHP-parseren gir beskjed om dette. PHP er som C PHP sin syntaks har lånt mange elementer fra programmeringsspråket C. Er du en av de heldige som har programmert i C før har du en stor fordel, for PHP er ikke så ulikt C. Lurer du på hvordan noe skrives i PHP, så forsøk å skrive det slik du ville skrevet det i C. Start- og sluttagg PHP starter alltid med taggen, og slutter med. Alt innenfor vil bli tolket som PHP-kode, og behandlet deretter av PHP-parseren. Man kan også starte PHP-skript med <?, forutsatt at short_open_tag i php.ini er satt til on. Dette kan imidlertid by på problemer, ettersom XML-filer starter på akkurat samme måte. Jeg vil derfor anbefale å bruke.

17 Kapittel 2. Syntaks, variabler og ut-data 17 PHP bryr seg ikke om mellomrom (whitespace) Ok, overskriften er en smule misvisende. I PHP kan det være viktig å putte inn mellomrom, men når det først er gjort spiller det ingen rolle hvor mange mellomrom du skriver. Det samme gjelder tabs og linjeskift. Se dette eksempelet: $variabel = 2 + 2; $variabel = ; $variabel = 2 + 2; Hvert av de tre eksemplene over vil fungere helt fint. Med andre ord vil ett mellomrom oppfattes som det samme som uendelig mange mellomrom. Semikolon I PHP er et utsagn (statement) et uttrykk (expression) som er avsluttet med et semikolon (;). Vi kan si at et uttrykk er som en frase, mens et utsagn er som en hel setning. Semikolonet indikerer at utsagnet er ferdig. Hvis du ikke skjønner dette nå - ikke fortvil. Du vil selv kunne se dette i praksis senere i kapittelet og i andre kapitler. Kommentarer Når man skriver store skript kan det være svært nyttig å kommentere kodingen man gjør. Uten kommentering blir koden fort uoversiktlig, og det kan være vanskelig å skjønne hva den som har skrevet koden har tenkt. Alle kommentarer vil bli hoppet over av PHP-parseren, og er der kun for at du eller en annen ved en senere anledning kan lese det. Med andre ord vil alt som er markert som kommentarer PHP bruker samme metode for kommentarer over flere linjer som C - den starter med /*, og ender med */ /* Dette er en kommentar som går over mange linjer. Det siste ordet vil gi en feil, ettersom det står */ utenfor I tilfellet over vil utenfor bli tolket som PHP-kode, ettersom det ikke står innenfor kommentartegnene. Vi har også alternativer for kommentarer som kun går over én linje. Her har vi C++- og Javavarianten // og Perl-varianten #. # Dette er en kommentar # Og enda en linje med kommentar // Dette er også en kommentar. // Begge disse typene støtter kun en linje med tekst, // så det siste ordet her vil gi en feil Den observante leser vil se at dette ikke stemmer med det jeg sa tidligere om at PHP ikke er sensitiv for mellomrom, tabs og linjeskift (whitespace). Kjære observante leser, du har helt rett. En mer riktig måte å si det på er at PHP ikke er sensitiv for såkalt "whitespace" etter at kommentarene er tatt ut fra koden.

18 18 Kapittel 2. Syntaks, variabler og ut-data Variabler - mellomlagre av informasjon Den vanligste måten å lagre informasjon i midten av et PHP-skript er å bruke variabler. En variabel har et navn og en verdi. For å kalle opp en variabel bruker vi navnet variabelen har, og tilbake får vi verdien den er lagret med. Med andre ord er variabler et mellomlager for informasjon. Se det følgende eksempelet: $testvariabel = "Dette er informasjonen som er lagret"; I PHP bruker vi alltid et dollartegn ($) for å indikere at vi snakker om en variabel. Ved å bruke et likhetstegn (=) gir vi variabelen en verdi. På venstre siden av likhetstegnet er variabelnavnet, mens det på høyresiden er verdien til variabelen. Skal vi nå skrive ut innholdet i variabelen gjør vi det slik: $testvariabel = "Dette er informasjonen som er lagret"; echo $testvariabel; Dermed vil informasjonen som variabelen ved navn testvariabel inneholder bli skrevet ut med echo-funksjonen. Variabler er følsomme for store og små bokstaver Generelt sett sier man at PHP ikke bryr seg om forskjellen på store og små bokstaver, noe som følger filosofien om at PHP skal være tilgivende. Det er imidlertid en ting som er viktig å merke seg; navn på variabler er følsomme for forskjell på store og små bokstaver. $variabel = 100; echo "Variabelen med navn variabel har verdien $variabel"; echo "Variabelen med navn VaRiaBeL har verdien $VaRiaBeL"; Ut-dataen du da vil se er: Variabelen med navn variabel har verdien 100 Variabelen med navn VaRiaBeL har verdien Variabelen med navn variabel er nemlig en helt annet variabel enn VaRiaBeL. Variabelen VaRiaBeL inneholder ikke noe informasjon, for den er ikke deklarert. Dette ser vi tydelig av utdataen. Endre verdien til variabler Hva hvis vi vil endre informasjonen som en variabel inneholder? Dette er selvsagt svært enkelt. Se det følgende eksempelet: $name = "André K. Dahl"; $name = "André Kristoffer Dahl"; echo "Forfatter: $name"; Her definerer vi først variabelen ved navn name til å inneholde teksten "André K. Dahl", for deretter å endre verdien til "André Kristoffer Dahl". Det er den sistnevnte verdien vi vil få hvis vi

19 Kapittel 2. Syntaks, variabler og ut-data 19 ber om å få verdien til variabelen. Det er i utgangspunktet ingen måte å finne ut at variabelen name har hatt en annen verdi før den endelige verdien. Se det følgende eksempelet: $car = "Volvo 850"; $old_car = $car; $car = "BMW 5-serie 520" echo "Min gamle bil var en $old_car. Min nye bil er en $car."; Ut-dataen fra dette skriptet ville vært "Min gamle bil var en Volvo 850. Min nye bil er en BMW 5- serie 520". Som du ser blir innholdet til old_car satt til det samme som innholdet i car, som er "Volvo 850". Grunnen til dette er at PHP leser fra toppen og nedover, slik at på det tidspunktet old_car ble definert var verdien av car "Volvo 850". Forskjellige typer variabler Det finnes en rekke typer variabler i PHP, som i alle programmeringsspråk. Disse typene spesifiserer hva slags verdier som kan bli lagret i de aktuelle variablene. Eksempelene til nå har kun tatt for seg strenger (strings), altså ren tekst. Til forskjell fra mange andre programmeringsspråk krever ikke PHP at vi spesifiserer typen til en variabel. Dette følger PHPs filosofi om at alt skal være så enkelt som mulig, og at språket skal være tilgivende. På tross av at vi ikke trenger å spesifisere hva slags type en variabel er har vi selvsagt mange forskjellige type variabler. PHP-parseren finner selv ut hva slags type en variabel er. I PHP finnes det totalt åtte typer variabler (det engelske navnet står i parantes): Heltall (integers) er hele nummer uten desimaler. For eksempel 145. Desimaltall (doubles) er tall med desimaler. For eksempel eller 65.0 (PS: Husk at du må bruke punktum, ikke komma). Boolske variabler (booleans) har kun to mulige verdier: TRUE eller FALSE. NULL er en type som kun har en verdi - NULL. Den brukes gjerne for å indikere at variabelen er tom. Strenger (strings) er flere tegn satt sammen. For eksempel "Vi benytter PHP 5.1.4". Arrays er navngitte og indekserte samlinger av andre verdier. Objekter (objects) er klasser som er definert av programmereren selv, som kan inneholde både andre typer verdier og funksjoner som er spesifikk til klassen. Ressurser (resources) er variabler som inneholder referanser til ressurser utenfor PHP. For eksempel en tilkobling til en database. På neste side vil vi se nærmere på de forskjellige typene. De forskjellige variabeltypene Som sagt trenger vi i PHP ikke å spesifisere hva slags informasjon en variabel skal inneholde. Om det er en streng, heltall eller desimaltall er opp til PHP-parseren å finne ut. Denne jobben gjør den svært godt, men i noen tilfeller kan det være nødvendig å hjelpe den litt på vei.

20 20 Kapittel 2. Syntaks, variabler og ut-data $pi = ; echo "Pi er omtrent $pi"; Her blir resultatet av regnestykket regnet ut, og lagret i variabelen pi. Hvis du kjører dette skriptet vil du dermed få teksten "Pi er omtrent ". Men hva hvis du vil at variabelen Pi skal lagre selve teksten " ", ikke selv regne det ut? $pi = " "; echo "Pi er omtrent $pi"; Alt som skulle til var å føye til noen hermetegn. Nå oppfatter PHP-parseren det som at variabelen pi inneholder en streng (string), og vil dermed ikke forsøke å regne det ut, men beholdet uttrykket. Ut-dataen hvis du kjører dette skriptet vil altså være "Pi er omtrent ". Apostrof eller anførselstegn? I PHP kan man i mange tilfeller selv velge om man vil benytte seg av apostrof (') eller anførselstegn ("). Mange sliter med å skjønne forskjellen, og blir overrasket når skriptene de skriver ikke fungerer som det er tenkt. En viktig faktor å huske på er at en apostrof godt kan puttes inn mellom anførselstegn, og omvendt. Se eksempelet: echo "I'm starting to understand this PHP-shit!"; Dette vil fungere helt fint. Apostrofen vil ikke oppfattes som et tegn på at echo-kommandoen er over, ettersom vi i eksempelet over bruker anførselstegn. Skriver vi derimot følgende: echo 'I can't understand this!';...vil vi få en feilmeldingen av typen parse error (unexpected T_STRING). Det er imidlertid svært stor forskjell på egenskapene til apostrof og anførselstegn. $variabel = "Dette er verdien"; echo '$variabel'; echo '<br>'; //Linjeskift i HTML echo "$variabel"; Kjører vi dette skriptet vil vi få følgende som ut-data: $variabel Dette er verdien Dette er fordi alt som står mellom apostrofer oppfattes som ren tekst. Har vi det mellom anførselstegn vil imidertid PHP-parseren oppfatte at det er en variabel, og vil skrive ut verdien av variabelen isteden.

21 Kapittel 2. Syntaks, variabler og ut-data 21 PHP har noen bestemte tegn som vil bli erstattet av andre karakterer hvis de starter med en skråstrek av typen \ (backslash). Disse fungerer kun ved bruk av anførselstegn ("), altså ikke ved bruk av apostrofer ('). \n blir erstattet med en ny linje. \r blir erstattet med et returkarakter. \t blir erstattet med en tab-karakter. \$ blir erstattet med et dollartegn. \" blir erstattet med et anførselstegn. \' blir erstattet med en apostrof. \\ blir erstattet med en skråstrek av den typen (backslash). Ønsker du dermed å skrive ut et dollartegn i samme echo-sekvens som du inkluderer en variabel, gjør du slik: Ut-dataen vi da vil få er "$dollar". Hadde vi derimot ikke brukt skråstreken hadde PHP-parseren lest det som en henvisning til variabelen med navn dollar. Hvis vi derimot setter inn disse tegnene ved bruk av apostrofer, så vil selve teksten bli skrevet ut (for eksempel \n). Det eneste unntaket er ved bruk av \', som naturlig nok vil skrive ut en apostrof. Prøv deg frem selv! echo Til nå har vi benyttet echo-funksjonen til å sende ut-data fra PHP. Denne funksjonen kan benyttes på følgende måter: og echo "\$dollar"; echo "Dette er en tekst."; echo("dette er en tekst."); Benytter du deg av den første metoden kan du gi flere argumenter, separert av komma: echo "Dette er ", "en tekst."; Hvis du forsøker å gi flere argumenter mens du bruker metode nummer to vil du imidlertid få en feilmeldingen av typen parse error (unexpected ','). print Kommandoen print er veldig lik echo, men har to viktige forskjeller. print kan under ingen omstendigheter akseptere mer enn ett argument. Print, i motsetning til echo, returnerer en verdi som sier om print-kommandoen lyktes. Verdien som returneres vil være 1 hvis utførelsen lyktes og 0 hvis den ikke lyktes. Det er svært, svært skjeldent at en print-kommando ikke lykkes, men i sære tilfeller som hvis brukeren har lukket nettleseren kan funksjonen være nyttig. Syntaksen til print er slik:

22 22 Kapittel 2. Syntaks, variabler og ut-data print("dette er en tekst"); //Skriver ut en streng print( ); //Skriver ut et tall Kapittel 2 av denne innføringen nærmer seg slutten. Nå er vi endelig på vei over kneika, så snart kan vi begynne med det som virkelig er gøy. I påvente av neste kapittel vil jeg anbefale alle og enhver å teste ut forskjellige ting. Er det noe du er usikker på? Test det ut! Sammendrag I dette kapittelet har vi sett at PHP er et tilgivende språk med en syntaks liknende programmeringsspråket C. Kodesekvenser i PHP starter med og ender med. Et semikolon benyttes for å indikere at en konstatering er ferdig. Videre bruker vi /* */ for kommentarer over flere linjer, og # eller // for kommentarer på én linje. Variabler benyttes til å mellomlagre informasjon. En variabel defineres slik: $variabelnavn = "variabeltekst";. Hva slags type (desimaltall, heltall, strenger osv.) variabelen er trengs i utgangspunktet ikke å defineres. Forskjellene mellom apostrof (') og anførselstegn (") kan virke små, men er i virkeligheten store. En variabel vil ikke skrives ut hvis man benytter apostrof, i tillegg til at anførselstegn har en god del tegn som erstattes med andre karakterer, som \n og \r. I utgangspunktet benytter man echo-funksjonen til å sende ut-data til nettleseren. Man kan også benytte print, som gir tilbakemelding på om utførelsen var vellykket. I neste kapittel vil vi se på hvordan vi sammenlikner flere verdier, og utføre handlinger basert på utfallet. I mellomtiden lek deg litt for å bli kjent med PHP.

23 Kapittel 3. Kontrollering av verdier 23 Kapittel 3. Kontrollering av verdier Vi ser på hvordan vi kan utføre ulike handlinger basert på betingelser. Er du en av mange som har lekt litt med HTML, men savner mer funksjonalitet? I denne artikkelserien vil vi lære deg å bruke PHP og MySQL til å lage dynamiske webløsninger, slik at du kan ta webutviklingen til et nytt nivå. For å få best mulig utbytte av denne innføringen er det en fordel at du kan HTML og har en viss kjennskap til programmering. Dette er imidlertid ikke et krav - du skal kunne skjønne det meste uten noen som helst bakgrunnskunnskap. I kapittel 1 av denne guiden så vi på hva PHP er, historien til PHP og hvordan PHP installeres. Til slutt så vi på litt enkel programmering som "hello world" og inkludering av filer. I kapittel 2 så vi på syntaksen til PHP og hvordan man behandler variabler. Til slutt så vi litt på hvordan man sender ut-data fra PHP, som echo og print. I dette kapittelet vil vi se på hvordan vi kan kontrollere og sammenlikne verdier, for deretter å utføre handlinger basert på utfallet. Du vil lære å skrive skript som har handlinger med betingelser - altså kommandoer som kun vil bli utført hvis betingelsene ligger til rette. Fra og med dette kapittelet har jeg gjort en liten forandring - kodeeksemplene vil ikke lenger inkludere start- og slutt-markeringen for PHP ( og ). Skal du teste eksemplene i praksis må du altså selv legge til dette. Husk at dokumentet må lagres med filendelsen.php. if-else og boolske konstanter Det er vanskelig å skrive interessante skript uten å la utførelsen til skriptet avhenge av noe. For å lage skikkelige skript må vi kunne utføre kontroller, for deretter å utføre handlinger basert på utfallet. Det finnes to hovedtyper av kontroller - grener (branches) og sløyfer (loops). En gren utfører én enkel kontroll, og avhengig av utfallet velger den hvilken vei den skal gå. En sløyfe derimot, utfører denne kontrollen flere ganger. Etter at kontrollen er utført vil den begynne på kontrollen igjen, inntil ønsket antall kontroller er gjort. if-else if-else er den vanligste formen for å utføre en kontroll. Syntaksen er slik: if (test av uttrykk) Utfør visse handlinger else Utfør noen andre handlinger Her blir først en test av ett eller flere uttrykk utført. Hvis uttrykket/uttrykkene stemmer, vil den boolske verdien TRUE returneres, og handlingene vil bli utført deretter. Er imidlertid uttrykket/uttrykkene usanne, slik at verdien FALSE returneres, vil ikke kommandoen(e) som står mellom klammene ( og ) utføres. Det er her else kommer inn i bildet. Else sjekker ikke om noen uttrykk stemmer, den bare utfører én eller flere kommandoer som et følge av at testen av uttrykket/uttrykkene avslørte at uttrykket/uttrykkene var usanne.

24 24 Kapittel 3. Kontrollering av verdier Man trenger strengt tatt ikke bruke klammene i alle tilfeller, men det er god programmeringsskikk å gjøre det, for lesbarhetens skyld. For eksempel kan det bli vanskelig å finne ut hvilken if-spørring en else hører til hvis det ikke er markert med klammer. Boolske konstanter For å se om et uttrykk stemmer bruker vi operatoren if. Deretter kan vi bruke operatoren else, som utfører en eller flere kommandoer hvis uttrykket ikke stemmer. Den letteste formen for et uttrykk er de boolske verdiene TRUE og FALSE. if (TRUE) echo "Dette vil alltid vises"; else echo "Dette vil aldri vises"; Som vi ser utfører vi en kontroll ved hjelp av if. Stemmer ikke det første uttrykket vil programmet automatisk hoppe ned til else og utføre kommandoen(e) der. Skulle vi ha skrevet dette så vi enkelt kunne forstått det hadde det sett slik ut: HVIS SANT SKRIV "Dette vil alltid vises" ELLERS SKRIV "Dette vil aldri vises" Vi kan også utføre en motsatt kontroll, der vi kjører kontrollen if (FALSE): if (FALSE) echo "Dette vil aldri vises"; else echo "Dette vil alltid vises"; Dette vil da være det tilsvarende "på norsk": HVIS USANT SKRIV "Dette vil aldri vises" ELLERS SKRIV "Dette vil alltid vises" Eksemplene over har heller liten nytte i et virkelig skript - de er kun ment for å gi en enkel innføring. På neste side vil vi se på eksempler som du vil få mer bruk for i praksis. Sammenlikne verdier Den mest elementære formen for betingelser er å sammenlikne to verdier. I det følgende eksempelet sammenlikner vi to heltall.

25 Kapittel 3. Kontrollering av verdier 25 if (3 == 3) echo "Uttrykket stemmer"; else echo "Uttrykket stemmer ikke"; Her gjennomfører vi en kontroll av de to heltallene "3" og "3", med operatoren ==, som betyr "er lik". Kjører vi dette skriptet vil vi selvsagt få verdien "Uttrykket stemmer". Hadde ikke uttrykket stemt ville vi fått verdien "Uttrykket stemmer ikke". Vi kan selvsagt gjennomføre denne kontrollen med variabler. Se det følgende eksempelet: $variabel1 = 3; $variabel2 = 3; if ($variabel1 == $variabel2) echo "Uttrykket stemmer"; else echo "Uttrykket stemmer ikke"; Hvis vi derimot bytter ut == med!= vil vi få et helt annet resultat.!= betyr nemlig "ikke lik". $variabel1 = 3; $variabel2 = 3; if ($variabel1!= $variabel2) echo "Uttrykket stemmer"; else echo "Uttrykket stemmer ikke"; Det finnes en rekke slike sammenliknings-operatorer. Her er en komplett liste: == (er lik) - Sann hvis de to argumentene er like hverandre!= (ikke lik) - Sann hvis de to argumentene ikke er like hverandre < (mindre enn) - Sann hvis det første argumentet er mindre enn det andre argumentet > (størren enn) - Sann hvis det første argumentet er større enn det andre argumentet <= (mindre enn eller lik) - Sann hvis det første argumentet er mindre enn eller likt det andre argumentet >= (større enn eller lik) - Sann hvis det første argumentet er større enn eller likt det andre argumentet === (identisk) - Sann hvis de to argumentene er like hverandre, og av samme type (altså må begge være strenger, eller begge må være heltall osv.)

26 26 Kapittel 3. Kontrollering av verdier Det er viktig å merke seg forskjellen mellom =, == og ===. = brukes som kjent til å sette variabler. Kjører du følgende skript: $a = 1; $b = 2; if ($a = $b) (...)...vil du sette $a til den samme verdien som $b. I tillegg vil uttrykket bli sett på som sant (TRUE) så lenge $b er satt til en verdi. I tilfellet over skulle vi ha brukt ==, eventuelt === hvis vi ønsket å være sikre på at begge variablene er av samme type. Logiske operatorer En logisk operator er en operator som forbinder logiske uttrykk (som boolske uttrykk) til å produsere nye boolske verdier (TRUE eller FALSE). Med andre ord forbinder logiske operatorer flere uttrykk sammen, og utfører funksjoner avhengig av utfallet av uttrykkene. Som i alle programmeringsspråk finnes det i PHP en rekke logiske operatører. Først ser vi på &&, på engelsk kalt "and" ("og"). $number1 = 5; $number2 = 10; $number3 = 12; $number4 = 15; if ($number1 < $number2 && $number4 > $number3) echo "Uttrykkene stemmer"; else echo "Uttrykkene stemmer ikke"; I dette eksempelet bruker vi den logiske operatoren && for å indikere at både uttrykket "5 er mindre enn 10" og uttrykket "15 er mer enn 12" må stemme for at kontrolleringen skal returnere TRUE, og dermed gjennomføre kommandoen(e). I dette skriptet stemmer begge uttrykkene, og vi vil derfor få teksten "Uttrykkene stemmer". På samme måte kan vi gjennomføre en kontroll som kun krever at én av uttrykkene skal stemme, ved hjelp av (på engelsk "or", norsk "eller"). $number1 = 5; $number2 = 10; $number3 = 15; $number4 = 12; if ($number1 < $number2 $number4 == $number3) echo "Ett eller flere av uttrykkene stemmer"; else echo "Ingen av uttrykkene stemmer";

27 Kapittel 3. Kontrollering av verdier 27 I dette eksempelet stemmer uttrykket "5 er mindre enn 10", mens uttrykket "12 er lik 15" ikke stemmer. indikerer imidlertid at det er nok at ett av uttrykkene stemmer, og vi vil derfor få returnert teksten "Ett eller flere av uttrykkene stemmer". Vi kan også sette sammen flere logiske operatorer i en og samme if-gren. Skal vi gjøre dette gjøres det på følgende måte: $var1 = 1; $var2 = 1; $var3 = 2; if (($var1 == $var2 && $var2 < 1) ($var1!= $var3 && $var3 > $var2)) (...) (Hvor (...) representerer det videre skriptet.) Her er en liste over alle logiske operatorer i PHP5: and - Er sann hvis begge uttrykkene stemmer or - Er sann hvis minst ett av uttrykkene stemmer xor - Er sann hvis ett av (men ikke begge) uttrykkene er sanne && - Akkurat samme som and - Akkurat samme som or! - Er sann hvis uttrykket til høyre er usant Else if Hva hvis vi skal utføre en rekke kontrolleringer, og hvis den første kontrolleringen viser seg å være sann, så er resten av kontrolleringene unødvendige? Til nå har vi kun brukt if og else, og det er tungvint å bruke i et slikt tilfelle. La meg introdusere dere for else if. $var1 = 10; $var2 = 20; $var3 = 30; if ($var1 > $var2) (...) else if ($var2!= $var3) (...) else (...) Dette burde være rimelig selvforklarende, men jeg tar allikevel en kort forklaring. Hvis resultatet av den aller første kontrollen viser seg å være usann, så vil den neste kontrollen utføres. Viser det seg imidlertid at den første kontrollen er sann vil ikke else if-kontrollen bli utført. PHPparseren vil altså hoppe over den.

28 28 Kapittel 3. Kontrollering av verdier Sammenlikne verdier som ikke er heltall Til nå har vi kun sett på hvordan man sammenlikner tall. Men hva hvis man vil sammenlikne andre former for variabler - for eksempel strenger? if ($username == "Stupidguest") echo "Du har et idiotisk brukernavn."; Se, det var ikke verre enn det! Vi bare la til noen anførselsteng for å markere at det er snakk om en streng (eng: string). Når det gjelder sammenlikning mellom heltall og desimaltall, så gjør PHPparseren selv en god jobb med å endre typen slik at alle tallene er desimaltall, slik at de kan bli sammenliknet. For eksempel vil 50 da bli Med andre ord bruker vi her akkurat samme metode som når vi sammenlikner to heltall. Switch Hvis vi har en rekke else if-kontrolleringer kan det lønne seg å bytte til switch. Det er lettere å forklare dette med et skikkelig eksempel. Som det sies, et bilde sier mere enn tusen ord. Bare at i dette tilfellet er det et par kodeksempler. if ($dag == 1) echo "Mandag"; else if ($dag == 2) echo "Tirsdag"; else if ($dag == 3) echo "Onsdag"; else if ($dag == 4) echo "Torsdag"; else if ($dag == 5) echo "Fredag"; else if ($dag == 6) echo "Lørdag"; else if ($dag == 7) echo "Søndag"; (Du ser sikkert at jeg har kuttet vekk noen linjeskift. Dette er gjort for å spare plass, og som du lærte i kapittel 2 bryr ikke PHP seg om linjeskift.) Som vi ser skriver dette skriptet ut navnet på ukedagen, avhengig av hvilket nummer det er (for å få dette skriptet til å fungere måtte selvsagt variabelen dag vært definert). Dette kan gjøres på en bedre, og i manges øyne, lettere måte med switch. switch($dag) case 1: echo "Mandag"; break; case 2: echo "Tirsdag"; break; case 3: echo "Onsdag"; break; case 4: echo "Torsdag"; break; case 5: echo "Fredag"; break; case 6: echo "Lørdag"; break; case 7: echo "Søndag"; break;

29 Kapittel 3. Kontrollering av verdier 29 Denne kodebiten gjør nøyaktig det samme som vårt tidligere eksempel. Lett, ikke sant? Det er imidlertid én viktig ting du må huske på når du benytter switch - du må alltid avslutte kommandoene med break;. Hvis du glemmer å gjøre dette, og dag er satt til for eksempel 5, vil kommandoen(e) i case 5, case 6 og case 7 bli utført. Switch med strenger Switch kan selvsagt brukes i andre tilfeller enn der variablen(e) vi bruker er heltall. La oss se på hvordan det gjøres med strenger (strings), altså tekst. switch ($mat) case "ostekake": echo "Jeg vil også ha ostekake!"; break; case "lasagne": echo "Lasagne, du. Du er den typen altså."; break; case "pizza": echo "Pizza hadde virkelig gjort seg nå."; break; Avhengig av hva variabelen mat er satt til, så vil den respektive teksten bli vist. Men hvordan kan man få til else i en switch-kontrollering? Dette gjøres ved hjelp av default. Hvis ingen av uttrykkene i switch viser seg å være sanne, vil visse funksjoner bli utført, altså akkurat som ved bruk av else. default trengs ikke å avsluttes med break, men må plasseres til slutt. switch ($foo) case "bar": echo "Foobar! Let's dance!"; break; case "foobar": echo "Fubar! Itt' no dansing for deg."; break; default: echo "Denne teksten vil bli vist hvis \$foo ikke er definert."; (Teit eksempel, men du forstår nok meningen.) Man kan selvsagt også utføre tester med logiske operatører ved bruk av switch. switch (TRUE) case $foo == $bar: echo "Hurra, hurra!"; break; (...) Løkker - while Det vi har sett på til nå er nyttig, men det har selvsagt sine begrensninger. Nå har vi endelig kommet oss til løkker (eng: loops), og det er nå moroa for alvor kan starte.

30 30 Kapittel 3. Kontrollering av verdier Den letteste formen for en løkke er while, som vil utføre en eller flere kommandoer helt til det stoppes. while (TRUE) echo "Oh, God! Denne løkken fortsetter i all evighet!"; Kjører vi denne kodebiten vil altså teksten "Oh, God! Denne løkken fortsetter i all evighet!" bli skrevet ut (jepp, du gjettet riktig) uendelig antall ganger. En while-løkke vil altså utføre kommandoen(e) inntil uttrykket er usant. $nummer = 1; while ($nummer <= 10) echo "Dette er linje nummer $nummer<br>"; $nummer++; Her gir vi variabelen nummer sin egen verdi pluss 1 etter hver gang teksten blir skrevet ut. $nummer++ vil gjøre samme nytten som $nummer = $nummer + 1 (mer om dette i et senere kapittel). Som vi ser vil while-løkken utføre kommandoene helt til uttrykket ikke stemmer, altså helt til det er skrevet ut 10 linjer. Prøv selv og se! do-while do-while-konstruksjonen er lik som while, bortsett fra at kontrolleringen foregår på slutten av løkken. Syntaksen er slik: do funksjoner(er) while (uttrykk); Funksjonene vil bli utført én gang, og deretter vil uttrykket/uttrykkene i while-løkken bli testet, og om det viser seg å være sant (returnerer verdien TRUE) vil den utføre funksjonene i do inntil uttrykket/uttrykkene viser seg å være usanne. $nummer = 1; do echo "Dette er linje nummer $nummer<br>"; $nummer++; while ($nummer <= 10); Mer om løkker - for Den mest kompliserte løkketypen er for, som har følgende syntaks: for (uttrykk1; uttrykk2; uttrykk3) funksjon(er) Først blir uttrykk1 utført, og det kun én gang. Denne inneholder normalt deklarering av en variabel. Deretter blir selve sjekken av uttrykket utført (uttrykk2). Viser dette uttrykket seg å være usant vil for-løkken stoppes. Er den sann fortsetter den, og utfører uttrykk3. Det høres kanskje vanskelig ut, men se på det følgende eksempelet. Vi har tatt utgangspunkt i det samme som vi gjorde ved eksemplene på while- og do-while-eksemplene.

31 Kapittel 3. Kontrollering av verdier 31 for ($nummer = 1; $nummer <= 10; $nummer++) echo "Dette er linje nummer $nummer<br>"; Kjører vi dette vil vi få akkurat samme utfall som ved de forrige eksemplene. Prøv selv! La oss bruke det i praksis! Eksemplene vi nå har sett på fungerer fint, men de har liten nytte i praksis. La oss bruke det vi har lært i praksis til å estimere kvadratroten av et tall, la oss si 81. Riktignok har PHP en fin funksjon som selv sier hva kvadratoroten er (sqrt()), men det er mye morsommere å gjøre det selv. Gjetningen starter med at "1" er kvadratroten, og forbedrer etter hver kjøring gjetningen. For å gjøre dette må vi kunne litt grunnleggende matematikk i PHP. Det er selvsagt svært enkelt. * indikerer multiplikasjon (ganging), / indikerer divisjon (deling), - indikerer minus, osv. $nummer = 81; $gjett = 1.0; $presisjon = ; $gjett_rot = $gjett * $gjett; while (($gjett_rot - $nummer > $presisjon) or ($gjett_rot - $nummer < - $presisjon)) echo "Jeg gjetter at kvadratroten av $nummer er $gjett<br>"; $gjett = ($gjett + ($nummer / $gjett)) / 2; $gjett_rot = $gjett * $gjett; echo "$gjett er kvadratroten av $gjett_rot"; Kjører vi dette skriptet skal det se ut noe som dette: Dette kan imidlertid virke litt vanskelig og uoversiktlig for mange, spesielt de som ikke har så mye kjennskap til matematikk. Studer koden nøyere, og test gjerne ut forskjellige ting selv! break og continue Den vanlige måten å stoppe en løkke fra utførelse er at uttrykket/uttrykkene viser seg å være usanne, som vi har sett til nå. break og continue muliggjør imidlertid en alternativ måte å stoppe løkken fra utførelse. break-kommandoen avslutter hele den aktuelle løkken, mens continue-kommandoen hopper over utførelsen av de neste kommandoene. La oss teste om tall er oddetall eller ikke. Denne testen kjøres slik: $variabel % 2 (% er operatoren for modulo), og variabelen vil deretter få en verdi basert på om den er et oddetall eller ikke. Er det et oddetall vil variabelen få verdien 1, mens hvis det ikke er et oddetall vil den få verdien 0.

32 32 Kapittel 3. Kontrollering av verdier for ($tall = 1; $tall < 10; $tall++) if ($tall % 2!= 0) break; echo $tall; Eksempelet over vil faktisk ikke returnere noe som helst. Dette er fordi $tall er satt til 1, og som vi vet er det et oddetall. Break vil dermed sette en effektiv stopper for hele løkken. Hadde vi imidlertid satt verdien til 2 hadde vi fått skrevet ut verdien av variabelen (2), ettersom 2 ikke er et oddetall. Ved neste kjøring av løkken ville imidlertid verdien vært 3, ettersom vi i for-løkken setter verdien av variabelen til sin egen verdi + 1. Verdien blir dermed 3, som er et oddetall. Løkken ville altså ha blitt stoppet av break ved andre kjøring. for ($tall = 1; $tall < 10; $tall++) if ($tall % 2!= 0) continue; echo $tall; Ved første utførelse av løkken vil variabelen ha verdien 1, som er et oddetall, og det blir dermed ikke vist. Ved andre utførelse er imidlertid verdien 2, som ikke er et oddetall. Når løkken er ferdig med utførelsen vil vi ha fått vist tallene 2, 4, 6 og 8. Dette er altså de tallene som ikke er oddetall mellom 1 og 9. Som sagt hopper continue-kommandoen over utførelsen av de neste kommandoene, men lar løkken kjøre på nytt. Vi kan nå benytte det eksakt samme eksempelet som over, bare at vi har byttet ut break med continue. Vi kan nå bruke det vi kan i praksis til å konstruere et skript som vil vise alle primtall (tall som kun er delelig med seg selv og 1) opp til et visst tall. Til akkurat dette skriptet er ikke continue nødvendig.

33 Kapittel 3. Kontrollering av verdier 33 // Grensen for hva som er den høyeste verdien vi kan teste $grense = 300; // Hvilken verdi testen starter på $test = 2; while (TRUE) $testdivisjon = 2; // Hvis vi har oversteget den høyeste verdien vi skal teste, // stopp skriptet if ($test > $grense) break; while (TRUE) if ($testdiv > sqrt($test)) // Skriv ut og stopp løkken echo "$test "; break; // Sjekk om $test er mulig å dividere med $testdivisjon if ($test % $testdivisjon == 0) break; $testdivisjon++; $test++; Kjører vi dette skriptet skal vi få følgende tall vist: Det viktige å merke seg her er at break kun vil stoppe den nærmeste løkken den står "inne i". Den vil altså ikke avslutte hoved-løkken, men bare sin egen løkke. Se litt på skriptet, og du skjønner det nok. Som du sikkert ser har vi her benyttet PHP-funksjonen sqrt() til å sjekke kvadratroten. Akkurat som ved vårt skript som estimerer kvadratrot kan dette skriptet være litt vanskelig å forstå for mange. Jeg kan bare gjenta meg selv - les koden nøyere og test ut ting selv, så går det nok bra! Uendelige løkker Som vi så i vårt aller første eksempel med while-løkken er det fullt mulig å konstruere løkker som fortsetter i all evighet. Som standard er max_execution_time, altså den maksimalt tillate tiden et skript har på å bli ferdig med kjøringen, satt til 30 sekunder i php.ini (PHPs konfigurasjonsfil). Et skript som overksrider denne begrensingen vil resultere i en feilmelding som ser slik ut:

Shellscripting I. Innhold

Shellscripting I. Innhold Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Shellscripting I Tor Halsan 19.08.2010 Lærestoffet er utviklet for faget LN199D Scripting av Servere Resymé: Leksjonen er første innføring

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

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

Kanter, kanter, mange mangekanter

Kanter, kanter, mange mangekanter Kanter, kanter, mange mangekanter Nybegynner Processing PDF Introduksjon: Her skal vi se på litt mer avansert opptegning og bevegelse. Vi skal ta utgangspunkt i oppgaven om den sprettende ballen, men bytte

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

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

Oblig 5 Webutvikling. Av Thomas Gitlevaag

Oblig 5 Webutvikling. Av Thomas Gitlevaag Oblig 5 Webutvikling Av Thomas Gitlevaag For oppgave 1 og 2 skal dere levere en funksjonell webside på deres hjemmeområde. Dere skal også levere alle phps-filene slik at man for en hver side kan slenge

Detaljer

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Hei JavaScript! Introduksjon Web Introduksjon I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Steg 1: Bruke JS Bin

Detaljer

INF109 - Uke 1b 20.01.2016

INF109 - Uke 1b 20.01.2016 INF109 - Uke 1b 20.01.2016 1 Variabler Et program er ikke til stor hjelp hvis det er statisk. Statisk betyr at programmet bare bearbeider faste data som er lagt inn i programkoden. For å gjøre programmer

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

[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

Del 1: Overgang fra gammel hjemmeside til ny hjemmeside

Del 1: Overgang fra gammel hjemmeside til ny hjemmeside Del 1: Overgang fra gammel hjemmeside til ny hjemmeside Instituttsider og personlige hjemmesider som ligger på HFs egen webserver skal nå fases ut.dette innebærer at alle som fortsatt har hjemmesider der,

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 10 Frist: 2014-04-11 Mål for denne øvinga:

Detaljer

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

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være

Detaljer

JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider:

JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider: Fra sist JSP - 2 Installasjon av Web-tjener Et enkelt JSP-script HTML statisk Forms Tags Ønsker dynamiske nettsider: Klientside-script/programmering Javascript, vbscript, applets Tjenerside-script/programmering

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: 15. desember 2004 Varighet: Fagnummer: Fagnavn: Klasse(r): 3 timer LV197D Webprogrammering med PHP FU Studiepoeng:

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

HTML og relasjonsdatabaser med PHP

HTML og relasjonsdatabaser med PHP HTML og relasjonsdatabaser med PHP Oppgaveveiledning Kent Dahl Informasjonsbehandling Brukersystemer Orkdal videregående skole (7. mars 2004) Innholdsfortegnelse 1. Introduksjon...2 1.1.

Detaljer

Innstallasjon og oppsett av Wordpress

Innstallasjon og oppsett av Wordpress Del 1 - Installasjon og oppsett Innstallasjon og oppsett av Wordpress Wordpress har blitt en veldig populær publiseringsplattform for websider. Uten særlige tekniske ferdigheter kan man sette opp profesjonelle

Detaljer

Øving 0 - Xcode TDT4102

Øving 0 - Xcode TDT4102 Øving 0 - Xcode TDT4102 Frivillig Øving Mål for denne øvingen: Bli kjent med programmeringsverktøy Lage et første program kun med teksteditor og kompilator Lage et første program med Xcode Denne øvingen

Detaljer

Brukerveiledning http://www.hovikif.no/ Bruk av siden. Når du går inn på siden får du opp følgende bilde:

Brukerveiledning http://www.hovikif.no/ Bruk av siden. Når du går inn på siden får du opp følgende bilde: Brukerveiledning http://www.hovikif.no/ Bruk av siden Når du går inn på siden får du opp følgende bilde: Øverst i høyre hjørne kan du endre størrelsen på teksten og søke etter lagrede artikler. De enkelte

Detaljer

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive, 1. Last ned og installer XAMPP. 2. Sjekk at alt fungerer. 3. MySQL. Vi begynner med databaseserveren, MySQL. Gå til DOS klarmelding eller ledetekst (finnes under tilbehør på startmenyen om du ikke som

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

TDT4102 Prosedyreog objektorientert programmering Vår 2016

TDT4102 Prosedyreog objektorientert programmering Vår 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 4 Frist: 2016-02-12 Mål for denne øvingen:

Detaljer

Installere JBuilder Foundation i Windows XP

Installere JBuilder Foundation i Windows XP Installere JBuilder Foundation i Windows XP Installasjon av JBuilder Foundation på Windows (dekker her spesifikt fremgangen ved bruk av Microsoft Windows XP Professional, men det vil mest trolig ikke være

Detaljer

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket Programmeringsspråk for nybegynnere Krav til språket Hva om vi laget vårt eget språk til INF1000? Programmeringsspråket må være så enkelt som mulig. (Programmering er vanskelig nok som det er.) Hvilke

Detaljer

Dokumentasjon av Installasjon

Dokumentasjon av Installasjon Vedlegg D Dokumentasjon av Installasjon Dette dokumentet tar for seg detaljert informasjon vedrørende installasjon nødvendig for delapplikasjonene i PySniff. Innholdsfortegnelse 1. INTRODUKSJON 3 2. PYTHON

Detaljer

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et

Detaljer

CASCADING STYLESHEETS (CSS)

CASCADING STYLESHEETS (CSS) CASCADING STYLESHEETS (CSS) HVA ER CSS Stylesheets er en metode for å flytte selve formatteringen av et HTML dokument ut av selve dokumentet og over i et eksternt regelsett. Dette skyldes HTMLs manglende

Detaljer

praktiske eksempler DOM Document Object Model DOM og Høst 2013 Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

praktiske eksempler DOM Document Object Model DOM og Høst 2013 Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS DOM og praktiske eksempler Gløer Olav Langslet Sandvika VGS Høst 2013 Informasjonsteknologi 2 DOM Document Object Model Læreplansmål Eleven skal kunne programmere med enkle og indekserte variabler eller

Detaljer

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

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:

Detaljer

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering Kapittel 1 Datamaskiner og programmeringsspråk Dette kapitlet er en kort introduksjon til programmering. Vi vil se på hvordan man skriver, bygger og kjører programmer, samt illustrere noen sentrale programmeringsbegrep

Detaljer

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad. EKSAMEN Emnekode: Emne: ITF10208 Webprogrammering 1 Dato: Eksamenstid: 09/12-2008 09.00-13.00 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne) Faglærer: Tom Heine

Detaljer

Debugging. Tore Berg Hansen, TISIP

Debugging. Tore Berg Hansen, TISIP Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...

Detaljer

4. Installasjonsveiledning. Experior - rich test editor for FitNesse -

4. Installasjonsveiledning. Experior - rich test editor for FitNesse - 4. Experior - rich test editor for FitNesse - 4.1. Forord Denne rapporten inneholder installasjonsveiledning for Experior. Experior er tilpasset for installasjon i oppdragsgivers utviklingsmiljø. Det er

Detaljer

Høst 2014. Øving 5. 1 Teori. 2 Månedskalender. Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap

Høst 2014. Øving 5. 1 Teori. 2 Månedskalender. Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4105 IT Grunnkurs Høst 2014 Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Øving 5 1 Teori a) Hva er den binære ASCII-verdien av bokstaven E (stor e)?

Detaljer

Asteroids. Oversikt over prosjektet. Steg 1: Enda et flyvende romskip. Plan. Sjekkliste. Introduksjon

Asteroids. Oversikt over prosjektet. Steg 1: Enda et flyvende romskip. Plan. Sjekkliste. Introduksjon Asteroids Ekspert Scratch Introduksjon På slutten av 1970-tallet ga Atari ut to spill hvor man skulle kontrollere et romskip. Det første var Lunar Lander, men dette ble utkonkurrert av Asteroids som Atari

Detaljer

PixEdit Guide MEDFAK (5. utkast)

PixEdit Guide MEDFAK (5. utkast) PixEdit Guide MEDFAK (5. utkast) Dette er en kjapp guide på hvordan vi har gjort PixEdit-oppsettet på arkivet ved MEDFAK. Denne guiden tar utgangspunkt i en dedikert kontormaskin med lokal skanner. Med

Detaljer

TDT4102 Prosedyreog objektorientert programmering Vår 2016

TDT4102 Prosedyreog objektorientert programmering Vår 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 0 for Mac Frist: Ingen (frivillig øving)

Detaljer

Steg for steg. Sånn tar du backup av Macen din

Steg for steg. Sånn tar du backup av Macen din Steg for steg Sånn tar du backup av Macen din «Being too busy to worry about backup is like being too busy driving a car to put on a seatbelt.» For de fleste fungerer Macen som et arkiv, fullt av bilder,

Detaljer

WP-WATCHER WORDPRESS SIKKERHET

WP-WATCHER WORDPRESS SIKKERHET WP-WATCHER WORDPRESS SIKKERHET WP-WATCHER BACKUP - SIKKERHETSKOPIERING «Hei! Jeg oppdaterte en plugin på siden min og nå kommer jeg ikke inn på siden min i det hele tatt. Kan du hjelpe meg?» «Hjelp! Jeg

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

Hvordan installere Java og easyio på Windows

Hvordan installere Java og easyio på Windows Hvordan installere Java og easyio på Windows Denne veiledningen forklarer en enkel måte å installere Java og easyio på din egen Windows-datamaskin. Du kan finne veiledninger for andre operativsystemer

Detaljer

Administrering av SafariSøk

Administrering av SafariSøk Administrering av SafariSøk Administrering av SafariSøk Revisjonshistorie Revisjon $Revision: 1.6 $ $Date: 2003/08/05 12:44:02 $ Innholdsfortegnelse 1. Om programmet... 1 Generelt... 1 2. Fremgangsmåter...

Detaljer

Kjøre Wordpress på OSX

Kjøre Wordpress på OSX Kjøre Wordpress på OSX Alt etter hva du ønsker å bruke Webserveren til er det flere måter å gjøre dette på. Ønsker du kun en side som skal dele sider du lager manuelt, med PHP, GD etc eller med server

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 1 Frist: 2014-01-24 Mål for denne øvinga:

Detaljer

Enarmet banditt Nybegynner Scratch Lærerveiledning

Enarmet banditt Nybegynner Scratch Lærerveiledning Enarmet banditt Nybegynner Scratch Lærerveiledning Introduksjon Dette er et spill med tre figurer som endrer utseende. Din oppgave er å stoppe figurene én etter én, slik at alle tre blir like. Steg 1:

Detaljer

INF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004

INF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 INF1000 Metoder Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere

Detaljer

Øvingsforelesning i Python (TDT4110)

Øvingsforelesning i Python (TDT4110) Øvingsforelesning i Python (TDT4110) Tema: Øving 1, PyCharm, Print, Input, (funksjoner og globale variabler) Gå til https://www.jetbrains.com/pycharm/ og sett PyCharm på nedlasting NÅ Kristoffer Hagen

Detaljer

Telle i kor steg på 120 frå 120

Telle i kor steg på 120 frå 120 Telle i kor steg på 120 frå 120 Erfaringer fra utprøving Erfaringene som er beskrevet i det følgende er gjort med lærere og elever som gjennomfører denne typen aktivitet for første gang. Det var fire erfarne

Detaljer

Lynkurs i shellprogrammering under Linux

Lynkurs i shellprogrammering under Linux Lynkurs i shellprogrammering under Linux Interaktiv bruk av shell Shell/skall er en applikasjon som lar bruker taste inn tekstlige kommandoer til Linux en og en linje om gangen (leser linjer fra stdin).

Detaljer

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS Mine notater Gløer Olav Langslet Sandvika VGS Et praktisk eksempel med objekter Vi kjenner alle til korktavlen med gule lapper. Vi henger opp en lapp for at vi selv eller andre skal huske eller bli minnet

Detaljer

La oss gjøre nettsiden vår bedre med noen stiler. I denne og den neste leksjonen skal vi lære hvordan man endrer farge, tekst, størrelser og mer!

La oss gjøre nettsiden vår bedre med noen stiler. I denne og den neste leksjonen skal vi lære hvordan man endrer farge, tekst, størrelser og mer! Lesson 4 CSS All Code Clubs must be registered. Registered clubs appear on the map at codeclub.org.uk - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do. Introduksjon

Detaljer

Hemmelige koder. Kodeklubb-koden. Steg 1: Alfabetet. Sjekkliste. Introduksjon

Hemmelige koder. Kodeklubb-koden. Steg 1: Alfabetet. Sjekkliste. Introduksjon Hemmelige koder Nybegynner Python Introduksjon Legg bort skilpaddene dine, i dag skal vi lære hvordan vi kan sende hemmelige beskjeder! Kodeklubb-koden Et chiffer er et system for å gjøre om vanlig tekst

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

Matematikk 1000. Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Matematikk 1000. Øvingeoppgaver i numerikk leksjon 1 Å komme i gang Matematikk 1000 Øvingeoppgaver i numerikk leksjon 1 Å komme i gang I denne øvinga skal vi bli litt kjent med MATLAB. Vi skal ikkje gjøre noen avanserte ting i dette oppgavesettet bare få et visst innblikk

Detaljer

POLITISKE SAKSDOKUMENTER:

POLITISKE SAKSDOKUMENTER: POLITISKE SAKSDOKUMENTER: FRA PAPIR TIL PC Installasjons- og brukerveiledning Sunndal kommune Side 1 of 20 Side 2 of 20 Innholdsfortegnelse 1 Laste ned PDF-XChange Viewer...5 2 Installere PDF-XChange Viewer...6

Detaljer

!!!!!!!!!!!! !!!!!!!!!!! WP-WATCHER WORDPRESS SIKKERHET

!!!!!!!!!!!! !!!!!!!!!!! WP-WATCHER WORDPRESS SIKKERHET WP-WATCHER WORDPRESS SIKKERHET WP-WATCHER BACKUP - SIKKERHETSKOPIERING «Hei Jeg oppdaterte en plugin på siden min og nå kommer jeg ikke inn på siden min i det hele tatt. Kan du hjelpe meg?» «Hjelp Jeg

Detaljer

Straffespark Introduksjon Scratch Lærerveiledning

Straffespark Introduksjon Scratch Lærerveiledning Straffespark Introduksjon Scratch Lærerveiledning Introduksjon Vi skal lage et enkelt fotballspill, hvor du skal prøve å score på så mange straffespark som mulig. Steg 1: Katten og fotballbanen Vi begynner

Detaljer

www.mentalhelse.no Vårt nettsted En håndbok for lokale nettredaktører i fylkes- og lokallag

www.mentalhelse.no Vårt nettsted En håndbok for lokale nettredaktører i fylkes- og lokallag www.mentalhelse.no Vårt nettsted En håndbok for lokale nettredaktører i fylkes- og lokallag Introduksjon Gratulerer Mental Helse! Våre nettsider har fått en oppfriskning og fremstår i ny drakt. Design

Detaljer

1. Programmering: Hva og hvorfor? Scratch fra scratch Enkel programmering for nybegynnere

1. Programmering: Hva og hvorfor? Scratch fra scratch Enkel programmering for nybegynnere 1. Programmering: Hva og hvorfor? 1. Programmering: Hva og hvorfor? Du har nå valgt å lære deg å programmere. Gratulerer med et flott valg! Programmering er en allsidig og nyttig aktivitet, og det er et

Detaljer

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn?

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn? Dagens tema: 12 gode råd for en kompilatorskriver Hva skal gjøres med navn? Sjekking av navn Hvordan sjekke navn? Testutskrifter 12 gode råd En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme

Detaljer

Mamut. Installasjonsveiledning. Oppdatering til versjon 12.1. Detaljert steg-for-steg veiledning i hvordan oppdatere ditt datax-program fra Mamut

Mamut. Installasjonsveiledning. Oppdatering til versjon 12.1. Detaljert steg-for-steg veiledning i hvordan oppdatere ditt datax-program fra Mamut Mamut Installasjonsveiledning Oppdatering til versjon 12.1 Detaljert steg-for-steg veiledning i hvordan oppdatere ditt datax-program fra Mamut 2 sjekkliste OPPDAteRiNG AV Ditt system Sjekkliste før du

Detaljer

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. JS: Hei JavaScript! Skrevet av: Arve Seljebu Kurs: Web Tema: Tekstbasert, Nettside Fag: Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon I denne oppgaven blir du introdusert for

Detaljer

Overgang til RT4 hjelp for saksbehandlere

Overgang til RT4 hjelp for saksbehandlere Overgang til RT4 hjelp for saksbehandlere I forbindelse med oppgradering av RT fra versjon 3.8 til 4, vil man kunne oppleve at menyer og funksjonalitet har endret seg noe. Dette dokumentet tar for seg

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 1 Frist: DD.MM.YYYY Mål for denne øvinga:

Detaljer

DVD-Kopiering v. 1.1

DVD-Kopiering v. 1.1 DVD-Kopiering v. 1.1 For sikkerhetskopiering av dine DVDer Mac OS X Denne manualen vil vise deg hvordan du kan kopiere en DVD over på maskinen din, for så å brenne den på en tom DVD±R(W)-plate. Det skal

Detaljer

Du har sikkert allerede startet noen programmer ved å trykke på kontrollknappen. VINDUER = WINDOWS

Du har sikkert allerede startet noen programmer ved å trykke på kontrollknappen. VINDUER = WINDOWS Operativsystemet Kort historie Utviklingen av datamaskiner og dataprogrammer går fort. Den som har sitt første møte med dataverdenen i dette kurset, vil kanskje allikevel ha hørt om DOS (Disk Operating

Detaljer

Kom i gang med Python

Kom i gang med Python Kom i gang med Python Instruksjon for lærere Pål Hellesnes SYSTEMUTVIKLER paal@firstpoint.no www.bedreinnsikt.no Dette dokumentet er en del av skolematerialet for undervisning i programmering. «Alle barn

Detaljer

Web fundamentals. Web design. Frontend vs. Backend 17.01.2008. Webdesign 17. januar 2008 3. Monica Strand

Web fundamentals. Web design. Frontend vs. Backend 17.01.2008. Webdesign 17. januar 2008 3. Monica Strand Web fundamentals Webdesign 17. januar 2008 Monica Strand Webdesign 17. januar 2008 1 Web design Fagområdet Web design inneholder flere disipliner Grafisk design Informasjonsdesign Brukergrensesnittdesign

Detaljer

Ordliste. Obligatorisk oppgave 1 - Inf 1020

Ordliste. Obligatorisk oppgave 1 - Inf 1020 Ordliste. Obligatorisk oppgave 1 - Inf 1020 I denne oppgaven skal vi tenke oss at vi vil holde et register over alle norske ord (med alle bøyninger), og at vi skal lage operasjoner som kan brukes til f.

Detaljer

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. JS: Hei JavaScript! Introduksjon Web Introduksjon I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Steg 1: Bruke

Detaljer

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i. Skilpaddeskolen Steg 1: Flere firkanter Nybegynner Python Åpne IDLE-editoren, og åpne en ny fil ved å trykke File > New File, og la oss begynne. Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell'

Detaljer

PBL Barnehageweb. Brukerveiledning

PBL Barnehageweb. Brukerveiledning PBL Barnehageweb Brukerveiledning 1 1. Innledning Gratulerer med valget av nye PBL Barnehageweb! Med PBL Barnehageweb skal det være enkelt å lage en brukervennlig, moderne og profesjonell nettside for

Detaljer

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere. Soloball Introduksjon Scratch Introduksjon Vi skal nå lære hvordan vi kan lage et enkelt ballspill med Scratch. I soloball skal du styre katten som kontrollerer ballen, slik at ballen ikke går i nettet.

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

INF130 Datahåndtering og analyse

INF130 Datahåndtering og analyse INF130 Datahåndtering og analyse Visualisering av data på web Applikasjonsutvikling Applikasjonsutvikling mot web Databaseapplikasjoner Informasjonssystemer Arkitektur PHP = PHP Hypertext Processor PHP

Detaljer

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

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert. Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen

Detaljer

3. Kravspesifikasjon. Experior - rich test editor for FitNesse -

3. Kravspesifikasjon. Experior - rich test editor for FitNesse - 3. Experior - rich test editor for FitNesse - 3.1. Forord Dette dokumentet inneholder krav til funksjonalitet i Experior og hvordan denne skal integreres inn i selve FitNesse. I tillegg spesifiseres krav

Detaljer

Installere JBuilder Foundation i Mandrake Linux 10.0

Installere JBuilder Foundation i Mandrake Linux 10.0 Installere JBuilder Foundation i Mandrake Linux 10.0 Installasjon av JBuilder Foundation på Linux (dekker her spesifikt fremgangen ved bruk av Mandrake Linux 10.0, men distribusjon vil gjøre liten eller

Detaljer

Gangemesteren Nybegynner Scratch PDF

Gangemesteren Nybegynner Scratch PDF Gangemesteren Nybegynner Scratch PDF Introduksjon I dag skal vi lage et nyttig spill, nemlig et spill som hjelper oss å lære andre ting. Vi skal få hjelp til å lære gangetabellen! Steg 1: Læremesteren

Detaljer

Leksjon 3. Kontrollstrukturer

Leksjon 3. Kontrollstrukturer 6108 Programmering i Java Leksjon 3 Kontrollstrukturer Del 2 Løkker Roy M. Istad 2015 Utførelse av et program Programflyt så langt start setning setning setning setning Sekvensielt Alle setninger utføres,

Detaljer

Testrapport Prosjekt nr. 2011-22 Det Norske Veritas

Testrapport Prosjekt nr. 2011-22 Det Norske Veritas Prosjekt nr. 2011 22 Testrapport Hovedprosjektets tittel Implementering av plugin og utvikling av wizard for Det Norske Veritas Prosjektdeltakere Magnus Strand Nekstad s156159 Jørgen Rønbeck s135779 Dato

Detaljer

Behandling av dokumenter i Microsoft Word. En rask innføring

Behandling av dokumenter i Microsoft Word. En rask innføring Behandling av dokumenter i Microsoft Word En rask innføring Forord Denne guiden er utformet av Orakeltjenesten ved Dragvoll som en enkel innføring i grunnleggende funksjoner i Word for å hjelpe studenter

Detaljer

(X)HTML, CSS og JavaScript HTML. Det første dokumentet 26.11.2007. Grunnleggende programmering i Java Monica Strand 26.

(X)HTML, CSS og JavaScript HTML. Det første dokumentet 26.11.2007. Grunnleggende programmering i Java Monica Strand 26. (X)HTML, CSS og JavaScript Grunnleggende programmering i Java Monica Strand 26. november 2007 Gr. leggende Java 26. november 2007 1 HTML HTML = Hyper Text Markup Language Strukturerer tekstinnhold HTML

Detaljer

TDT4102 Prosedyreog objektorientert programmering Vår 2016

TDT4102 Prosedyreog objektorientert programmering Vår 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 5 Frist: 2016-02-19 Mål for denne øvingen:

Detaljer

Posisjonsystemet FRA A TIL Å

Posisjonsystemet FRA A TIL Å Posisjonsystemet FRA A TIL Å VEILEDER FOR FORELDRE MED BARN I 5. 7. KLASSE EMNER Side 1 Innledning til posisjonsystemet P - 2 2 Grunnleggende om posisjonsystemet P - 2 3 Titallsystemet P - 3 4 Posisjonsystemet

Detaljer

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 2 https://www.youtube.com/watch? v=nkiu9yen5nc 3 Læringsmål og pensum Mål Lære om

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

Kjernejournal. Pilotering - Javafri oppkobling

Kjernejournal. Pilotering - Javafri oppkobling Kjernejournal Pilotering - Javafri oppkobling 07-01-2016 Kolofon Publikasjonens tittel: Tilrettelegging mot kjernejournal med Commfides Utgitt: 16.03.16 Publikasjonsnummer: Utgitt av: Direktoratet for

Detaljer

En liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden.

En liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden. En liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden. La meg med en gang si at jeg er rimelig grønn i Linux verden så dere får bære over med meg

Detaljer

Kapittel 1. Kom i gang med PHP

Kapittel 1. Kom i gang med PHP Kapittel 1 Kom i gang med PHP Læringsmål: Dette kapittelet vil fungere som en enkel oppstartsguide for å komme i gang med PHP. Du vil få lære om historien bak PHP installasjon av nødvendig programvare

Detaljer

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv Bygg et Hus Introduksjon I denne leksjonen vil vi se litt på hvordan vi kan få en robot til å bygge et hus for oss. Underveis vil vi lære hvordan vi kan bruke løkker og funksjoner for å gjenta ting som

Detaljer

Memoz brukerveiledning

Memoz brukerveiledning Memoz brukerveiledning http://memoz.hib.no Pålogging...1 Oversikt...2 Profilside...2 Inne i en memoz...3 Legg til ting...3 Tekstboks...3 Rediger og flytte på en boks...4 Bildeboks...5 Videoboks...7 HTML-boks...7

Detaljer

Veileder i bruk av GoodReader

Veileder i bruk av GoodReader RISØR KOMMUNE Veileder i bruk av GoodReader Innhold 1. Laste ned dokument fra kommunens hjemmeside til GoodReader... 2 2. Bruke GoodReader... 7 3. Redigere filnavn... 8 4. Opprette kataloger / mapper...

Detaljer

Komme i gang med Skoleportalen

Komme i gang med Skoleportalen Generell brukerveiledning for Elevportalen Denne elevportalen er best egnet i nettleseren Internett Explorer. Dersom du opplever kompatibilitets-problemer kan det skyldes at du bruker en annen nettleser.

Detaljer

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger I dag INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Litt repetisjon Mer om uttrykk Lesing og skriving til terminal Forgreninger

Detaljer

INF 4130. 8. oktober 2009. Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet

INF 4130. 8. oktober 2009. Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet INF 4130 8. oktober 2009 Stein Krogdahl Dagens tema: Uavgjørbarhet Dette har blitt framstilt litt annerledes tidligere år Se Dinos forelesninger fra i fjor. I år: Vi tenker mer i programmer enn i Turing-maskiner

Detaljer

Velkommen som ny bruker av Uni Økonomi!

Velkommen som ny bruker av Uni Økonomi! Velkommen som ny bruker av Uni Økonomi! Som ny kunde har du fått tilsendt tilsendt epost som vist under, hvor du starter installasjonen av Uni Økonomi - ved å klikke på lenken som står etter "Gå til:"

Detaljer

SMART hus via nettleseren

SMART hus via nettleseren itoginnovasjon.no.217.171.192.197.xip.io http://www.itoginnovasjon.no.217.171.192.197.xip.io/wikis/smart-hus-via-nettleseren/ SMART hus via nettleseren SMART hus via nettleseren: Det vi har gjort nå er

Detaljer