Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08



Relevanta dokument
PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC

PROGRAMMERING A VC# 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL C#

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

Grundläggande programmering med C# 7,5 högskolepoäng

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

SMD 134 Objektorienterad programmering

Övningar Dag 2 En första klass

Styra olika typer av objekt som animering, video, ljud och Flashfilm

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

Programmeringsteknik med C och Matlab

Föreläsning 1 & 2 INTRODUKTION

"if"-satsen. Inledande programmering med C# (1DV402)

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

Chapter 3: Using Classes and Objects

Tentamen OOP

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Laboration 1 Introduktion till Visual Basic 6.0

19. Skriva ut statistik

SÅindex 5 i Microsoft Excel 2010

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

En handledning för studerande på Högskolan Kristianstad

Microsoft Publisher. Laborationskompendium för digital behandling av publikationer. Detta exemplar tillhör:

Introduktion till PHP

ViTex snabbguide. 1. Inläsning till ViTex från scanner eller PDF Läs in text via scanner Läs in text från en JPEG-bild eller ett PDF-dokument

Lathund GUL Lärare. Allmänt. Hur du presenterar Dig själv för kursdeltagarna. Hur du lägger upp din kontaktlista

Elisabeth Bejefalk IT-Assistent Avesta kommun

Skapa ett register över din grupp/klass

Programmering för språkteknologer II, HT2014. Rum

ORDNA DINA BILDER. Var finns bilderna Var bör de finnas

Föreläsning 3.1: Datastrukturer, en översikt

Lära känna skrivbordet

INSTALLATION AV VITEC MÄKLARSYSTEM. Studentversion

Steg 4 b. Molntjänster Onedrive Office 365 Windows 10. Mars -16 Liljedalsdata.se. Liljedalsdata Molntjänster En del av steg 4 Sida 1

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Seriehantering. [En enkel guide för hur du som serieadministratör använder SVEMO TA.]

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

PROGRAMMERING A VC# 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL C#

Installation av. Vitec Online

Windows Forms Winstrand Development

eller Övningar i filhantering Tema: Mappar och filer i Windows samt Lagringsenheterna OBS! Endast för medlemmar i SeniorNet, Klubb Södertälje!

Manual för version V2

Användarhandledning Rapportgenerator Version: 1.1

Editering, Kompilering och Exekvering av Javaprogram

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

AVCAD 4.0 for MS SQL-SERVER

Installationsanvisning för kursens programvara på egen dator

Grunderna i stegkodsprogrammering

PDA-applikationer med.net

Lagadministration Linda Emterby

Lathund, till Photo Story, för skräckslagna lärare

Objektorienterad programmering i Java

Läs detta innan du fortsätter, eller skriv ut det, klicka runt lite och läs samtidigt.

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

2. Komma igång Skapa grupper och elever Skriv också ut sidan 13 så att eleverna har en snabbguide till programmet.

Programmering A. Johan Eliasson

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Övning. Introduktion och förberedelser

Installationsanvisning för Su Officemallar 2003 För PC

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

Java och Javascript. Krishna Tateneni Översättare: Stefan Asserhäll

Övningar i JavaScript del 2

Frågebanker, frågeuppsättningar och slumpvisa block

OOP Objekt-orienterad programmering

Objektorienterad programmering D2

RödGrön-spelet Av: Jonas Hall. Högstadiet. Tid: minuter beroende på variant Material: TI-82/83/84 samt tärningar

Tentamen, EDAA20/EDA501 Programmering

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad Programmering (TDDC77)

1284_omslag.qxd :13 Sida 1 ECDL START OFFICE 2003 Allmän IT Windows XP Word 2003 Outlook 2003

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Installationsanvisning från Visma Spcs. Visma löneprogram. Innehåll. Inledning

IBM SmartCloud for Social Business. IBM SmartCloud Engage och IBM SmartCloud Connections Användarhandbok

OOP Objekt-orienterad programmering

Semester och arbetstidsförkortning

Smartair System. TS1000 Version 4.23

Att använda pekare i. C-kod

Installationsguide. För att installera mjukvara och hårdvara, följ nedanstående anvisningar.

Innehåll. Kurs i Windows

Teckentavlor. Inställning av styrsätt med programvalsratten

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Detta sätt lämpar sig bra om man bara kort vill kommentera den inlämnade uppgifter som helhet. Gör så här:

Att komma igång med FirstClass (FC)!

Färgklövern. Färgklövern är gjord 1998 i samarbete mellan Datateket i Linköping och Hargdata AB i Linköping.

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Att hämta raps-data via Internet

Objektorienterad Programmering (TDDC77)

Laboration 10 - NetBeans

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Guide för pdf-formulär

Diagram. I detta kapitel lär du dig: m Diagrammets beståndsdelar. m Att skapa både inbäddat diagram och diagramblad. m Att ändra diagramform.

Lumbago - Förord. Välkommen till Journalprogrammet Lumbago.

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Rolladministration i PaletteArena 5.3

Elmia Mässkatalog för PocketPC

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Transkript:

Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08

Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler... 8 Att göra... 10 Kapitel 3 IF satsen... 11 Att Göra... 13 Kap 3.5 IF satser och färger... 14 Att göra... 14 Kap 4 Slumptal... 16 Att göra... 18 Kap5 Timer... 19 Att göra:... 22 Kapitel 6 Picturebox... 23 Att göra... 24 2

Hjälp och referenser http://csharpskolan.se/index.php (Site på svenska om C#) http://www.java2s.com (Tutorials till allt från C till Microsoft Word) http://iwtjanster.idg.se/webbstudio/ (Onlinetutorials i SQL, JAva, C# och mycket mer. På svenska) Kap 1 Introduktion Ladda ner Sharpdevelop 3.1 från http://icsharpcode.com/opensource/sd/download/ och installera det på din dator. Gå till Fronter och ladda ner programmet P1HelloWorld.exe. Det ligger i mappen Övningar i rumment Åk 1. Gör ett program som gör samma sak som P1HelloWorld.exe. Steg för steg 1. Skapa en New solution 3

2. Markera Windows Application och döp ditt program till något, exempelvis Program1. Använd helst inte svenska tecken. 4

3. Lägg märke till de tre markerade delarna. Till vänster välj Windows Forms I mitten hoppar man mellan designläge och kodläge Till höger finns alla egenskaper och attribut för det markerade objektet (detta fall själva fönstret) 5

4. Till vänster under Toolbox finns en mängd olika komponenter som vi kan använda genom dra och släpp till vårt program. Dra en knapp (button), en textfält (label) och en textruta (textbox) till ditt program. Programmet kommer automatiskt att döpa dessa till button1, label1 och textbox1. Detta går att ändra genom att markera objektet och ändra name under egenskaperna (properties) till höger. 6

5. Nu vill vi att saker ska hända när vi trycker på knappen. Vi vill att det som står i textrutan (textbox1) ska skrivas in i textfältet (label1). Vi vill också att texten som står på knappen ska ändras. Alla tre objekt som vi har skapat har ett attribut som heter Text. Detta attribut är det som står på knappen, i textfältet eller i textrutan. Dubbelklicka på knappen, då hoppar programmet till kodläget och den skapar automatiskt en funktion som heter Button1Click (). Det som vi skriver mellan måsvingarna kommer att hända när vi trycker på knappen. Koden nedan gör två saker: Ändrar texten på knappen till Knapp. Ändrar texten i label1 till det som står i textbox1. Kör ditt program (tryck på F5) och kontrollera så att det fungerar som det är tänkt. 7

Kapitel 2 Variabler En variabel i programmering kan ses som en låda där vi sparar ner något som vi ska använda senare i programmet. Det finns olika typer av variabler beroende på vad vi ska spara i dem. Vi ska börja med att titta på en int. En int är en variabel där vi sparar ett heltal, t.ex 14, 3004 eller 45. Först börjar vi med att deklarera (skapa) variablen. int a; Nu har vi skapat låda som heter a och i den kan vi stoppa ett heltal för att det är en int. Än så länge finns ingenting i lådan, den är helt tom. Vi kan när som helst stoppa in något i lådan, det enda vi måste tänka på är att vi bara kan stoppa in heltal. a = 42; Nu har vi stoppat in talet 42 i lådan. Vi skapar ett par variabler till int b; int c; Vi har skapat två variabler till som vi döpt till b och c. Vi stoppar in (det kallas tilldela) talet 10 i variablen b; b = 10; Eftersom båda variablerna a och b är tal (int) kan vi räkna med dem. Vi tar och summerar dem och stoppar in svaret i variabeln c c = a + b; Nu innehåller variabeln c talet 52 (42+10). Variabelnamn int long double char string bool Innehåller Heltal, 2miljarder till 2miljarder Heltal, väldigt stora tal Decimaltal Ett tecken Textsträngar True eller false 8

Vi gör ett litet program som kan summera två tal. Skapa ett program som ser ut ungefär så här: I rutorna ska vi skriva in två tal. När vi trycker på knappen ska dessa tal summeras och svaret ska skrivas ut i label1. Dubbelklicka på kappen för att få fram funktionen som körs när vi trycker på knappen. Vi vill nu skapa tre stycken variabler av typen int. I den första ska vi spara det som står I textbox1, i den andra ska vi spara det som står i texbox2. I den tredje sparar vi summan av de två första. Jag döper mina variabler till i1, i2 och summa. void Button1Click(object sender, EventArgs e) int i1; int i2; int summa; Nu är variablerna skapade och nästa steg är att stoppa in talen som står i rutorna. Här kommer ett problem, det som står i rutorna är ju text och inte tal så vi måste konvertera (göra om) det som står i textrutor till tal. Så, vi vill göra om det som står i textrutorna till tal och stoppa in i våra variabler. Det går till på följande sätt; i1 = Convert.ToInt32(textBox1.Text); i2 = Convert.ToInt32(textBox2.Text); 9

Nu summerar vi dessa två tal och sparar i variabeln summa summa = i1+i2; Slutligen vill vi skriva in svaret vi fick i vår label1. Men, i en label står det text, inte tal, så vi måste göra om vårt tal till text innan vi stoppar in det. Det fungerar på nästan samma sätt som åt andra hållet. label1.text = Convert.ToString(summa); Nu ska det fungera. Hämta gärna hem exempel2.exe från fronter om du vill titta hur det ser ut. Gör nu ett eget program som fungerar på samma sätt. Att göra Hämta hem program P2Räknaren.exe från Fonter. Gör ett eget program som fungerar på samma sätt. Variabelnamn int long double char string bool Innehåller Heltal, 2miljarder till 2miljarder Heltal, väldigt stora tal Decimaltal Ett tecken Textsträngar True eller false 10

Kapitel 3 IF satsen Ibland vill man att vissa saker ska hända bara om något annat villkor är uppfyllt. Då används If satser. Generellt ser IF satsen ut så här: if (Något är sant) Gör detta!; else if (Något annat är sant) Gör detta!; //(Här kan det komma flera else if) else I alla andra fall, gör detta!; 11

Vi gör ett litet program för att demonstrera. Två stycken textbox där vi ska skriva in tal. En knapp. En label där vi ska skriva ut ett par saker. När man ska trycker på knappen följande hända: Om talet i textbox1 är större än det i textbox2 skriver den i label1: [Första talet] är större än [Andra talet]. Det är värdena av [Första talet] och [Andra talet] som ska skrivas ut, t.ex. 17, 10 eller vad det nu är. Om talet i ruta B är större än det i ruta A skriver den i label1: [Andra talet] är större än [Första talet]. Om talen är lika ska den skriva ut: [Första talet] och [Andra talet] är lika stora. 12

Den gröna texten är kommentarer som programmet inte kommer att bry sig om. Man använder kommentarer för att förklara vad kod gör till andra som läser den eller för att man själv ska komma ihåg det senare. void Button1Click(object sender, EventArgs e) //Skapa två variabler int a; int b; //Gör om det som står i textrutorna till int //och stoppa in i a och b a = Convert.ToInt32(textBox1.Text); b = Convert.ToInt32(textBox2.Text); //Om a är större än b if (a > b) //Gör detta label1 Text = a + " är större än " + b; //Annars b är större än a else if (b > a) //Gör detta label1 Text = b + " är större än " + a; //I alla andra fall än ovan else //Gör detta label1 Text = a + " och " + b + " är lika stora"; Att Göra Programmet heter exempel3.exe och ligger på Fronter. När ni gjort och förstått det kan ni ladda hem och göra P3MyndigKollen.exe. 13

Kap 3.5 IF satser och färger För att få lite personlig prägel på sitt program ska vi titta på hur man kan ändra färger. Vi gör en enkel design med en knapp och en label och en groupbox med två stycken radiobuttons. När vi trycker på knappen ska färgen på bakgrunden, knappen och texten ändras till rött eller grönt beroende på vad man har valt. Att göra Gör samma exempel som ovan. Programmet finns att ladda ner från Fronter som exempel3.5.exe. Ladda sedan ner oh gör ett program som fungerar som P3.5FärgVäljaren.exe. Variabelnamn Int Long Double Char String Bool Innehåller Heltal, 2miljarder till 2miljarder Heltal, väldigt stora tal Decimaltal Ett tecken Textsträngar True eller false 14

exempel3.5.exe void Button1Click(object sender, EventArgs e) //Om radiobutton1 är markerad (notera att det är två stycken = if (radiobutton1.checked == true) //Detta ändrar bakgrundsfärgen på knappen button1.backcolor = Color.Red; //Detta ändra texten på knappen button1.forecolor = Color.Green; //Detta ändra bakgrundsfärgen på programmet this.backcolor = Color.Red; //Detta ändrar textfärgen på radiobuttons radiobutton1.forecolor = Color.Green; radiobutton2.forecolor = Color.Green; //Detta ändrar färgen på textet i label1. label1.forecolor = Color.Green; //Annars om den andra radiobutton2 är markerad ska följande hända else if (radiobutton2.checked == true) button1.backcolor = Color.Green; button1.forecolor = Color.Red; this.backcolor = Color.Green; radiobutton1.forecolor = Color.Red; radiobutton2.forecolor = Color.Red; label1.forecolor = Color.Red; 15

Kap 4 Slumptal Ofta i programmering vill man ta fram slumptal for olika ändamål. Vad vi måste göra är att skapa ett objekt som vi kan använda för att ta fram slumptal i programmet. Koden för detta är ganska enkel: Random myrandom = new Random(); I fallet ovan har vi skapat ett objekt av typen Random och vi har döpt vår till myrandom. En skillnad från innan är att vi skapar objektet utanför knappfunktionen. Det innebär att alla funktioner kommer att kunna använda sig av samma objekt och vi behöver inte skapa nya. Mer om det senare. Titta på koden nedan som visar var ni ska skriva in det någonstans. Det är i MainForm.cs. public partial class MainForm : Form //Här skapar vi vår random Random myrandom = new Random(); public MainForm() För att nu skapa ett tal skapar vi först en variabel av typen int, sedan använder vi den myrandom som vi skapat tidigare för att ta fram ett slumptal. Denna kod skriver vi där vi vill att den ska hända, till exempel när vi trycker på knappen int islumptal; islumptal = myrandom.next(1, 5); Talen 1 och 5 bestämmer mellan vilka tal vi vill att slumptalet ska vara. Vi kommer att kunna få 1, 2,3 eller 4 som slumptal med dessa värden. 16

Nu skapar vi en enkel design som innehåller 2 textbox 1 button 3 label Som ni ser har jag gjort storleken på den label där talet ska skrivas ut större. Ni får gärna ändra färger, bakgrunder o.s.v. på alla delar i programmet. När man trycker på knappen ska det skrivas in ett tal i label1 som är mellan det som står i Min rutan och det som står i Max rutan. 17

exempel4.exe [ ] public partial class MainForm : Form //Här skapar vi vårt objekt //och döper det till myrandom Random myrandom = new Random(); public MainForm() [ ] void Button1Click(object sender, EventArgs e) //Skapa först 3 variabler som är int (heltal) int imin; int imax; int islumptal; //Ta det som står i textbox1, //gör om det till Int32 och spara i variabeln imin imin = Convert.ToInt32(textBox1.Text); //Gör samma sak med det som står i textbox2 //och stoppa in i imax imax = Convert.ToInt32(textBox2.Text); //Använd myrandom för att ta fram ett värde //mellan imin och imax och spara detta tal i islumptal islumptal = myrandom.next(imin, imax); //Ändra talet till string (vanlig text) //och skriv ut i label1 label1.text = Convert.ToString(islumptal); Att göra Efter ni har gjort exempel4.exe (ovan) laddar ni hem P4Random.exe från fronter och gör ett sådant program. Ge programmet en personlig prägel med färger och bakgrunder 18

Kap5 Timer En timer är en slags räknare som tickar med bestämda intervall. Vi kan bestämma vad som ska hända varje tick. Vi kan också bestämma hur ofta den ska ticka. Vi skapar en timer genom att dra den till vårt program, den ligger under tools. Den får som standard namnet timer1. Vi kan nu göra olika saker med denna timer, vi koncentrerar oss på de vanligaste: //För att starta timer1 timer1.start(); //För att stoppa timer1 timer1.stop(); //För att ändra intervallet på timertick (1000 = 1000ms = 1sekund) timer1.interval = 1000; 19

Vi gör ett litet program för att demonstrera, skapa ett GUI som ser ut såhär: Den består av följande objekt Två knappar En label En timer Markerar vi timern så ser vi vilka egenskaper vi kan sätta på den. Enabled : Om den ska vara startad Interval : Hur ofta den ska ticka (i millisekunder) När trycker på start, startar timern. 20

När vi trycker på stop, stoppar timern. För varje tick (som ska ske en gång varje sekund), ska en variabel ökas med ett och skrivas ut i label1. exempel5.exe [...] public partial class MainForm : Form //Skapa en räknare som vi använder senare i //programmet. Notera var den skapas int icounter = 0; public MainForm() [...] void Button1Click(object sender, EventArgs e) //När vi klickar på startknappen startas timer1 timer1.start(); void Button2Click(object sender, EventArgs e) //När vi klickar på stoppknappen stoppas timer1 timer1.stop(); void Timer1Tick(object sender, EventArgs e) //Varje gång timern tickar ska: //Räknaren ökas med ett icounter = icounter + 1; //Räknarens värde skrivs ut i label1 label1.text = Convert.ToString(icounter); 21

Att göra: Ladda ner och gör exempel 5.exe. Sedan finns det två program: P5Clicker_G.exe P5Clicker_VG_MVG Gör först P5Clicker_G.exe om du hinner gör P5Clicker_VG_MVG.exe Tips/hjälp: Om ni fastnar skriv ner svar på följande frågor, ta med eventuella om när ni svara. Exempelvis Variablen A ska öka med ett om B är sant. Vilka variabler behövs? Vad ska hända när vi trycker på knappen/knapparna? Vad ska hända vid varje timertick? 22

Kapitel 6 Picturebox Det finns några olika sätt för att visa bilder i en picturebox. Vi ska gå igenom hur man gör genom att hänvisa till en bild på datorn. Koden är ganska enkel och ser ut så här: picturebox1.image = Image.FromFile(@"SÖKVÄG_TILL_FILEN"); Till exempel: picturebox1.image = Image.FromFile(@"c:\pics\image1.jpeg"); Nu ska vi göra ett litet enkelt tärningsspel. Istället för att visa en siffra ska vi visa en bild på tärningen. Desigen blir en knapp och en picturebox Steg för steg för programmet: Skapa ett Random objekt enligt tidigare kapitel När vi trycker på knappen ska: o Ett slumptal mellan 1 och 6 tas fram o Om det är en etta, visa bilden på tärning 1 o Om det ör en tvåa, visa bilden på tärning 2 o [ fall 3 5 ] o Om det är en sexa, visa bilden på tärning 6 o Om det är något annat, visa en messagebox. Detta är ren kontroll. 23

exempel6.exe void Button1Click(object sender, EventArgs e) int irandom = myrandom.next(1,7); if (irandom == 1) picturebox1.image = Image.FromFile(@"dice\1 jpeg "); else if (irandom == 2) picturebox1.image = Image.FromFile(@"dice\2 jpeg "); else if (irandom == 3) picturebox1.image = Image.FromFile(@"dice\3 jpeg"); else if (irandom == 4) picturebox1.image = Image.FromFile(@"dice\4 jpeg "); else if (irandom == 5) picturebox1.image = Image.FromFile(@"dice\5 jpeg "); else if (irandom == 6) picturebox1.image = Image.FromFile(@"dice\6 jpeg"); else MessageBox.Show("Ops, irandom = " + irandom); Koden ovan fungerar och är korrekt. De flesta borde förstå den också. Men, det finns ett lite smidigare sätt att lösa det om man tänker efter. Eftersom sökvägen är en string kan vi bygga ihop den själva: picturebox1.image = Image.FromFile(@"dice\" + irandom + " jpeg "); Att göra OBS! Exemplen ovan utgår från att det finns en katalog som heter dice som ligger i samma mapp som exempel6.exe. I denna dice katalog ligger bilderna 1.jpeg 6.jpeg. Ni kan naturligtvis skriva hela sökvägen till filen om ni vill det. Efter det så gör ett program som fungerar som P6DiceGame.exe. 24