26
1 Objektorienterad programmering Föreläsning 1 © Copyright Mahmud Al Hakim [email protected] www.webacademy.se Agenda Introduktion till kursen och genomgång av kursplanering. Introduktion till programmering, .NET, C# och Visual Studio Kompilering och exekvering Konsolapplikationer Variabler Selektioner (if-satsen) Dialogrutor Copyright 2015 - Mahmud Al Hakim www.webacademy.se 2

Objektorienterad programmering Föreläsning 1 · 2015. 10. 15. · Vad är C#? C# (C-sharp) är ett objektorienterat programspråk utvecklat av Microsoft som en del av .NET-plattformen

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

  • 1

    Objektorienterad programmering

    Föreläsning 1

    © Copyright

    Mahmud Al Hakim

    [email protected]

    www.webacademy.se

    Agenda

    Introduktion till kursen och genomgång av

    kursplanering.

    Introduktion till programmering, .NET, C# och Visual

    Studio

    Kompilering och exekvering

    Konsolapplikationer

    Variabler

    Selektioner (if-satsen)

    Dialogrutor

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

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

  • 2

    Kursinnehåll

    Denna kurs behandlar objektorienterad programmering

    i C# och objektorienterad design för

    Windowsapplikationer.

    Objektorienterad programmering kan användas för

    nästan all typ av programmering och därför är denna

    kurs en bra grund för efterkommande kurser på

    utbildningen.

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

    Kurslitteratur

    Skarp programmering med C#

    Författare: Jan Skansholm

    ISBN: 9789144052601

    Utgivningsår: 2008

    Sidantal: 570

    Kompletterande material till boken finns här:

    http://skansholm.com/skarp

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

  • 3

    Bra referenslitteratur

    ◦Microsoft Visual C# 2013 Step by StepJohn Sharp

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

    Kursplanering

    22 föreläsningar (teori, demonstrationer och övningar)

    8 laborationer

    2 inlämningsuppgifter (måste redovisas)

    All redovisning sker muntligen under

    schemalagd tid för laborationer

    Eventuella kompletteringar ska åtgärdas och redovisas

    snarast.

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

  • 4

    Läraren ställer upp!

    Har du problem?

    Fråga! Ingen fråga är för dum för att ställas.

    Jag vill så gärna att du lyckas…

    Utnyttja de schemalagda lab-tillfällena för att ställa

    frågor. Det är nu då kursen går som läraren har tid

    avsatt för att kunna hjälpa dig.

    men du… …jag ställer upp till 100% och det enda du bara

    behöver göra är att ställa upp själv! Ju tidigare läraren

    får reda på eventuella problem desto lättare kan vi

    tillsammans åtgärda dem.

    Med andra ord kom inte i slutet av kursen och säg att du

    inget förstår. Läraren förstår då inte varför du inte tog

    kontakt tidigare.Copyright 2015 - Mahmud Al Hakim www.webacademy.se 7

    Vad är programmering?

    Programmering handlar om att instruera en

    maskin t.ex. en dator att utföra ett visst arbete.

    När man programmerar skriver man ett

    program och man använder ett programspråk.

    Maskinen förstår normalt inte programspråket

    direkt. Detta måste översättas till den

    maskinkod som maskinen är konstruerad att

    direkt förstå.

    Källa: http://sv.wikipedia.org/wiki/Programmering

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

    http://sv.wikipedia.org/wiki/Programmering

  • 5

    Olika slags programmering

    1. Assemblerprogrammering◦ Programmering nära hårdvara.

    ◦ Direktöversättning till maskinkod.

    ◦ Ex. "SR 1,2" betyder "Subtrahera innehållet i register nummer 1 med innehållet i register nr 2"

    ◦ Läs mer http://sv.wikipedia.org/wiki/Assemblerspråk

    2. Allmänna programspråk◦ En sats eller instruktion motsvarar många instruktioner i

    maskinspråket.

    ◦ Ex. saldo = tidigaresaldo - uttag

    ◦ Ett sådant program översätts, kompileras, till maskinkod av en kompilator eller interpreteras av en tolk.

    ◦ Läs mer: http://sv.wikipedia.org/wiki/Programspråk

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

    Programmeringsspråk

    1. Kompilerande språk

    Ett kompilerande språk är ett programspråk

    där källkoden med hjälp av olika verktyg

    (kompilator) översätts (kompileras) till

    maskinkod.

    Exempel: C, C++, Java och C#

    2. Interpreterande språk (Skriptspråk)

    Ett interpreterande språk är ett programspråk

    som tolkas (interpreteras) vid körning.

    Exempel: JavaScript, PHP

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

    http://sv.wikipedia.org/wiki/Assemblerspråkhttp://sv.wikipedia.org/wiki/Programspråk

  • 6

    Vad är .NET Framework?

    .NET Framework är en systemkomponent som är en

    del av operativsystemet Microsoft Windows.

    Den består av en samling komponenter som hanterar

    exekveringen av program som är skrivna speciellt för

    ramverket.

    Den består också av ett stort klassbibliotek

    innehållande förkodade lösningar för vanliga

    programmeringsuppgifter såsom kryptografi,

    databashantering, anslutning till nätverk, webbtjänster

    och algoritmer.

    Tips

    http://sv.wikipedia.org/wiki/.NET_Framework

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

    Vad är C#?

    C# (C-sharp) är ett objektorienterat programspråk

    utvecklat av Microsoft som en del av .NET-plattformen.

    C# är enkelt, modernt och objektorienterat.

    ◦ C# version 1.0 (2002) .NET Framework 1.0

    ◦ C# version 2.0 (2005) .NET Framework 2.0

    ◦ C# version 3.0 (2007) .NET Framework 3.5

    ◦ C# version 4.0 (2010) .NET Framework 4

    ◦ C# version 5.0 (2013) .NET Framework 4.5

    ◦ C# version 6.0 (2015) . NET Framework 4.6

    http://en.wikipedia.org/wiki/C_Sharp_(programming_language)

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

  • 7

    Kompilering

    En programmerare skriver ett datorprogram i form av

    vanlig text med hjälp av en texteditor eller IDE t.ex..

    (Visual Studio).

    Programtexten (källkoden) översätts till maskinkod med

    hjälp av en kompilator (finns i .NET Framework).

    Källkodsfiler som kompileras i C# skapar en "assembly".

    En assembly är antingen en exekveringsbar fil (exe) eller

    en DLL (Dynamic-link library).

    En assembly innehåller ingen kod som en dator direkt

    kan exekvera, utan mellankod kallad Common

    Intermediate Language (CIL).

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

    Visual Studio

    Microsoft Visual Studio är en avancerad

    programutvecklingsmiljö

    (Integrated Development Environment, IDE).

    Med Visual Studio kan man utveckla både PC-baserade

    applikationer för Microsoft Windows, mobila

    applikationer och Internetanpassade applikationer.

    Express och Community Editions är tänkta för enskilda

    utvecklare och studenter som inte behöver de riktigt

    stora funktionerna som utvecklingsföretag kan ha nytta

    av. Dessa program tillhandahålls utan kostnad men

    kräver registrering och tillgång till ett Microsoft-konto.

    http://en.wikipedia.org/wiki/Integrated_development_environment

    http://en.wikipedia.org/wiki/Microsoft_Visual_Studio

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

  • 8

    Ladda ner och installera

    Visual Studio Gå till http://www.visualstudio.com/downloads

    Välj Visual Studio Express eller Community

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

    Kommandofönstret

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

    Starta cmd.exe

  • 9

    Testa om kompilatorn finns i

    systemets sökvägar (PATH)

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

    C#-kompilatorn heter csc.exe

    Skriv csc och tryck på Enter

    Om du får detta

    felmeddelande så måste du

    uppdatera PATH

    Leta efter sökvägen till csc.exe

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

    Kopiera sökvägen

  • 10

    Öppna dialogrutan Systemegenskaper

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

    Dialogrutan finns i

    kontrollpanelen

    Öppna

    Miljövariabler…

    Redigera PATH

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

    OBS!

    Lägg till ett semikolon först och

    sedan sökvägen till csc.exe

    t.ex.

    ; C:\Windows\Microsoft.NET\Framework\vxxx

  • 11

    Testa csc.exe igen

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

    OBS!

    Du behöver starta ett

    nytt

    kommandofönster!

    Skapa filen hej.cs

    manuellt i Notepad (anteckningar)

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

  • 12

    Navigera till filen

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

    cdCall Directory

    \ = rooten

    Kompilera

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

    csc Hej.cs

  • 13

    Exekvera

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

    Skapa Konsol-applikationer

    i Visual Studio

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

    Välj

    Console Application

    Ändra projektnamn

  • 14

    Console Application

    En Grundmall

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

    Main är huvudingången i

    ett program.

    Här startar programmet!

    Källkoden sparas i filen

    Program.cs

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

    Filens sökväg hittar du i

    panelen

    Properties

    Filens hittar du i panelen

    Solution Explorer

  • 15

    Visa radnummer

    Tools – Options…

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

    Leta efter Text Editor -

    All Languages

    Markera

    Line numbers

    Vårt första konsolapplikation

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

  • 16

    Kompilera och exekvera

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

    Start Debugging (F5)

    Kompilerar och kör

    applikationen

    Skapa en Breakpoint

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

  • 17

    ReadKey()

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

    ReadKey()

    Visar konsolfönstret

    och avvaktar

    tangenttryckning

    Indentering

    Indentering går ut på att man med hjälp av olika mycket

    blanksteg (space) till vänster om koden kan på ett

    logiskt sätt gruppera koden så att den går lättare att

    läsa.

    Grundprincipen är att kod som hänger ihop skall ha

    samma indenteringsnivå.

    class Hej

    {

    static void Main(string[] args)

    {

    Console.WriteLine("Välkommen till c#");

    }

    }

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

    Vi indenterar

    metoden Main

    i klassen Hej

  • 18

    Variabler

    I datorprogram använder man s.k. variabler för att

    lagra data.

    Data kan vara av olika slag (typer).

    De vanligaste typerna är texter och numeriska värden

    (heltal och flyttal).

    En variabel kan innehålla data av en viss typ.

    Innan man använder en variabel i ett program måste

    man deklarera den.

    Då talar man om vilken typ variabeln skall ha och vad

    den skall heta.

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

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

    En variabel kan ses som en

    behållare för tillfällig

    information i datorns minne.

    Du måste ge variabler

    unika namn.

    Kan du ge

    mig kassen?

    Vilken?

  • 19

    Deklarera en variabel

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

    string namn;

    Du måste ange

    datatyp

    Du måste ange

    variabelnamn

    (identifierare)

    Tilldelning

    Vill du ge en variabel ett värde använder du

    likhetstecknet (=) som kallas tilldelningsoperator.

    Då du ger en variabel ett värde kallas det att du

    tilldelar variabeln ett värde.

    Exempel:

    hälsning = ”Välkommen”;

    antal = 7;

    Du kan deklarera och tilldela en variabel ett värde på en

    och samma gång t.ex.

    string namn = ”Mahmud”;

    int ålder = 42;

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

    Detta kallas

    att initiera en variabel.

  • 20

    Att läsa indata

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

    namn och hälsning

    är två variabler av

    typen String (text)

    ReadLine()

    En metod som läser

    en rad från

    kommandotolken

    Problem: Bilhyra

    Utveckla ett program som beräknar hur mycket det

    kostar att hyra en bil.

    Antag att man vet hur många dagar man vill hyra bilen

    samt hur mycket det kostar per dag.

    Programmet frågar efter dessa uppgifter och beräknar

    den totala kostnaden.

    Det kan se ut på följande sätt när man kör programmet.

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

  • 21

    Analys

    1. Vi ska skriva ett C#-program

    2. Som IDE väljer vi Microsoft Visual Studio.

    3. Programmet är en konsolapplikation

    (Console Application).

    4. Vi måste skapa ett projekt och ge ett lämpligt namn

    5. Källkoden måste skirvas i en cs-fil (t.ex. Program.cs)

    6. Källkodsfilen måste innehålla en klass

    7. Klassen måste innehålla metoden Main

    8. I Main behöver vi ett antal variabler av olika slag

    9. Vi behöver läsa in data (antal och pris per dag)

    10. Beräkna totalt pris och visa resultatet

    11. Vi måste kompilera och testköra programmetCopyright 2015 - Mahmud Al Hakim www.webacademy.se 41

    Lösning: Bilhyra

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

    antalDagar är en

    variabel av typen int

    (heltal)

    dagsPris och totPris

    är två variabler av

    typen double

    (decimaltal)

    Parse() är en metod

    som omvandlar text till

    ett numeriskt värde

  • 22

    Sekvens, selektion och repetition

    I alla de exempel vi kört hittills har satserna i

    programmen utförts i sekvens, från början till slut.

    För att man skall kunna skriva lite mer intressanta

    program krävs ytterligare två grundläggande

    konstruktionsmetoder.

    Ett program skall kunna välja alternativa satser att

    utföra (selektion).

    Och ett program skall kunna utföra satser upprepade

    gånger (repetition).

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

    Selektion med if-satser

    För att åstadkomma val i ett program kan man använda

    if-satsen.

    if(uttryck){

    en eller flera satser

    }

    else {

    en eller flera satser

    }Copyright 2015 - Mahmud Al Hakim www.webacademy.se 44

  • 23

    Problem: Priser och rabatter

    Del 1

    ◦ 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.

    ◦ Programmet beräknar det totala priset och visar resultatet.

    Del 2

    ◦ Anta att man får 10% i rabatt om man handlar för mer än 1000kr.

    ◦ Handlar man för lägre belopp får man ingen rabatt.

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

    Analys

    Del 1

    1. Vi ska skriva en konsolapplikation i Visual Studio

    2. Vi måste skapa ett projekt och ge ett lämpligt namn

    3. Projektet måste innehålla en källkodsfil

    4. Källkodsfilen måste innehålla en klass och Main

    5. Vi behöver ett antal variabler av olika slag

    6. Vi behöver läsa in data (antal och pris per styck)

    7. Beräkna priset och visa resultatet

    8. Vi måste kompilera och testköra programmet

    Del 2

    1. Om priset är högre än 1000

    2. Ge 10% rabatt (multiplicera priset med 0.10 för att få rabatten)

    3. Beräkna det nya priset och visa resultatetCopyright 2015 - Mahmud Al Hakim www.webacademy.se 46

  • 24

    Lösning: Priser och rabatterDel 1

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

    Vi initierar variabler

    direkt i deklarationen

    Lösning: Priser och rabatterDel 2

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

    (pris >1000)

    är ett logiskt

    uttryck som måste

    ha något av värdena

    true eller false

    Om uttrycket är sant

    utförs dessa satser

  • 25

    Dialogrutor

    I alla program hittills har utskrifterna hamnat i

    kommandofönstret.

    Men det är enkelt att istället visa en utskrift i en

    dialogruta.

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

    Lägg till

    System.Windows.Forms

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

    Högerklicka på Referens i

    Solution Explorer och välj

    Add Reference…

    Leta efter

    System.Windows.Forms

    Markera och lägg till.

  • 26

    Visa en dialogruta

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

    Lägg till

    using-direktivet

    System.Windows.Forms;

    Klassen MessageBox är nu

    tillgänglig

    Ändra dialogrutans titel (caption)

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