source: esimerkit/luennot/live20/Poikkeus/Poikkeus.cs @ 2835

Revision 1346, 3.0 KB checked in by vesal, 5 years ago (diff)

Kommentit kuntoon, samoina ComTestiin? #THROWS

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5
6namespace Live20
7{
8    /// @author Vesa Lappalainen
9    /// @version 8.11.2011
10    /// <summary>
11    /// Tutkitaan poikkeuksia
12    /// </summary>
13    public class Poikkeus
14    {
15        /// <summary>
16        /// Esimerkkejä poikkeuksista
17        /// </summary>
18        /// <param name="args">ei käytössä</param>
19        public static void Main(string[] args)
20        {
21            int[] luvut = { 2, 4, 1 };
22            /*
23            luvut = new int[3]; // täynnä 0:ia
24            luvut[0] = 2;
25            luvut[1] = 4;
26            luvut[2] = 1;
27            */
28
29            int a1 = 3, a2 = 4, a3 = 0, a4 = 7;
30
31            try
32            {
33                int s = Summa(luvut, 0, 2);
34                Console.WriteLine(s);
35                Console.WriteLine(10 / a1);
36                Console.WriteLine(10 / a2);
37                Console.WriteLine(10 / a3);
38                Console.WriteLine(10 / a4);
39            }
40            catch (DivideByZeroException ex)
41            {
42                Console.WriteLine("Jaoit nollalla aasi!");
43            }
44            catch (IndexOutOfRangeException ex)
45            {
46                Console.WriteLine(ex.Message);
47            }
48            Console.ReadKey();
49        }
50
51
52
53        /// <summary>
54        /// Lasketaan lukujen summa taulukon osajoukosta
55        /// </summary>
56        /// <param name="luvut">taulukko, jonka lukujen summa lasketaan</param>
57        /// <param name="alku">indeksi josta summaaminen aloitetaan</param>
58        /// <param name="loppu">loppuindeksi joka otetaan mukaan, -1 = taulukon loppuun</param>
59        /// <returns>taulukon osajoukon summa</returns>
60        /// @example
61        /// <pre name="test">
62        ///   int[] luvut = { 2, 4, 1 };
63        ///   Poikkeus.Summa(luvut) === 7;
64        ///   Poikkeus.Summa(luvut,0,2) === 7;
65        ///   Poikkeus.Summa(luvut,1,2) === 5;
66        ///   Poikkeus.Summa(luvut,1) === 5;
67        ///   Poikkeus.Summa(luvut,0,1) === 6;
68        ///   Poikkeus.Summa(luvut,1,1) === 4;
69        ///   Poikkeus.Summa(luvut,1,0) === 0;
70        ///   Poikkeus.Summa(luvut,0,100) === 7;  #THROWS IndexOutOfRangeException
71        ///   Poikkeus.Summa(luvut,-4,100) === 7; #THROWS IndexOutOfRangeException
72        /// </pre>
73        /// @endexample
74        public static int Summa(int[] luvut, int alku=0, int loppu=-1)
75        {
76            int tulos = 0;
77            if (loppu == -1) loppu = luvut.Length-1;
78            // Seuraavat voisi olla oikeasti järkeviä, mutta tässä harjoitellaan
79            // sitä, että poikkeus päästetään kutsuvaan ohjelmaan.
80            // if (loppu >= luvut.Length) loppu = luvut.Length - 1;
81            // if (alku < 0) alku = 0;
82            for (int i = alku; i <= loppu; i++)
83            {
84                int luku = luvut[i];
85                tulos += luku; // tulos = tulos + luku;
86            }
87
88            return tulos;
89        }
90
91
92    }
93}
Note: See TracBrowser for help on using the repository browser.