Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk www.cs.aau.dk/~boegholm/studiepraktik.

Lignende præsentationer


Præsentationer af emnet: "Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk www.cs.aau.dk/~boegholm/studiepraktik."— Præsentationens transcript:

1 Studiepraktik Thomas Bøgholm Mikkel Hansen Jacob Elefsen

2 Studiepraktik -- program
Program onsdag 10.00 – 10.15 Registrering af fremmøde og gennemgang af dagens program                             10.15 – 11.15 Introduktion til programmering / Opgaver 11.15 – 11.25 Pause 11.25 – 12.30 12.30 – 13.00 Frokost 13.00 – 14.30~ Besøg i grupperum 14.30 – 15.00

3 Studiepraktik -- program
Torsdag 10.00 – 10.15 Registrering af fremmøde og gennemgang af dagens program                             10.15 – 11.15 Besøg den sociale klub, F-Klubben Pause 11.30 – 12.30 Introduktion til programmering / Opgaver 12.30 – 13.00 Frokost 13.00 – 14.00 Om uddannelserne på Cassiopeia (af studievejledningen) 14.00 – 15.00

4 Studiepraktik -- program
Fredag 10.00 – 10.15 Registrering af fremmøde og gennemgang af dagens program                             10.15 – 11.15 Besøg af gamle studerende fra Elsevier Pause 11.30 – 12.30 Introduktion til programmering / Opgaver 12.30 – 13.00 Frokost 13.00 – 14.00 Afslutning og evaluering

5 Mål Målet for studiepraktikken er Se institut for datalogi
Høre om uddannelserne Møde nuværende studerende Møde tidligere studerende Besøge studerende i deres grupperum Lære at programmere! Og lidt mere…

6 Hvad skal der ske? Opleve et kursus
Programmering er et grundlæggende begreb I vil opleve det på første studieår 2 sprog på første studieår I får en lille bid af et af et kursus på 1. studieår

7 Programmeringskursus Studiepraktik 2016
Thomas Bøgholm

8 Programmer Mekanisk løsning af en opgave
Behandling af data Beregninger Programmer minder om opskrifter Skal specificeres i mindste detalje Et program beskriver en proces til at løse en opgave/beregning

9 Hvad er et program? En sekvens af instruktioner der fortæller computeren hvad den skal gøre. Et program skrives i et sprog Mennesker forstår ikke: … Computere forstår ikke: “læg 1 og 2 sammen og skriv det på skærmen” Tekst oversættes til instruktioner Oversætter Tekst

10 Hvor passer det ind i uddannelsen?
Programmering er et værktøj! Der findes mange forskellige værktøjer! (sprog) Forskellige måder at programmere på Sprogstammer, hellere end sprog Det er lettere at tale om sne, i lande der oplever snevejr I kommer til at designe jeres eget sprog! (4. semester)

11 Hvilket sprog?

12 Hvilket sprog?

13 Hvordan skriver vi? Samlet udviklingsværktøj
Skriveprogram Oversætter Fejlfindingsværktøjer Overblik Microsoft Visual Studio 2015

14 Første opgave Hent visual studio installer
Kør installer under forelæsning Vi laver opgaver bagefter

15 Et simpelt program Her starter programmet Funktionskald
static void Main(string[] args) { Console.WriteLine("Hello World!"); Console.WriteLine("Tryk en tast for at afslutte..."); Console.ReadKey(); } Her starter programmet Funktionskald Parameter til funktionskald (en tekst) Funktionskald uden parametre

16 Oversigt Hukommelse, udtryk og typer Metoder og operatorer
Kontrolstrukturer Datastrukturer Program

17 Hukommelse Variabler er hukommelsespladser ‘skuffer’ med navne
Variabler har typer string velkomst = "Velkommen til Studiepraktik!"; int antalStuderende = 60; Type Navn på variabel Værdi

18 Hukommelse Typer bestemmer hvad der kan komme i en given skuffe
string velkomst = "Velkommen til Studiepraktik!”; int antalStuderende = 60; int (integer / heltal)

19 Hukommelse Typer bestemmer hvad der kan komme i en given skuffe
string (tekst streng) string velkomst = "Velkommen til Studiepraktik!”; int antalStuderende = 60; int (integer / heltal)

20 Hukommelse Typer bestemmer hvad der kan komme i en given skuffe
string (tekst streng) string velkomst = "Velkommen til Studiepraktik!”; int antalStuderende = 60; Navn er identificerer vores skuffe int (integer / heltal)

21 Hukommelse Typer bestemmer hvad der kan komme i en given skuffe
string (tekst streng) string velkomst = "Velkommen til Studiepraktik!”; int antalStuderende = 60; int (integer / heltal)

22 Hukommelse Typer bestemmer hvad der kan komme i en given skuffe
string velkomst = "Velkommen til Studiepraktik!”; int antalStuderende = 60; string talStreng = "10"; string talStreng = 80; int antalStuderende = ”firs"; int antalStuderende = ”50";

23 Hukommelse Typer bestemmer hvad der kan komme i en given skuffe
string velkomst = "Velkommen til Studiepraktik!”; int antalStuderende = 80; string talStreng = "10"; string talStreng = 80; int antalStuderende = ”firs"; int antalStuderende = ”50";

24 Udtryk Variabelerklæring int tal; tal = 10 + 10; Værditilskrivning
Udtryk bliver ‘evalueret’ når programmet kører

25 Udtryk Heltal int tal = 10 + 10; tal = 30; tal = tal * 2;
int ekstraStuderende = 10; int antalStuderende = 60 + ekstraStuderende; Strenge string velkomst = "Velkommen til Studiepraktik!"; string udvidetVelkomst = velkomst + " Programming Rocks!!";

26 Datatyper int og string kender vi allerede char – enkelte tegn
bool – sandhedsværdier double - Kommatal char c = 'a'; bool s = true; bool f = false; double d = 10.0;

27 Oversigt Hukommelse, udtryk og typer Metoder og operatorer
Kontrolstrukturer Datastrukturer Program

28 Metoder En genbrugelig klump kode
Det meste af vores kode vil være i metoder En måde at tilføje operationer på string navn = Console.ReadLine(); Console.WriteLine("Hej " + navn + "!"); Console.WriteLine("Velkommen til studiepraktik"); Metodekald

29 Metoder metodenavn (int, string, etc) Returtype Parametre
static void Hilsen(string navn) { Console.WriteLine("Hej med dig, " + navn); } Hilsen("Thomas"); <- Hej med dig, Thomas

30 Metoder Metoder kan bruges som udtryk / værdier metodenavn
(int, string, etc) Returtype Parametre static string Hilsen(string navn) { return "Hej med dig, " + navn; } string hilsenStreng = Hilsen("Thomas"); Console.WriteLine(hilsenStreng); <- Hej med dig, Thomas Returværdi (streng)

31 Input/Output Input: Output Console.ReadLine();
Bruges som et udtryk / værdi Eksempel: string navn = Console.ReadLine(); Output Console.WriteLine(”…”); Udskriver den angivne tekst til konsollen Console.WriteLine("Hej med dig " + navn);

32 Numeriske typer Metoder på numeriske typer findes ikke i typerne selv, men i Math klassen. static void numeriskeTyperEksempel() {     int a = 2;     double b = 9.75 + a;     int c = (int)b; //cast, giver 11     double sqrtB = Math.Sqrt(b); //     double powA = Math.Pow(a, 5); //32     Console.WriteLine(Math.PI); //              }

33 Aritmetiske operationer
Man kan benytte de aritmetiske operationer (*, /, +, -, % (modulo)) på de numeriske typer. Almindelige præcedens-regler (*, / og % over + og -) gælder. Udtryk evalueres fra venstre mod højre Parenteser kan bruges til at ændre den normale evaluering. static void aritmetiskeOperationerEksempel() {     int a, b, c, d, e;     a = 2 + 3; //5     b = a * 6; //30     c = ((2 + 3) * 5) / a; //5     d = c % 3; //2 e = 10 / 2 * 5; //25 }

34 Streng-metoder static void stringMetodeEksempel() {
    string  a = "Noget tekst";     string  aUp1 = a.ToUpper();  //NOGET TEKST     string  aUp2 = "Noget tekst".ToUpper(); //NOGET TEKST     string  c = aUp1.Substring(0, 5);  //NOGET string  d = a + " " + c;  //Noget tekst NOGET string.Compare("Ib", "Bo"); //minus, 0, eller positivt tal }

35 Logiske operationer sammenligningsoperatorerne (<, <=, ==, >=, >, !=) logiske operatorer: && (AND) || (OR) !(NOT) static void logiskeOperationerEksempel() {     int two = 2;     bool a = two < 4; //true     bool b = two == 3; //false bool c = !a; //false     bool d = a || b; //true bool e = a && b; //false bool f = a ^ b; //true }

36 Oversigt Hukommelse, udtryk og typer Metoder og operatorer
Kontrolstrukturer Datastrukturer Program

37 Kontrolstrukturer Normalt kører kode sekventielt
Kontrolstrukturer bruges til at bryde dette mønster To typer kontrolstrukturer if-sætninger Bruges til forgreninger Løkker Bruges til iteration

38 if-sætninger if (betingelse1) { // betinget kode } else // alternativ

39 static void ifEksempel() { int alder = 12; if (alder < 13) {
    {         Console.WriteLine("Du er et barn");     } else {         Console.WriteLine("Du er ikke et barn mere! ");     } }

40 static void ifEksempel() { int alder = 12; if (alder < 13) {
    {         Console.WriteLine("Du er et barn");     } else if (alder < 20)         Console.WriteLine("Du er teenager");         }     else if (alder >= 20 && alder <= 67)         Console.WriteLine("Du er i den arbejdsduelige alder");     }            }

41 static void ifEksempel() { string input = Console.ReadLine();
    int alder;     bool gyldigAlder = Int32.TryParse(input, out alder);     if (!gyldigAlder)     {         Console.WriteLine("Fejl! Du har indtastet en ugyldig alder");     }     else         if (alder < 13)         {             Console.WriteLine("Du er et barn");         }         else if (alder < 20)             Console.WriteLine("Du er teenager");         else if (alder >= 20 && alder <= 67)             Console.WriteLine("Du er i den arbejdsduelige alder");     }            }

42 While løkke Vi kan bruge løkker til at udføre de samme statements et antal gange - bruges ofte når vi ikke på forhånd kender antallet af iterationer En while løkke udfører en kodeblok indtil en given betingelse ikke længere holder. int tal = 1; while (tal < 10) { Console.WriteLine("Tallet er nu: " + tal);     tal = tal + 1; } while (betingelse) { } NB: Pas på uendelige løkker!!!

43 For-løkker for løkken bruges når vi vil udføre en kodeblok et bestemt antal gange. For løkken: initialiserer en tæller-variabel inden første gennemløb; Tester tæller-variablens værdi inden hvert gennemløb Tæller tæller-variablens værdi op el. ned efter hvert gennemløb for (initialiser tæller ; test tæller ; tæl tæller op/ned ) { } 43

44 static void forEksempel() { //for-pendanter til while løkker
    for (int tal = 0; tal < 10; tal++)     {         Console.WriteLine("Tallet er nu: " + tal);     }     for (int nytTal = 2; nytTal % 7 != 0; nytTal += 2)         Console.WriteLine("7 går ikke op i " + nytTal);     for (string tekst = "jubi"; tekst.Length < 8; tekst = tekst + "i")         Console.WriteLine(tekst); }

45 Oversigt Hukommelse, udtryk og typer Metoder og operatorer
Kontrolstrukturer Datastrukturer Program

46 Data strukturer De variable vi har set indtil videre indeholder en enkelt værdi En datastruktur derimod kan indeholde en række værdier. Vi skal kigge på 2 datastrukturer: Array Indeholder et bestemt antal elementer List Indeholder et varierende antal elementer

47 Arrays Indeholder et bestemt antal værdier af en bestemt type (string, char, bool, int, double) Elementer i arrayet tilgås via et index. Indeksering starter ved 0 1 2 ”hej” ”med” ”dig” 1 2 3 4 26 10 2011 12 30 1 2 3 4 ’c’ ’y’ ’k’ ’e’ ’l’ 1 2 true false

48 Eksempel static void arrayEksempel() { string[] tekst;
    tekst = new string[3];     tekst[0] = "hej";     tekst[1] = "med";     tekst[2] = "dig";     int[]  jokerTal = new int[7];     jokerTal[0] = 16;     jokerTal[1] = 25;     Console.WriteLine("Dagens første ord er " + tekst[0]);     Console.WriteLine("Dagens sidste ord er " + tekst[2]);            int sidsteJoker = jokerTal[6]; }

49 Arrays og for-løkker går hånd i hånd:
static void arrayForEksempel() {     int[] jokerTal = new int[7];     jokerTal[0] = 16;     jokerTal[1] = 25;     for (int i = 0; i < jokerTal.Length; i++)     {         Console.WriteLine(jokerTal[i]);     } }

50 Arrays af arrays - kan fx bruges til matricer
static void jaggedArrayEksempel() {     int[][] niTal = new int[3][];     niTal[0] = new int[4];     niTal[1] = new int[2];     niTal[2] = new int[3];     niTal[0][0] = 1;     niTal[0][1] = 2;     niTal[0][2] = 3;     niTal[0][3] = 4;     niTal[1][0] = 5;     niTal[1][1] = 6;     niTal[2][0] = 7;     niTal[2][1] = 8;     niTal[2][2] = 9;     int nr6 = niTal[1][1]; } Arrays af arrays - kan fx bruges til matricer 1 2 3 4 5 6 7 8 9

51 List<T> datastrukturen
Bruges til variabel-størrelse samling af elementer Listens størrelse kan vokse og skrumpe <T> kaldes en type parameter (kan være string, char, bool, int, double) using System.Collections.Generic; //(namespace)

52 static void listEksempel() {
    List<string> liste = new List<string>();     liste.Add("hej");      liste.Add("med");     liste.Add("dig"); liste.Remove("asdf");     liste.Remove("med");     liste[0] = "mig";     liste.Insert(1, "og");     liste.RemoveAt(2);     for (int i = 0; i < liste.Count; i++)     {         Console.WriteLine(liste[i]);     } } List<string> stringListe = new List<string>(); List<char> charListe = new List<char>(); List<bool> boolListe = new List<bool>();

53 Oversigt Hukommelse, udtryk og typer Metoder og operatorer
Kontrolstrukturer Datastrukturer Program

54 static void Main(string[] args) { int potens = Potens(2, 4);
    class Program     {         static void Main(string[] args)         {             int potens = Potens(2, 4);             HelloWord(); } static int Potens(int tal, int potens) {     int resultat = 1;     for (int i = 1; i <= potens; i++)         resultat = resultat * tal;     return resultat; static void HelloWord()     Console.WriteLine("Hello World"); Metode kald Metode definitioner

55 C# ressourcer http://people.cs.aau.dk/~boegholm/studiepraktik/
I skal bruge et udviklingsværktøj Visual studio community 2015 MonoDevelop/Xamarin (Windows, Linux og Mac) Visual Studio Express 2013 for Windows Desktop: Hvis andet ikke virker…


Download ppt "Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk www.cs.aau.dk/~boegholm/studiepraktik."

Lignende præsentationer


Annoncer fra Google