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 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 2: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 3: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

3

Bra referenslitteratur

◦Microsoft Visual C# 2013 Step by Step

John 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

Page 4: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 5: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 6: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat 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

Page 7: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 8: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 9: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 10: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 11: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 12: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 13: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 14: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 15: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 16: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 17: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 18: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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?

Page 19: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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.

Page 20: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 21: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 22: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 23: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 24: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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

Page 25: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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.

Page 26: Objektorienterad programmering Föreläsning 1 - DynamicOSdynamicos.se/oop/pdf/programmering-newton-1.pdf · 2015. 10. 15. · C# (C-sharp) är ett objektorienterat programspråk

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