Newer
Older
using System;
/// @author vesal
/// @version 22.9.2013
/// <summary>
/// Käännetään taulukko aliohjelmalla
/// </summary>
public class KaannaTaulukkoAli
{
/// <summary>
/// Luodaan taulukko, käännetään se ja tulostetaan
/// </summary>
public static void Main()
{
int[] t = { 23, 45, 12, 66, 7, 20 };
Vaihda(t, 0, 5);
Vaihda(t, 1, 4);
Vaihda(t, 2, 3);
// Seuraava ei toimisi Javassa:
Vaihda(ref t[0], ref t[5]);
Vaihda(ref t[1], ref t[4]);
Vaihda(ref t[2], ref t[3]);
// Silmukoilla
for (int i1 = 0, i2 = t.Length-1; i1 < i2; i1++, i2--) Vaihda(t, i1, i2);
for (int i1 = 0, i2 = t.Length-1; i1 < i2; i1++, i2--) Vaihda(ref t[i1], ref t[i2]);
}
/// <summary>
/// Vaihedetaan taulukon kahden alkion paikka keskenään
/// </summary>
/// <param name="t">taulukko josta vaihdetaan</param>
/// <param name="i">ensimmäisen vaihdettavan alkion indeksi</param>
/// <param name="j">toisen vaihdettavan alkion indeksi</param>
/// <example>
/// <pre name="test">
/// int[] t = { 23, 45, 12, 66 };
/// Vaihda(t,0,2);
/// </pre>
/// </example>
public static void Vaihda(int[] t, int i, int j)
{
int tmp;
tmp = t[i];
t[i] = t[j];
t[j] = tmp;
}
/// <summary>
/// Vaihdetaan kahden muuttujan arvot keskenään
/// </summary>
/// <param name="a">viite ensimmäiseen vaihdettavaan muuttujaan</param>
/// <param name="b">viite toiseen vaihdettavaan muuttujaan</param>
/// <example>
/// <pre name="test">
/// int a=3, b=5;
/// Vaihda(ref a, ref b);
/// a === 5; b === 3;
/// int[] t = { 23, 45, 12, 66 };
/// Vaihda(ref t[0], ref t[2]);