De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id.

Verwante presentaties


Presentatie over: "Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id."— Transcript van de presentatie:

1 Imperatief programmeren nJeroen Fokker

2 Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id met password nMicrosoft Visual Studio Community 2015 of Visual Studio Express C# 2010/2013 uop de prakticumcomputers uen/of zelf gratis downloaden www.cs.uu.nl / docs / vakken / imp

3 Wat gaan we doen? nTheorie (14 colleges + 3 deeltentamens) nPraktijk (14 keer, 3 inleveropgaven) college Tent. 1 Tent. 2 Tent. 3 college prakt. 1 prakt. 2 prakt. 3 prakt. 1 prakt. prakt. 1 prakt. prakt. 2 prakt. 3 17-19 15-17wo 15-17vr 13-15<24 11-1313-15 werkcoll nOefening (6 werkcolleges)

4 Verplichtingen nMeedoen aan 3 deeltentamens nInleveren van 3 practicumopgaven (in teams van 2) Als je er eentje ontbreekt of 20/30/50-gemiddelde is <5: Aanvullende toets in kerstvakantie Als je er eentje ontbreekt of 20/30/50-gemiddelde is <5: Aanvullende opgave in periode 2

5 Practicumopgaven n0n2n0n2 n1n3n1n3

6 Hoofdstuk 1 Programmeren

7 Imperatief programmeren nVon Neumann’s computer-model (1950): computer = + geheugen om waarden op te slaan processor om opdrachten uit te voeren

8 Opdrachten nOpdracht: voorschrift om het geheugen te veranderen nProgramma: lange reeks opdrachten, die één voor één worden uitgevoerd door de processor opdrachten staan zelf ook in het geheugen maar veranderen zichzelf niet

9 Programmeertalen nProgrammeertaal: notatie voor programma’s nsinds 1945: 4000 verschillende talen gepubliceerd

10 Geschiedenis van computers&programmeren: 1940-45 ENIAC (USA 1943) Z3 (Dld 1941) Colossus (Eng 1943)

11 Geschiedenis van computers&programmeren: 1945-50 nProgrammeertaal: Machinetaal Illiac (USA 1948) Mark-I (Eng 1948)

12 Geschiedenis van computers&programmeren: 1950-55 nProgrammeertaal: Assembler Univac (1951)

13 Geschiedenis van computers&programmeren: 1955-60 nProgrammeertaal: Fortran NCR304 (1957) Zebra (NL, 1958)

14 Geschiedenis van computers&programmeren: 1960-65 nProgrammeertaal: Cobol Algol Lisp IBM PDP-1

15 Geschiedenis van computers&programmeren: 1965-70 nProgrammeertaal: Basic PDP-8 (1966) LINC-8 (1966)

16 Geschiedenis van computers&programmeren: 1970-75 nProgrammeertaal: Pascal PDP-11 (1970)

17 Geschiedenis van computers&programmeren: 1975-80 nProgrammeertaal: Simula Apple-][ (1977)

18 Geschiedenis van computers&programmeren: 1980-85 nProgrammeertaal: C Vax-11 (1981) IBM-PC (1981) Commodore64 (1984)

19 Geschiedenis van computers&programmeren: 1985-90

20 Geschiedenis van computers&programmeren: 1990-95 nProgrammeertaal: C++

21 Geschiedenis van computers&programmeren: 1995-2000 nProgrammeertaal: Java

22 Geschiedenis van computers&programmeren: 2000-2005

23 nProgrammeertaal: C# PHP Geschiedenis van computers&programmeren: 2000-2005

24 Geschiedenis van computers&programmeren: 2005-2010

25 Geschiedenis van computers&programmeren: 2010-2015

26 Geschiedenis van programmeertalen 1945 1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 Assembler Mach.taal Fortran Algol Basic Pascal Simula C C++ Java Imperatief Programmeren C# Cobol SQL Lisp Prolog Haskell PHP Perl Python Functioneel Programmeren (jaar 2) Databases (periode 3) Web- technologie (keuzevak)

27 Geheugencapaciteit n65er jaren: 8 kB RAM ponskaarten n70er jaren:16 kB RAM tape n80er jaren:64 kB RAM floppy-disk n85er jaren:640 kB RAM n90er jaren:4 MB RAM harddisk n95er jaren:16 MB RAM CD n00er jaren:128 MB RAM DVD n05er jaren:1GB RAM n10er jaren:8GB RAM Stick / Cloud

28 Programmeer-problemen nvroeger: hoe kan ik het geheugen zo efficiënt mogelijk gebruiken? nnu: hoe kan ik die overvloed van geheugen nog overzien?

29 Indeling van het geheugen nplaats in het geheugen met een naam ngroepje variabelen dat bij elkaar hoort variabele object ngroepje objecten dat bij elkaar hoort

30 Indeling van het programma nvoorschrift om het geheugen te veranderen ngroepje opdrachten dat bij elkaar hoort opdracht methode klasse ngroepje methoden dat bij elkaar hoort namespace ngroepje klassen dat bij elkaar hoort

31 Programmeer-paradigma’s Imperatief Procedureel Object- georiënteerd FortranBasic PascalC C++Java Declaratief Functioneel Logisch Lisp Haskell Prolog Assembler Algol Simula Excel C#

32 Hoofdstuk 2 Hallo, C# !

33 Soorten programma’s nConsole- applicatie

34 Soorten programma’s nConsole- applicatie nWindows- applicatie

35 Soorten programma’s nConsole- applicatie nWindows- applicatie nWeb- applicatie

36 Soorten programma’s nConsole- applicatie nWindows- applicatie nWeb- applicatie nGame

37 Soorten programma’s nConsole- applicatie nWindows- applicatie nWeb- applicatie nGame nApplet

38 Soorten programma’s nConsole- applicatie nWindows- applicatie nWeb- applicatie nGame nApplet nApp

39 Opbouw broncode nOpdrachten om het geheugen te veranderen nOpdrachten zijn gegroepeerd in methoden nMethoden zijn gegroepeerd in klassen

40 en dat kunnen zelf ook weer aanroepen zijn van weer andere methodes... dus de “waar was ik gebleven” administratie is best ingewikkeld! Soorten opdrachten nToekennings -opdracht: verander het geheugen nAanroep van een andere methode: voer eerst de opdrachten in die methode uit, en ga daarna verder waar je gebleven was

41 Voorbeeld C#-programma één klasse...met één methode...met twee opdrachten accolades begrenzen klasse, resp. methode using System; class Hallo { static void Main ( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); }

42 Klasse- en methode-header using System; class Hallo { static void Main ( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); } naam: bedacht door de programmeur één van de methodes moet Main heten Main

43 Opdracht: methode-aanroep opdrachten: aanroep van andere methoden naam van de methode altijd een punt overige details klasse waaruit de methode komt using System; class Hallo { static void Main( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); }

44 Klasse-bibliotheken library-klassen mag je gebruiken... als je ze maar aangeeft in welke library ze staan using System; class Hallo { static void Main( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); }

45 Methode-header en -aanroep methode- header methode- aanroep using System; class Hallo { static void Main( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); }

46 Syntax en semantiek nSyntax: de vorm van het programma compilatie eenheid using; klasse declaratie library naam nSemantiek: wat het programma betekent

47 Syntax van klasse-declaratie klasse declaratie publicprivate classnaam{member} :naam

48 Syntax van member member static publicprivate naam type void()blok, naamtype

49 Syntax van blok blok declaratie opdracht {}

50 Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

51 Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

52 Console-applicatie using System; class Hallo2 { static void Main ( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); }

53 Console-applicatie using System; class Hallo2 { static void Main ( ) { Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); } Toekennings-opdracht geeft een waarde aan een variabele

54 Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); } Declaratie introduceert een variabele van een bepaald type

55 Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); Console.WriteLine("Hallo, " + naam + "!"); } gebruik van de variabele

56 Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); Console.WriteLine("Hallo, " + naam + "!"); Console.WriteLine("met " + naam.Length + " letters."); } Property van een object

57 Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); Console.WriteLine("Hallo, " + naam + "!"); Console.WriteLine("met " + naam.Length + " letters."); Console.ReadLine( ); }

58 Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

59 Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += toekenning

60 Syntax van declaratie declaratie typenaam;, type klasse naam int string

61 Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text = "Hallo"; scherm.BackColor = Color.Yellow; scherm.Size = new Size(200,100); using System.Drawing; declaratie en toekenning van een variabele met type Form gebruik van de variabele bij aanroep van Run aanpassen van attributen

62 Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

63 Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie; += property naam variabele

64 Windows-applicatie class HalloWin2 { static void Main ( ) { } class HalloForm { } Form scherm; scherm = new Form( ); Application.Run(scherm); HalloForm scherm; scherm = new HalloForm( ); Application.Run(scherm); : Form subklasse is een gespecialiseerde versie aanroep van de constructor methode public HalloForm( ) { } definitie van de constructor methode this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100);

65 Windows-applicatie class HalloForm { } : Form public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100); Label groet; groet = new Label( ); this.Controls.Add(groet); groet.Text = "Hallo allemaal"; groet.Location = new Point(30,20);

66 Wat gaan we doen? college Tent. 1 Tent. 2 Tent. 3 college prakt. 1 prakt. 2 prakt. 3 prakt. 1 prakt. prakt. 1 prakt. prakt. 2 prakt. 3 17-19 15-17wo 15-17vr 13-15<24 11-1313-15 werkcoll nNu: Prakticum BBG 106 – 103 – 115 – 175 – 112 – 109 nVrijdag: college in Ruppert-blauw 123456 S/T/UV/W


Download ppt "Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id."

Verwante presentaties


Ads door Google