340 likes | 522 Views
ANDN #4. Csala Péter csalap@jedlik.hu. Tartalom. C# - ban előre definiált típusok Változók Változókkal műveletek Elágazás Ciklus. 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
E N D
ANDN #4 Csala Péter csalap@jedlik.hu
Tartalom • C# - ban előre definiált típusok • Változók • Változókkal műveletek • Elágazás • Ciklus
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
Érték típus private void Page_Load(object sender, System… } int a = 0; int b = a; b = 100; { Mennyi a két változó értéke? a = 0 b = 100
Referencia típus private void Page_Load(object sender, System… } int[] i1 = newint[2]; int[] i2 = i1; i2[0] = 10; i2[1] = 20; { 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 Vagyis azonos memória területre mutat a két tömb.
szöveg string s = ” ANDN” char c = ‘a’ logikai bool b = true előjeles sbyte b = 56 8bit short s = -56 16bit int i = 56 32bit long l = - 56 64bit 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 ) Előre definiált típusok
Tartalom • C# - ban előre definiált típusok • Változók • Változókkal műveletek • Elágazás • Ciklus
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
Változók deklarálása class Teszt { public static int a; int b;public Teszt() { b = 10; } public void Function(int[] c, int d, ref int e, out int f) { int g = 1 f = a; }
Statikus változó private void button1_Click(object sender, System.Ev.. { Teszt.a = 4; Teszt x = new Teszt(); Teszt y = new Teszt(); int[] cc = newint[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
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(); } Változó értéke B = 20
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 = newint[5];… Teszt x = new Teszt(); label1.Text = x.Function3(cc); } Változó értéke CC = 1 2 3 4 5
É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(); } Változók értéke DD=30 DD=15
Referencia paraméter public int Function5(refint 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
Kimenő paraméter public int Function6(outint 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
Tartalom • C# - ban előre definiált típusok • Változók • Változókkal műveletek • Elágazás • Ciklus
Változókkal műveletek • Stringek kezelése • Véletlen szám generálás
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
Aktuális hossz lekérdezése private void button1_Click(object sender, System… { label1.Text = ”Length: ” + Text1.Text.Length.ToString(); } Lekérdezi a textbox aktuális hosszát, vagyis hogy hány karakter (char) található benne.
Karakterekkel való bontás private void button2_Click(object sender, System… { String[] s = textBox1.Text.Split(newChar[] {';'}); int i = 0; foreach (string tmp in s) { listBox1.Items.Add((++i).ToString() + ".: " + tmp); } } Visszatérési értékként egy stringeket tároló tömböt ad vissza. Melynek minden eleme egy önálló string.
Másolás adott karaktertől private void button3_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.Substring(4)); } 1. a végéig 2. 6-ig másol a 4. karaktertől private void button4_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.Substring(4,2)); }
NAGY, kis betű konvertálás private void button5_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.ToUpper()); } private void button6_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.ToLower()); } Paraméterként a CuluterInfot tudjuk átadni
Adott helyre szöveg beszúrása private void button7_Click(object sender, System… { listBox1.Items.Add(textbox1.Text.Insert(4, ”ANDN”)); }
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());
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));
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
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)
Next private void button1_Click(object sender, System… { Random r = new Random(); label1.Text = r.Next().ToString(); } Mennyi lehet az r értéke? 0 és Int32.MaxValue -1 között lehet ?
Next max value 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 ?
Next max, min value 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 ?
NextBytes private void button4_Click(object sender, System… { byte[] b; b = newbyte[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.
NextDouble 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 ?