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

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

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

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Programmering i C, 7,5 hp

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

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

F4. programmeringsteknik och Matlab

TDDC77 Objektorienterad Programmering

Objektorienterad Programmering (TDDC77)

1 Iteration. 1.1 for-satsen

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

TDIU01 - Programmering i C++, grundkurs

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

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

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

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

JAVAUTVECKLING LEKTION 4

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

TENTAMEN OOP

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

Objektorienterad Programmering (TDDC77)

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

Objektorienterad Programmering (TDDC77)

Data, typ, selektion, iteration

TENTAMEN OOP

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

OOP Objekt-orienterad programmering

Visual Basic, en snabbgenomgång

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

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

En kort text om programmering i C.

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

TDIU01 - Programmering i C++, grundkurs

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

Föreläsning 3. Iteration while-satsen

Imperativ programmering. Föreläsning 2

Iteration while-satsen

[] Arrayer = Indexerad variabel

Agenda (obs! halvdag)

OOP Objekt-orienterad programmering

PROGRAMMERING-Java Omtentamina

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

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

Planering Programmering grundkurs HI1024 HT 2014

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?

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

DD1314 Programmeringsteknik

Skizz till en enkel databas

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

OOP Tenta

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

Föreläsning 18 Filer och avbildningar

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

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

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

Logik och kontrollstrukturer

D0010E. Hello world! Nedräkning. Sågtand. Övningsuppgifter i Eclipse. Skapa ett program som skriver ut "Hello world" på skärmen.

Föreläsning 6: Metoder och fält (arrays)

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

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

Föreläsning 10. Pekare (Pointers)

Enkla datatyper minne

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

SMD 134 Objektorienterad programmering

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

OOP Tentamen

Föreläsning 3-4 Innehåll

Tentamen OOP

JavaScript del 3 If, Operatorer och Confirm

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Planering Programmering grundkurs HI1024 HT TIDAA

Grundläggande stränghantering

Objektorienterad programmering Föreläsning 2

Inledande programmering med C# (1DV402) Summera med while"-satsen

PROGRAMMERING-JAVA TENTAMINA

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010

TENTAMEN OOP

MMA132: Laboration 2 Matriser i MATLAB

Tentamen ID1004 Objektorienterad programmering May 29, 2012

729G04 Programmering och diskret matematik. Python 3: Loopar

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

Tentamen ges för: Tentamensdatum: Tid:

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Övningsuppgifter kapitel 8

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

Planering Programmering grundkurs HI1024 HT data

Föreläsning 2, vecka 8: Repetition

Föreläsning 9-10 Innehåll

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

Variabler och konstanter

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

Programmering, grundkurs, 8.0 hp HI1024, omtentamen, TEN1. Tisdagen den 7 juni 2011,

Skriftlig tentamen för kursen DV017A. Inledande programmering i Java A

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

Transkript:

732G11 Linköpings universitet 2011-02-01

1 2 3

Strukturdiagram Strukturdiagram används för att visa hur ett program fungerar. Man kan se alla val och upprepningar som sker i programmet. Består av tre (!) enkla beståndsdelar: Start/stop Utför något Val

Vakna NEJ Slå väckarklockan Tyst? JA Drick kaffe JA Mer än 20 min till FÖ? Åk till uni. NEJ Håll FÖ

Val / villkor if-satsen if( villkor ) sats1 ; else sats2 ; i praktiken Är a<b? if(a < b) { Gör något ; else { Gör något annat ; JA Gör något NEJ Gör något annat

Satser och block Satser och block sats ; { sats1 ; sats2 ;... På varje ställe där man kan använda en sats kan man också ha ett block av satser. Ett block av satser omgärdas av måsvingar. Man ska alltid använda block för kroppar i if-satser, loopar och så vidare. Varför?

Bättre switch ( siffra ) { case 0: System. out. println (" Noll "); break ; case 1: System. out. println (" Ett "); break ; case 2: System. out. println (" Två "); break ; case 3: System. out. println (" Tre "); break ; default : System. out. println ("?"); Switch-satsen

Villkorsoperatorn Den enda trinära operatorn. En operator returnerar värde. Ger mer kompakt, men också svårläst kod. Bör i de flesta fall undvikas. Villkorsoperatorn villkor? uttryck_om_sant : uttryck_annars ; // ex: float promille = 0.1 f; String hur ; hur = " Jag tog " + ( promille < 0.2? " bilen " : " bussen ") + " hem.";

Upprepning / slinga / loop while-loopen while (a < b) { gör ngt ; Gör något JA Är a<b? NEJ

0-9 Skriver ut alla siffror från 0 till 9. Skriv ett program som: int siffra = 0; while ( siffra < 10){ System. out. print ( siffra + " "); siffra = siffra + 1;

Medelvärden Medelvärdet av tre tal int [] integers = new int [ 4]; System. out. println (" Mata in ett heltal :"); integers [0] = in. nextint (); System. out. println ("... ett till heltal :"); integers [1] = in. nextint (); System. out. println ("... ett till heltal :"); integers [2] = in. nextint (); System. out. println ("... ett till heltal :"); integers [3] = in. nextint ();... Häftigt, men inte mycket bättre för 5000 värden.

Anonym utvärdering av pågående kurser. Sammanställs av mig, sammanställningen redovisas, tillsammans med eventuella förändringar. Vad är bra/dåligt. Föreläsningar, laborationer, examination. Uppgifter, exempel, övningar, personal. Var specifik, annars vet vi inte vad vi ska ändra/fortsätta med. Ex. Vilken laboration är svår, vilken assistent mumlar, vilken föreläsning var bra osv.

Medelvärde av 5000 tal while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while ( pos < nrofints ) { System. out. println (" Mata in ett heltal :"); integers [i] = in. nextint (); pos = pos + 1;

Så? Generaliserat inläsningen (samma princip för uträkningen). Fungerar, men det är lite krångligt att hålla reda på alla delarna. Lätt att man dribblar bort sig själv med pos-variabeln om man använder flera loopar efter varandra.

Fler slingor / loopar För att råda bot på detta ska vi titta på fler slingor. Alla varianterna på slingor fungerar på liknande sätt, men de små skillnaderna gör dem lämpade för olika saker. Om det känns som att man får krångla för mycket i sin slinga så bör man fundera på om det inte vore bättre med en annan.

Synlighet och livslängd En variabel är bara synlig inom den omgivning där den definierats. När den omgivningen inte längre finns glöms variabeln bort. Variabler deklarerade i en slinga är bara åtkomlig inifrån den slingan.

for-loopen for ( initiering ; villkor ; uppdatering ){ gör ngt ; initiering villkor JA NEJ Gör något uppdatering

Används väldigt ofta tillsammans med arrayer. Försöker minimera risken att börja/sluta för tidiget/sent eller att glömma uppdatera räknarvariabeln. for-loopen int [] arr = new int [ nrofelements ]; long sum = 0; for ( int i = 0; i < nrofelements ; i ++) { sum = sum + arr [i];

do/while-loopen do { gör ngt ; while ( villkor ); Gör något JA Är a<b? NEJ

Exakt som while-loopen från förra föreläsningen, men den kör alltid minst ett varv (kontrollerar villkoret efter varje varv). Kan vara bra för saker som behöver repeteras om det inte går så bra första gången, exempelvis inläsning av data från användaren. do/while-loopen int tal = 0; do { System. out. print (" Ange ett tal mellan " + "3 och 26: "); tal = in. nextint (); while (( tal < 3) ( tal > 26));

break Avbryter en slinga (eller switchsats). Programmet fortsätter köra efter slingan. breaksatsen for ( int a = 0; a < 5; a ++){ if (q > 12) { break ;

Avbryter ett varvi i en slinga. continue Programmet fortsätter köra slingan från början igen (med variabeln uppdaterad om det är en for-slinga). breaksatsen for ( int a = 0; a < 5; a ++){ if (q > 12) { continue ;

Skriv ett program som skriver ut alla jämana heltal mellan 0 (inklusive) och 1000 (exklusive), genom att använda continue för att hoppa över de udda talen. breaksatsen for ( int a = 0; a < 1000; a ++){ if (a % 2 == 1) { continue ; System. out. print (a + " ");

Det går att lägga en slinga i en annan. Den inre slingan utförs då x gånger för varje varv i den yttre loopen. for ( int a = 0; a < 5; a ++){ for ( int b = 0; b <= a; b ++){ System. out. print ("*"); System. out. print (" ");

Skriv ett program som skriver ut multiplikationstabeller för de angivna talen enligt nedan. Interaktion med multiplikationstabellen Vilken tabell önskas? 8 8*0 = 0 8*1 = 8 8*2 = 16 8*3 = 24... 8*7 = 56 8*8 = 64 8*9 = 72 Vilken tabell önskas?

Pseudokod Låt table vara önskad tabell Låt row vara aktuell rad Tilldela row värdet 0 Skriv " Vilken tabell önskas? " Tilldela table värdet av önskad tabell medan row < 10 gör { skriv table + "*" + row + " = " + ( table * row ) öka row med 1 Den startar inte om.

Bättre pseudokod Låt table vara önskad tabell Låt row vara aktuell rad gör { Tilldela row värdet 0 Skriv " Vilken tabell önskas? " Läs in önskad tabell i table medan row < 10 gör { skriv table + "*" + row + " = " + ( table * row ) öka row med 1 medan table!= 0

Riktig javakod Scanner in = new Scanner ( System. in ); int table ; do { int row = 0; System. out. print (" Vilken tabell önskas?"); table = in. nextint (); while ( row < 10) { System. out. println ( table + "*" + row + " = " + ( table * row )); row = row + 1; while ( table!= 0);

Skriv ett program som skriver ut den riktiga multiplikationstabellen (10x10).

Baklänges Skriv ett program som skriver ut en sträng baklänges! Tips: använd slingor och metoden String.charAt(). Programkörning Ange text : 123456789 987654321 Ange text : Maria Edvardsson nossdravde airam Ange text :

Rövarspråket Skriv ett program som gör om svenska till rövarspråket. Rövarspråket Ange ord : hare hoharore Ange text : luftballong lolufoftotbobalollolonongog Ange text :

Pseudokod Rövarspråket Låt word vara en sträng gör { Skriv " Ange ord : " Läs in ord i word för varje bokstav letter i word gör { om letter är en vokal skriv letter annars skriv letter + " o" + letter medan word inte är " quit "

Javakod Rövarspråket String word ; do { word = in. nextline (); for ( int i =0; i< word. length (); i ++){ char letter = word. charat ( i); if ( letter == a letter == e letter == i letter == o letter == u letter == y letter == å letter == ä letter == ö ) { print ( letter ); else { print ( letter + "o" + letter ); while (! word. equals (" quit " ));