-
Vesa Lappalainen authoredVesa Lappalainen authored
KaannaTaulukkoAli.cs 2.31 KiB
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);
Console.WriteLine(string.Join(", ", t));
// 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]);
Console.WriteLine(string.Join(", ", t));
// Silmukoilla
for (int i1 = 0, i2 = t.Length-1; i1 < i2; i1++, i2--) Vaihda(t, i1, i2);
Console.WriteLine(string.Join(", ", t));
for (int i1 = 0, i2 = t.Length-1; i1 < i2; i1++, i2--) Vaihda(ref t[i1], ref t[i2]);
Console.WriteLine(string.Join(", ", t));
}
/// <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);
/// string.Join(" ", t) === "12 45 23 66";
/// Vaihda(t,0,3);
/// string.Join(" ", t) === "66 45 23 12";
/// </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]);
/// string.Join(" ", t) === "12 45 23 66";
/// </pre>
/// </example>
public static void Vaihda(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
}