source: esimerkit/2015k/live/live12/Matriisit/Matriisit.cs @ 1392

Revision 1082, 3.8 KB checked in by anlakane, 2 years ago (diff)
Line 
1using System;
2using System.Text;
3using System.Linq;
4using System.Collections.Generic;
5
6/// @author Antti-Jussi Lakanen
7/// @version 18.2.2015
8///
9/// <summary>
10/// Harjoitellaan matriiseja.
11/// </summary>
12public class Matriisit
13{
14    /// <summary>
15    /// Alustukset ja aliohjelmakutsut.
16    /// </summary>
17    public static void Main()
18    {
19        String[,] kaverit = new String[3, 2];
20        kaverit[0, 0] = "Antti-Jussi";
21        kaverit[0, 1] = "Lakanen";
22        kaverit[1, 0] = "Jonne";
23        kaverit[1, 1] = "Itkonen";
24        kaverit[2, 0] = "Vesa";
25        kaverit[2, 1] = "Lappalainen";
26
27
28        // Alla 3-ulotteinen merkkijonotaulukko
29        // Huomaa että tässä ei ihan hirveästi ole järkeä
30        // (esim. pitää olla sama määrä jäseniä kussakin perheessä),
31        // Mutta mahdollista se kuitenkin on.
32        // Dimensio 0: "perhe"
33        // Dimensio 1: "jäsenet"
34        // Dimensio 2: "nimet"
35
36        String[, ,] kaverit2 = 
37            new String[,,] {{{"Antti-Jussi", "Lakanen"},{"Rouva", "Lakanen"}, {"Lapsi1", "Lakanen"} },
38                            {{"Jonne", "Itkonen"}, {"Rouva", "Itkonen"}, {"Lapsi1", "Itkonen"} }
39                           };
40
41        // Console.WriteLine(kaverit);
42
43        Tulosta(kaverit);
44        Tulosta2(kaverit);
45
46        int[,] matriisi2 = {
47                               {1, 2, 3},
48                               {4, 5, 6},
49                               {7, 8, 9}
50                           };
51
52        int rivi = MiltaRiviltaLoytyy(matriisi2, 6); // 1
53        Console.WriteLine("luku 6 löytyy riviltä " + rivi);
54
55        Console.ReadKey();
56    }
57
58    /// <summary>
59    /// Mistä rivi-indeksistä löytyy haettu alkio.
60    /// Jos alkio löytyy useamman kerran taulukosta,
61    /// palautetaan ensimmäisen esiintymän rivi.
62    /// Jos alkiota ei löydy, palautetaaan -1.
63    /// </summary>
64    /// <param name="luvut"></param>
65    /// <param name="etsittava"></param>
66    /// <returns>Rivi-indeksi</returns>
67    /// <example>
68    /// <pre name="test">
69    /// int[,] matriisi = {
70    ///                  {1, 2, 3},
71    ///                  {4, 5, 6},
72    ///                  {7, 8, 9},
73    ///                  {7, 8, 9}
74    ///              };
75    /// Matriisit.MiltaRiviltaLoytyy(matriisi, 6) === 1;
76    /// Matriisit.MiltaRiviltaLoytyy(matriisi, 12) === -1;
77    /// Matriisit.MiltaRiviltaLoytyy(matriisi, 8) === 2;
78    /// </pre>
79    /// </example>
80    public static int MiltaRiviltaLoytyy(int[,] luvut, int etsittava)
81    {
82        // GetLength(0) antaa rivien määräön
83        // GetLength(1) antaa sarakkeiden määrän
84        for (int i = 0; i < luvut.GetLength(0); i++)
85        {
86            for (int j = 0; j < luvut.GetLength(1); j++)
87            {
88                if (luvut[i, j] == etsittava) return i;
89            }
90        }
91
92        return -1;
93    }
94
95    /// <summary>
96    /// Tulostaa rivien ensimmäisen ja toisen sarakkeen
97    /// samalle riville
98    /// </summary>
99    /// <param name="matriisi">Merkkijonot.</param>
100    public static void Tulosta2(String[,] matriisi)
101    {
102        // rivien määrän antaa matriisi.GetLength(0)
103        for (int i = 0; i < matriisi.GetLength(0); i++)
104        {
105            Console.WriteLine(matriisi[i, 0] + " " + matriisi[i, 1]);
106        }
107    }
108
109    /// <summary>
110    /// Tulostaa merkkijonomatrisisin sisällön.
111    /// </summary>
112    /// <param name="matriisi"></param>
113    public static void Tulosta(String[,] matriisi)
114    {
115        /* Ei näin:
116        Console.WriteLine(matriisi[0, 0]);
117        Console.WriteLine(matriisi[0, 1]);
118        Console.WriteLine(matriisi[1, 0]);
119        Console.WriteLine(matriisi[1, 1]);
120         * ...
121         * */
122
123        foreach (String jono in matriisi)
124        {
125            Console.WriteLine(jono);
126        }
127    }
128}
Note: See TracBrowser for help on using the repository browser.