Lektion 2 - Webb Academy

Download Report

Transcript Lektion 2 - Webb Academy

Objektorienterad programmering
Föreläsning 2
© Copyright
Mahmud Al Hakim
[email protected]
www.webbacademy.se
Agenda







Repetition
While-satsen
For-satsen
Nästlade repetitionssatser
Escape-sekvenser
Introduktion till grafiska program
Övningar
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
2
1
Repetition:
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 2014 -Mahmud Al Hakim www.webbacademy.se
3
Analys
1.
Vi ska skapa ett program i Visual C# Express
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 2014 -Mahmud Al Hakim www.webbacademy.se
4
2
Lösning
Priser och rabatter
Environment.Exit(0);
Avslutar programmet
om användaren klickar
på knappen Avbryt eller
X-rutan.
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
5
While-satsen

Det enklaste sättet att åstadkomma repetitioner
(loopar) är att använda en while-sats.
while(uttryck)
{
en eller flera satser;
}
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
6
3
While – Exempel 1
Vi ger x ett startvärde
Medan x är mindre än 10
Gör detta
Öka x med 1
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
7
While – Exempel 2
Vi ger j ett startvärde
Medan j är mindre än 6
Gör detta
Öka j med 2
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
8
4
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 2014 -Mahmud Al Hakim www.webbacademy.se
9
Analys
1.
Vi behöver skapa ett nytt projekt i Visual C# Express.
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 2014 -Mahmud Al Hakim www.webbacademy.se
10
5
Programmet Rik
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
11
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 2014 -Mahmud Al Hakim www.webbacademy.se
12
6
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 2014 -Mahmud Al Hakim www.webbacademy.se
13
Oändlig while-sats
true är alltid sant
Om inmatningen är
null hoppa till }
Här slutar den första while-satsen
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
14
7
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 2014 -Mahmud Al Hakim www.webbacademy.se
15
For-satsen – Exempel 1
Initiering
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
Villkor
Ändring
16
8
For-satsen – Övning

Skapa ett program som visar talen
från 10 ned till 1
Se bilden nedan
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
17
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 2014 -Mahmud Al Hakim www.webbacademy.se
18
9
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 2014 -Mahmud Al Hakim www.webbacademy.se
19
For-satsen – Övning

Skapa ett program som räknar ut femmans
multiplikationstabell.
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
20
10
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 2014 -Mahmud Al Hakim www.webbacademy.se
21
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 2014 -Mahmud Al Hakim www.webbacademy.se
22
11
Nästlade
repetitionssatser
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
23
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, www.dynamicos.se, Mahmud Al Hakim, [email protected], 2013
24
12
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, www.dynamicos.se, Mahmud Al Hakim, [email protected], 2013
25
Escape-sekvenser


En escape-sekvens inleds med tecknet \ och ska tolkas
som ett enda tecken.
Några exempel
\'
\\
\n
\t
en apostrof
ett backslash-tecken
ny rad
ett tabb-tecken
◦ Tips
http://msdn.microsoft.com/en-us/library/h21280bw.aspx
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
26
13
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 2014 -Mahmud Al Hakim www.webbacademy.se
27
Ett grafiskt program
Ett fönster som innehåller en label
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
28
14
Ett grafiskt program
En klass som kör fönstret
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
29
Ett grafiskt program i Visual C#
Välj
Windows
Forms
Application
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
30
15
Här ändrar vi
fönstrets
egenskaper
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
31
Filen Program.cs
Här skapas ett nytt fönster
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
32
16
Toolbox
Här finns olika grafiska
komponenter s.k.
Controls
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
33
Ändra egenskaper för Label
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
34
17
Övning

Skapa ett grafiskt C#-program som visar ett fönster och
valfri Label (etikett). Prova med olika färger och typsnitt.
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
35
Övning 1 - Programmet Rik

Lös problemet med hjälp av dialogrutor istället.
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
36
18
Övning 2

Konvertera följande while-sats till en for-sats
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
37
Övning 3

Skapa ett program som visar nians
multiplikationstabell i en dialogruta
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
38
19
Övning 4

Skapa ett program som räknar ut valfri
multiplikationstabell.
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
39
Övning 5


Skapa ett program som visar multiplikationstabellerna
1-10 enligt nedan!
Tips! För att få jämna mellanrum använd "/t"
(mer om detta senare)
Copyright 2014 -Mahmud Al Hakim www.webbacademy.se
40
20