Programmeren in C# Samenvatting van C#
Proceduraal Programmeren Functies (O: void + return, I: referentie of value) Arrays, Lijsten Lussen (for, while, do while) Condities, if-else, switch Variabelen, types, operatoren, expressies Programmeren in C# 2
Programmeren in C# Object Geöriënteerd programmeren (C#) Bestanden Excepties Overerving, W22 polymorfie, - Interfaces Eigen klasse: Lokale variabelen, properties, constructor, functies Objecten uit bib (nt in Toolbox) Random, Graphics, Objecten uit ToolBox (GUI) + events
Programmeren in C# Informatica C#: 1Ba Overzicht Proceduraal Object Oriented Functies (O: void + return, I: referentie of value) Arrays, Lijsten Lussen (for, while, do while) Condities, if-else, switch Variabelen, types, operatoren, expressies Objecten uit bib (nt in Toolbox) Random, Graphics, Objecten uit ToolBox (GUI) + events
Herhaling van 1Ba leerstof 1. Invoeringvan WPF 2. Variabelen en conversies 3. Condities 4. Lussen 5. Objecten uit bib: Graphics 6. Objecten uit bib: Timer en Random 7. Functies en methodes 8. Arrays 9. 2D Arrays https://rapptor.vub.ac.be/education-1baiw-info1.htm Programmeren in C# 5
1. WPF Windows Presentation Foundation Bij aanmaak nieuw project Kies voor WPF ipv Console application Project MainWindow.xaml (Design code) MainWindow.xaml.cs (Effectieve code) App.xaml.cs (Hoofdprogramma - afblijven) Programmeren in C# 6
XAML hierarchie Window: bevat knoppen om venster te minimaliseren, VB: Grid: bevat de layout van het venster - CONTENT Label: zijn de componenten (label, button, ) - CHILDREN Programmeren in C# 9
Doe zelf Maak nieuw WPF project aan Sleep knop, label, textbox op panel Geef componenten een naam Stel inhoud label op 10 Bij drukken op knop Zet inhoudtextbox (textbox1.text) op 20 Breng inhoudlabel via MessageBox naar buiten (label1.content) Programmeren in C# 10
2. Variabelen en conversies double value_double= 5.0; float value_float = 5.0f; int value_int = 5; char value_char = 'a'; string value_string = "dit is een string"; bool value_bool = 1; value_string = "test" + "bla" // = "testbla" Programmeren in C# 11
2. Variabelen en conversies // inlezen van een control (.Text) naar een variabele value_double = double.parse(txtinput.text); value_float = float.parse(txtinput.text); value_int = int.parse(txtinput.text); value_string = txtinput.text; txtoutput.text = value_double.tostring(); // wegschrijven van een variabele naar een control (.Text) txtoutput.text = value_float.tostring(); txtoutput.text = value_int.tostring(); txtoutput.text = value_string; txtoutput.text = "" + value_double; txtoutput.text = "" + value_float; txtoutput.text = "" + value_int; Programmeren in C# 12
3. Condities if (condition1){ if (condition1){ //some code for condition 1 else if (condition2) { //some code for condition 2 else{ //some code for else Programmeren in C# 13
3. Condities if (!((daynumber <=7) && (daynumber >= 1))) MessageBox.Show( nok ); else{ switch (daynumber){ case 6:textBox1.Text = Saterday ;break; case 7:textBox1.Text = Sunday ;break; default:textbox1.text= Working day ;break; Wat als output enkel weekend en working day is? Programmeren in C# 14
4. Lussen private void button1_click(object sender, EventArgs e){ textbox1.clear(); for (int number = 1; number <= 10 ; number++){ textbox1.appendtext(number + Environment.NewLine); private void button2_click(object sender, EventArgs e){ textbox2.clear(); char letter = a ; int nr=1; while ((letter <= z ) && (nr <=10)) { textbox2.appendtext(letter + Environment.NewLine); letter++; Wat is Environment.NewLine? Programmeren in C# 15
5 Objecten uit bib: Graphics Eerst Canvas uit Toolbox halen Lijnen Rechthoeken Cirkels/ellipsen Schijven Kleuren https://rapptor.vub.ac.be/education-1baiw- Info1.htm Programmeren in C# 16
Doe zelf Teken huis Programmeren in C# 17
6.Objecten uit bib: Timer en Random Timer using System.Windows.Threading; Globale declaratie: DispatcherTimer timer = new DispatcherTimer(); timer.tick += timer_tick; private void timer_tick(object sender, EventArgs e) { lblshow.content = lblshow.content + "X"; timer.interval = new TimeSpan(0, 0, 0, 0, 200); timer.start(); Programmeren in C# 18
6.Objecten uit bib: Timer en Random Random Zit in standaard bib Globale declaratie: Random r= new Random(); int i = r.next(); Programmeren in C# 19
Doe zelf Als je op knop drukt Start timer en worden er elke 5 seconden een nieuw random getal aangemaakt Van zodra random getal deelbaar is door 5, moet het stoppen. Programmeren in C# 20
7. Procedures en functies Procedure doet iets Prototype of header private void tekendriehoek(int x1, int y1, int x2, int y2, int x3, int y3,color kleur){ procedure aanroep in andere functie tekendriehoek(0,0,100,100,0,100,colors.black); Programmeren in C# 21
7. Procedures en functies Functie retourneert iets naar plaats waar het wordt opgeroepen Functie header of prototype private int Sum(int value1, int value2){ return intvar; Functie aanroep in andere functie int i= Sum(10,15); Programmeren in C# 22
7. Procedures en functies Doorgeven van waardes via argumenten (bv. Meerdere waardes moeten doorgegeven worden) Gebeurt via argumenten: declaratie mbv ref: als variabele tevoren al geïnitialiseerd is out: als variabele tevoren nog niet geïnitialiseerd is Programmeren in C# 23
7. Procedures en functies public partial class MainWindow : Window { public Window(){ InitializeComponent(); int a = 3; int b; int c = 6; double d = DoStuff(ref a, out b, c); MessageBox.Show(Convert.ToString(a) + Convert.ToString(b)+ Convert.ToString(c) + Convert.ToString(d)); private double DoStuff(ref int x, out int y, int z){ y=0; int a = x + y; x = 5; y = 10; z = 12; return 12.3; Wat is output? Programmeren in C# 24
Vraagjes Geef functieprototype en functieaanroep van Methode die voor een gegeven natuurlijk getal, de som van de delers van dit getal (het getal zelf niet inbegrepen) berekent. Methode die gegeven twee parameters h en b, een rechthoek van '*'-tekens tekent van h hoog en b breed. Methode die de som en gemiddelde van alle getallen tussen 2 opgegeven getallen berekent. Programmeren in C# 25
8. Arrays en lijsten Eigenschap Array Lijst Bib Standaard System.Collections.Generic Declaratie int[] arr List<int> li Initialisatie arr = new int[10] li =new List<int>() Lengte arr.length li.count Element op posititie i arr[i] li[i] for (int i=0;i<10;i++){ arr[i] = i; for (int i=0;i<arr.length;i++){ txtb.text = txtb.text + " " +arr[i]; for (int i=0;i<10;i++){ li.add(i); for (int i=0;i<li.count;i++){ txtb.text = txtb.text + " " + li[i]; Programmeren in C# 26
Vraagjes Schrijf initialisatie (type+naam) van object dat je gebruikt om bij te houden Aantal afwezigheden per dag in vaste week Lievelingskleuren van studenten 2Ba De resultaten van studenten 2Ba Programmeren in C# 27
9. Tweedimensionale arrays double[,] arr = new double[10,10]; for (int i=0;i<arr.getlength(0);i++){ for (int j=0;j<arr.getlength(1);j++) { arr[i,j] = i+j; Programmeren in C# 28
9. Arrays en functies Als argument in functie of procedure private void processarray(double[,] arr){... Als output van een functie private double[,] returnarray(){ double[,] arr = new double[10,10];... return arr; Programmeren in C# 29
Doe zelf Schrijf een functie die als output een 10x10 matrix genereert waarbij inhoud overeenkomt met de resultaten van de tafels van vermenigvuldiging Programmeren in C# 30