Programmeringsparadigmer.

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

C# introduktion. using System; Namespace MyFirst { class eks1 { public static void Main() { Console.WriteLine("Hej!"); Console.Write("Skriv dit navn her:
07 – Kort om OO Introduktion.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
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
Object-Orienteret Programmering og Design. 2 Nordjyllands Erhvervakademi – 2009 Indhold “Classes, objects and object-oriented programming (OOP) play a.
Selve objektet versus referencen til objektet Nedarvning
Informationsteknologi B-A, HHX, 2005,
Objektorienteret programmering
Hvordan man skriver koden.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Arv Idéen i arv et at kunne genbruge gennem generalisering
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.
Objektorienteret programmering
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Automater, sprog og compilere Per P. Madsen.
FEN NOEA/IT Programmeringsteknologi 1 Arv og polymorfi Substitutionsprincippet Abstrakte klasser Design Patterns (Composite)
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
Eksempel på realisering af domænemodel
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
Objekter og klasser Rasmus D. Lehrmann DM
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Repetition: Introduktion til OOP med C# og .NET
Procestræ under afvikling af cp init login shell cp cp src dest.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Hvad består en distribueret applikation af ? Processer der kører på hver deres maskine Tråde - 1 eller flere "letvægtsprocesser" per proces Objekter i.
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;
Repetition af dIntProg v/ Morten D. Bech. Tour de force Variabler Løkker Comparable ImErKo-reglen Eksamenssæt dIntProg, E13.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
Indledende Programmering Uge 6 - Efterår 2006
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Kari Rye Schougaard, Ph.d.-stud Værktøjer og teknikker A A R H U S U N I V E R S I T E T Datalogisk Institut Objekt Orienteret Modellering.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
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 med interfaces – en stak og en HP-regnemaskine push pop.
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.
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;
Objecter Introduktion Webintegrator HF1 PHP Object orienteret.
Abstraktioner.
IOT – Elkedel på internettet
Klasser og objekter (Afsnit i manualen).
Programmering.
Forelæsning Uge 4 – Torsdag
Præsentationens transcript:

Programmeringsparadigmer. Den stil/metode, som programmerings sproget og/eller programmøren anvender. Eksempler på paradigmer: Imperativ programmering - Declarativ programmering. Struktueret programmering - Ustruktueret programmering. Flow-driven programmering - Event-driven programmering. Scalar programmering - Array programmering. Objekt-orienteret programmering. Logisk programmering.

Programmeringsparadigmer. Den stil/metode, som programmerings sproget og/eller programmøren anvender. Eksempler på paradigmer: Imperativ programmering - Declarativ programmering. Struktueret programmering - Ustruktueret programmering. Flow-driven programmering - Event-driven programmering. Scalar programmering - Array programmering. Objekt-orienteret programmering. Logisk programmering.

Imperativ programmering Imperativ - Bydende Gør dit. Gør dat. . for (i=0;i<10;i++) { k= k+i; }

Declarativ programmering. Hvad og ikke hvordan. Fx HTML beskriver, hvad der skal vises. Hvordan, dvs hvilken algoritme, der skal anvendes. Det er derfor HTML fortolkeren, der afgør hvordan siden skal vises. Dvs. Deklarativ pro. beskriver, hvad et samlet system er opbygget af. Imperativ pro. indeholder en algoritme for opbygning af systemet.

Programmeringsparadigmer. Eksempler på paradigmer: Imperativ programmering - Declarativ programmering. Struktueret programmering - Ustruktueret programmering. Flow-driven programmering - Event-driven programmering. Scalar programmering - Array programmering. Objekt-orienteret programmering. Logisk programmering.

Struktureret programmering. Sproget skal hjælpe os med at forstå hvad det laver: Selvdokumenterende. Struktur og effektivitet er ikke modsætninger. Ofte vil strukturerede programmer være mere effektive end ustrukturerede da de er nemmere at vedligeholde og modificere.

Struktureret programmering. Sprog, hvor forløbet gennem programmet "tydeligt" fremgår af den syntaktiske struktur af programmet. Et forløb fremgår "tydeligt" når single-entry/single-exit er overholdt "Entry" if (per.hoejde > 1.80) printf(”per er heoj\n”); else printf(”per er lav\n”); "Exit"

If if (a==2) {b=2;} else {b=1;} moveq.l #2,d2 cmp.l -4(a6),d2 jbne .L2 move.l d2,-8(a6) jbra .L3 .L2: moveq.l #1,d2 .L3:

Dangling else if (a) if (b) c=1; else c=2; er det: if (a) if (b) c=1; eller: if (a) { }

for for (a=0; a<10; a++) {b= a;} clr.l -4(a6) .L4: moveq.l #9,d2 cmp.l -4(a6),d2 jbge .L7 jbra .L5 .L7: move.l -4(a6),-8(a6) .L6: addq.l #1,-4(a6) jbra .L4 .L5:

while while (a > 5) {--a;} .L8: moveq.l #5,d2 cmp.l -4(a6),d2 jblt .L10 jbra .L9 .L10: subq.l #1,-4(a6) jbra .L8 .L9:

switch switch (a) { case 0: {b= 1;} break; case 1: {b= 2;} break; move.l -4(a6),d0 moveq.l #1,d2 cmp.l d0,d2 jbeq .L13 jblt .L17 tst.l d0 jbeq .L12 jbra .L15 .L17: moveq.l #2,d2 jbeq .L14 .L12: move.l d2,-8(a6) jbra .L11 .L13: .L14: moveq.l #3,d2 .L15: clr.l -8(a6) .L11: switch (a) { case 0: {b= 1;} break; case 1: {b= 2;} break; case 2: {b= 3;} break; default: {b= 0;}; }

Programmeringsparadigmer. Eksempler på paradigmer: Imperativ programmering - Declarativ programmering. Struktueret programmering - Ustruktueret programmering. Flow-driven programmering - Event-driven programmering. Scalar programmering - Array programmering. Objekt-orienteret programmering. Logisk programmering.

Flow driven - Event driven Event driven systemer: Grafisk user interface. Kommandofortolkere. Operativsystemer. Kommunikationssystemer. .....

Programmeringsparadigmer. Eksempler på paradigmer: Imperativ programmering - Declarativ programmering. Struktueret programmering - Ustruktueret programmering. Flow-driven programmering - Event-driven programmering. Scalar programmering - Array programmering. Objekt-orienteret programmering. Logisk programmering.

Objekt-orienteret programmering. Hoved Ide’. Software består af en samling velafgrænsede enheder med bestemte egenskaber og funktionalitet og tilstand. Disse enheder kaldes objekter. Objekter kan samarbejde vha. at sende beskeder til andre objekter (Kalde metoder i andre objekter) og processer data.

Objekt-orienteret programmering. Objekter er beskyttede ved hjælp af et veldefineret scope for de indeholdte data og metoder. public, private, protected Fordele ved OOP. Nemmere vedligehold og genbrug af software. Ofte nemmere at udvikle strukturen af programmet.

Objekt-orienteret programmering. En klasse er en definition af et objekt. Et objekt er en instans af en klasse. En attribut er noget data i et objekt. En metode er en funktion i et objekt. Nedarvning er når en ny klasse dannes udfra en anden klasse og derved arver denne klasses egenskaber (Attributter og metoder).

Classediagram UML Navn Attributter 1 Metoder Bil Motor Farve : string Årgang : int motor: Motor Effekt: float AntCyl: int 1 SætGSpjæld() ... Metoder Start() Tank op() Personbil Lastbil Type: string Nettolast : int

C++ class Bil{ string farve; int aargang; motor Moter1; public: void start(); void tankop(float liter); Bil(string,int); }; Bil::Bil(string fa,int aar) { farve= fa; aargang= aar; } class Personbil: public Bil{ string type; Personbil(string f, int a): Bil(f,a){}; Personbil(void): Bil("blaa",1900){};

C++ Personbil kadet("gul",1986); Personbil *fiatPtr= new Personbil("blaa",1965); Personbil *fordPtr= new Personbil; int *intarray = new int[10]; Personbil *bilpark= new Personbil[10];

Programmeringsparadigmer. Eksempler på paradigmer: Imperativ programmering - Declarativ programmering. Struktueret programmering - Ustruktueret programmering. Flow-driven programmering - Event-driven programmering. Scalar programmering - Array programmering. Objekt-orienteret programmering. Logisk programmering.

Prolog Videnbase Inferensmaskine Facts Regler Declarativt dvs. hvad og ikke hvordan. Logisk dvs. regler og facts i en videnbase. Videnbase Inferensmaskine Facts Regler

Facts. Prædikat(objektliste) Fx: mand(per). alder(per,45). far(per,kaj). vejr(aalborg,april,regn). write(’En tekst’). consult(’fil.pl’). halt.

Inferensmaskinen. 1 ?- mand(per). Yes 2 ?- mand(X). X = per Yes 3 ?-

Regler Fx: Konklusion :- betingelser If And Or soen(X,Y) :- dreng(Y),far(X,Y). soen(X,Y) :- dreng(Y),mor(X,Y). If And soen(X,Y) :- dreng(Y),far(X,Y);dreng(Y),mor(X,Y). Or

Inferensmaskinen. ; ; ; ; 4 ?- soen(per,X). X = mads X = kaj X = asger X = peter No 5 ?- ; ; ; ;

Regler Fx: Beregninger: = fak(0,1). foedt(per,1960). alder(X,Y) :- foedt(X,F),Y is 2006 - F. = fak(0,1). fak(X,Y) :- X1 is X - 1, fak(X1,Z), Y is Z*X. div(X,Y,Res):- Y=\=0,Res is X/Y;Res is 0.