Objektorienterad programmering Föreläsning 2



Relevanta dokument
Agenda (obs! halvdag)

JAVAUTVECKLING LEKTION 4

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Laboration 1 Introduktion till Visual Basic 6.0

Objektorienterad programmering Föreläsning 6. Mer om klasser och typer Namnrymder Inkapsling Synlighet Statiska variabler Statiska metoder

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

PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC

F4. programmeringsteknik och Matlab

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Introduktion till PHP

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

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

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

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)

Kursplanering Objektorienterad programmering

Objektorienterad programmering Föreläsning 4

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

Inledande programmering med C# (1DV402) Introduktion till C#

Innehållsförteckning

JAVAUTVECKLING LEKTION 7

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 11. Copyright Mahmud Al Hakim

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

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Objektorienterad programmering

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

Objektorienterad programmering

Data, typ, selektion, iteration

Programmering B med Visual C

Användarhandledning Version 1.2

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

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

Frekvenstabell över tärningskast med C#

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

3.5 Visuell programmering

Programmering i C, 7,5 hp

Laboration: Grunderna i MATLAB

Agenda. Objektorienterad programmering Föreläsning 13

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

Objektorienterad programmering Föreläsning 20

Så här skriver du ditt första program i C++

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

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

Objektorienterad programmering Föreläsning 5

TUTORIAL: SAMLING & KONSOLL

MMA132: Laboration 2 Matriser i MATLAB

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

TDIU01 - Programmering i C++, grundkurs

Iteration while-satsen

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Innehåll. JavaScript - Grundkurs. Vad är JavaScript? Vad är JavaScript? Vad behövs? Lite historia

Uttryck, satser och strömhantering

Komponenter med COM (och COM+/VC++ 7.0)

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

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

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

JAVAUTVECKLING LEKTION 3

For-sats/slinga. Notis

Objektorienterad programmering Föreläsning 12. Copyright Mahmud Al Hakim

Föreläsning 3. Programmering, C och programmeringsmiljö

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Kursplanering för EE3D i kursen Programmering 1, 100p.

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Microsoft Visual Studio 2017

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

Statistik över heltal

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

Frekvenstabell över tärningskast med C#

Laboration 1. Utgåva 1 Gäller från

Beräkningsvetenskap föreläsning 2

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

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

Övning. Introduktion och förberedelser

Objektorienterad programmering i Java

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

C++ Slumptalsfunktioner + switch-satsen

Systemutvecklare SU13, Malmö

Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim Sorteringsalgoritmer

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Malmö högskola 2007/2008 Teknik och samhälle

PROGRAMMERING A VC# 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL C#

2D1339 Programkonstruktion för F1, ht 2003

Föreläsning 2 Programmeringsteknik och C DD1316

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

Datorteknik 2 (AVR 2)

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

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

C++ Lektion Tecken och teckenfält

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

Föreläsning 1 & 2 INTRODUKTION

729G04 Programmering och diskret matematik. Python 3: Loopar

Variabler och konstanter

OOP Objekt-orienterad programmering

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

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.

Övningsuppgift 2 Datalogi I 2I1027/2I1035/2I1046

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

Tentamen OOP

WINDOWS PRESENTATION FOUNDATION LEKTION 1

Transkript:

Objektorienterad programmering Föreläsning 2 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Inläsning av data via dialogrutor Repetitioner (While-satsen och For-satsen) Nästlade repetitionssatser Escape-sekvenser Introduktion till grafiska program Övningar Copyright 2015 -Mahmud Al Hakim www.webacademy.se 2 1

Inläsning av data via dialogrutor Det finns ingen lättanvänd standardmetod i C# som man kan använda för att läsa in text från dialogrutor! Men det finns en enkel InputBox-metod i programspråket Visual Basic inom.net Framework. Eller man kan använda en färdig skräddarsydd (icke standard) klass som en annan har gjort. Det finns en fil som heter InputBox.cs att ladda ner från bokens hemsida Copyright 2015 -Mahmud Al Hakim www.webacademy.se 3 InputBox via Visual Basic Lägg till referensen Microsoft.VisualBasic Lägg till using-direktivet Microsoft.VisualBasic; Metoden InputBox finns i klassen Interaction Copyright 2015 -Mahmud Al Hakim www.webacademy.se 4 2

InputBox via en skräddarsydd C#-klass 1. Ladda ner filen InputBox.cs från bokens hemsida 2. Lägg till filen till din Solution (högerklicka Add Existing Item ) Copyright 2015 -Mahmud Al Hakim www.webacademy.se 5 Klassen InputBox Exempel Metoden Show() finns i klassen InputBox Copyright 2015 -Mahmud Al Hakim www.webacademy.se 6 3

Övning Priser och rabatter med dialogrutor Utveckla ett program som beräknar det totala priset när man har köpt ett antal varor av samma slag. Indata är antal enheter och pris per styck. Medlemmar får 10% i rabatt. Programmet frågar om kunden är medlem eller ej. Programmet beräknar det totala priset och visar resultatet i en dialogruta. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 7 Analys 1. Vi ska skapa ett program i Visual Studio Vi måste skapa ett projekt och ge ett lämpligt namn Projektet måste innehålla en källkodsfil 2. Vi behöver deklarera variabler av olika slag 3. Vi behöver läsa in data (antal och pris per styck) via två dialogrutor. (Vi använder Skansholms InputBox). 4. Vi beräknar priset (Pris/st x Antal) 5. Vi behöver fråga användaren om man är medlem eller inte. Detta gör vi med hjälp av en dialogruta av typen (Ja/Nej). 6. Om kunden är medlem så ska priset multipliceras med 0.10 (10%) 7. Visa resultatet i en dialogruta 8. Vi måste kompilera och testköra programmet Copyright 2015 -Mahmud Al Hakim www.webacademy.se 8 4

Lösning Priser och rabatter Environment.Exit(0); Avslutar programmet om användaren klickar på knappen Avbryt eller X-rutan. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 9 While-satsen Det enklaste sättet att åstadkomma repetitioner (loopar) är att använda en while-sats. while(uttryck) { en eller flera satser; } Copyright 2015 -Mahmud Al Hakim www.webacademy.se 10 5

While Exempel 1 Vi ger x ett startvärde Medan x är mindre än 10 Gör detta Öka x med 1 Copyright 2015 -Mahmud Al Hakim www.webacademy.se 11 While Exempel 2 Vi ger j ett startvärde Medan j är mindre än 6 Gör detta Öka j med 2 Copyright 2015 -Mahmud Al Hakim www.webacademy.se 12 6

Rik Ett orealistiskt exempel :-) Man har erbjudits ett mycket farligt och riskfyllt arbete Lönesättningen är ganska ovanlig För första dagens arbete erbjuds man 1 öre För andra dagen 2 öre Tredje dagen 4 öre Fjärde dagen 8 öre Osv Lönen fördubblas varje dag Hur många dagar måste man arbeta för att bli rik? Användaren anger önskat belopp tex.1000000 Copyright 2015 -Mahmud Al Hakim www.webacademy.se 13 Analys 1. Vi behöver skapa ett nytt projekt i Visual Studio. En källkodsfil skapas automatiskt. 2. Vi behöver läsa in önskat belopp (tex. 1000000) 3. Vi behöver skapa en räknare (antaldagar med startvärde =1) 4. Vi behöver spara totalt belopp i en variabel (tex. totaltbelopp). 5. Vi behöver en while-sats med uttrycket (totaltbelopp är mindre än önskatbelopp) 6. Inuti loopen behöver vi beräkna dagens lön (multiplicera dagens lön med 2) 7. Beräkna det nya totala beloppet. 8. Öka antaldagar med 1 9. Visa antal dagar efter loopen. 10. Vi måste kompilera och testköra programmet Copyright 2015 -Mahmud Al Hakim www.webacademy.se 14 7

Programmet Rik Copyright 2015 -Mahmud Al Hakim www.webacademy.se 15 Break-satsen Ibland har man behov av att kunna avbryta en loop mitt inne i en repetition. Då kan man använda sig av en break-sats. En break-sats kan placeras bland de satser som exekveras på varje varv. En break-sats bör ligga i en if-sats så att den bara utförs villkorligt. if (villkor för att sluta) break; Copyright 2015 -Mahmud Al Hakim www.webacademy.se 16 8

Programmet Rik Ny version I den nya versionen skall man kunna göra upprepade beräkningar. Varje gång programmet har räknat ut och visat hur många dagar man behöver arbeta, så börjar det om från början igen och låter användaren mata in nytt önskat belopp. Programmet gör upprepade beräkningar ända tills användaren trycker ner Ctrl+Z. Ctrl+Z returnerar ett speciellt värde som heter null. Null betyder ingen text. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 17 Oändlig while-sats true är alltid sant Om inmatningen är null hoppa till } Här slutar den första while-satsen Copyright 2015 -Mahmud Al Hakim www.webacademy.se 18 9

For-satsen Man brukar använda en for-sats när man har en räknare som skall räkna upp eller ner på varje varv. for( initiering ; villkor ; ändring) { en eller flera satser } Copyright 2015 -Mahmud Al Hakim www.webacademy.se 19 For-satsen Exempel 1 Initiering Villkor Ändring Copyright 2015 -Mahmud Al Hakim www.webacademy.se 20 10

For-satsen Övning Skapa ett program som visar talen från 10 ned till 1 Se bilden nedan Copyright 2015 -Mahmud Al Hakim www.webacademy.se 21 For-satsen Exempel 2 Skapa ett program som beräknar hur mycket pengar man får på ett bankkonto om man sätter in 1000kr och låter pengarna stå inne utan att röra dem under 5 år. Räntesatsen är 2,5% Copyright 2015 -Mahmud Al Hakim www.webacademy.se 22 11

Programmet Bank Explicit typomvandling Här omvandlas double till int för att slippa decimaler i utskriften Obs! decimaler kapas utan avrundning Mer om detta senare! Copyright 2015 -Mahmud Al Hakim www.webacademy.se 23 For-satsen Övning Skapa ett program som räknar ut femmans multiplikationstabell. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 24 12

Nästlade repetitionssatser De satser som står inne i en repetitionssats får vara vilken sorts satser som helst. Det betyder att det kan finnas en repetitionssats inne i en annan repetitionssats. for( init ; villkor ; ändring) { } for( init ; villkor ; ändring) { } en eller flera satser Copyright 2015 -Mahmud Al Hakim www.webacademy.se 25 Nästlade repetitionssatser Exempel Skapa ett program som skriver ut ett visst antal rader. På första raden skrivs ett plustecken. På andra raden två plustecken. Osv Copyright 2015 -Mahmud Al Hakim www.webacademy.se 26 13

Nästlade repetitionssatser Copyright 2015 -Mahmud Al Hakim www.webacademy.se 27 Kommentering Att kommentera i sin kod är en konst. Det är mycket att tänka på! Det som är svårast är att veta hur mycket man skall kommentera. Det är lika illa att kommentera för mycket som för lite! Här kommer några riktlinjer. Skriv i kommentaren VAD som görs och inte HUR det görs. Hur det görs skall koden i sig själv förklara. Kommentera i en sammanhängande längre kommentar före ett avancerat block vad som görs. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 28 14

Kommentering i C# // Detta är en kommentar x = 1000; // Detta är också en kommentar /* Detta är en kommentar som sträcker sig över flera rader */ /// Detta är en XML-kommentar (överkurs) Copyright 2015 -Mahmud Al Hakim www.webacademy.se 29 Escape-sekvenser En escape-sekvens inleds med tecknet \ och ska tolkas som ett enda tecken. Några exempel \' en apostrof \\ ett backslash-tecken \n ny rad \t ett tabb-tecken Tips http://msdn.microsoft.com/en-us/library/h21280bw.aspx Copyright 2015 -Mahmud Al Hakim www.webacademy.se 30 15

Introduktion till grafiska program Moderna program använder grafiska användargränssnitt för att kommunicera med användaren. Grafiska program visar fönster på skärmen. Dessa fönster kan innehålla diverse grafiska komponenter t.ex. knappar, menyer och texter. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 31 Ett grafiskt program Ett fönster som innehåller en label Copyright 2015 -Mahmud Al Hakim www.webacademy.se 32 16

Ett grafiskt program En klass som kör fönstret Copyright 2015 -Mahmud Al Hakim www.webacademy.se 33 Ett grafiskt program i Visual Studio Välj Windows Forms Application Copyright 2015 -Mahmud Al Hakim www.webacademy.se 34 17

Här ändrar vi fönstrets egenskaper Copyright 2015 -Mahmud Al Hakim www.webacademy.se 35 Filen Program.cs Här skapas ett nytt fönster Copyright 2015 -Mahmud Al Hakim www.webacademy.se 36 18

Toolbox Här finns olika grafiska komponenter s.k. Controls Copyright 2015 -Mahmud Al Hakim www.webacademy.se 37 Ändra egenskaper för Label Copyright 2015 -Mahmud Al Hakim www.webacademy.se 38 19

Övning Skapa ett grafiskt C#-program som visar ett fönster och valfri Label (etikett). Prova med olika färger och typsnitt. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 39 Övning 1 - Programmet Rik Lös problemet med hjälp av dialogrutor istället. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 40 20

Övning 2 Konvertera följande while-sats till en for-sats Copyright 2015 -Mahmud Al Hakim www.webacademy.se 41 Övning 3 Skapa ett program som visar nians multiplikationstabell i en dialogruta Copyright 2015 -Mahmud Al Hakim www.webacademy.se 42 21

Övning 4 Skapa ett program som räknar ut valfri multiplikationstabell. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 43 Övning 5 Skapa ett program som visar multiplikationstabellerna 1-10 enligt nedan! Tips! För att få jämna mellanrum använd "/t" Copyright 2015 -Mahmud Al Hakim www.webacademy.se 44 22