Csala Péter ANDN #4
2 Tartalom C# - ban előre definiált típusok Változók Változókkal műveletek Elágazás Ciklus
3 Típusok csoportosítása Típusok csoportosítása Érték típus Valójában is benne van a tárolt adat, érték pl.: egész szám; karakter típus Referencia típus A benne „tárolt” adatokról csak egy referenciát tárol pl.: osztály; tömb
4 Érték típus Mennyi a két változó értéke? Mennyi a két változó értéke? a = 0 a = 0 b = 100 b = 100 private void Page_Load(object sender, System… } int a = 0; int b = a; b = 100; { private void Page_Load(object sender, System… } int a = 0; int b = a; b = 100; {
5 Referencia típus Mennyi a két tömb elemeinek az értéke? Mennyi a két tömb elemeinek az értéke? i1(0)=10; i1(1)=20; i2(0)=10; i2(1)=20 Amikor i2 értékül kapta az i1-et, akkor csak az i1 tömbre mutató érték került átadásra Amikor i2 értékül kapta az i1-et, akkor csak az i1 tömbre mutató érték került átadásra Vagyis azonos memória területre mutat a két tömb. private void Page_Load(object sender, System… } int[] i1 = new int[2]; int[] i2 = i1; i2[0] = 10; i2[1] = 20; { private void Page_Load(object sender, System… } int[] i1 = new int[2]; int[] i2 = i1; i2[0] = 10; i2[1] = 20; {
6 Előre definiált típusok szöveg string s = ” ANDN” char c = ‘a’ logikai bool b = true előjeles sbyte b = 56 8bit short s = bit int i = 56 32bit long l = bit csak pozitív byte b = 56 8bit ushort h = 56 16bit uint u = 56 32bit ulong v = 56 64bit lebegőpontos float v (1,32,7) double l (2,64,16) decimális decimal v (128, 29 )
7 Tartalom C# - ban előre definiált típusok Változók Változókkal műveletek Elágazás Ciklus
8 Változók Statikus változó Példány változó Tömb változó Érték paraméter Referencia paraméter Kimenő paraméter
9 Változók deklarálása public void Function(int[] c, int d, ref int e, out int f) { int g = 1 f = a; } public void Function(int[] c, int d, ref int e, out int f) { int g = 1 f = a; } class Teszt { public static int a; int b; public Teszt() { b = 10; } class Teszt { public static int a; int b; public Teszt() { b = 10; }
10 Statikus változó private void button1_Click(object sender, System.Ev.. { Teszt.a = 4; Teszt x = new Teszt(); Teszt y = new Teszt(); int[] cc = new int[5]; int dd = 10, ee = 20, ff; x.Function(cc, dd, ref ee, out ff); label1.Text = ff.ToString(); y.Function(cc, dd, ref ee, out ff); label1.Text += " - " + ff.ToString(); } private void button1_Click(object sender, System.Ev.. { Teszt.a = 4; Teszt x = new Teszt(); Teszt y = new Teszt(); int[] cc = new int[5]; int dd = 10, ee = 20, ff; x.Function(cc, dd, ref ee, out ff); label1.Text = ff.ToString(); y.Function(cc, dd, ref ee, out ff); label1.Text += " - " + ff.ToString(); } Változók értéke X=4 Y= 4
11 Példány változó public Teszt() { b = 10; } public int Function2() { return b * 2; } proceted void button2_Click (object sender, System…. { Teszt x = new Teszt(); label1.Text = x.Function2().ToString(); } public Teszt() { b = 10; } public int Function2() { return b * 2; } proceted void button2_Click (object sender, System…. { Teszt x = new Teszt(); label1.Text = x.Function2().ToString(); } Változó értéke B = 20
12 Tömb változó public string Function3(int[] c) { string s = ""; foreach (int i in c) { s += i.ToString() + " "; } return s; } private void button3_Click(object sender, System.E… { int[] cc = new int[5]; … Teszt x = new Teszt(); label1.Text = x.Function3(cc); } public string Function3(int[] c) { string s = ""; foreach (int i in c) { s += i.ToString() + " "; } return s; } private void button3_Click(object sender, System.E… { int[] cc = new int[5]; … Teszt x = new Teszt(); label1.Text = x.Function3(cc); } Változó értéke CC =
13 Érték paraméter public int Function4(int d) { d *= 2; return d; } private void button4_Click(object sender, System { int dd = 15; label1.Text = new Teszt().Function4(dd). -> <- ToString() + " " + dd.ToString(); } public int Function4(int d) { d *= 2; return d; } private void button4_Click(object sender, System { int dd = 15; label1.Text = new Teszt().Function4(dd). -> <- ToString() + " " + dd.ToString(); } Változók értéke DD=30 DD=15
14 Referencia paraméter public int Function5(ref int e) { e *= 2; return e; } private void button5_Click(object sender, System { int ee = 15; label1.Text = new Teszt().Function5(ee). -> <- ToString() + " " + ee.ToString(); } public int Function5(ref int e) { e *= 2; return e; } private void button5_Click(object sender, System { int ee = 15; label1.Text = new Teszt().Function5(ee). -> <- ToString() + " " + ee.ToString(); } Változók értéke EE=30 EE=30
15 Kimenő paraméter public int Function6(out int f) { f = 75; } private void button6_Click(object sender, System { int ff = 0; Teszt x = new Teszt(); x.Function6(out ff); Label1.Text = ff.ToString(); } public int Function6(out int f) { f = 75; } private void button6_Click(object sender, System { int ff = 0; Teszt x = new Teszt(); x.Function6(out ff); Label1.Text = ff.ToString(); } Változó értéke FF = 75
16 Tartalom C# - ban előre definiált típusok Változók Változókkal műveletek Elágazás Ciklus
17 Változókkal műveletek Stringek kezelése Véletlen szám generálás
18 Stringek kezelése Aktuális hossz lekérdezése Karakterekkel való bontás Másolás adott karaktertől (2féleképpen) NAGY illetve kis betűvé való konvertálás Adott helyre szöveg beszúrása Számmá konvertálás White Space levágása Tetszőleges karakter levágása (be;end) Adott karakter sorral kezdődik-e ellenőr. Karakter csere Stirngből adott helyről törlés
19 Aktuális hossz lekérdezése Lekérdezi a textbox aktuális hosszát, vagyis hogy hány karakter (char) található benne. private void button1_Click(object sender, System… { label1.Text = ”Length: ” + Text1.Text.Length.ToString(); } private void button1_Click(object sender, System… { label1.Text = ”Length: ” + Text1.Text.Length.ToString(); }
20 Karakterekkel való bontás Visszatérési értékként egy stringeket tároló tömböt ad vissza. Melynek minden eleme egy önálló string. private void button2_Click(object sender, System… { String[] s = textBox1.Text.Split(new Char[] {';'}); int i = 0; foreach (string tmp in s) { listBox1.Items.Add((++i).ToString() + ".: " + tmp); } private void button2_Click(object sender, System… { String[] s = textBox1.Text.Split(new Char[] {';'}); int i = 0; foreach (string tmp in s) { listBox1.Items.Add((++i).ToString() + ".: " + tmp); }
21 Másolás adott karaktertől 1. a végéig 2. 6-ig másol a 4. karaktertől private void button3_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.Substring(4)); } private void button3_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.Substring(4)); } private void button4_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.Substring(4,2)); } private void button4_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.Substring(4,2)); }
22 NAGY, kis betű konvertálás private void button5_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.ToUpper()); } private void button5_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.ToUpper()); } Paraméterként a CuluterInfot tudjuk átadni private void button6_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.ToLower()); } private void button6_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.ToLower()); }
23 Adott helyre szöveg beszúrása private void button7_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.Insert(4, ”ANDN”)); } private void button7_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.Insert(4, ”ANDN”)); }
24 String kezelés folyt. I. Számmá konvertálás White Space eltávolítása (elejéről végéről is ) CharacterInfo class IsWhiteSpace függ. lehet ellenőrizni Használható úgy is, mint a Split Csak az elejéről vagy a végéről vágni int i = Convert.ToInt32(text1.Text); listBox1.Items.Add(textbox1.Text.Trim()); listBox1.Items.Add(textbox1.Text.TrimEnd());
25 String kezelés folyt. II. Adott karakter sorral kezdődik? Csere I. paraméter cserélendő II. paraméter cserélő Adott helytől törlés 1.paraméter honnan 2. paraméter törlendő karakterek száma listBox1.Items.Add(textBox1.Text.StartsWith("a")); listBox1.Items.Add(textbox1.Text.Replace("a","b")); listBox1.Items.Add(textbox1.Text.Remove(4, 2));
26 Véletlen szám generálás 6féleképpen lehet véletlen számot generálni Random Next Next max value Next max, min value NextBytes NextDouble
27 Random Ilyenkor ténylegesen is véletlen számot kapunk eredményül. A többi esetnél, ha újból elindítjuk a programot akkor mindig u.a. a „véletlen” számot adja vissza. Ok: az aktuális idő figyelembevételével inicializáljuk a sort. (Random paraméter nélküli konstruktora)
28 Next Mennyi lehet az r értéke? 0 és Int32.MaxValue -1 között lehet private void button1_Click(object sender, System… { Random r = new Random(); label1.Text = r.Next().ToString(); } private void button1_Click(object sender, System… { Random r = new Random(); label1.Text = r.Next().ToString(); } ?
29 Next max value private void button2_Click(object sender, System… { Random r = new Random(); label2.Text = r.Next(10).ToString(); } private void button2_Click(object sender, System… { Random r = new Random(); label2.Text = r.Next(10).ToString(); } Mennyi lehet az r értéke? 0 és 9 között bármelyik egész szám ?
30 Next max, min value private void button3_Click(object sender, System… { Random r = new Random(); label3.Text = r.Next(20, 22).ToString(); } private void button3_Click(object sender, System… { Random r = new Random(); label3.Text = r.Next(20, 22).ToString(); } Mennyi lehet az r értéke? 20 vagy 21 lehet ?
31 NextBytes private void button4_Click(object sender, System… { byte[] b; b = new byte[100] Random r = new Random(); r.NextBytes(b); foreach (byte by in b) { listBox1.Items.Add(by.ToString()); } private void button4_Click(object sender, System… { byte[] b; b = new byte[100] Random r = new Random(); r.NextBytes(b); foreach (byte by in b) { listBox1.Items.Add(by.ToString()); } Ezzel egy tetszőleges méretű bájtokat tartalmazó tömböt tudunk feltölteni például.
32 NextDouble private void button5_Click(object sender, System… { Random r = new Random(); label5.Text = r.NextDouble().ToString(); } private void button5_Click(object sender, System… { Random r = new Random(); label5.Text = r.NextDouble().ToString(); } Mennyi lehet az r értéke? 0.0 és 1.0 közötti értéket veheti fel ?
33 Kérdések és válaszok...
Köszönöm a figyelmeteket!