[[: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.