Lektion 1
Transcription
Lektion 1
Objektorienterad programmering Föreläsning 1 © Copyright Mahmud Al Hakim mahmud@webacademy.se 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 1 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 2 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 3 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 4 Olika slags programmering Assemblerprogrammering 1. ◦ 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 Allmänna programspråk 2. ◦ 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. 2. 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# 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 5 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) Copyright 2015 - Mahmud Al Hakim www.webacademy.se 12 6 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 7 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 Starta cmd.exe Copyright 2015 - Mahmud Al Hakim www.webacademy.se 16 8 Testa om kompilatorn finns i systemets sökvägar (PATH) C#-kompilatorn heter csc.exe Skriv csc och tryck på Enter Om du får detta felmeddelande så måste du uppdatera PATH Copyright 2015 - Mahmud Al Hakim www.webacademy.se 17 Leta efter sökvägen till csc.exe Kopiera sökvägen Copyright 2015 - Mahmud Al Hakim www.webacademy.se 18 9 Öppna dialogrutan Systemegenskaper Dialogrutan finns i kontrollpanelen Öppna Miljövariabler… Copyright 2015 - Mahmud Al Hakim www.webacademy.se 19 Redigera PATH OBS! Lägg till ett semikolon först och sedan sökvägen till csc.exe t.ex. ; C:\Windows\Microsoft.NET\Framework\vxxx Copyright 2015 - Mahmud Al Hakim www.webacademy.se 20 10 Testa csc.exe igen OBS! Du behöver starta ett nytt kommandofönster! Copyright 2015 - Mahmud Al Hakim www.webacademy.se 21 Skapa filen hej.cs manuellt i Notepad (anteckningar) Copyright 2015 - Mahmud Al Hakim www.webacademy.se 22 11 Navigera till filen cd Call Directory \ = rooten Copyright 2015 - Mahmud Al Hakim www.webacademy.se 23 Kompilera csc Hej.cs Copyright 2015 - Mahmud Al Hakim www.webacademy.se 24 12 Exekvera Copyright 2015 - Mahmud Al Hakim www.webacademy.se 25 Skapa Konsol-applikationer i Visual Studio Välj Console Application Ändra projektnamn Copyright 2015 - Mahmud Al Hakim www.webacademy.se 26 13 Console Application En Grundmall Main är huvudingången i ett program. Här startar programmet! Copyright 2015 - Mahmud Al Hakim www.webacademy.se 27 Källkoden sparas i filen Program.cs Filens hittar du i panelen Solution Explorer Filens sökväg hittar du i panelen Properties Copyright 2015 - Mahmud Al Hakim www.webacademy.se 28 14 Visa radnummer Tools – Options… Leta efter Text Editor All Languages Markera Line numbers Copyright 2015 - Mahmud Al Hakim www.webacademy.se 29 Vårt första konsolapplikation Copyright 2015 - Mahmud Al Hakim www.webacademy.se 30 15 Kompilera och exekvera Start Debugging (F5) Kompilerar och kör applikationen Copyright 2015 - Mahmud Al Hakim www.webacademy.se 31 Skapa en Breakpoint Copyright 2015 - Mahmud Al Hakim www.webacademy.se 32 16 ReadKey() ReadKey() Visar konsolfönstret och avvaktar tangenttryckning Copyright 2015 - Mahmud Al Hakim www.webacademy.se 33 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å. Vi indenterar metoden Main i klassen Hej class Hej { static void Main(string[] args) { Console.WriteLine("Välkommen till c#"); } } Copyright 2015 - Mahmud Al Hakim www.webacademy.se 34 17 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 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? Copyright 2015 - Mahmud Al Hakim www.webacademy.se 36 18 Deklarera en variabel Du måste ange datatyp Du måste ange variabelnamn (identifierare) string namn; Copyright 2015 - Mahmud Al Hakim www.webacademy.se 37 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”; Detta kallas att initiera en variabel. int ålder = 42; Copyright 2015 - Mahmud Al Hakim www.webacademy.se 38 19 Att läsa indata namn och hälsning är två variabler av typen String (text) ReadLine() En metod som läser en rad från kommandotolken Copyright 2015 - Mahmud Al Hakim www.webacademy.se 39 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 20 Analys 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 programmet Copyright 2015 - Mahmud Al Hakim www.webacademy.se 1. 41 Lösning: Bilhyra 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 Copyright 2015 - Mahmud Al Hakim www.webacademy.se 42 21 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 22 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 resultatet Copyright 2015 - Mahmud Al Hakim www.webacademy.se 46 23 Lösning: Priser och rabatter Del 1 Vi initierar variabler direkt i deklarationen Copyright 2015 - Mahmud Al Hakim www.webacademy.se 47 Lösning: Priser och rabatter Del 2 (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 Copyright 2015 - Mahmud Al Hakim www.webacademy.se 48 24 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 Högerklicka på Referens i Solution Explorer och välj Add Reference… Leta efter System.Windows.Forms Markera och lägg till. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 50 25 Visa en dialogruta Lägg till using-direktivet System.Windows.Forms; Klassen MessageBox är nu tillgänglig Copyright 2015 - Mahmud Al Hakim www.webacademy.se 51 Ändra dialogrutans titel (caption) Copyright 2015 - Mahmud Al Hakim www.webacademy.se 52 26