22
1 Objektorienterad programmering Föreläsning 2 © Copyright Mahmud Al Hakim [email protected] 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

Objektorienterad programmering Föreläsning 2 - DynamicOS · 2015. 10. 15. · 2 Inläsning av data via dialogrutor Det finns ingen lättanvänd standardmetod i C# som man kan använda

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

  • 1

    Objektorienterad programmering

    Föreläsning 2

    © Copyright

    Mahmud Al Hakim

    [email protected]

    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

    mailto:[email protected]://www.webacademy.se/

  • 2

    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

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 4

    Lägg till referensen

    Microsoft.VisualBasic

    Lägg till using-direktivet

    Microsoft.VisualBasic;

    Metoden InputBox finns i klassen Interaction

  • 3

    InputBox via en skräddarsydd

    C#-klass1. 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

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 6

    Metoden Show()

    finns i klassen InputBox

  • 4

    Ö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

  • 5

    Lösning

    Priser och rabatter

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 9

    Environment.Exit(0);

    Avslutar programmet

    om användaren klickar

    på knappen Avbryt eller

    X-rutan.

    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

  • 6

    While – Exempel 1

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 11

    Vi ger x ett startvärde

    Medan x är mindre än 10

    Gör detta

    Öka x med 1

    While – Exempel 2

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 12

    Vi ger j ett startvärde

    Medan j är mindre än 6

    Gör detta

    Öka j med 2

  • 7

    RikEtt 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

  • 8

    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

  • 9

    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

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 18

    Oändlig while-sats

    true är alltid sant

    Om inmatningen är

    null hoppa till }

    Här slutar den första while-satsen

  • 10

    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

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 20

    Initiering Villkor Ändring

  • 11

    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

  • 12

    Programmet Bank

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 23

    Explicit typomvandling

    Här omvandlas double till int för att slippa decimaler i utskriften

    Obs! decimaler kapas utan avrundning

    Mer om detta senare!

    For-satsen – Övning

    Skapa ett program som räknar ut femmans

    multiplikationstabell.

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 24

  • 13

    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

  • 14

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 27

    stla

    de

    rep

    etitio

    nssa

    tse

    r

    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

  • 15

    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

  • 16

    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

  • 17

    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

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 34

    Välj

    Windows

    Forms

    Application

  • 18

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 35

    Här ändrar vi

    fönstrets

    egenskaper

    Filen Program.cs

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 36

    Här skapas ett nytt fönster

  • 19

    Toolbox

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 37

    Här finns olika grafiska

    komponenter s.k.

    Controls

    Ändra egenskaper för Label

    Copyright 2015 -Mahmud Al Hakim www.webacademy.se 38

  • 20

    Ö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

  • 21

    Ö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

  • 22

    Ö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