[[:oktatas:programozás:programozási_tételek|< Programozási tételek]] ====== Programozási tételek C# megvalósításban ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2011, 2016 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== Összegzés ===== using System; class Hello { static void Main() { int[] tomb = {8, 9, 5, 4, 1}; int n = 5; Console.WriteLine("Összegzés tétel"); int osszeg = 0; for (int i = 0; i < n; i++) osszeg = osszeg + tomb[i]; Console.WriteLine("Összeg: " + osszeg); } } ===== Megszámolás ===== /* Szeretnénk megszámolni az 5-nél kisebb számokat */ using System; class Program { static void Main() { int[] t = {9, 7, 3, 5, 4, 2, 6}; int n = t.Length; int c = 0; for(int i=0; i ===== Eldöntés ===== /* El kell döntenünk, hogy egy adott elem szerepel-e egy tömbben */ using System; class Program { static void Main() { int[] t = {9, 7, 3, 5, 4, 2, 6}; int n = t.Length; int ker = 5; //Keresett érték bool van = false; for(int i=0; i /* Benne van-e a keresett szám hatékonyabban */ using System; class Program { static void Main() { int[] t = {9, 7, 3, 5, 4, 2, 6}; int n = t.Length; int ker = 5; //Keresett érték int i = 0; while(i ===== Kiválasztás ===== /* Szeretnénk kiválasztani, hányadik helyen szerepel egy adott elem egy tömbben */ using System; class Program { static void Main() { int[] t = {9, 7, 3, 5, 4, 2, 6}; int n = t.Length; int ker = 5; //Keresett érték int i = 0; while(t[i] != ker) i++; Console.WriteLine("Az 5-ös indexe: {0}", i); } } ===== Keresés ===== /* Benne van-e a keresett szám, és hányadik helyen van */ using System; class Program { static void Main() { int[] t = {9, 7, 3, 5, 4, 2, 6}; int n = t.Length; int ker = 5; //Keresett érték int i = 0; while(i ===== Kiválogatás ===== /* Szeretnénk kiválogatni a addot feltételek szerint egy tömb elemeit */ using System; class Program { static void Main() { int[] a = {9, 7, 3, 5, 4, 2, 6}; int n = a.Length; int[] b = new int[n]; int j = 0; for(int i=0; i ===== Szétválogatás ===== /* Szeretnénk kiválogatni a addot feltételek szerint egy tömb elemeit */ using System; class Program { static void Main() { int[] a = {9, 7, 3, 5, 4, 2, 6}; int n = a.Length; int[] b = new int[n]; int[] c = new int[n]; int j = 0; int k = 0; for(int i=0; i ===== Metszet ===== using System; class Program { static void Main() { int[] a = {5, 9, 3, 4, 7 }; int[] b = {6, 5, 7, 8, 15, 20 }; int[] c = new int[10]; int n = 5, m = 6, o; //Tömbök mérete int i, j, k; //Ciklusváltozók, illetve tömbindexek k = 0; for (i=0; i ===== Unió tétel ===== Két tömb elemeit egy harmadik tömbbe tároljuk. using System; class Program { static void Main() { Console.WriteLine("Unió tétel"); int[] a = {3, 5, 8, 4}; int[] b = {2, 1, 7, 9}; int[] c = new int[18]; int i, j, k; int n=a.Length, m=b.Length; //Unió tétel for(i=0; i= n) { c[k] = b[j]; k++; } } //Az a tömb kiíratása for(i=0; i ===== Maximum kiválasztás ===== using System; class Program { public static void Main() { int[] t = {4, 3, 9, 7, 2, 5}; int n = t.Length; //Az n a tömb mérete int max; //Maximum kiválasztás tétele max = t[0]; for(int i=0; imax) max = t[i]; Console.WriteLine("A legnagyobb elem: {0}", max); } } ===== Minimum kiválasztás ===== using System; class Program { public static void Main() { int[] t = {4, 3, 9, 7, 2, 5}; int n = t.Length; //Az n a tömb mérete int min; //Maximum kiválasztás tétele min = t[0]; for(int i=1; i ====== Rendezések ====== ===== Buborék rendezés ===== using System; class Program { static void Main() { int[] t = new int[] {5, 4, 9, 3, 7}; int n = t.Length; //Kiíratás rendezés előtt for(int i=0; i0; i--) for(int j=0; jt[j+1]) { int tmp = t[j+1]; t[j+1] = t[j]; t[j] = tmp; } //Kiíratás rendezés után for(int i=0; i ===== Cserés rendezés ===== using System; class Program { static void Main() { int[] t = {22, 5, 4, 33, 9, 3, 7,15,20}; int n = t.Length; //Kiíratás rendezés előtt for(int i=0; it[j]) { int swap = t[j]; t[j] = t[i]; t[i] = swap; } //Kiíratás rendezés után for(int i=0; i ===== Rendezés maximumkiválasztással ===== using System; class Program { public static void Main() { int[] t = { 8, 3, 9, 1, 5, 2, 7}; int n = t.Length; for(int i=0; i0;i--) { int max = i; for(int j=0; j<=i;j++) if(t[j]>t[max]) max = j; int swap = t[i]; t[i] = t[max]; t[max] = swap; } for(int i=0; i ===== Beszúrásos rendezés ===== using System; class Program { public static void Main() { int[] t = {5, 2, 4, 3, 9, 7}; for(int i=1; i=0 && t[j]>kulcs) { t[j+1] = t[j]; j = j - 1; } t[j+1] = kulcs; } for(int i=0; i ===== Gyorsrendezés ===== A rendezendő számokat két részre bontjuk, majd ezeket a részeket rekurzívan, gyorsrendezéssel rendezzük. using System; class Program { static int[] t = { 8, 3, 9, 1, 5, 2, 7}; static void gyorsrendezes(int also, int felso) { int i=also, j=felso; int kozep = t[(felso+also)/2]; while(also<=felso) { while(alsoi && t[felso]>kozep) felso--; if(also<=felso) { int tmp = t[also]; t[also] = t[felso]; t[felso] = tmp; ++also; --felso; } } if(also ===== Shell rendezés ===== using System; class Program { static void Main() { int[] t = new int[] {22, 5, 4, 33, 9, 3, 7, 15, 20}; int[] h = { 5, 3, 1}; int n = t.Length; //Kiíratás rendezés előtt for(int i=0; i=0 && t[i]>x) { t[i+lepes] = t[i]; i = i - lepes; } t[i+lepes] = x; } } //Kiíratás rendezés után for(int i=0; i ====== Egyéb példák ====== ===== Cserés rendezés ListBox-ban ===== private void Cseresrendezes() { List idlist = new List(); foreach(string s in downlistbox.Items) idlist.Add(s); int n = idlist.Count; //Cserés rendezés for(int i=0; iConvert.ToInt32(idlist[i].Split('.')[0])) { string swap = idlist[j]; idlist[j] = idlist[i]; idlist[i] = swap; } } downlistbox.Items.Clear(); downlistbox.Items.AddRange(idlist.ToArray()); } Erre azért lehet, szükség, mert más szempontok alapján akarok listázni. Például ilyen elemeket tartalmaz: * 1.) Valami * 2.) Másik valami * 10.) Harmadik * 11.) Negyedik Ebben az esetben a szimpla ábécé szerint rendez, amely másodikat a végére teszi, mivel az azt következők 1-gyel kezdődnek.