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

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

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

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

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

F4. programmeringsteknik och Matlab

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

TDDC77 Objektorienterad Programmering

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 3: Booleans, if, switch

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

Föreläsning 3-4 Innehåll

Lite logik. Kap 6: Sid 2

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

"if"-satsen. Inledande programmering med C# (1DV402)

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

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

OOP Tenta

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Tentamen , Introduktion till Java, dtaa98, dtea53

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009

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

Villkor och tester. Utförande satser bygger upp metoderna, man brukar finindela detta i: sekvenser. Ett program består i princip av: selektioner (val)

Objektorienterad programmering i Java

Övning2. Variabler. Data typer

Klassdeklaration. Metoddeklaration. Parameteröverföring

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Programmering för språkteknologer II, HT2011. Rum

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

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?

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

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner

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

Objektorienterad programmering i Java

1 Iteration. 1.1 for-satsen

OOP Objekt-orienterad programmering

Iteration while-satsen

SMD 134 Objektorienterad programmering

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

JAVAUTVECKLING LEKTION 4

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

JavaScript del 3 If, Operatorer och Confirm

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

Föreläsning 3. Iteration while-satsen

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

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

OOP Objekt-orienterad programmering

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

LÖSNINGSFÖRSLAG TENTAMEN

Föreläsning 14. Filhantering

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Föreläsning 3 Programmeringsteknik och Matlab DD1315. Importering av moduler. randrange

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.

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

Föreläsning 3. Iteration. while-satsen for-satsen do-satsen

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

OOP Tentamen

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

Föreläsnings 9 - Exceptions, I/O

OOP Omtenta

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING

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

Tentamen , Grundläggande programmering i Java

Att skriva till och läsa från terminalfönstret

TENTAMEN OOP

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

Tentamen Programmeringsteknik II för STS Skrivtid: Inga hjälpmedel.

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Imperativ programmering. Föreläsning 2

2D1342 Programkonstruktion för F1, ht 2006

Tentamen. Lösningsförslag

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

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

Dugga i Grundläggande programmering STS, åk

TDIU01 - Programmering i C++, grundkurs

Föreläsning REPETITION & EXTENTA

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

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

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Tentamen i Programmering

Föreläsningsmaterial (Logik, if-satsen & iteration)

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

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

Logik och kontrollstrukturer

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

Kompilera och exekvera Javakod

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Objektorienterad Programmering (TDDC77)

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

Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor.

Transkript:

Mer källkod Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne Erik Forslin efo@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 1

Styrstrukturer i Java En styrstruktur är något som påverkar vad som skall hända när ett Javaprogram körs (exekveras) En styrstruktur är antingen ett val eller en slinga Val: if, else if och else Slingor: while, for och do-while Vad som kommer exekveras avgörs av styrstrukturens villkor 2

Val: if-satsen if-satsen används för att exekvera vissa åtgärder under förutsättning att satsens villkor är uppfyllt (true) Formatet på den enklaste varianten: if (villkor) åtgärd; eller om man har flera åtgärder för samma villkor: if (villkor) åtgärd; åtgärd; if-satsen kan översättas direkt till svenska: Om villkoret är sant, exekvera åtgärderna 3

else if-satsen else if-satsen används i anslutning till direkt föregående if-sats (eller else if-sats) Flera else if-satser kan anslutas till varandra Format: if (villkor1) åtgärd1; else if (villkor2) åtgärd2; else if (villkor3) åtgärd3;... En direktöversättning skulle kunna vara: Om villkor1 är sant, exekvera åtgärd1, i annat fall om villkor2 är sant, exekvera åtgärd2, i annat fall om villkor3 är sant, exekvera åtgärd3, Om inget villkor är sant kommer ingen av åtgärderna att exekveras 4

else-satsen Som avslutning på en eller flera if- eller else ifsatser kan man ha ett ensamt else Om inget villkor är sant kommer åtgärderna till else-satsen att exekveras 5

Exempel med if-satser En enkel if-sats: if (priset > 10000) System.out.println("Oj! Vad dyrt!"); System.out.println("Du får bara 5000!"); Med flera else if och en else: if (priset > 10000) System.out.println("Oj! Vad dyrt!"); System.out.println("Du får bara 5000!"); else if (priset > 5000) System.out.println("Dyrt, men OK..."); else if (priset > 3000) System.out.println("OK..."); else System.out.println("Toppen!"); System.out.println("Jag slår till direkt!"); 6

Slingor: while-satsen while-satsen används om en samling åtgärder skall exekveras flertalet gånger ( flera varv ) Innan varje varv kontrolleras villkoret för att avgöra om koden ska exekveras Exekvering av åtgärderna i slingan fortsätter så länge som villkoret är sant Om villkoret inte ens är sant från början så kommer åtgärderna aldrig exekveras (de exekveras noll gånger) Om villkoret förblir sant för alltid, så kommer också slingan exekvera i oändlighet 7

Exempel med while-satsen Varvtalsuppräkning: int antalvarv = 10; // Förberedelser för första varvet int i = 0; while (i < antalvarv) // Åtgärder i varje varv System.out.println("Varv nummer " + i); // Förberedelser för nästa varv ++i; Nedräkning: int tidkvar = 10; System.out.println("Du har " + tidkvar + " sekunder på dig!"); while (tidkvar > 0) System.out.println(tidKvar + " sekunder kvar..."); --tidkvar; System.out.println("Tiden är ute!"); 8

do-while-satsen do-while-satsen används som while med undantaget att villkoret kontrolleras i slutet på varje varv En do-while-sats exekverar alltid slingan minst en gång åtgärderna i Exempel (från DoWhile.java): String svar = ""; do utdata.print("ange ditt svar: "); svar = indata.readline(); // Inget vettigt svar (tom sträng)? if (svar.length() == 0) utdata.println("du svarade inte!"); while (svar.length() == 0); System.out.println("Tack för svaret!"); 9

for-satsen for-satsen är ett alternativ till while Utnyttjas ofta när man har ett bestämt antal varv som ska exekveras Mer kompakt (men även mer komplicerat?) skrivsätt än med while Varvtalsuppräkningsexempel: int antalvarv = 10; for (int i = 0; i < antalvarv; ++i) System.out.println("Varv nummer " + i); 10

while och for Det går alltid att omvandla en while-sats till en for-sats och vice versa. Följande exempel ger samma resultat: Med while: int antalvarv = 10; int i = 0; while (i < antalvarv) System.out.println("Varv nummer " + i); ++i; Med for: int antalvarv = 10; for (int i = 0; i < antalvarv; ++i) System.out.println("Varv nummer " + i); 11

Operatorer En operator är ett kompakt skrivsätt för att beskriva en beräkning eller motsvarande Det finns framför allt två typer av operatorer: unära och binära Unära operatorer används tillsammans med en operand, t ex ++i -x!villsluta new BufferedReader(...) Binära operatorer används tillsammans med två operander, t ex x = 17 x + y a / 10 a % 10 x < 7 x == 12 x!= 100 (x >= 5) && (x <= 10) 12

Källkodsexempel: Delbarhet // Delbarhet.java public class Delbarhet public static void main(string[] args) int max = 100; int delare = 7; for (int i = 1; i <= max; ++i) if ((i % delare) == 0) System.out.println(i + " / " + delare + " går jämnt ut!"); // main() // Delbarhet datorn> javac Delbarhet.java datorn> java Delbarhet 7 / 7 går jämnt ut! 14 / 7 går jämnt ut!... main(...) int max 100 int delare 7 (vid 5:e varvet) int i 1 2 3 4 5 13