1 / 22

Arkitekturen i computere & historisk udvikling + grundlæggende begreber i C#

Arkitekturen i computere & historisk udvikling + grundlæggende begreber i C#. Arkitekturen i computere & historisk udvikling UML-klassediagram & C# Erklæring af metode m. parameter Værdityper vs. reference typer Initialisering af objekter m. konstruktører

trevet
Download Presentation

Arkitekturen i computere & historisk udvikling + grundlæggende begreber i C#

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arkitekturen i computere & historisk udvikling + grundlæggende begreber i C# • Arkitekturen i computere & historisk udvikling • UML-klassediagram & C# • Erklæring af metode m. parameter • Værdityper vs. reference typer • Initialisering af objekter m. konstruktører • Tal af typen floating-point & decimal • Simple typer i C# • Steen Jensen, efterår 2013

  2. Fra mainframes til personlige computere (PC) • Computere startede med mainframes - store maskiner, som fyldte et stort rum og kostede i hundredtusindvis af dollars • Gradvist kom minicomputere – mindre, masseproducerede computere til titusindvis af dollars • I 1971 producerede Intel den første microprocessor (computerchip): • Førte først til hobbycomputere (Sinclair, Commodore 64 ….) • I 1980’erne: • De første PC’eredukkede op (IBM  kloner) • Man skelnede dengang mellem workstations (særligt kraftige til typisk videnskabelige formål) og almindelige PC’ere • Nu også embeddede processorer – små computere med simple microprocessorer indbygget i husholdningsmaskiner, biler etc.

  3. Computerens elementer • En computer kan opdeles i forskellige fysiske elementer: • CPU (udfører instruktioner i en cyklus styret af clockfrekvens) • Hovedhukommelse / indre lager: computerchips udgør RAM • Sekundær lager: harddisk, CD/DVD-drev • Ydre enheder (tastatur, mus, skærm, printer …) • Download ProcessorSim fra http://jamesgart.com/procsim/ • Tryk på Start Simulation • I vinduet Control Panel kan du nu trykke på Start Execution • Prøv også at trykke på Step og følg afviklingen stepvist • Prøv også at se de løbende ændringer i vinduerne Registers samt InstructionMemory

  4. Udviklingen i computerchips Computerchips består af elektroniske kredsløb formindsket og ætset ned i plader fremstillet af silicium Nye teknikker bliver stadig fremstillet for at kunne presse stadig flere kredsløb ned på samme plade Kredsløb udvikler meget varme  køling nødvendig Fremtiden byder på quantum og molecularcomputing, hvor man bevæger sig ned i elektron- / molekylestørrelse

  5. Udviklingen i operativsystemer Fra kommandostyrede (DOS) til grafiske brugergrænseflader Fra ekspertstyret til allemandseje Proprietære OS (Microsoft Windows, Mac OS …) vs. opensource (Linux etc.)

  6. Netværk Lokale netværk – LAN = localareanetwork WAN = Wide areanetwork Internettet = netværk af mange WANs Trådløse netværk: Wi-Fi

  7. Computer software • Computersoftware er en fællesbetegnelse for programmer, der kan afvikles på en computer • Forskellige kategorier: • Forretning & personligt: tekstbehandling, regneark … • Videnskab & ingeniørarbejde: simulering af vejr, CAD … • Internet & samarbejde: browsere, email, Facebook, udnyttelse af uudnyttede computerressourcer hos brugere (fx SETI@home projektet, hvor der analyseres kæmpe mængder af data fra radioteleskoper for at finde tegn på liv i rummet) • Spil & underholdning: casual games, 3D-spil …

  8. Historisk udvikling Fra EDB(elektronisk databehandling) til IT Databaser fra hierarkiske til netværksdatabaser til relationsdatabaser. Nu også objektorienterede databaser Fra procedural programmering til eventstyret programmering til objektorienteretprogrammering En sammenhørende verden: internettet, e-handel (e-commerce), sociale netværk, ubiquitouscomputing

  9. Erklæring (eng.: declaration) af klasse & oprettelse (eng.: instantiation) af objekt af klasse Eksemplet kan ses i fig. 4.1 + 4.2 s. 147+149 i bogen og findes også i de downloadede kodeeksempler i mappen ch04 og undermappen fig04_01_02 Når en klasse erklæres, skal der angives en såkaldt accessmodifier, der angiver egenskabers (properties) og metoders tilgængelighed for andre metoder i app’en – her angives normalt public Hvis en metode ikkereturnerer nogen information, angives void Metodenavne navngives normalt som udsagnsord, og klasser som navneord En statisk metode (i Main) er speciel, da den kan kaldes uden først at skabe et objekt af klassen For at skabe et objekt af en klasse benyttes new

  10. Generel opbygning af UML-klassediagram Diagrammet er opbygget af tre dele Den øverste del består af klassens navn Den midterste del består af klassens attributter, hvilket svarer til instansvariable og egenskaber i C# Den sidste del består af klassens operationer, hvilket svarer til metoder i C#

  11. Erklæring (eng.: declaration) af metode m. parameter NB! omvendt rækkefølge i forhold til C# Eksemplet kan ses i fig. 4.4 + 4.5 s. 151+152 i bogen og findes også i de downloadede kodeeksempler i mappen ch04 og undermappen fig04_04_05 En metode kan benytte en eller flere parametre for at kunne udføre sin opgave Et metodekald giver værdier (også kaldet argumenter) til hver af metodens parametre Når en metode benytter parametre, angives en type og et navn for hver parameter

  12. Instansvariable (eng.: instance variables) og egenskaber (eng.: properties) Eksemplet kan ses i fig. 4.7 + 4.8 s. 155+158 i bogen og findes også i de downloadede kodeeksempler i mappen ch04 og undermappen fig04_07_08 Variable knyttet til en klasse kaldes instansvariable (eng.: instance variables) og erklæres indenfor klassen, men udenfor klassens metoder Hvert objekt har sin separate instans af disse variable En klasse har normalt en eller flere egenskaber (eng.: properties), der kan manipulere disse instansvariable Generelt defineres metoder og egenskaber som public, mens instansvariable defineres som private At erklære instansvariable som private kaldes også for information hiding eller encapsulation Egenskaber (properties) indeholder såkaldte accessors, som håndterer at læse og ændre klassens instansvariable

  13. UML-klassediagram med en egenskab (property) Da en instansvariabel opfattes som en implementationsdetalje, medtages normalt instansvariable ikke i et UML-klassediagram

  14. Automatisk implementerede egenskaber (eng.: auto-implemented properties) Eksemplet findes i de downloadede kodeeksempler i mappen ch04 og undermappen fig04_07_08_auto-impl-properties C# giver mulighed for at benytte automatisk implementerede egenskaber (eng.: auto-implementedproperties) Dette betyder, at C# compileren skaber instansvariabel med tilhørende set/getaccessors For at få en liste over såkaldte codesnippets, trykkes Ctrl + k, Ctrl + x (alternativt kan man også højreklikke i editorvinduet og vælge Insertsnippet) Auto-implementedproperties findes i codesnippets under prop

  15. Værdityper (eng.: value types) vs. reference typer • Typer i C# kan opdeles i to kategorier: • Værdityper (eng.: value types) • Referencetyper (eng.: reference types) • Simple typer i C# er alle værdityper (int, double etc.) • En variabel af værditypen indeholder simpelthen en værdi • En variabel af referencetypen indeholder derimod en adresse i hukommelsen på, hvor den refererede variabel er gemt – f.eks.: • GradeBookmyGradeBook = new GradeBook();

  16. Initialisering af objekter m. konstruktører (eng.: constructors) Eksemplet kan ses i fig. 4.12 + 4.13 s. 163+164+165 i bogen og findes også i de downloadede kodeeksempler i mappen ch04 og undermappen fig04_12_13 En klasse kan angive en konstruktør (eng.: constructor), som kan bruges til at initialisere et objekt af en klasse, når objektet oprettes C# kræver et kald til en konstruktør, når et objekt oprettes Den tomme parentes efter f.eks. new GradeBook() indikerer et kald uden argumenter til klassens konstruktør – på denne måde giver compileren en default konstruktør til alle klasser, også selv om der ikke eksplicit er angivet nogen konstruktør Hvis man ønsker selv at anvende en konstruktør, skal denne have samme navn som klassen En konstruktør skal ikke angive nogen return type

  17. UML-klassediagram med en konstruktør (constructor) Konstruktører angives normalt før de almindelige metoder i et UML-klassediagram

  18. Øvelse modificering af fig. 4.12 Lav øvelse 4.10 s. 178 i VC#2012 bogen Du/I må meget gerne lave øvelsen som pair programming, hvor I hjælpes ad – I kan f.eks. skiftes til at være ”leder” og ”sekretær” Hvis du/I har problemer, så prøv først at vende det med det andet par i jeres gruppe, før I rækker hånden op og beder mig om hjælp

  19. Tal af typen floating-point & decimal • Eksemplet kan ses i fig. 4.15 + 4.16 s. 167+169+170 i bogen og findes også i de downloadede kodeeksempler i mappen ch04 og undermappen fig04_15_16 • C# benytter tre typer af decimaltal: • float • double • decimal • Float og double kaldes for floating-pointtyper – gemmer tilnærmede værdier, mens decimal præcise værdier • Decimal bruges som regel til beløb • Decimaltal (f.eks. 7.33) behandles som double som udgangspunkt – disse kaldes floating-pointliterals • En decimal literal: f.eks. 7.33m eller 7.33M (m/M = money)

  20. Oversigt over simple typer i C#

  21. Self-review øvelser i grundlæggende C#-begreber Prøv at besvare øvelse 4.1-4.4 på s. 176 –177 uden at se svarene Check derefter dine svar op imod svarene s. 177n – 178ø

  22. Øvelse i C# apps med brug af grundlæggende begreber • Resten af dagen + torsdag: • Lav øvelse 4.11-4.16 s. 178-179 i VC#2012 bogen • Implementer use case(s) fra ”Spejder system” • Du/I må meget gerne lave øvelsen som pair programming, hvor I hjælpes ad – I kan f.eks. skiftes til at være ”leder” og ”sekretær” • Hvis du/I har problemer, så prøv først at vende det med det andet par i jeres gruppe, før I rækker hånden op og beder mig om hjælp

More Related