Grundläggande programmering

Relevanta dokument
Lite logik. Kap 6: Sid 2

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

SMD 134 Objektorienterad programmering

Applets med komponenter

Programmeringsteknik med C och Matlab

Klassdeklaration. Metoddeklaration. Parameteröverföring

Användarhandledning Version 1.2

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Objektorienterad Programmering (TDDC77)

Dynamisk HTML JavaScript och webbläsarens objektmodell

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Lektion 1 Introduktion till DrJava och Java

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Objektorienterad programmering i Java

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

TDIU01 - Programmering i C++, grundkurs

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Programmering för språkteknologer I, VT2012. Rum

Extramaterial till Matematik Y

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

En kort text om programmering i C.

Övning2. Variabler. Data typer

Övningsuppgifter till föreläsning 2 Variabler och uttryck

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

F4. programmeringsteknik och Matlab

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Tentamen OOP

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Beräkningsvetenskap föreläsning 2

Editering, Kompilering och Exekvering av Javaprogram

1 Iteration. 1.1 for-satsen

Visual Basic, en snabbgenomgång

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

Föreläsning 3-4 Innehåll

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Föreläsningsmaterial (Syntax och variabler)

Extramaterial till Matematik Y

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

TDDC77 Objektorienterad Programmering

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

2D1339 Programkonstruktion för F1, ht 2004

Föreläsning 1 & 2 INTRODUKTION

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

TDIU01 - Programmering i C++, grundkurs

Anteckningar 1: Grundläggande saker

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

725G61 - Laboration 1 Variabler och villkorssatser. Johan Falkenjack

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

JAVA Mer om klasser och objektorientering

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1 Introduktion till Visual Basic 6.0

Introduktion till Matlab

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Föreläsning 2 Programmeringsteknik och C DD1316

Variabler och konstanter

Parameteröverföring. Exempel. Exempel. Metodkropp

OOP Objekt-orienterad programmering

Introduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret L0 - Grunder i C++

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 1 & 2 INTRODUKTION

1 Funktioner och procedurell abstraktion

JavaScript del 2 DocumentWrite, Prompt och ParseInt

Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.

i LabVIEW. Några programmeringstekniska grundbegrepp

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

JavaScript del 3 If, Operatorer och Confirm

Chapter 3: Using Classes and Objects

Enkla datatyper minne

JAVAUTVECKLING LEKTION 4

En villkorssats är den konstruktion som finns i C++ för att göra en selektion av två alternativa sekvenser. Formen för if satsen är

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Språket Python - Del 1 Grundkurs i programmering med Python

Programmering A. Johan Eliasson

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

[] Arrayer = Indexerad variabel

Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011

2.1 Variabler. 2.2 Regler för namngivning i C. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 2

Programmering i C, 7,5 hp

Pascal... Pascal. Pascal... Pascal...

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

Översikt över Visual Basic

Transkript:

1 Grundläggande programmering Javaprogram Talvariabler Selektioner Teckenvariabler Strängar Iterationer Sammanfattning Övningar

Kap 1: Sid 2 Observera! För övningarna i detta kapitel: Skapa en mapp med namnet X\java\javagrunder (där X är din arbetsenhet) (I denna mapp ska du spara alla dina javafiler i detta kapitel) Vissa övningar i kursen förutsätter att du har filen Prompt.class Ladda ned filen Prompt.class från denna sajt och kopiera den till mappen Javagrunder Kommande kapitel: Vissa övningar förutsätter filen Prompt.class Kopiera (i dessa fall) filen Prompt.class till den aktuella mappen (den mapp där du sparar övningen) Java1.doc Ove Lundgren 2

Kap 1: Sid 3 Javaprogram Så här ser stommen till ett javaprogram ut: programnamn class MittProgram Övning: MittProgram Skriv in koden ovan i editorn, exakt som det står. Java skiljer på gemener och versaler (små och stora bokstäver). Var noggrann! Spara filen med namnet MittProgram.java i mappen X:\java\javagrunder Filnamnet ska vara exakt samma som programnamnet (med tillägget.java ) (där X är din arbetsenhet) Kompilera med javac (filen MittProgram.class skapas ) Därefter: Exekvera med java Ett tomt konsolfönster visas. Ingenting händer. Stäng konsolfönstret. Ovanstående kod finns med i alla javaprogram. Du kan ha filen som mall när du skriver nya program. Vad koden betyder kommer vi att förklara senare. Övning: MittProgram - igen Nu ska vi se till att något händer i vårt program! Gör tillägg så att programmet ser ut så här: class MittProgram System.out.println("Detta är ett Javaprogram "); System.out.println("som jag har skrivit! "); Spara. Kompilera med javac (filen MittProgram.class skapas på nytt ) Därefter: Exekvera med java I konsolen visas nu utskrift (två rader) Stäng konsolfönstret. Anmärkning: Våra svenska Å, Ä, Ö, å, ä, ö -tecken kan se konstiga ut i konsolfönster ibland Java1.doc Ove Lundgren 3

Kap 1: Sid 4 Ett javaprogram har alltid ett programavsnitt som ser ut så här: Här skriver man vad som ska ske när programmet körs! Det här programavsnittet kallas main-metoden. Mellan klamrarna ( måsvingarna, "krullparenteserna ) skriver man den kod som bestämmer vad som ska ske. Koden skrivs i ett antal satser. Dessa är åtskilda av semikolon ( ; ) Satsen System.out.println("Detta är ett Javaprogram "); skriver ut den text (den sträng) som står inom citationstecknen ( ) och byter rad. I datasammanhang brukar man använda ordet sträng (engelska string) för en följd av tecken. En sträng är alltid innesluten av citationstecken i Java (och i de flesta andra programspråk ) Övning: Testa println och print Byt ut satsen ovan mot System.out.print("Detta är ett Javaprogram "); Spara. Kompilera. Exekvera Utskriften blir lite annorlunda nu: println ger radmatning efter utskrift medan print inte ger radmatning. Stäng konsolfönstret. Om metoder En metod i Java är en samling satser som gör något. Satserna är omslutna av "måsvingar": Utrymmet där satserna skrivs, mellan en höger- och en vänsterklammer, kallas ett block. Alla metoder har ett namn (som t ex main ) I main-metoden ovan har vi med kod själva beskrivit vad som ska ske. Det finns också (massor av) fördefinierade metoder. Detta är metoder som finns "från början", det vill säga metoder där koden skrivits av javaspråkets konstruktörer. När vi exempelvis skriver System.out.print("Detta är ett Javaprogram "); anropar vi den fördefinierade metoden System.out.print Den metoden innehåller kod som fixar utskriften på skärmen åt oss Vi kommer att återkomma till metoder många gånger Om du har programmerat förut: En metod i Java är det samma som det som kallas en funktion eller procedur i andra språk. Om du programmerat C/C++ är du van vid att huvudprogrammets kod skrivs i en main-funktion. Java1.doc Ove Lundgren 4

Kap 1: Sid 5 Talvariabler Du har arbetat med variabler i matematiken (bokstavsbeteckningar för tal ) På samma sätt kan en variabel i ett dataprogram ha (lagra) olika värden. Du kan tänka dig en variabel som en låda vilken vi satt en etikett på. (Egentligen är det en del av primärminnet som reserverats för att lagra ett tal) Först deklarerar vi variablerna. Det betyder att vi "skapar lådan" ( = reserverar minnesutrymmet) Vi anger då vad variabeln har för datatyp och vad den ska heta. Skriver vi int x; x betyder det att vi kallar variabeln för x, och den kan lagra ett heltal (engelskans integer = heltal) Man säger att variabelns datatyp är int En variabel kan sedan tilldelas ett värde. Skriver vi x = 17; så kommer heltalet 17 att lagras i variabeln. Satsen ovan utläses " x tilldelas 17". 17 x Tecknet = kallas i Java (och i flera andra språk) för tilldelningstecknet (det är inte ett likamed-tecken!!!) Man kan också tilldela variabeln ett värde direkt, i samband med deklarationen, så här: int x = 17; Variabelns namn kan bestå av en eller flera bokstäver (a-z) samt siffror (dock ej siffror först i namnet) Vanligen skriver man variabelnamn med gemener (små bokstäver) i Java Övning: Summera I programmet nedan inför vi tre variabler: x, y och s Först deklarerar vi variablerna och anger datatypen int (heltal) Sedan tilldelar vi variablerna olika talvärden. Slutligen skriver vi ut värdet på variabeln s. class Summera int x, y, s; Deklarera heltalsvariabler x = 17; y = 23; s = x + y; Variablerna tilldelas värden System.out.println("Summan är " + s); Utskrift Skriv in programmet. Spara det med namnet Summera.java Programmet visar: Summan är 40 Läs kommentarerna på nästa sida! Kompilera. Exekvera. Java1.doc Ove Lundgren 5

Kap 1: Sid 6 En variabel kan alltså tilldelas ett tal direkt ( som i x = 17; ) En variabel kan också tilldelas resultatet av en beräkning: I satsen s = x + y; tilldelas s resultatet vi får då x och y adderas (summan av x:s värde och y:s värde) Plustecknet ( + ) används för addition Minustecknet ( -) för subtraktion "Stjärn"-tecknet (asterisk-tecknet) ( * ) för multiplikation Snedstreck ( / ) för division (för heltal ger det dock endast heltalsdelen ) Plustecknet har ytterligare en användning: Det kan användas för att "klistra ihop" en sträng med en annan sträng, eller med ett tal, så att alltihop blir en enda sträng. Vi har ett exempel ovan: I satsen System.out.println("Summan är " + s); finns ett plustecken. Plustecknet sammanfogar (konkatenerar) strängen med värdet av s så att resultatet blir en sträng (som skrivs ut) Föregående program skulle bli mer användbart om användaren kunde skriva in olika värden på x och y, eller hur? Övning: Inmatning Skriv in det här programmet: class Summera2 int x, y, s; x = Prompt.heltal("Skriv ett tal: "); y = Prompt.heltal("Skriv ett tal till: "); s = x + y; System.out.println("Summan är " + s); Spara som Summera2.java i mappen X:\java\javagrunder. (Kontrollera att filen Prompt.class finns i samma mapp.) Läs kommentarerna nedan innan du kompilerar och kör: Programmet kommer att fråga efter (promta) ett heltal. Efter texten Skriv ett tal: skriver du in ett heltal och trycker på ENTER Efter texten Skriv ett tal till: skriver du ett annat heltal och trycker på ENTER x respektive y kommer att få de värden som du matat in. s kommer att tilldelas summan av dessa tal Slutligen skrivs värdet av s ut på samma sätt som förut. Java1.doc Ove Lundgren 6

Kap 1: Sid 7 Att skriva program där man tilldelar värden från tangentbordet kräver vissa kunskaper i javaprogrammering som det är för tidigt att ta upp i detta grundläggande kapitel. För att förenkla lite (så här i början) har vi här använt en "fördefinierad" metod x = Prompt.heltal("Skriv ett tal: "); så att du kan göra tilldelningen i en enda sats! Denna metod är inte skriven av Javas konstruktörer utan bifogas detta läromedel! Metoden finns (tillsammans med några andra metoder) i filen Prompt.class som du har kopierat till din arbetsmapp. Nu: Kompilera och kör! Övning: Aritmetik Skriv in programmet nedan. Spara som Aritmetik.java. Kompilera. Kör! class Aritmetik int x, y, summa, diff; x = Prompt.heltal("Ange x"); y = Prompt.heltal("Ange y"); summa = x + y; diff = x - y; System.out.println("Summan är " + summa); System.out.println("Differensen är " + diff); Här har vi gjort tillägg/ändringar så att även talens differens (skillnad skrivs ut). Java1.doc Ove Lundgren 7

Kap 1: Sid 8 Övning: Decimaltal Hittills har vi bara använt heltal. Om vi vill använda decimaltal (eller flyt-tal som man brukas säga i programmeringssammanhang) måste vi deklarera en annan typ av variabel, nämligen double 0.75 x double-variabeln x Observera att decimaltecknet är en punkt! Ändra i Aritmetik - så här: class Aritmetik double x,y,summa,diff; x = Prompt.decimaltal("Ange x"); y = Prompt.decimaltal("Ange y"); summa = x + y; diff = x - y; System.out.println("Summan är " + summa); System.out.println("Differensen är " + diff); Mata in två decimaltal och tryck på ENTER efter varje. Observera att decimaltecknet skall vara en punkt (inte kommatecken) Övning: Produkt och kvot Inför variablerna produkt och kvot och lägg till satser så att även talens produkt och kvot beräknas och visas! Om namn på variabler och program Variabelnamn kan, som du har sett, bestå av en eller flera bokstäver (t ex x, y, summa, produkt) Du kan dock inte använda bokstäverna å, ä och ö i variabelnamn! Du kan använda siffror, men ett variabelnamn får inte börja med en siffra. ( t ex x1, prod21 är OK medan 3abc är felaktigt ) Man brukar använda gemener (små bokstäver) för variabelnamn. Ge variablerna namn så att man lätt kan se vad variabeln gör! För programnamn gäller samma regler. Man skall dock låta programnamn börja med versal (stor bokstav) ( t ex MittProgram) Java1.doc Ove Lundgren 8

Kap 1: Sid 9 Övning: Ålder Skriv ett program som frågar efter hur gammal du är (heltal). Programmet ska då addera talet 1 (ett) till åldern och tala om hur mycket du fyller nästa födelsedag. Så här kan programmet Alder se ut: class Alder int alder; alder = Prompt.heltal("Hur gammal ar du? "); alder = alder + 1; System.out.println("Nästa gång fyller du " + alder); Vad sker i satsen alder = alder + 1;? Tecknet = är ju inte ett likamed-tecken utan ett tilldelningstecken, så variabeln alder tilldelas värdet av det befintliga värdet plus talet 1 (ett) Det vill säga: Om alder har värdet 17 så kommer variabeln efter denna sats att ha värdet 18 I Java (och i C++) finns det förkortade skrivsätt för vissa saker. En sådan "kortform" kan vara bra att kunna redan nu. Det är en kortform för just detta, att öka ett värde med 1. Satsen ovan kan i kortform skrivas: alder = alder + 1; alder++; Testa: Ersätt satsen alder = alder + 1; med satsen alder++;. Spara. Kompilera. Kör! Java1.doc Ove Lundgren 9

Kap 1: Sid 10 Selektion I ett dataprogram kan man testa om ett visst uttryck är sant eller falskt. Om uttrycket är sant gör programmet något, annars gör det något annat. Det sker en selektion, ett val mellan två vägar, i programmet. Här är en variant av programmet Alder som innehåller en selektion: class Alder2 int alder; alder = Prompt.heltal("Hur gammal är du? "); if (alder > 17) System.out.println("Du är myndig"); else System.out.println("Du är inte myndig"); Selektionen uttrycks med en if else - sats. Om åldern är mer än 17 så blir utskriften "Du är myndig" annars blir utskriften "Du är inte myndig" Övning: Alder2 Skriv programmet Alder2. Spara som Alder2.java. Kompilera och kör! Övning: Feber Skriv ett program som frågar efter din kroppstemperatur. Om febern är mer än 37.5 ska programmet skriva ut "FEBER!" annars ska programmet skriva ut "Du ar frisk!" Arbeta med flyttal. Logiska uttryck och operatorer Ett uttryck som antingen är sant eller falskt kallas för ett logiskt uttryck (andra namn är villkorsuttryck och boolskt uttryck) I sådana uttryck används ofta de logiska operatorerna: Större än anges med > Mindre än < Större än eller lika med >= Mindre än eller lika med <= Lika med == (Obs! Lätt att glömma att likhet skrivs med dubbelt likhetstecken) Ej lika med!= Anmärkning om if-satsen: if-satsen kan också användas utan else (om inget ska hända då det logiska uttrycket är falsk) I ett senare kapitel (kap 6) kommer en fullständig genomgång av if-satsen Java1.doc Ove Lundgren 10

Kap 1: Sid 11 Teckenvariabler Vi har hittills använt dessa datatyper: int double för heltal för flyttal (decimaltal) Kan man låta en variabel lagra en bokstav eller annat tecken? Det finns en datatyp som heter char som kan lagra tecken. (engelskans character = tecken) En teckenvariabel vid namn c deklareras så här: char c; Vi kan tilldela den ett värde så här: c = 'X'; Observera att man sätter apostrofer ( ' ) kring tecknet! Satsen System.out.print( c ); skulle nu ge utskriften X X c Man kan också tilldela från tangentbordet. Enklast (i nuläget) är att använda en metod i Prompt.class (som följer detta läromedel) och skriva följande: c = Prompt.tecken("Skriv en bokstav: "); Då kommer variabeln c att lagra det tecken man skriver på tangentbordet! Övning: Chansen Skriv in, kompilera och kör detta program: class Chansen char c; c = Prompt.tecken("Valj alternativ (A/B): "); if (c == 'A') System.out.println("Grattis! Du vann en lyxkryssning"); else System.out.println("Nitlott!"); Väljer du alternativ A (skriver ett versalt - stort - A) så vinner du. Alla andra alternativ ger nitlott. Java1.doc Ove Lundgren 11

Kap 1: Sid 12 Strängar En sträng (string) är en följd av tecken. En sträng omges av citationstecken ( " ). Exempel "Detta är en sträng" På föregående sida såg vi hur man kan lagra ett enstaka tecken i en variabel. Går det att lagra en hel sträng? Gör så här: En strängvariabel som vi kallar enamn deklareras så här: String enamn; Observera att första bokstaven är versal (stor) i ordet String! Vi kan tilldela strängvariabeln ett värde så här: enamn = "von Anka"; Kom ihåg citationstecken ( " ) kring strängen! Satsen System.out.print( enamn ); skulle nu ge utskriften von Anka Man kan också tilldela från tangentbordet. Vi utnyttjar en metod i filen Prompt.class (som följer detta läromedel) och skriver: enamn = Prompt.strang("Skriv ditt efternamn: "); Då kommer variabeln enamn att lagra de tecken man skriver på tangentbordet! Anmärkning: Datatyperna int, double och char (och några till) kallas ofta de primitiva datatyperna. String tillhör inte denna grupp. En String är något som kallas en klass. Vi tar upp begreppet klass längre fram. Tills vidare kan du låtsas att String är en "vanlig" datatyp. Kom bara ihåg att ordet String har stor bokstav i början! Övning: Efternamnet Testa detta lilla program: class Namnet String enamn; enamn = Prompt.strang("Skriv ditt efternamn"); System.out.println("Du heter " + enamn); Java1.doc Ove Lundgren 12

Kap 1: Sid 13 Iterationer Man kan få ett programavsnitt att utföras många gånger, man gör då en iteration (eller loop) Det finns flera sätt att skapa iterationer i Java (och i andra språk). Vi ska se på ett sätt nu: for-loopen. Övning: Loop Skriv in och provkör detta program class Loop for(int i = 0; i < 10; i++) System.out.print("*"); System.out.println(); Så här fungerar for-loopen: Heltalsvariabeln i är från början 0 (noll) int i = 0; Värdet på i ska undan för undan öka med 1 (ett) i++ Håll på så länge i är mindre än 10 i < 10; För varje "varv" ska det som står mellan måsvingarna utföras System.out.print("*"); I vårt fall kommer i att få värdena 0,1, 2, 9 (10 varv, alltså) För varje varv skrivs det ut en stjärna ( * ). Tio varv ger utskriften: ********** Experimentera: Byt ut System.out.print("*"); mot System.out.println("*"); Testa resultatet! Byt ut System.out.println("*"); mot System.out.println("Kalle "); Testa resultatet! Byt ut System.out.println("Kalle "); mot Testa resultatet! Du ser nu hur i ändrar värde. System.out.println("Kalle " + i); Byt ut i < 10; mot i < 20; Testa resultatet! Närmast före for-loopen: Deklarera variabeln n och ge n värdet 12 int n; n = 12; och byt sedan ut i < 20; mot i < n; Testa resultatet! Java1.doc Ove Lundgren 13

Kap 1: Sid 14 Vi fortsätter experimenten: Byt ut satsen n = 12; mot n = Prompt.heltal("Antal varv? "); Testa resultatet! Närmast före for-loopen: Deklarera variabeln namn och ge namn värdet "Kalle" Testa resultatet! String namn; namn = "Kalle"; Byt sedan ut System.out.println("Kalle " + i); mot Testa resultatet! System.out.println(namn + " " + i); Byt ut namn = "Kalle; mot namn = Prompt.strang("Vad heter du? "); Testa resultatet! När alla ändringar är gjorda ser programmet ut så här: class Loop int n; n = Prompt.heltal("Antal varv? "); String namn; namn = Prompt.strang("Vad heter du? "); for(int i = 0; i < n; i++) System.out.println(namn + " " + i); System.out.println(); Java1.doc Ove Lundgren 14

Kap 1: Sid 15 Övning: Nästlad loop Skriv ett javaprogram som visar ett "stjärnbaner" så här: ********** ********** ********** ********** ********** 10 stycken asterisk-tecken på rad ska skrivas, och detta ska upprepas 5 gånger. Lite hjälp: Koden i den grå plattan nedan ger utskrift av 10 asterisker i rad, samt en radmatning class Stars for(int i = 0; i < 10; i++) System.out.print("*"); System.out.println(); // ger ny rad Låt oss lägga den koden inne i en annan, yttre loop, som upprepas 5 gånger: class Stars for(int j = 0 ; j < 5 ; j++ ) for(int i = 0 ; i < 10; i++) System.out.print("*"); System.out.println(); // ger ny rad Skriv in programmet. Spara som Stars.java. Kompilera och kör! En konstruktion med en loop inne i en annan loop kallas för en nästlad loop. Gör tillägg i programmet så att du kan mata in värden på två heltal, b och h Stjärnbaneret ska sedan rita h rader med b stjärnor i rad. Java1.doc Ove Lundgren 15

Kap 1: Sid 16 Sammanfattning Ett javaprogram class MittProgram Här skriver man vad som ska ske när programmet körs! Primitiva datatyper int heltal Ex: 17 double flyttal (decimaltal) Ex: 3.14159 char tecken Ex: A Deklarera variabler Innan man börjar använda en variabel i ett program måste den deklareras. Man anger då vilken typ av variabel det är fråga om och vad variabeln heter. Namnet kan bestå av bokstäverna a - z, samt siffror (dock ej siffra som första tecken) När man deklarerar en variabel skriver man datatypen följt av variabelns namn. Exempel: int n; double xvarde; char bokstav; n xvarde bokstav Om flera variabler är av samma typ kan man "rada upp" dem efter varandra, så här: int i, j, k; Tilldelning Antag att du har deklarerat en variabel med namnet n och i denna vill du lagra talet 17. I Java skiver man: n = 17; Utläses: n tilldelas heltalet 17. Vidare: xvarde = 3.14; bokstav = P ; 17 3.14 P n xvarde bokstav Man kan göra deklaration och tilldelning i en enda sats, så här t ex: int n = 17; Med satsen n = a + b; får n värdet av summan av de tal som lagrats i a respektive b Satsen n = n + 1; gör att n ökar sitt värde med 1 (ett) Satsen n++; är en kortform för samma sak, det vill säga n ökar med 1 Tecknet = kallas (i Java och flera andra språk) tilldelningstecknet Observera att decimaltecken skrivs med punkt (inte kommatecken) Observera att data av typen char omges av apostrofer. Java1.doc Ove Lundgren 16

Kap 1: Sid 17 Strängar En strängvariabel deklareras String enamn; och tilldelas ett värde med enamn = von Anka ; Observera att data av typen String omges av citationstecken. String räknas inte till de primitva datatyperna. Kom ihåg: Versalt S i ordet String Tilldelning från tangentbordet Antag att i, x, c och s är deklarerade som heltal, flyttal, tecken och sträng (respektive) Följande metoder visar ledtexten Mata in: och promptar användaren att mata in värden: i = Prompt.heltal("Mata in: "); x = Prompt.decimaltal("Mata in: "); c = Prompt.tecken("Mata in: "); s = Prompt.strang("Mata in: "); Observera att dessa metoder för inmatning från tangentbord inte är fördefinierade metoder i Java. Metoderna medföljer detta läromedel (filen Prompt.class) Aritmetiska operatorer addition + subtraktion - multiplikation * division / Utskrift System.out.println(" ---sträng--- "); System.out.print(" ---sträng--- "); (ger radmatning) (utan radmatning) Plustecknet kan användas för konkatenering, sammanslagning av strängar. Om man konkatenerar en sträng och en talvariabel får man en sträng. Exempel: System.out.println("Summan ar " + x); Om x har värdet 7 blir utskriften Summan ar 7 Java1.doc Ove Lundgren 17

Kap 1: Sid 18 Selektion if (luttr) sats; else sats; luttr (logiskt uttryck, boolskt uttryck, villkorsuttryck) är något som är sant eller falsk (true eller false) if-satsen kan också användas utan else : if (luttr) sats; Skriv så om du vill att ingen sats ska utföras då det logiska uttrycket, luttr, är falskt Logiska operatorer Större än > Mindre än < Större än eller lika med >= Mindre än eller lika med <= Lika med == (Obs! dubbelt likhetstecken) Ej lika med!= Iteration Denna for-konstruktion gör att satserna i blocket kommer att upprepas n gånger: for(int i = 0; i < n; i++) sats; sats;... Java1.doc Ove Lundgren 18

Kap 1: Sid 19 Övningar Spara filerna i mappen X\java\Javagrunder 1. Skriv ett program Ohm Deklarera double-variablerna u, r och i Låt programmet fråga efter strömmen (i). Ett värde på i ska kunna matas in. Låt programmet fråga efter resistansen (r). Ett värde på r ska kunna matas in. Spänningen (u) ska då beräknas. ( u = r * i ) Utskrift visar hur stor spänningen är. 2. Skriv ett program Cirkeln Deklarera double-variablerna pi, radie, area, omkr pi tilldelas värdet 3.14159 Låt programmet fråga efter radien (radie). Ett värde på radie ska kunna matas in. Arean ska beräknas. area = pi * radie * radie Omkretsen ska beräknas. omkr = 2 * pi * radie Area och omkrets ska skrivas ut 3. Skriv ett program Klotet Klotets radie ska efterfrågas. Då ska klotets volym beräknas och skrivas ut. V = 4 * pi * r *r *r / 3 4. Skriv ett program, Deltagare, som frågar efter antal deltagare i en tävling (heltal) Om det är 12 eller fler deltagare ska programmet svara För många Annars ska programmet svara OK! 5. Skriv ett program, Sol, som frågar efter - antalet soltimmar i Oslo (heltal) - antalet soltimmar i Stockholm (heltal) - antalet soltimmar i Helsingfors (heltal) Programmet ska då visa ett liggande stapeldiagram. Exempel: Om du matar in 3 för Oslo, 8 för Stockholm och 10 för Helsingfors ska detta visas: O:*** S:******** H:********** Java1.doc Ove Lundgren 19