Inleiding programmeren in C++ Life Science & Technology 19 januari 2004 Universiteit Leiden.

Slides:



Advertisements
Verwante presentaties
Inleiding programmeren in C++ Life Science & Technology 26 januari Universiteit Leiden.
Advertisements

Objectgeoriënteerd Programmeren in C++
Universiteit Leiden Inleiding programmeren in C++ Life Science & Technology 16 februari
Embedded systemen Embedded software.
Inleiding programmeren in C++ Life Science & Technology 1 maart Universiteit Leiden.
Let op bij een upgrade! = op DVD (geen CD) Gebruik je Windows Vista? Als je Windows Vista hebt, kun je Windows 7 Upgrade-versies aanschaffen.
De relaties tussen: de hardware het BIOS het besturingssysteem de toepassingsprogramma’s.
Beveiliging van de PC. 2 december 2004NBC Presentatie2 Waar aan denken?  Beveiliging van data  Beveiliging tegen stroomuitval  Beveiliging tegen ongewenst.
Hoofdstuk 1 Programmeren.
Basiscursus Informatica SWI Theoriegedeelte Overzicht en H0 Richard Benjamins.
Inleiding programmeren in C++ Life Science & Technology 23 februari Universiteit Leiden.
Module II Hardware Dhr. C. Walters.
Gary Kildall ?. Pc met randapparatuur Computerprogramma’s.
EVMINX4 Week 3 Algoritmen en Datastructuren (ALDAT)
Gestructureerd programmeren in C
OOP met Java Sessie 1.
Windows Vista Basis Herman Van den Borre
JAVA1 H 1. KENNISMAKING MET JAVA EN DE ONTWIKKELOMGEVINGEN 1. ONTSTAANSGESCHIEDENIS VAN JAVA Java: ontworpen in 1990 door Sun Microsystems voor de programmering.
Auteursomgeving voor Digitale Componenten
Inleiding Programmeren met Visual Basic Karl Moens.
De gids tussen computer en gebruiker
Cliënt-server omgeving
De gids tussen computer en gebruiker
Hoofdstuk 1 Programmeren.
Het gegevensverwerkend proces
Opleiding ICT © J.W. Jonker Dia 1/32 Systemen Besturingssoftware Windows XP Mark van Heck.
Frank Stalpers en Ad Baars
Systeemsoftware Hfdst 2
Numerieke Natuurkunde
Visual Basic .NET voor studenten
Consoleprogramma’s Hoofdstuk 19. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe consoletoepassingen maken In- en uitvoer bij consoleprogramma’s.
C++ handboek : C++ Leen Ameraal 6e druk academic service.
Inleiding programmeren in C++ Life Science & Technology 2 februari Universiteit Leiden.
Inleiding programmeren in C++ Life Science & Technology 9 februari Universiteit Leiden.
Inleiding programmeren in C++ Life Science & Technology Inleiding
Open Dag Informatica (28 nov 2003) 3D Graphics Workshop Dr. Erwin M. Bakker Ing. Ernst Lindoorn Leiden Institute of Advanced Computer Science Leiden University.
Meerdere platforms over hetzelfde netwerk: DOS Windows 3.X & 9X NT ‘Office’ applicaties; administratie; gekoppeld aan apparatuur Verschillende Microsoft.
Webmail 23 januari WEBmail Een faciliteit die op een website wordt aangeboden. Waarom WEBmail? WEBmail biedt de mogelijkheid om e- mails.
P. 1 Vakgroep Informatietechnologie Scanf voorbeeld #include int main(void) { int i=-1,j=-1,k=-1,l=-1; int b; b=scanf("%d %d %d %d",&i,&j,&k,&l); printf("res=%d.
Presentatie Het BIOS (wat is dat) Rondkijken in het BIOS
Microsoft Small Basic Cum 11/01/2009 Rudy. Basic Vroeger beschikten bijna alle homecomputers over basic als programmeertaal voor de gebruiker Altair BASIC.
Operating Systems Informatica.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Inleiding tot programmeren
BIOS en Opstarten.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
tircms02-p les 1 Operating Systems practicum
1 Introductie next MCT - Programmeren 2 © S. Walcarius Waarom java? programma machinetaal (.exe) compilen platformspecifiek Een exe programma.
Programmeercursus O.O.P. met VISUAL BASIC.NET
JAVA: een platformonafhankelijke taal
© imec 2000 © imec 2001 MAX+PLUS II Installatieprocedure.
Module 3 – Hoofdstuk 2 Systeemsoftware.
Besturingssysteem Vaak wordt de Engelse term gebruikt: Operating System ( OS ) Plaats van het OS in een computersysteem: Hardware Applicatie Operating.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Maak, uitgaande van een MIDI file, een (klein) programma.
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
1 K. Werschkull Programmeren in Delphi 7 De ontwikkeling van de computer Programmeertalen Compilers Hoofdstuk 1 Hoofdstuk 1: De ontwikkeling van de computer.
C++ Les 1: introductie. Programmeren Programma’s scripts Websites libraries (Sound, GUI, netwerking…)
Informatica Welkom! maandag 16 November Les B-1.
Webwinkel in het D-cluster van de opleiding Logistiek Ad van Kooten – docent ERP toepassingen  Pract. 1.
Informatica Welkom! maandag 16 November Les B-5.
Virtualisatie 29 sept 2012 Een wegwerpcomputer met VirtualBox
Operating Systems Informatica.
Software Development fundamentals
Imperatief programmeren
De programmeertaal C++
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Software Development fundamentals
Java Masterclass Sar Maroof.
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Inleiding programmeren in C++ Life Science & Technology 19 januari Universiteit Leiden

Week 1 Inhoud –Introductie apparatuur, compiler (Visual C++) –Eerste C++-programma's –if-statement Doel –Na afloop kan iedereen zelf een klein eigen C++-programma op de computer maken en compileren, bijvoorbeeld een programma dat een paar getallen vraagt en bij elkaar optelt Materiaal –Ammeraal Hoofdstukken 1 en 2, tot en met 2.4 –Dictaat Hoofdstukken 1, 2 en 3.1; opgaven 1/5 (Hoofdstuk 4)

C++ op een PC PC’s in computerzalen LCP 6 & 8 met Windows 98/NT/XP –Windows 98/NT/XP (of Linux …) –User-id (= username = accountname) –Password (= wachtwoord) Microsoft Visual C (zie dictaat Hoofdstuk 2.1) –C++ programma schrijven –Compile, Build (Link), Execute –Demo … –Projecten –Save geregeld je C++-code, ook op een diskette of via de iets.cpp file

Hardware en software Computers –Silicon Graphics Inc. –Hewlett Packard –SUN –International Business Machines compatible Personal Computer Operating systemen –Microsoft DOS, Windows 95/98/2000/NT/XP –Unix (Linux, Sun Solaris, IBM AIX, HP-UX) –… Programmeertalen –C++ –C –Pascal –Java –Basic –Prolog, … Programma’s –Compilers (Visual C++, Turbo/Borland C++, g++) –Editors – –Web-browsers

Programma, operating systeem en hardware Hardware (CPU, Randapparatuur) Operating Systeem (Windows, Linux, …) Programma (.exe) Programma (.exe)

Van broncode naar uitvoerbaar programma C++ programma (.cpp) Uitvoerbaar programma (.exe) Compile & Build

Compile, Build (Link), Execute C++ programma (.cpp) Object file (.obj) Uitvoerbaar programma (.exe) Object file (.obj) C++ programma (.cpp) Object file uit Standaard library Compile Build (Link)

Eerste programma #include using namespace std; const double pie = ; int main ( ) { double straal; cout << "Geef straal, daarna Enter: "; cin >> straal; if ( straal > 0 ) cout << "Oppervlakte: " << pie * straal * straal << endl; else cout << "Niet zo negatief..." << endl; cout << "Einde van dit programma." << endl; return 0; } // main

Een C++-programma Verzameling functies –speciale functie main (moet er altijd zijn) –stuk programmatekst (met een bepaalde naam, parameters en return-waarde) –alles buiten een functie geldt voor gehele programma (globaal) Functie bevat statements –min of meer afgeronde handeling –er zijn veel soorten statements... Statement bevat vaak een expressie –uitdrukking (operatie) met een bepaald resultaat –er zijn veel soorten expressies... En verder onder andere: –commentaar

Commentaar Let op met het nesten van commentaar … niet doen dus Geef veel en duidelijk commentaar, zeker bij elke nieuwe variabele en elke nieuwe functie Er is verschil tussen commentaar –voor de programmeur ( //... of /*...*/ ) –en voor de gebruiker ( cout << ”...”; ) /* Dit is commentaar in "C-stijl" * * … regels lang */ int stp = 3; // Studiepunten voor inleiding // programmeren

Structuur goed C++-programma // // Commentaar over het programma (wie, wat, wanneer,...) // #include... using namespace std; typedefs en constanten en globale variabelen en klassen functies int main ( ) {... kort... } // main

Statements Een functie bestaat uit statements Statement –min of meer afgeronde handeling –meestal afgesloten met een punt-komma: ; Bijvoorbeeld –expressie –declaratie van een variabele –conditioneel statement (if) –iteratief statement (while, for) –compound statement (meerdere statements tussen { } )

Expressies Expressie –Bestaat uit operand(en) en operator binair: operand1 operator operand2 unair: operand operator of operator operand –Een expressie levert een resultaat en kan weer operand zijn in een andere expressie –Bijvoorbeeld rekenkundige bewerkingen: a + b, (a + b) * (3 / x), -getal toekenning: a = b + 7 (“a wordt b plus 7”) relationele operatoren: a > b maar ook gewoon: 4

Gereserveerde woorden in C++ break case char const default do double else float for if int return switch void while bool false namespace true using asm auto catch class continue delete enum extern friend goto inline long new operator private protected public register short signed sizeof static struct template this throw try typedef union unsigned virtual volatile constr_cast dynamic_cast explicit mutable reinterpret_cast static_cast typeid typename wchar_t

Declaratie van een variabele Statement dat een variabele introduceert –met een bepaalde naam –van een bepaald type Variabele moet altijd eerst worden gedeclareerd voordat deze gebruikt kan worden Eventueel meteen initialiseren (verstandig!) Toevoeging const: niet meer wijzigbaar na initialisatie Scope: globaal of locaal

Declaratie van een variabele (2) Belangrijkste typen Voorbeelden TypeLengteVoorbeeld char1 byte’A’ bool1true (1) of false (0) int4345, -12 float (double)4 (8)7978, 3.41, 36e-3 stringvariabel”Dit is tekst” char letter, nogeen = ’X’; // gewone quotes int leeftijd, xyz = 47; const string tekst = ”Dit is tekst”; float resultaat = xyz / 3.2;

Toekenning Operator = (“wordt”, “krijgt de waarde”) –niet verwarren met logische operator = = (test op gelijkheid) Resultaat van een expressie toekennen aan een variabele Let op: –links een variabele (“l-value”) en rechts een expressie (“r-value”) –resultaat van de expressie (rechts) moet overeenkomen met het type van de variabele (links) –pas op met impliciete typeconversies! Voorbeeld int i, j; float x; j = 4; i = j * j + 5; // dus i wordt 21 x = i / j; // pas op: 21/4 is 5

Rekenkundige bewerkingen Rekenkundige operatorenGecombineerd met een toekenning +optellen (binair: a+b) positief (unair: +b) -aftrekken (binair: a-b) negatief (unair: -b) *vermenigvuldigen /delen %modulo (rest bij deling) ++increment (met 1 ophogen) getal++ ++getal --decrement (met 1 verlagen) getal-- --getal += -= *= /= %= Operatie gecombineerd met toekenning a += 6; a *= b + 9; Is hetzelfde alsa = a + 6; a = a * (b + 9);

Relationele expressie Expressie met boolese (boolean) resultaat –resultaat is van type bool –waarde 0 is niet waar ( false ), al het overige is waar ( true ) Relationele en logische operatoren == Gelijk? != Ongelijk? > Groter dan < Kleiner dan >= Groter dan of gelijk aan <= Kleiner dan of gelijk aan && Logische en (and) || Logische of (or) ! Logische niet (not)

If-statement If : conditioneel statement van de vorm: –if ( expressie ) statement1 else statement2 –waarin else statement2 optioneel is –en expressie een relationele expressie (waar / niet waar) is Voorbeeld if ( getal > 0 ) cout << "Positief" << endl; if ( getal > 0 ) cout << "Positief" << endl; else cout << "Niet positief" << endl;

Voorbeelden if-statements Logische “en”: Altijd waar: Alles ongelijk 0 is waar … if ( x > 0 && y > 0 ) cout << "Beide getallen positief" << endl; if ( true ) cout << “Altijd" << endl; if ( 7 ) cout << “Altijd" << endl; –er zijn verschillende layouts mogelijk, als het maar consequent is, en uiteraard duidelijk

“Dangling else” Waar hoort de else bij? Afspraak: bij de laatste nog openstaande if Maar beter (want duidelijker) is: gebruik een compound statement, met extra accolades if ( x > 0 ) if ( y > 0 ) cout << "Beide getallen positief" << endl; else cout << "????????????" << endl;

Compound statement Samengesteld statement Meerdere statements tussen { en } if ( x > 0 ) { if ( y > 0 ) cout << "Beide getallen positief" << endl; else cout << "????????????" << endl; } // if if ( x != 0 ) { a = c / x; cout << "c / x =" << a << endl; } // if

Null-statement –dit is natuurlijk hetzelfde als (en zo doe je het meestal ook): if ( x > 0 && y > 0 ) ; else cout << “Er is een niet-positief getal" << endl; if ( ! ( x > 0 && y > 0 ) ) cout << “Er is een niet-positief getal" << endl; –overigens is de boolese expressie ! ( x > 0 && y > 0 ) hetzelfde als: ( x <= 0 || y <= 0 )