Akademiuddannelsen i informationsteknologi Softwarekonstruktion

Slides:



Advertisements
Lignende præsentationer
TEST 2 modul 1 20 spørgsmål. Du skal klikke med musen på det rigtige svar, så kommer du automatisk til næste spørgsmål Klik for start.
Advertisements

Grundlæggende IT Lektion 4 Sådan virker pc’en
Velkommen til Softwarekonstruktion
REGISTRERINGSDATABASEN
07 – Kort om OO Introduktion.
Computerens anatomi! Hvad skal du vide før du køber din egen?
COMPUTERENS ANATOMI KENDER DU DIN COMPUTER SÅ GODT SOM DU TROR?
Hvordan bruger jeg First Class konferencerne ?
TEST 3 modul 1 20 spørgsmål. Du skal klikke med musen på det rigtige svar, så kommer du automatisk til næste spørgsmål Klik for start.
Pc-kørekort Sådan virker pc’en Keld Hinsch.
Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Intro Forelæsning 2 Linux install-party lør.14.sept kl – man. 14.okt – Kursets omfang :7,5 ECTS Kursussammensætning: forelæsning.
Oversættelse af Java-programmer JavaBytecode javac Normalt oversættes Java-programmer til bytecode, som fortolkes af en JVM (Java Virtual Machine). Java.
Første generation (maskiner/operativsystemer) 45-55: radiorør Kun maskinsprog programmering = skrivning af nullerog ettaller Intet operativsystem programmør.
Grundlæggende programmering Efterår 2001
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Intro Variabler - datatyper. 2. forelæsning Hvad skete sidste gang Hvad er PHP? Kursussammensætning: læse – newsgroup – forelæsning – øvelsestime – aflevering.
Indledende Programmering Uge 5 - Efterår 2006 Om at udvikle korrekte og pålidelige programmer Susanne Lindros.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
NOEA/IT - FEN1 Typeparametisering/Genericity Generics i.NET 2 og C#
Pc-kørekort Mere om software. Programmering Definition: at skrive et program ved hjælp af en tekst–editor på en måde, som computeren kan forstå Instruktionerne.
Begreber og Redskaber 2 BRP.
C# programmering Per P. Madsen Afd. for Proceskontrol
1 Webdesign - De første trin Grundliggende begreber Internettet (1969-): En fællesbetegnelse for netværk eller tjenester der benytter samme.
Multi-vejs hobe med ekstra bytes Foredrag: Claus Jensen Projektmedlemmer: Jyrki Katajainen, Fabio Vitale, Claus Jensen.
Efterår 2009VVU-IT: Softwarekonstruktion1 Velkommen til Softwarekonstruktion Aase Bøgh, Systemudvikling Martin Siegumfeldt,
Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation.
Intro til C# apps Kodegennemgang af simpel C# app
Begreber og Redskaber 3 BRP.
Videregående pc-vejledning 60+Bornholm Velkommen til.
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
Af Ulrik, Ella-Josephine, Nikolaos og Christoffer.
Program Design – 4 Introduktion til PHP. Dagens lektion Hvad er PHP?  - og lidt historie Hvordan virker PHP? Grundlæggende PHP  Variable  Typer  Løkker.
W1b1 PC baseret analyse og simulering. w1b2 Definition Digital Elektronisk beregningsmaskine, der har intern hukommelse til lagring af program og mellem-regninger.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
1. Database-systemer, introduktion
Objekter og klasser Rasmus D. Lehrmann DM
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
DATATYPER. For at tilpasse hvert felt i databasen til dets formål og dermed øge funktionalitet 1 bit er tilstrækkelig til at angive køn (0/1) men for.
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Procestræ under afvikling af cp init login shell cp cp src dest.
Computerens anatomi Dette er interaktivt så brug musen.
Begreber og Redskaber 1. Plan for kurset Formål –Give et begrebsmæssigt grundlag for programudvikling, samt overblik over udvalg af redskaber og metoder.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
PD – kursusgang 3 Introduktion til Java Script. Mål Viden om hvordan JavaScripts indlejres i HTML dokumenter Viden om programmering i JavaScript  Erklæring.
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
Repetition af dIntProg v/ Morten D. Bech. Tour de force Variabler Løkker Comparable ImErKo-reglen Eksamenssæt dIntProg, E13.
GP4, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 4 Vi begynder Slides ligger på hjemmesiden. Du er velkommen til.
C#: Data Typer. 2 Nordjyllands Erhvervakademi Indhold: “.NET is designed around the CTS, or Common Type System. The CTS is what allows assemblies,
Tekst filer Tekstfiler opbygges normalt af linier, hvor disse ikke behøver at være samme længde. Når man skal arbejde med tekstfiler, ønsker man metoder.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
Indledende Programmering Uge 6 - Efterår 2006
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
PC’en & div. hardware … mange IT-fagudtryk !! v/Søren Noah:
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Programmering I Java/C# Datatekniker Dit første projekt.
Forelæsning Uge 4 – Mandag
Abstraktioner.
Studiepraktik Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Programmering.
Præsentationens transcript:

Akademiuddannelsen i informationsteknologi Softwarekonstruktion - Lektion 1 08.09.2009

VVU-IT: Softwarekonstruktion Agenda Introduktion til kursus- og personer Introduktion til informationsteknologi Introduktion til .NET platformen samt C# Opgaver Efterår 2009 VVU-IT: Softwarekonstruktion

Velkommen til Softwarekonstruktion Aase Bøgh: Systemudvikling Martin Siegumfeldt, mars@noea.dk: Programmering og Databaser Efterår 2009 VVU-IT: Softwarekonstruktion

Softwarekonstruktion Akademiuddannelsen i Informationsteknologi Softwarekonstruktion Præsentation: Martin Siegumfeldt Jer?: Baggrund: Uddannelse Erfaring Mailliste Praktisk: (alarm, parkering) Kursushjemmeside: public.noea.dk/Softwarekonstruktion Efterår 2009 VVU-IT: Softwarekonstruktion

Der kommer vildt mange slides…. Hvad skal jeg kunne: Forstå principperne i følgende: afvikling af et program variable og typer betingelser og forgreninger løkker arrays Løse (de fleste af) opgaverne. Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Agenda Introduktion til kursus- og personer Introduktion til informationsteknologi Introduktion til .NET platformen samt C# Opgaver Efterår 2009 VVU-IT: Softwarekonstruktion

Informationsteknologi Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Hardware Det der fysisk kan røres ved, fx CPU, RAM, Hard Disk (systemenheden) Skærm Tastatur Mus Printer mm. Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Hardware C P U Main Memory Disk Video Andre Efterår 2009 VVU-IT: Softwarekonstruktion

CPU’en Main memory Control enhed Registre Aritmetisk/logisk enhed Efterår 2009 VVU-IT: Softwarekonstruktion

Program (eng. Software) 5. april 2017 Program (eng. Software) Det der forvandler PC’en fra jern og plastik til noget anvendeligt Operativsystem DOS, Windows 95, 98, 2000, 2003, NT, XP, Vista, 7, UNIX, Linux, MacOS… Applikationer Tekstbehandling Regneark Spil Etc. Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Operativsystem DOS DOS er en Tekstbaseret brugerflade Anvendtes indtil slutningen af firserne Windows 3.11 grafisk skal via DOS Windows 95, 98, NT, XP, Vista, 7 Operativsystem i sig selv Kan håndtere DOS Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion OS’ opgaver Styrer computerens ressourcer, fx CPU og hukommelse Præsenterer en grænseflade til brugeren, der gør det muligt at anvende computeren Sørger for at computeren kører effektivt Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Programeksekvering Program ligger på harddisk Computeren (dvs. operativsystemet) bedes om at eksekvere programmet Programmet kopieres fra ekstern hukommelse (harddisk) til intern hukommelse (RAM) CPU’en læser programmet, instruktion for instruktion Hver instruktion eksekveres indtil programmet er færdigt. Efterår 2009 VVU-IT: Softwarekonstruktion

Det binære talsystem samt bits & bytes Base 2 i stedet for base 10 dvs. et ciffer kan repræsentere 21 = 2 tal (0 og 1) i stedet for 101 = 10 tal (0..9) to cifre kan repræsentere 22 = 4 tal (0..3) i stedet for 102 = 100 tal (0..99) tre cifre …... En bit er et binært ciffer (0 eller 1) Kan repræsenteres ved to tilstande (strøm/ikke strøm, høj/lav spænding, magnetisk/ikke magnetisk) etc. Al databehandling kan udføres binært Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Hukommelse Består af hukommelsesceller Hver celle har en unik adresse Hver celle kan bruges til at skrive data i, og læse data fra En celle indeholder 1 byte (= 8 bits) 1 KiloByte = 1000 Bytes, 1 MB = 1000 KB, 1 GigaByte = 1000 MB, 1 TeraByte = 1000 GB (alligevel ikke helt) Intern hukommelse er hurtig, ekstern hukommelse langsom. Intern er dyrt, eksternt er billigt, eksternt lagrer permanent RAM vs. ROM (begge tilbyder Random Access) Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Netværk To eller flere forbundne computere (fordele/ulemper) Forbindelser (kabling - topologi) LAN/MAN/WAN Internet Et netværk af netværk TCP/IP (Transmission Control Protocol - Internet Protocol) IP-adresser (Unik for alle maskiner på nettet - netkort) WWW (World Wide Web) URL (Uniform Ressource Locator) / URI (Uniform Ressource Identifier) Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Udvikling af software Specificer problemet formuler problemet således at der opnås en præcis forståelse af, hvad det er for et problem der skal løses. Analyser problemet Identificer de data der skal arbejdes med, samt de resultater der skal fremkomme. Design af løsningsalgoritme Skriv ned skridt for skridt hvordan problemet kan løses. Anvend en top-down teknik til problemet, dvs. start med at finde de overordnede delproblemer der skal løses, for derefter at gå længere og længere ned i detaljer (trinvis forfinelse) Efterår 2009 VVU-IT: Softwarekonstruktion

Udvikling af software (fortsat) Implementeringen af løsningen Skriv et program der implementere hvert skridt i algoritmen Forskellige metoder til strukturering af programmering - f.eks. Objektorienteret programmering og struktureret programmering Forskellige programmeringssprog Test Test om programmet kører som det skal i forhold til specifikationerne Vedligeholdelse Når programmet kører hos kunden vil der typisk være fejl eller opstå krav om ændring/udvidelser af programmet Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion 5. april 2017 En algoritme En beskrivelse af en fremgangsmåde til løsning af et problem hvor hvert skridt er præcist defineret hvor algoritmen slutter efter et endeligt antal skridt sekvens, selektion, iteration Hvad er et skridt, hvornår er et skridt præcist defineret? Hvad er en god algoritme korrekt forståelig effektiv Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Et program En algoritme beskrevet i et programmeringssprog, f.eks. C# Et programmeringssprog er et sprog, som automatisk kan oversættes til binære instruktioner, som computeren kan udføre Compileren (eller oversætteren) oversætter programmet til binære instruktioner (maskinkode) Algoritmen er den generelle løsningsbeskrivelse, programmet er en udmøntning af algoritmen Efterår 2009 VVU-IT: Softwarekonstruktion

Udvikling i programmeringssprog Maskinsprog Assembler High-level sprog: Procedurale (Cobol, Pascal, C m.fl.) Objektorienterede (C++, Java, C# m.fl. ) 4.generations sprog Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Agenda Introduktion til kursus- og personer Introduktion til informationsteknologi Introduktion til .NET platformen samt C# Opgaver Efterår 2009 VVU-IT: Softwarekonstruktion

.NET arkitekturen - Hello World i C# 5. april 2017 .NET arkitekturen - Hello World i C# Her er sourcekoden: using System; public class Startup { public static void Main() System.Console.WriteLine("Hello World!"); } hello.cs Efterår 2009 VVU-IT: Softwarekonstruktion

.NET arkitekturen - Compilering og kørsel 5. april 2017 Compiler C#-programmer med Framework SDK, vha. C#-compileren åben Visual Studio .NET dos-prompt csc er (C Sharp Compiler) framework’ets command-line C#-compiler Brug assembly-navnet for at eksekvere… Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Opgave Lav dit eget Hello World program Oversæt og kør programmet. Husk åbne command-vinduet fra visual studio -> tools Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion 5. april 2017 Sprogelementer De fleste programmeringssprog indeholder følgende elementer: Definition af program start og (måske) slut Variable og konstanter til at gemme værdier og tilstande Kontrolstrukturer (hvis det er sandt gør dit ellers gør dat) Løkke (for alle gør ...; sålænge det er sandt...) Metoder eller funktioner. (Udfør disse instruktioner) Sprog som Java, C# og VisualBasic indeholder som minimum disse elementer Scriptsprog som JavaScript, ActionScript, VBScript gør også. Programstart er implicit (underforstået) givet ved at programmet læses oppefra og ned Andre mere specielle sprog indeholder måske ikke alle elementer, men kun nogle af dem. Efterår 2009 VVU-IT: Softwarekonstruktion

Program definition Se på C# programmet: 5. april 2017 Program definition Se på C# programmet: Vi skal kalde en standardmetode, der ligger her using System; public class Startup { public static void Main() System.Console.WriteLine("Hello World!"); } Note 1: Du kan betragte en klasse som en skabelon til at lave objekter eller som en samling af variable og metoder. I C# ligger alt i klasser. Programmet starter her Udskriver ”Hello.....” på skærmen. Efterår 2009 VVU-IT: Softwarekonstruktion

Lidt om underlige tegn (syntaks) Kodelinier (statements) afsluttes med ’;’ Et statement kan deles over flere linier (i modsætning til VB) Undtagelse: "Konstante tekststrenge" kan ikke deles på denne måde. ’{’ 0, 1 eller flere statements ’}’ ’{---}’ angiver samling af sætninger, der hører sammen ’//’ en kommentar – går til linjeskift ’/*’ kommentar over flere linjer ’*/’ Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion 5. april 2017 Variable Holder en værdi Har et navn Har en type, typen bestemmer, hvad man kan gøre med variablen En metafor: Du kan betragte en variabel som en æske, du kan lægge en (eller flere) værdier i. Æsken har en bestemt størrelse og form. Du kan kun lægge værdier ned i æsken, som er mindre end eller lig med størrelsen af æsken. Og det er ikke alle former af æsker, der passer sammen. Når vi erklærer en variable skal vi fortælle hvilket navn vi giver den. Vi skal også fortælle hvilken størrelse og ”form” den har. Dette gøres med datatypen. Endelig skal vi lægge noget i æsken, før vi kan tage det op igen. Dette gøres til værditilskrivning af variablen. En variabel kan indeholder flere værdier på een gang hvis den repræsenterer et array (svarer i metaforen til at der er skillerum i æsken) eller et objekt. Klasser (objekters datatype) uden metoder kaldes også nogen gange en sammensat datatype. Efterår 2009 VVU-IT: Softwarekonstruktion

Erklæring af variable som en string Et eksempel static void Main() { string sStatement; sStatement = "Make a statement"; int iCount = 0; int x = 0, y = 0; //flere heltal Console.WriteLine("The value for variables are: sStatement=“ + sStatement + "; iCount =" + iCount); } Erklæring af variable som en string Tildeling af værdi Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Datatyper Datatyper fortæller hvad æsken indeholder. Nogle af de mest almindelige er: int, short, long og uint Heltal double og float Reelle tal, kommatal bool sand eller falsk char Tegn (bogstaver, cifre, special tegn) string Strenge (rækkefølge af tegn- char) Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion C# - datatyper Keyword Description Special format for literals bool Boolean true false char 16 bit Unicode character 'A' '\x0041' '\u0041' sbyte 8 bit signed integer none byte 8 bit unsigned integer short 16 bit signed integer ushort 16 bit unsigned integer int 32 bit signed integer uint 32 bit unsigned integer U suffix long 64 bit signed integer L or l suffix ulong 64 bit unsigned integer U/u and L/l suffix float 32 bit floating point F or f suffix double 64 bit floating point no suffix decimal 128 bit high precision M or m suffix string character sequence "hello", @"C:\dir\file.txt" Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion C# - typen string string er alias for System.String – altså en klasse Mange anvendelige properties og metoder på string-typen: Length (property) Concat() CompareTo() Osv. Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Opgave Console.Write og Console.WriteLine skriver ud på skærmen. Console.ReadLine indlæser en streng. F.eks string enStreng=Console.ReadLine() Prøv at udvide Hello eksemplet, således at du beder brugeren indtaste sit navn og så udskriver ”Hej navn”. Efterår 2009 VVU-IT: Softwarekonstruktion

C# - eksempel på brug af typer i C# 5. april 2017 C# - eksempel på brug af typer i C# Erklær før brug (compilerstyret) Initialiser før brug (compilerstyret) public class App { public static void Main() int width, height; width = 2; height = 4; int area = width * height; int x; int y = x * 2; … } erklæringer initialisering Erkl. + initialisering fejl, x ikke initialiseret Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Aritmetik I I C# findes regneoperationerne +, -, * (gange), / (division) og % (modulus) +, - og * har deres sædvanlige betydning / er lidt speciel: divideres 2 heltal, så fås et heltal ud: 23 / 4 giver 5 divideres to tal, hvoraf det ene er et reelt tal, så fungerer alt som normalt typecasting kan med fordel anvendes Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Aritmetik II Modulus-operatoren leverer resten ved division: 23 % 4 giver 3, fordi ’4 går op i 23 5 gange med 3 til rest’ De sædvanlige regler gælder i C#: 2 + 3 * 4 = 2 + (3 * 4) = 14 (2+3) * 4 = 20 Efterår 2009 VVU-IT: Softwarekonstruktion

Aritmetik og datatyper I C# er datatypen af et aritmetisk udtryk altid den ’største’ type af de to operander int + long giver altid long float + double giver altid double byte + float giver altid float Man kan altid tildele en variabel med en ’stor’ datatype en variabelværdi med en ’mindre’ datatype: int x = 23; long y = x; Det modsatte er ikke umiddelbart muligt Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion 5. april 2017 Et programeksempel using System; public class Aritmetik { public static void Main() int a = 1; int b = 3; double x = 2.0; Console.WriteLine("a+b er lig med " + (a + b)); Console.WriteLine("og ikke " + a + b);//Hvad sker her? Console.WriteLine("a+x er lig med " + (a + x)); } Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Type casting Man kan transformere en datatype til en anden ved en type casting: int antal = 24; int samletbeløb = 100; float gennemsnitligtBeløb = (float) samletBeløb / antal ; Syntax: (datatype) variabelnavn Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Type konvertering Implicit type konversion: fra mindre til større type Ellers er der brug for typecast eller explicit konversion… typecast syntaksen er typen i parentes konvertering baseret på System.Convert klassen int i = 5; double d = 3.2; string s = "496"; d = i; i = (int)d; i = System.Convert.ToInt32(s); implicit konversion typecast nødvendig Konversion nødvendig Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Opgave Slå System.Convert op i msdn2.microsoft.com Prøv at indlæse et reelt tal (komma tal) med ReadLine, og konverter det til en 'double'. Afrund tallet til 2 decimaler. (husk heltalsdivision) I tallet 4623: Find antal 1000'er, 100'er, 10'er og 1'er. Efterår 2009 VVU-IT: Softwarekonstruktion

else-delen udføres hvis det boolske udtryk er falsk 5. april 2017 Betingelser I parentesen står en boolsk udtryk. if-sætningen udføres hvis det er sandt Eksempel: Hvis samlet beløb er mindre end eller lig med saldo, så træk beløb fra saldoen - ellers udskriv fejl. Betingelser eller valg laves (i første omgang) med if-sætningen: note 1: saldo=saldo-beloeb kan også skrives som saldo-=beloeb note 2: i parentesen behøver der ikke at være en sammenligningsoperator (==, <, > mv.) f.eks: bool overtraekOk=true; if(overtraekOk) {....} if (beloeb <= saldo) { saldo = saldo - beloeb; } Else Console.WriteLine("Der er ikke penge nok på kontoen"); else-delen udføres hvis det boolske udtryk er falsk Efterår 2009 VVU-IT: Softwarekonstruktion

Sammensatte betingelser 5. april 2017 Sammensatte betingelser Eksempel: Hvis samlet beløb er mindre end eller lig med saldo - eller overtræk er tilladt, så træk beløb fra saldoen - ellers udskriv fejl. Der kan være flere betingelser som alle skal være opfyldt - så bruger man &&, som svarer til "og" Hvis det er nok at een af flere betingelser skal være opfyldt, så bruger man ||, som svarer til "eller" Note 1: Man kan bruge parenteser til at gruppere betingelserne. De fungerer som normalt ved at først findes værdien af det inden i parentesen. Note 2: Sammensatte betingelser kan hurtigt blive svære at læse og gennemskue. Overvej her at bruge flere if-sætninger og at gemme noget af det væk i en metode. bool overtraekOk = true; if (beloeb <= saldo || overtraekOk) { saldo = saldo - beloeb; } else Console.WriteLine("Der er ikke penge nok på kontoen"); Efterår 2009 VVU-IT: Softwarekonstruktion

Et eksempel (fra afdelingen for pragmatiske programmeringstricks) Det er let at miste overblikket i if-sætninger: int etTal=3; if(etTal>7){ Console.WriteLine("Tal er større end 7"); } else if(etTal<7){ Console.WriteLine("Tal er mindre end 7"); else { Console.WriteLine("Tal er lige med 7"); Efterår 2009 VVU-IT: Softwarekonstruktion

Tricket (ingeniørens løsning) Antag at een af situationerne er opfyldt, og behandl de andre int etTal=3; string result="Tal er større end 7"; if(etTal<7){ result="Tal er mindre end 7"; } if(etTal==7) { result="Tal er lig med 7"; Console.WriteLine(result); Efterår 2009 VVU-IT: Softwarekonstruktion

Datalogens løsning: int etTal=3; if(etTal>7){ Hvorfor skulle det være bedre end ingeniørens? int etTal=3; if(etTal>7){ Console.WriteLine("Tal er større end 7"); } else{ if(etTal<7){ Console.WriteLine("Tal er mindre end 7"); else { Console.WriteLine("Tal er lige med 7"); Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Løkker Bruges når en stump skal gentages et antal gange: Eksempel (ikke sådan...): Console.WriteLine(”Tal er 1”); Console.WriteLine(”Tal er 2”); Console.WriteLine(”Tal er 3”); Console.WriteLine(”Tal er 4”); Eksempel (men sådan...): eller sådan... for(int i=1; i<5; i++) Console.WriteLine(”Tal er ”+i); int i=1; while(i<5){ Console.WriteLine(”Tal er ”+i); i++; } Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion for eller while? Normalt bruges while, hvis man ikke ved hvor mange gange løkken skal løbes igennem. Led efter den første 7’er i et spil kort. Vis alle rækker i resultatet fra et database opslag Spørg om password indtil det er korrekt En variant af while er do–while: int i=1; do { Console.WriteLine(”Tal er ”+i); i++; }while(i<5); Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion for eller while for-sætningen bruges normalt når man ved hvor mange gange løkken skal køre. Tæl antal 7’ere i en kort-hånd. Du er nødt til at undersøge alle kort. Find det største tal eller summen af tallene i en talrække Dan en html-tabel med 5 rækker og 3 kolonner. Brug her to for-sætninger inden i hinanden. Hvis man skal igennem en række af data eller et recordset kan man bruge foreach Se eksempel med array Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Array Æske-metaforen: Du kan betragte et array som en æske med et antal skillerum med samme størrelse. I hvert rum kan ligge en variabel af samme datatype. Rummene nummereres fra 0 til antal-1. Erklæring af et array: int [] mitArray = {1,2,3,4,5}; //Opret og tildel værdier på een gang eller: int [] mitArray = new int[5]; //Gør plads til 5 elementer (index 0..4) mitArray[0]=1; mitArray[1]=2; osv. Aflæs værdi fra arrayet: int etTal = mitArray[3], //etTal får så værdien 4, hvorfor? Tildel værdi til en celle i arrayet: mitArray[3]=etTal*2; //Nu står der 8 på den fjerde plads Efterår 2009 VVU-IT: Softwarekonstruktion

Eksempel: Summen af alle tal i et array Algoritme: Sæt summen til nul For hvert element i arrayet: Aflæs tallet i arrayet, og læg det til summen. Løber hele arrayet igennem. For hvert gennemløb indlæses det næste element i ’tal’ Eksempel med foreach: int sum=0; foreach( int tal in mitArray) sum=sum+tal; Console.WriteLine("Summen er "+sum); Eksempel med for: int sum=0; for( int i=0; i< mitArray.Length; i++) sum=sum+mitArray[i]; Console.WriteLine("Summen er "+sum); Length fortæller længden på arrayet Efterår 2009 VVU-IT: Softwarekonstruktion

Metoder Metoder kan betragtes som funktioner på et objekt eller en klasse. Metoder kan bruges til kode, der skal kaldes flere gange Eller til at gøre koden lettere at forstå og vedligeholde. Dette er en del af det begreb, der kaldes indkapsling WriteLine(..) er et eksempel på en metode i Console-klassen En metode kan kendes på at der er parenteser! Man skelner mellem private og public metoder. public metoder kan kaldes udenfor objektet: mitObjekt.minMetode(); //Min metode er public private metoder kan ikke kaldes udefra men bruges internt i objektet Er Length en metode på et array? Efterår 2009 VVU-IT: Softwarekonstruktion

Eksempel: tælleriet fra før class EnKlasse { static void Main(string[] args) { for(int i=1; i<5;i++) UdskrivTal(i); } private static void UdskrivTal(int n) Console.WriteLine("Tal er "+n); Returtype Parameter Efterår 2009 VVU-IT: Softwarekonstruktion

Et andet eksempel: sum Metodekald Hvordan kan man se det er en int? class Sum { static void Main(string[] args) int [] mitArray={12,3,4,7,3,1,7,8,7,9,10}; Console.WriteLine("Summen er " + beregnSum(mitArray)); } private static int beregnSum(int [] etArray) int sum=0; foreach (int etTal in etArray) sum+=etTal; return sum; Metodekald Hvordan kan man se det er en int? Returner summen som en int Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion C# - overordnet Al programlogik skal pakkes ind – typisk i en klasse, dvs. ingen globale funktioner eller data Ethvert eksekverbart program indeholder en metode Main() – applikationens startpunkt. C# er case-sensitive C# har operator- og metodeoverloading Ingen multibel arv (kun via interfaces) Alle klasser arver fra object Garbage-collection Efterår 2009 VVU-IT: Softwarekonstruktion

VVU-IT: Softwarekonstruktion Opgaver: Alle følgende opgaver tager udgangspunkt i eksemplet med summen af tallene i et array: Lav en metode, som beregner gennemsnittet af tallene i et array. Lav en metode, som tæller antal forekomster af værdien 7 i et array. Lav en metode, som returnerer sand, hvis værdien 3 findes i et array og falsk hvis ikke. Generaliser opgave 2 og 3, så der kikkes efter en vilkårlig værdi (ind-parameter til metoderne) i stedet for 7 og 3 resp. Efterår 2009 VVU-IT: Softwarekonstruktion

Det var vildt mange slides…. Hvad skal jeg kunne: Forstå principperne i følgende: afvikling af et program variable og typer betingelser og forgreninger løkker arrays Løse (de fleste af) opgaverne. Efterår 2009 VVU-IT: Softwarekonstruktion