objektorienterad programmering föreläsning 1 · 2015. 10. 15. · vad är c#? c# (c-sharp) är...
TRANSCRIPT
-
1
Objektorienterad programmering
Föreläsning 1
© Copyright
Mahmud Al Hakim
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