1. Programmeringsmiljøet. Grunnleggende syntaks

Størrelse: px
Begynne med side:

Download "1. Programmeringsmiljøet. Grunnleggende syntaks"

Transkript

1 Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Programmeringsmiljøet. Grunnleggende syntaks Grethe Sandstrak og Mildrid Ljsoland Lærestoffet er utviklet for faget IFUD1002 C#.NET 1. Programmeringsmiljøet. Grunnleggende syntaks Resymé: Leksjonen er ment å dekke kapittel 1, 2, 7 (operators) og 17 i læreboka. Kapittel 1 gir en del fakta rundt.net arkitektur. Kapittel 2 gir en grunnleggende introduksjon til programmering i C#. I tillegg er det nyttig stoff om preprosessor direktiver. I kapittel 7 skal vi se nærmere på bruken av operatorer i C#. Kapittel 17 gir en innføring i bruk av Visual Studio.NET. Etter denne leksjonen skal du være i stand til å ta i bruk Visual Studio.NET og lage enkle applikasjoner i C# Innhold 1. PROGRAMMERINGSMILJØET. GRUNNLEGGENDE SYNTAKS INNHOLD... 1 INNLEDNING MICROSOFT.NET PLATTFORMEN NET RAMMEVERK MICROSOFT VISUAL STUDIO INTRODUKSJON C# PROGRAMMERING KONTROLLSTRUKTURER Kontrollstrukturen Valg Løkker Operatorer Innledning C# (uttales C- sharp) er et programmeringsspråk i C-familien. C# har sin bakgrunn i C og C++ og prøver å kombinere det beste fra C, C++, Java og også MS Visual Basic. Programmeringsspråket er designet spesielt for.net plattformen av Microsoft. Dette for å gjøre det enklere for programmerere å ta i bruk denne plattformen. For de som har programmert i C++ eller Java før, vil man se likhetene mellom de ulike programmeringsspråkene og kunne dra veksler på tidligere erfaringer når man setter seg inn C#. C# er et hendelsesstyrt, objektorientert og visuelt programmeringsspråk. Programmene lages ved hjelp av IDE (Integrated Development Environment). Med en IDE kan programmereren lage, kjøre, teste og feilsøke (debug) programkoden på en enkel og oversiktelig måte. På denne måten reduseres utviklingstiden av en applikasjon betraktelig. Denne måten å drive programutvikling på kalles for RAD (rapid application development).

2 Programmeringsmiljøet: Grunnleggende syntaks side 2 av Microsoft.NET plattformen I juni 2000 introduserte Microsoft sine visjoner for. NET rammerverk (uttales dått nett ) og utviklingsverktøyet Visual.Studio. NET. Visjonen bak denne lanseringen var å lage et rammeverk for kjøring av nettbaserte applikasjoner..net rammeverket tilbyr et integrert utviklingsverktøy og et kjøremiljø for xml-baserte webtjenester (web-services). En slik webtjeneste er en liten kodebit (programsnutt) som gjøres tilgjengelig for andre applikasjoner over internett. Et eksempel på en webtjeneste kan være billettbestillinger, oppslag på flyruter, bordbestillinger ol. Ved hjelp av webtjenester kan man bygge nye tjenester ved å kombinere komponentene fra ulike kilder over Internett. Microsoft. NET krever Windows og du kan som programutvikler utvikle/kjøre programmer i ulike programmeringsspråk (C, C++, Java, VB, C#...)..NET innebærer en ny og forenklet måte å utvikle programmer på. Tankene bak dette rammeverket har vært flere. En skulle sørge for et objektorientert utviklingsmiljø uavhengig av om koden eksekveres lokalt, distribueres via Internett eller kjøres eksternt. Utviklingsmiljø lages på en slik måte at man kjenner seg igjen uansett om man lager windowsbaserte- eller nettbaserte applikasjoner.. NET rammeverket består av to hoveddeler: Common Language Runtime (CLR) og. NET rammeverk klassebibliotek (FCL -. NET Framework Class Library). CLR kontrollerer og forenkler kjøring av programkode under. NET. Som navnet tilsier er dette et Runtime-miljø hvor programmer skrevet i ulike programmeringspråk kan fungere sammen. CLR er et regelverk, som en kompilator må overholde for å lage program som kjører under. NET. Program utviklet under CLR kalles manged code (styrt kode). Programkoden som kompileres under CLR blir omgjort til MSIL (Microsoft Intermediate Language). MSIL-kode kan ikke kjøres direkte (ikke kjørbart format) og derfor benytter CLR under kjøring av programmet, en JIT (Just In Time) kompilator for å kompilere MSIL-koden til rene CPU-instruksjoner (maskinkode) avhengig av hvilken maskin programmet skal kjøres på. (Se figur under) Språk 1 Maskin 1 Språk 2 MSIL JIT Maskin 2 Språk 3 Maskin 3 Merk at også Java bruker en JIT kompilator og tilsvarende figur for Java vil se slik ut: Maskin 1 Java Bytekode JIT Maskin 2 Maskin 3 Den andre hoveddelen som.net består av er. NET rammeverk klassebibliotek (FCL -.NET Framework Class Library). FCL er tilgengelig for alle programmeringsspråk som støtter.net og inneholder en stor mengde klasser som kan brukes under programvareutvikling og er til god hjelp/ tidsbesparende for programvareutvikleren.

3 Programmeringsmiljøet: Grunnleggende syntaks side 3 av 15 Essensen med.net er altså at man skal kunne programmere i hvilket som helst språk (som utviklingsmiljøet Visual.Studio.NET støtter) mot det underliggende, felles rammeverket.net. En kan koble sammen program som er laget i ulike programmeringsspråk og på den måten omgå svakheter ved de ulike språkene og utnytte de enkelte språks fortrinn NET Rammeverk I dette kurset skal vi bruke Visual Studio.NET, men som et alternativ til dette, kan man laste ned en gratisversjon av.net Rammeverk fra For å skrive inn programkode kan man bruke en vanlig teksteditor som for eksempel Notepad eller TextPad. Merk at.net Framework må ikke forveksles med Microsoft Visual Studio.NET, som er et utviklingsverktøy..net framework kan sammenlignes med det å laste ned og innstallere Java. For at operativsystemet skal finne programfilene til. NET (for bla kompilering og kjøring av programkode) så må vi sette miljøvariabelen path. Dette kan kjøres på flere måter. I Windows XP velg Start-Kontrollpanel - System - fanen Avansert og klikk på Miljøvariabler. Velg path og rediger denne (ikke ta bort det som måtte stå der fra før, skriv inn et ; bakerst og føy til banen til.net Framework installasjonen. Om path ikke finnes der fra før må du legge til denne (endre X.X til din versjon). C:\Windows\Microsoft.NET\Framework\vX.X Bruk en teksteditor for eksempel Notepad og skriv inn programkoden under og lagre fila som c:\csharp\leksjon1\heicsharpverden.cs Velg selv passende filplassering. using System; // Gjør FCL tilgjengelig (.NET klassebibliotek) class HeiCSharpVerden{ public static void Main() { Console.WriteLine("Hei C#-Verden!"); // Skriv tekst til konsollet For å kompilere og kjøre ditt første C#-program starter du MSdos-ledetekst Velg Start Kjør.. og skriv cmd og trykk Ok. Flytt deg til den katalogen hvor du lagret programmet og skriv inn følgende for å få kompilert programmet: c:\csharp\leksjon1\csc HeiCSharpVerden.cs Om alt går greit er det nå laget en kjørbar exe-fil: HeiCSharpVerden.exe. Den kan kjøres i dos-vinduet ved å skrive HeiCSharpVerden, eller i Windows-miljøet ved å dobbelklikke på den.

4 Programmeringsmiljøet: Grunnleggende syntaks side 4 av 15 Om det ikke går greit vil du få en liste med feilmeldinger. Rett opp alle feil og kompiler en gang til. Som dere ser så ligner både programkoden og måten man kompilerer og kjører programkoden på Java Microsoft Visual Studio Visual Studio er utviklingsverktøyet vi har valgt å bruke i dette kurset. Når man kjører Visual Studio for første gang får man opp en startside (Merk her er det VS 2013 som er brukt): Navigasjonsknapper Nylig brukte prosjekter Vil være en tom liste første gang Merk: under innstallasjonen av Visual Studio får du velge hvilket miljø du ønsker å tilpasse installasjonen etter. Jeg har valgt general - environment. Om du for eksempel har valgt C# environment så vil du få litt andre snarveier, lenker osv på start siden. For å lage en ny C#-applikasjon velger vi New Project til venstre i vinduet. Og du får fram vinduet under (Merk at om du ikke har valgt C# - miljø under installasjon så vil dette vinduet se litt annerledes ut):

5 Programmeringsmiljøet: Grunnleggende syntaks side 5 av 15 Vi skal lage en Konsollapplikasjon i C# og gjør derfor følgened valg: Project Types: Visual C# -> Windows og under Templates velger vi Console Application. Prosjektnavnet skal være HeiCSharpVerden_2013 og du velger selv hvor du vil lagre ditt første C# program under Location.. Trykk Ok for å gå videre. Prosjektnavn Liste over filene som tilhører dette prosjektet. Egenskaper Du vil nå få opp programskjelettet for din første applikasjon i C#. Programmet vårt skal skrive ut en linje til konsollet og for å få det til legg til uthevede linjer i koden inni mainmetoden: using System; using System.Collections.Generic;

6 Programmeringsmiljøet: Grunnleggende syntaks side 6 av 15 using System.Linq; using System.Text; using System.Threading.Tasks; namespace HeiCSharpVerden_2013 { class Program { static void Main(string[] args) { // Skriv tekst til konsollet: Console.WriteLine("Hei C#-Verden!"); Kompiler programmet ved å velge menyvalg Build-Build Solution (<ctrl>+<shift>+b). Om du har skrevet inn korrekt kode kan du nå kjøre programmet ved å velge menyvalg Debug-Start Without Debugging (<ctrl> + <F5>) med følgende resultat: 1.5. Introduksjon C# programmering Som vi har sett av eksemplene over så er det store liheter mellom C# og andre programmeringsspråk som for eksempel Java og C++. Vi skal nå lage et lite sekvensielt program som leser inn to heltall fra konsollet og utfører en beregning og presenterer svaret over flere linjer i en meldingsboks. Programkoden ser slik ut (Merk: linjenummer er ikke en del av koden): 1. using System; 2. using System.Collections.Generic; 3. using System.Linq; 4. using System.Text; 5. using System.Windows.Forms 6. class Program 7. { 8. static void Main(string[] args) 9. { 10. int tall1; 11. int tall2; 12. Console.Write("Skriv inn et heltall: ");

7 Programmeringsmiljøet: Grunnleggende syntaks side 7 av String temp = Console.ReadLine(); 14. tall1 = Int32.Parse(temp); 15. Console.Write("Skriv inn heltall nr 2: "); 16. temp = Console.ReadLine(); 17. tall2 = Int32.Parse(temp); 18. int sum = tall1 + tall2; 19. MessageBox.Show("Summen\n av de to\ntallene er: \n"+sum); Programmet starter å kjøre Main-metoden i linje 8. Linje 9 med { angir starten på Mainmetoden, og i linje 20 angir slutten på Main-metoden. Linje 10 og 11 er deklarsjoner. tall1 og tall2 er navn på variabler av datatypen int (heltall). Variabler er et område i datamaskinens primærminne hvor vi setter av plass til å ta vare på dataverdi av en bestemt type for eksempel heltall, desimaltall, tekst, boolsk, (int, double, string, bool) osv Videre i programkoden over i linje 12, kaller vi metoden Write() i klassen Console, dette kallet gjør at vi skriver en melding til bruker i konsollet. Metoden ReadLine() i linjen under får programmet til å vente på at bruker skal skrive inn noe. Det bruker skriver inn blir oppfattet som en tekststreng og lagres i variabelen temp. For at vi skal kunne utføre beregninger med det innleste tallet må vi gjøre det om fra tekst til tall ved å bruke metoden Int32.Parse(temp) i linje 14. Vi gjentar prosessen med tall 2 i linje og utfører så beregningen vår i linje 18. For å presentere svaret til bruker kunne vi skrevet Console.Write( Summen er: + sum); og fått det opp i konsollvinduet. Istf har vi valgt å vise et annet alternativ - Meldingsboks. Klassen MessageBox finner vi i FCL (.NET klassebibliotek) i System.Windows. Forms.dll I vårt tilfelle vil vi få følgende feilmelding: The name MessageBox does not exist in the current context.. Det samme gjelder også for mange andre klasser i FCL, og disse må inkluderes før man kan ta dem ibruk i et program. Når vi skal bruke MessageBox må vi legge til using System.Windows.Forms (linje 5). Merk: Når man bruker utviklingsmiljøet Visual Studio.NET må man i tillegg gjøre følgende: Velg menyvalg Project-Add Reference Velg System.Windows.Forms i lista (under.net-fanen) og trykk OK. Kjøring av programmet kan se slik ut: Etter vi har skrevet inn siste tallet og trykket enter, kommer det opp en meldingsboks:

8 Programmeringsmiljøet: Grunnleggende syntaks side 8 av 15 Innholdet i variablene etter at begge tallene er lest inn fra bruker og summen er beregnet: tall1 tall2 sum temp Legg merke til variabelen temp inneholder den siste innleste tekststrengen, og den er lagret som en tekstreng og ikke som et tall (indikert vha ). Aritmetiske operasjoner i C#. Aritmetiske operasjoner er også mulig å benytte i C#. Tabellen under gir en oversikt over de viktigste operasjonene og hvordan disse benyttes i C#: C# operasjon Aritmetisk operator C# uttrykk Addisjon + A + B Subtraksjon - A 3 Mulitiplikasjon * A * B Divisjon / A / 10 Modulus % A % B Paranteser ( ) ( ) Vi kjenner igjen de fire regneartene (+,-,*,/), i tillegg har vi modulus operatoren (%) som ikke vil si å beregne prosent. Modulus operatoren gir oss resten ved en helttallsdivisjon og dette kan være nyttig i programmeringssammenheng. Eksempel på bruk av modulus operatoren ved divisjon av heltall: 9 / 2 = 4 // gir kun hele svar desimalene utelates 9 % 2 = 1 // gir kun resten (desimalene) Forklaring: 9 : 2 = 4 (Svar uten desimaler) 8 1 (Rest) Andre eksempler:

9 Programmeringsmiljøet: Grunnleggende syntaks side 9 av 15 2 % 3 = 2 9 % 3 = 0 11 % 6 = 5 Et uttrykk i C# regnes vanligvis fra venstre mot høyre. Men i sammensatte uttrykk gjelder bestemt regler for prioritet til operatorerene: Uttrykk inni paranteser beregnes først, dernest utføres mulitiplikasjon, divisjon og modulus operasjoner. Består uttrykket av flere operatorer med lik prioritet beregnes det fra venstre mot høyre. Addisjon og subtraksjon utføres til sist og har lavest prioritet. Eksempel: Uttrykk 1: * 3 = 11 Uttrykk 2: (2 + 3)* 3 = 15 I første uttrykk vil multiplikasjonen utføres først fordi operatoren * har høyere prioritet enn +. Uttrykk 1 vil dermed være lik 11. I det andre uttrykket bruker vi paranteser for å få utført addisjon først uttrykk inni paranteser beregnes før multiplikasjon og vi får svaret Kontrollstrukturer Før man starter å skrive en applikasjon(program) så er det viktig å ha en forståelse for det problemet som skal løses og en strategi for hvordan problemet kan løses. Når man så skriver programkoden er det også viktig å forstå hvilke byggeklosser man har til rådighet og de kontstruksjonsprinsipper som gjelder. Vi skal nå se nærmere på ulike kontrollstrukturer i C#. Alle programmeringsproblemer kan i prinsippet løseses ved hjelp av en serie handlinger i en bestemt rekkefølge. En algoritme er en beskrivelse for hvordan et problem skal løses: 1. Hva skal gjøres 2. Hvilken rekkefølge skal det gjennomføres Rekkefølgen for gjennomføring er viktig, eksemplet under illustrerer dette på en fin måte: Om vi tar en vanlig morgen hjemme så vil algoritmen for å stå opp og komme seg på jobb/ skole se omtrent slik ut: 1 Stå opp, 2 Ta av pyjamas, 3 Dusj, 4 Kle på deg, 5 Spis frokost, 6 Dra på jobb/skole. Om vi bytter litt om på rekkefølgen på denne algoritmen kan det få, om ikke katastrofale følger, så vil i hvert fall gode kolleger få seg en fin start på dagen når du kommer på jobb søkk våt : 1 Stå opp, 2 Ta av pyjamas, 3 Kle på deg, 4 Dusj, 5 Spis frokost, 6 Dra på jobb/skole. Instruksjonene i en programkode kan utføres sekvensielt setningene utføres i den rekkefølgen de står. Under ser du en grafisk fremmstilling av sekvensiell struktur presentert i

10 Programmeringsmiljøet: Grunnleggende syntaks side 10 av 15 et flytskjema: int a = 2; int b = 2 * a; Ofte ønsker vi å lage programmer som ikke utføres sekvensielt, vi kan ønske å utføre de samme operasjonene flere ganger, eller kanskje vil vi utføre bestemte setninger avhengig av en gitt situasjon. I hvilken rekkefølge et program kjøres styres av hvilken kontrollstruktur vi velger. Vi har allerede nevnt en, sekvensiell. Vi har to til som da er valg- og løkkestruktur Kontrollstrukturen Valg I C# har vi tre ulike valgstrukturer: if, if/else og switch. De to første lar oss velge hvilken kode som skal eksekveres ut fra en logisk betingelse, den siste kjører en bestemt kodebit utfra en verdi. if- setningen Vi har to former for if-setninger, se flytskjema under: sann Logisk utrykk Setning 1 Setning 2 usann sann Logisk utrykk Setning 1 usann If setningen utfører setning 1 hvis det logiske uttrykket er sant. Merk: Setning 1 kan være en enkelt setning avsluttet med et semikolon, eller bestå av flere setninger omsluttet av krøllparenteser ({). Dersom det logisk uttrykket er usant skjer ett av 2: - Om if-setningen ikke inneholder en else del, fortsetter programmet med første setning etter if setningen. - Dersom if inneholder en else del, utføres setning 2. C# syntaks for if setningen: if (logisk uttrykk) Setning 1 else Setning 2

11 Programmeringsmiljøet: Grunnleggende syntaks side 11 av 15 Eksempel på bruk av if setningen. Vi skal lage et enkelt program for en fødestue som ønsker å registrere hvilket kjønn de nyfødte har og skrive ut dette. Vi bruker en variabel av den primitive datatypen bool som inneholder en av verdien true eller false, vi kaller denne for erjente. Videre i programmet ønsker vi sjekke verdien på denne variabelen og skrive ut en tilhørende tekst: Det ble en gutt! eller Det ble en jente! bool erjente = false; if (erjente){ Console.WriteLine( Det ble en jente! ); else { Console.WriteLine( Det ble en gutt! ); Kjøring av denne koden resulterer i at setningen i else delen blir skrevet ut: Det ble en gutt! Merk at bool er en primitiv datatype som kan ha en av verdiene true eller false. Når vi bruker en boolsk variabel som logisk uttrykk i en if setning trenger vi ikke bruke sammenligningsoperatorer (= =, <, >, >=, osv) fordi verdien true/ false ligger inni variabelen. Tilbake til fødestua: Før mor og barn reiser hjem, ønsker de å kontrollere at barnet tar til seg mat, en positiv vektøkning fra fødselsvekt til vekta ved hjemreise, vil gi indikasjon på dette. Programkoden for å løse dette kan se slik ut: int fødselsvekt = 3790; int vektvedhjemreise = 3800; int avvik = vektvedhjemreise - fødselsvekt; if (avvik < 0){ Console.WriteLine("Obs negativ vektøkning!"); switch setningen Vi kan også ha en nøstet if struktur, et eksempel: Studentene har avlagt eksamen og skolen ønsker å lage en statistikk over karakterfordelingen. Karakterene er på en skala fra A F hvor A er best og F er stryk. Først prøver vi å løse problemet ved hjelp av nøstede if-setninger (for enkelthetskyld bruker vi bare karakterene A C): char karakter; int antalla = 0; int antallb = 0; int antallc = 0; Console.Write("Skriv inn karkater: "); karakter = Char.Parse(Console.ReadLine()); // Gjør om innlest tekstreng til en char if (karakter == 'A' karakter =='a') antalla++; else if (karakter == 'B' karakter =='b') antallb++; else antallc++; // hvis ikke karakter er lik a eller b, så må den være c

12 Programmeringsmiljøet: Grunnleggende syntaks side 12 av 15 Console.Write("Karakterfordeling:\nA: " + antalla + "\nb: " + antallb + "\nc: "+ antallc); Eksempel på kjøring av programmet: Skriv inn karkater: a Karakterfordeling: A: 1 B: 0 C: 0 I stedet for å bruke en nøstet if struktur kan vi bruke switch-setningen. Switch setningen er en flervalgs struktur, hvor en kan ha flere ulike alternative valg. Se flytskjema under: case a true case a, instruksjon(er) break false case b true case b, instruksjon(er) break false case z true case z, instruksjon(er) break false default, instruksjon(er) break Programmet under gjør det samme som programmet over med if-else setningene, endringen ligger i at vi bruker switch og har dermed fått med en feilkontroll på innlesningen fra bruker. (default: ). Som kjent så kan man ikke regne med at brukerne av programmet taster inn det vi forventer, og i vårt karaktereksempel må vi være sikre på at kun bokstavene A C blir registrert. I eksemplet over vil all feiltasting bli registrert som karakteren C det er vel ikke spesielt heldig Vi burde lagt til kode for å kontrollere dette for eksempel ved å behandle

13 Programmeringsmiljøet: Grunnleggende syntaks side 13 av 15 feiltasting inni en else blokk. Switch setningen har innebygd en slik kontrollmekanisme og vi kan dermed gi en tilbakemelding til bruker om det forsøkes på et ugyldig valg: Console.Write("Skriv inn karkater: "); karakter = Char.Parse(Console.ReadLine()); switch(karakter){ case 'A': case 'a': antalla++; break; case 'B': case 'b': antallb++; break; case 'C': case 'c': antallc++; break; default: Console.WriteLine("Ugyldig bokstav"); break; // slutt switch Console.WriteLine("Karakterfordeling:\nA: " + antalla + "\nb: " + antallb + "\nc: "+ antallc); Løkker Den tredje kontrollstrukturen vi har er løkker. Ofte har vi behov for å gjenta deler av programkoden flere ganger. Antall gjentakelser kan være kjent eller styrt av en betingelse. I C# har vi fire løkketyper: for, foreach, while og do-while. Felles for disse løkketypene er at de alle består av tre ulike elementer i tillegg til de setniger som skal utføres: Initiering av løkkebetingelse, løkkebetingelse og oppdatering av løkkebetingelse. Ulikheten ligger i hvor vi plasserer disse. for (intitiering av løkkebetingelse; løkkebetingelse; oppdatering av løkkebetingelse){ Setning 1; initier løkkebetingelse; while (løkkebetingelse){ setning 1;.. oppdater løkkebetingelse; initier løkkebetingelse do setning 1; oppdater løkkebetingelse while (betingelse)

14 Programmeringsmiljøet: Grunnleggende syntaks side 14 av 15 Løkketypen foreach beskrives nærmere i leksjon 3. Eksempel: Vi ønsker å skrive ut teksten Hurra! 10 ganger vha av de tre respektive løkketypene. Vi kjenner igjen de ulike elementene i løkkene: initiering av betingelsen (int i = 0), betingelsen (i < 10) og oppdatering av betingelsen (i++). for løkke: for (int i = 0; i < 10; i++){ Console.Write( Hurra ); while: int i = 0; while (i < 10) { Console.Write( Hurra ); i++; do-while: int i = 0; do{ Console.Write( Hurra ); i++; while (i < 10); Resultat av kjøring av disse tre programsnuttene er det samme: Hurra Hurra Hurra Hurra Hurra Hurra Hurra Hurra Hurra Hurra Flytskjema for de ulike løkkene typene er ganske like som du ser av figuren under og du er kanskje usikker på når du skal bruke de ulike løkketypene. En gylden regel man kan bruke er at når du vet hvor mange ganger du skal gjenta koden så bruker du for (tellerkontrollertløkke) og når du ikke vet antallet helt sikkert så bruker du while. do while brukes når du skal ha minst ett gjennomløp av løkken. Initier løkkebetingelse beting else usann sann Instruksjon(er) Oppdater betingelse Operatorer C# tilbyr en tilordningsoperatorer for å forenkle aritmetiske uttrykk. For eksempel uttrykket:

15 Programmeringsmiljøet: Grunnleggende syntaks side 15 av 15 i = i + 2; kan forenkles ved å skrive i += 2; Vi kan også forenkle uttrykk som gjør bruk av de andre regneartene på tilsvarende måte (- =, *=, /=,%=). Eksempel: i /= 5; er det samme som i = i / 5; Vi har også inkrement og dekremtoperatorer i C#, ++ og --. Disse kan plasseres foran eller bak en variabel såkalt pre- eller postinkrement/dekrement operatorer. Preinkrement ++i Øk i med 1, og bruk denne verdien videre i uttrykket Postinkrement i++ Bruk nåværende verdi av i i uttrykket for så å øke i med 1. Predekrement --i Reduser i med 1, og bruk denne verdien videre i uttrykket Postdekrement i-- Bruk nåværende verdi av i i uttrykket for så å redusere i med 1. Et lite eksempel på bruk av disse operatorene: using System; class Operatorer{ static void Main(string[] args){ int i = 1; Console.WriteLine(i); // skriver ut 1 Console.WriteLine(i++); // skriver ut 1, for så øke i med 1 Console.WriteLine(i); // skriver ut 2 i *= 5; // verdien til i multipliseres med 5 Console.WriteLine(i); // skriver ut 10 Console.WriteLine(--i); // Minker verdien til i med 1 og skriver ut 9 Console.WriteLine(i); // skriver ut 9 Resultat av kjøring av dette programmet vil da bli:

1. Å lage programmer i C++

1. Å lage programmer i C++ Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Å lage programmer i C++ Tore Berg Hansen og Else Lervik Rividert siste gang 29. august 2005 1. Å lage programmer i C++ Resymé: Dette notatet

Detaljer

1. Å lage programmer i C++

1. Å lage programmer i C++ Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Å lage programmer i C++ Tore Berg Hansen og Else Lervik Rividert siste gang 24. august 2006 1. Å lage programmer i C++ Resymé: Dette notatet

Detaljer

Kapittel 1 En oversikt over C-språket

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

Detaljer

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: fredrso@ifi.uio.no Utdanning: Dataingeniør, 2000 Cand.Scient,

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

INF 1000 høsten 2011 Uke september

INF 1000 høsten 2011 Uke september INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 INF1000 undervisningen Forelesningene: Første

Detaljer

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon Oversikt INF1000 Uke 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning Uttrykk

Detaljer

INF1000 undervisningen INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger

Detaljer

Programmering Høst 2017

Programmering Høst 2017 Programmering Høst 2017 Tommy Abelsen Ingeniørfag - Data Innledning Dette er et dokument med litt informasjon og eksempler om kontrollstrukturer, samt oppgaver til forskjellige kontrollstrukturer. Spør

Detaljer

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning

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

Leksjon 3. Kontrollstrukturer

Leksjon 3. Kontrollstrukturer 6108 Programmering i Java Leksjon 3 Kontrollstrukturer Del 1: Valg Roy M. Istad 2015 Utfør av et program Programflyt så langt: start setning setning setning setning slutt Sekvensielt: Alle setninger utføres,

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

INF1000 oppgaver til uke 38 (17 sep 23 sep)

INF1000 oppgaver til uke 38 (17 sep 23 sep) INF1000 oppgaver til uke 38 (17 sep 23 sep) Formål: Øve på programmering med forgreninger, løkker og arrayer. Teoritimer (plenumsøvinger): 1. Oppgave 4 og 6 i kapittel 4 i læreboka. 2. En blokk er en samling

Detaljer

INF1000 (Uke 4) Mer om forgreninger, While-løkker

INF1000 (Uke 4) Mer om forgreninger, While-løkker INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen I dag Repetisjon easyio Enkle if-setninger

Detaljer

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Repetisjon easyio Enkle if-setninger Mer om forgrening While-løkker Are Magnus

Detaljer

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal.

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal. I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Repetisjon easyio Enkle if-setninger Mer om forgrening While-løkker Are Magnus

Detaljer

Eksempel: Body Mass Index (BMI) Forelesning inf1000 - Java 3. Ferdig program (første del) Ferdig program (siste del)

Eksempel: Body Mass Index (BMI) Forelesning inf1000 - Java 3. Ferdig program (første del) Ferdig program (siste del) Forelesning inf1000 - Java 3 Eksempel: Body Mass Index (BMI) Tema: Mer om forgreninger Løkker Arrayer Litt om easyio Ole Christian Lingjærde, 5. september 2012 Ole Chr. Lingjærde Institutt for informatikk,

Detaljer

INF1000 : Forelesning 1 (del 2)

INF1000 : Forelesning 1 (del 2) INF1000 : Forelesning 1 (del 2) Java Variable og tilordninger Heltall, desimaltall og sannhetsverdier Utskrift på skjerm Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk - 3rd edition: Kapittel 3 Professor Alf Inge Wang 2 if (be): else (not_to_be): 3 Læringsmål og pensum Mål Lære å bruke og

Detaljer

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

INF1000 (Uke 5) Mer om løkker, arrayer og metoder INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse

Detaljer

1. NetBeans IDE: Lage en enkel mobilapplikasjon

1. NetBeans IDE: Lage en enkel mobilapplikasjon Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag NetBeans IDE: Lage en enkel mobilapplikasjon Mildrid Ljosland/Lene Hoff 09.09.2008 Lærestoffet er utviklet for faget SO350D J2ME for programmering

Detaljer

Læringsmål og pensum. if (be): else (not_to_be):

Læringsmål og pensum. if (be): else (not_to_be): 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk - 3rd edition: Kapittel 3 Professor Alf Inge Wang 2 if (be): else (not_to_be): 3 Læringsmål og pensum Mål Lære å bruke og

Detaljer

1. Installering av webtjener. Litt teori

1. Installering av webtjener. Litt teori Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Installering av webtjener. Litt teori Grethe Sandstrak 01.09.2015 Lærestoffet er utviklet for faget LV199D Web-programmering med ASP.NET

Detaljer

Java 4. Mer om easyio Mer om forgreninger Løkker. 7. september 2004

Java 4. Mer om easyio Mer om forgreninger Løkker. 7. september 2004 Java 4 Mer om easyio Mer om forgreninger Løkker 7. september 2004 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo 1 Tre måter å lese fra terminal Først:

Detaljer

INF1000 Uke 4. Innlesning fra terminal. Uttrykk og presedens. Oversikt

INF1000 Uke 4. Innlesning fra terminal. Uttrykk og presedens. Oversikt Oversikt INF1000 Uke 4 Forgreininger, løkker og arrayer Litt repetisjon Blokker og forgreininger if-setninger if-else-setninger switch-setninger Løkker while-løkker do-while-løkker for-løkker Arrayer Opprette,

Detaljer

Feilmeldinger, brukerinput og kontrollflyt

Feilmeldinger, brukerinput og kontrollflyt Feilmeldinger, brukerinput og kontrollflyt Skjønne hvordan et program presist utføres og forberede seg på håndtering av feil INF1000, uke2 Ragnhild Kobro Runde Programmeringskrøll Programmet vil ikke kjøre

Detaljer

Forelesning inf Java 1

Forelesning inf Java 1 Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 Litt Java-historikk The Green Team I 1991 opprettet Sun Microsystems

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

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

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

Detaljer

Kom i gang med programmering i Java

Kom i gang med programmering i Java Kom i gang med programmering i Java Dette dokumentet forteller hvordan du skal komme i gang med programmering inkludert nedlasting av den programvare du trenger samt oppsett av disse samt en del innstillinger

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

Argumenter fra kommandolinjen

Argumenter fra kommandolinjen Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene

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

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og

Detaljer

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller. Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter

Detaljer

Bruk av NetBeans i JSP-delen av Web-applikasjoner med JSP og JSF

Bruk av NetBeans i JSP-delen av Web-applikasjoner med JSP og JSF Bruk av NetBeans i JSP-delen av Web-applikasjoner med JSP og JSF Else Lervik, august 2010 (Av hensyn til JSF-delen av kurset anbefaler vi at du sørger for å ha NetBeans-versjon 6.9.) I den grad denne veiledningen

Detaljer

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Variable og beregninger, input og utskrift TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål for denne uka: Vite litt om design av programmer (2.1, 2.2, 2.4) Kunne skrive ut

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

Eksempel: Body Mass Index (BMI)

Eksempel: Body Mass Index (BMI) Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 3 Tema: Forgreninger Løkker Arrayer Ole Christian Lingjærde, 5. september 2013 1 Eksempel: Body Mass Index (BMI) Vi skal lage et program som beregner BMI

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

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

Detaljer

Forelesning inf Java 3

Forelesning inf Java 3 Forelesning inf1000 - Java 3 Tema: Forgreninger Løkker Arrayer Ole Christian Lingjærde, 5. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 5. september 2013 1 Eksempel: Body Mass Index (BMI)

Detaljer

Betinget eksekvering og logiske tester i shell

Betinget eksekvering og logiske tester i shell Betinget eksekvering og logiske tester i shell Betinget eksekvering *? Programmet utfører operasjon(er) bare hvis en logisk betingelse er sann Bash tilbyr to kontrollstrukturer for å kunne gjøre betinget

Detaljer

AlgDat 10. Forelesning 2. Gunnar Misund

AlgDat 10. Forelesning 2. Gunnar Misund AlgDat 10 Forelesning 2 Oversikt Java repetisjon IDE eller teksteditor + kommandolinje? Java Collections and Generics Programvareutvikling En mengde mer eller mindre veldefinerte metoder (software engineering):

Detaljer

INF1000 : Forelesning 3

INF1000 : Forelesning 3 INF1000 : Forelesning 3 Programeksempler Løkker Arrayer Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet i Oslo 1 Body Mass Index (BMI) Vi skal lage et program

Detaljer

Innlesning fra tastatur med easyio. INF1000 høst 2010. Vi må først skrive i toppen av programmet: import easyio.*;

Innlesning fra tastatur med easyio. INF1000 høst 2010. Vi må først skrive i toppen av programmet: import easyio.*; Innlesning fra tastatur med easyio INF1000 høst 2010 Forelesning 2: Innlesning fra terminal Boolean-variable if-setninger Løkker Litt mer om heltall: divisjon og modulo Vi må først skrive i toppen av programmet:

Detaljer

Praktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Praktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder Praktisk informasjon INF (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Når disse timene er over har du lært nok til å løse oblig Frist.

Detaljer

Forelesning inf1000 - Java 1

Forelesning inf1000 - Java 1 Litt Java-historikk Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 The Green Team I 1991 opprettet Sun Microsystems

Detaljer

Visual Basic. Repetisjon fra mandag

Visual Basic. Repetisjon fra mandag Visual Basic Kontrollstrukturer del 2 Løkker - 1 1 Repetisjon fra mandag Tre kontrollstrukturer: Sekvens Gjør punkt 1 Gjør punkt 2 Valg Hvis betingelse er sann Gjør punkt 1 Ellers Gjør punkt 2 Løkke initier

Detaljer

Body Mass Index (BMI) INF1000 : Forelesning 3. Ferdig program (forts.) Ferdig program

Body Mass Index (BMI) INF1000 : Forelesning 3. Ferdig program (forts.) Ferdig program Body Mass Index (BMI) Programeksempler Løkker Arrayer Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet i Oslo INF1000 : Forelesning 3 1 Vi skal lage et program

Detaljer

Praktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut

Praktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut Praktisk informasjon INF (Uke 5) Mer om løkker, arrayer og metoder Oblig er lagt ut Frist 8. februar Kan løses etter denne forelesningen Grunnkurs i programmering Institutt for Informatikk Universitetet

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Øving 3 Frist: 2014-02-07 Mål for denne øvinga:

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler

Detaljer

Visual Basic. Repetisjon fra onsdag

Visual Basic. Repetisjon fra onsdag Visual Basic Kontrollstrukturer del 3 Løkker 2 Grethe Sandstrak 1 Repetisjon fra onsdag To løkke typer: For-Next brukes når vi vet antall gjennomløp Do-Loop betingelsesstyrt Felles elementer: initier Løkkebetingelse

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

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

Detaljer

Ukeoppgaver INF1000: 12. feb 16. feb

Ukeoppgaver INF1000: 12. feb 16. feb Ukeoppgaver INF1000: 12. feb 16. feb Tema: Øve på programmering med forgreninger, løkker og arrayer. Klasseroms/teoritimer: 1. Oppgave 2 og 4 i kapittel 4 i læreboka. 2. En blokk er en samling programsetninger

Detaljer

Hvordan laste ned og installere Java på Windowsplattformen

Hvordan laste ned og installere Java på Windowsplattformen Hvordan laste ned og installere Java på Windowsplattformen Nedlasting 1. Bruk en nettleser og gå til adressen: http://java.sun.com/javase/downloads/ 2. Trykk på lenken Download til høyre for JDK 6 Update

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

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

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

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

Blokker. Uke 4, INF 1000, 13 sept Løkker og arrayer. Eksempel. Deklarasjoner inne i blokker. Institutt for Informatikk Universitet i Oslo

Blokker. Uke 4, INF 1000, 13 sept Løkker og arrayer. Eksempel. Deklarasjoner inne i blokker. Institutt for Informatikk Universitet i Oslo Blokker Uke 4, INF, 3 sept. 5 - Løkker og arrayer. Institutt for Informatikk Universitet i Oslo Arild Waaler En blokk er en samling instruksjoner omgitt av krøllparenteser: { instruksjon ; instruksjon

Detaljer

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten. Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på

Detaljer

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten. Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen : 09.00

Detaljer

Java-kurs. Andreas Knudsen <andreakn@idi.ntnu.no> Nils Grimsmo <nilsgri@idi.ntnu.no> 9th October 2003

Java-kurs. Andreas Knudsen <andreakn@idi.ntnu.no> Nils Grimsmo <nilsgri@idi.ntnu.no> 9th October 2003 Java-kurs Andreas Knudsen Nils Grimsmo 9th October 2003 1 (Dette blir lagt ut på nett, du trenger ikke ta notater.) 1 Motivasjon For de som ikke går å data:

Detaljer

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator Litt mer om uttrykk: ++ og -- INF : Forelesning Løkker og arrayer Mye og viktig stoff. Du MÅ løse oppgaver selv for å lære!. september 6 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for

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

Kapittel 8: Programutvikling

Kapittel 8: Programutvikling Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk

Detaljer

som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing.

som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing. The Green Team Litt Java-historikk I 1991 opprettet Sun Microsystems en arbeidsgruppe som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing.

Detaljer

Litt Java-historikk. Litt Java-historikk. Ulike varianter for ulike behov. Litt Java-historikk. The Green Team

Litt Java-historikk. Litt Java-historikk. Ulike varianter for ulike behov. Litt Java-historikk. The Green Team The Green Team Litt Java-historikk I 1991 opprettet Sun Microsystems en arbeidsgruppe som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing.

Detaljer

JAVA CHRISTOFFER MARTINSEN

JAVA CHRISTOFFER MARTINSEN JAVA CHRISTOFFER MARTINSEN 1 2 CHRISTOFFER MARTINSEN Contents 1. Introduksjon 3 1.1. Innledning 3 1.2. Buzzwords 3 1.2.1. Simple 3 1.2.2. Object Oriented 3 1.2.3. Distributed 3 1.2.4. Robust 3 1.2.5. Secure

Detaljer

Jentetreff INF1000 Debugging i Java

Jentetreff INF1000 Debugging i Java Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren ingridgg@student.matnat.uio.no 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver

Detaljer

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Programmering i C++ Løsningsforslag Eksamen høsten 2005 Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

Grunnkurs i objektorientert programmering Hjelpehefte for studenter som tar INF101,

Grunnkurs i objektorientert programmering Hjelpehefte for studenter som tar INF101, Grunnkurs i objektorientert programmering Hjelpehefte for studenter som tar INF101, Institutt for informatikk, Universitetet i Oslo Oslo, 15. august 2001 2 Innhold Forord... 5 Kapittel 1 - Hva er programmering?...

Detaljer

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

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

Detaljer

1. Profiler og variabler

1. Profiler og variabler Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Profiler og variabler Stein Meisingseth 26.05.2014 Lærestoffet er utviklet for faget IDRI3005 PowerShell 1. Profiler og variabler Resymé:

Detaljer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

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

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

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

Detaljer

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004 Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004 13. september 2004 En viktig del av den første obligatoriske oppgaven er å få erfaring med hvordan Java håndterer tall. Til å begynne med kan dette

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

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse

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

Hei verden Introduksjon Swift PDF

Hei verden Introduksjon Swift PDF Hei verden Introduksjon Swift PDF Introduksjon Swift er et programmeringsspråk laget av Apple og er etterfølgeren til Objective-C. Med Swift kan du lage apper for ios og OSX. For å gjennomføre dette kurset

Detaljer

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen Forkurs INF1010 Dag 1 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Tuva Kristine Thoresen (tuvakt@ifi.uio.no) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output

Detaljer

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen til et Java-program

Detaljer

Del 3: Evaluere uttrykk

Del 3: Evaluere uttrykk Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret

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

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012 INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver

Detaljer

INF1000 Uke 3. Innlesning fra terminal. Uttrykk og presedens. Oversikt. Litt repetisjon Blokker og forgreininger

INF1000 Uke 3. Innlesning fra terminal. Uttrykk og presedens. Oversikt. Litt repetisjon Blokker og forgreininger Oversikt INF1000 Uke 3 Forgreininger, løkker og arrayer Litt repetisjon Blokker og forgreininger if-setninger if-else-setninger switch-setninger Løkker while-løkker do-while-løkker for-løkker Arrayer Opprette

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