Programmering i C# 2. Inledande detaljer.

Slides:



Advertisements
Liknande presentationer
Mall för ett C#-program
Advertisements

Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Avlusning Debugger (”avlusare”) Breakpoints Watch.
INTRODUKTION TILL PROGRAMMERING
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
10. Elementen i strukturerad programmering
Klasser och objekt.
Programstruktur: C för enchipsdatorer
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
Metoder i java Det finns två typer av metoder i java
Arv.
Polymorfism.
Föreläsning 12 Matlab J-uppgiften.
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Att programmera i språket Java
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Strömmar Vid läsning och skrivning används något som kallas strömmar.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Programmering B PHP Lektion 2
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Sid 1 CD5250 OOP med C++ Daniel Flemström MDH/IDT CD5250 OOP med C++
Programmering i C# 3. Klasser.
Programmering B PHP Lektion 2
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
4. Arv och dynamisk bindning
Vektorer (klassen Vector) Sortering
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Programmering i C# 5. Structer.
Programmeringsteknik för Media1 & K1
1. En infrastruktur för programutveckling
Internet A Javaskript.
OOP F6:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList toString() – metoden.
Funktioner, styrstrukturer, manipulering av matriser
Anders Sjögren Mer om datatyper. Anders Sjögren const det finns ett elegantare sätt att skapa konstanter i C än sättet med makro som vi använt tidigare.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Arrayer och strängar Arrayer Strängar operatorer typkonvertering.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Föreläsning 10 Stränghantering.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Central-enhet PM CPU BIOS Skiv- minne Sekundär- minnes- enheter (SM)
7. Delegerare och notifierare
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
OOP&M - teori1 OOP– Föreläsning vecka Genomgång uppgifter Arbetsmetoder Repetition Kapitel 14 Metoder.
Anders Sjögren Mer om datatyper. Anders Sjögren const det finns ett elegantare sätt att skapa konstanter i C än sättet med makro som vi använt tidigare.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Selektion jämförande och logiska operatorer
Föreläsning 3: Booleans, if, switch
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

Programmering i C# 2. Inledande detaljer

Syntax Satser avslutas med semikolon Sats kan ersättas av block Raddelning saknar oftast betydelse Sats kan ersättas av block Flera satser inom klammerparenteser Variabler definieras med typ namn = initialvärde; Kommentarer med /* */ eller // eller /// /// beskrivs senare Programmering i C# - Kapitel 2

2.1 IO och strängar Utmatning till terminal med Console.WriteLine(…) Parametern kan vara valfri typ – för de inbyggda skrivs värde, för många andra typer skrivs ledtext och värden, för övriga skrivs typnamn Console.WriteLine(”Hello World”); int x = 100; Console.WriteLine(x); Programmering i C# - Kapitel 2

Formaterad utmatning Värden kan läggas in i ledtext Formatparametrarna kan också innehålla koder för styrning av utmatningsformat int x = 100; double y = 123.5; Console.WriteLine(”Värdet i x är {0}, och i y {1}”, x, y); Programmering i C# - Kapitel 2

Object.ToString() Basklassen Object har metoden ToString Omdefinierad i åtskilliga typer för utskrift av objektets tillstånd Klassen String har plusoperator Console.WriteLine(”Värdet i x är ” + x.ToString() + ” och i y ” + y.ToString()); Programmering i C# - Kapitel 2

Strängar Klassen String motsvarar C# string Immutable – alla metoder returnerar nytt objekt Innehåller teckenvektor i Unicode Literalsträng har typen string Syntaxfel att skapa objekt med new anmärkningsvärt undantag Programmering i C# - Kapitel 2

Inläsning Console.ReadLine() returnerar en string Strängen parsas med Convert.ToXXX(s) eller med måltypens XXX.Parse(s) XXX är måltypen, s är strängen Parsingfel ger undantag! Inte ens ett extra blanktecken… Programmering i C# - Kapitel 2

Exempel terminal-IO static void Main() { Console.Write(”Skriv in ett heltal: ”); string s = Console.ReadLine(); int left = Convert.ToInt32(s); Console.Write(”Skriv ett till ”); s = Console.ReadLine(); int right = Convert.ToInt32(s); Console.WriteLine(”{0} + {1} = {2}”, left, right, left + right); } Programmering i C# - Kapitel 2

2.2 Main-metoden Programmets startpunkt Ingår i valfri klass Statisk, valfri synlighet Får finnas flera! Kompilatorflagga anger då vilken som gäller Ingen parameter eller en string[] Returtyp void eller int Programmering i C# - Kapitel 2

2.3 Typomvandlingar För inbyggda structtyper implicit i alla ofarliga riktningar int till long, int till double, etc int var = 1000000; byte b = var; // kompileringsfel long l = var; // OK double d = var; // OK bool b = var; // ingen typomvandling till bool! Programmering i C# - Kapitel 2

Explicit typomvandling Explicit med eller utan övervakning vid exekvering Enligt kompilatorflagga Med checked/unchecked byte b = (byte) var; // var är en int int var = 1000000; checked (byte b = (byte) var); // undantag genereras! Programmering i C# - Kapitel 2

Up/downcast och boxing Basklassreferens kan referera till härlett objekt enligt OO-lagarna och CTS Härledd referens kan aldrig tilldelas basklassobjekt Alla typer härleds från Object Objectreferens bör kunna tilldelas struct! Sker med ”boxing” och föklaras senare Programmering i C# - Kapitel 2

2.4 Operatorer Operatorer är statiska metoder som anropas med annan syntax <operand> operator operand Ger naturligare syntax i klientkod Används mycket flitigt i klassbiblioteket Uppsättningen operatorer definierat i C# Men inte deras logik Programmering i C# - Kapitel 2

Operatorer Aritmetiska Logiska Jämförande + - * / ++ -- % Beräkningar på heltal och flyttal Logiska && || ! Returnerar true eller false Jämförande < <= > >= == != Programmering i C# - Kapitel 2

Operatorer forts. Bitvisa Typhantering Övriga & | ^ ~ << >> Används typiskt med uint som bitmönster Typhantering () is as typeof Typkontroll och säker typomvandling Övriga . = () [] new ?: Programmering i C# - Kapitel 2

Prioritet Ordningen i anropen kan vara kritisk Förtydliga med parenteser! int x = 5, y = 3, z = 1; int sum1 = x * y + z; // 16 int sum2 = x * (y + z); // 20 bool a = false, b = false, c = false; if (a && b == c) ... // false if ((a && b) == c) ... // true Programmering i C# - Kapitel 2

Associativitet Alla binära operatorer utom tilldelning exekverar vänster till höger Tilldelning sker höger till vänster Programmering i C# - Kapitel 2

2.5 Vektorer Enbart språksyntax som förenklar och döljer användande av System.Array int[] vec = new int[100]; int[] vec = new int[5] { 1, 2, 3, 4, 5 }; vec[3] = 100; // första satsen ekvivalent med: Array vec = Array.CreateInstance(typeof(int), 100); Programmering i C# - Kapitel 2

Arraymetoder Åtskilliga metoder i Array Vissa statiska, andra instansmetoder vec.Length // antal element (i alla dimensioner) vec.GetLength(0) // element i första dimensionen Array.IndexOf(vec, 5) // söker första element med // värdet 5 Array.Sort(vec); // sorterar elementen Programmering i C# - Kapitel 2

Flerdimensionell vektor int[,] matrix = new int[5, 10]; for(int dim = 0; dim < matrix.GetLength(0); dim++) for(int el = 0; el < matrix.GetLength(dim); el++) Console.WriteLine(matrix[dim, el]); Programmering i C# - Kapitel 2

2.6 Uttryck och satser Villkorsuttryck alltid av typen bool if (x < 0) { ... } else if (x < 10) // mellan 0 och 9 else if (x < 20) // mellan 10 och 19 else // >= 20 Programmering i C# - Kapitel 2

Switch switch kan ersätta if-else med flera grenar switch (x) { case 1 : Console.WriteLine(”Ett”); break; case 2 : Console.WriteLine(”Två”); break; ... default: Console.WriteLine(”Stort”); break; } Programmering i C# - Kapitel 2

Switch forts. switch (str) { case ”Anders” : case ”Bertil” : case ”Cecilia”: Console.WriteLine(”ABC”); break; case ”David” : Console.WriteLine(”David och ”); goto case ”Erik”; case ”Erik” : Console.WriteLine(”Erik”); break; } Programmering i C# - Kapitel 2

While och do-while Enklaste iteration Villkoret först eller sist while (TestMethod(x)) { … } do } while (TestMethod(x)); Programmering i C# - Kapitel 2

For Vanligt är att indexvariabel räknar varv Kan göras med while, bättre med for Villkoret har default värdet true for (int i = 0; i < 100; i++) { … } Programmering i C# - Kapitel 2

Foreach Mycket enkel och säker Endast för traversering av samlingar Förutsätter implementation av vissa interface string[] names = { ”Anna”, ”Britta”, ”Cecilia” }; foreach (string s in names) { Console.WriteLine(s); } Programmering i C# - Kapitel 2

Break och continue break avslutar iterationen continue avslutar pågående varv och påbörjar nästa Gäller närmast omslutande while, do-while, for och foreach while (true) { if (…) break; } Programmering i C# - Kapitel 2

2.7 XML-kommentarer Kommentarer efter /// Placeras direkt före typdeklaration eller medlem Rekommenderade XML-taggar finns Exempel: <remarks>…</remarks> Verktyg kan generera dokumentation Programmering i C# - Kapitel 2

XML-kommentarer exempel Standardbiblioteket är dokumenterat i XML /// <summary>This method changes the points location /// to the given coordinates.</summary> /// <param>xor is the new x-coordinate</param> /// <param>yor is the new y-coordinate</param> /// <returns>void</returns> public void Move(int xor, int yor) { ... } Programmering i C# - Kapitel 2