using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication32 { class Zvire { public string Jmeno; private int pn; public int X { get; set; } public int PocetNoh { get { return PocetNoh; } set { if ((value == 2) || (value == 4) || (value == 6) || (value == 8) || (value == 100)) { pn = value; } } } } class Program { static public void A() { try { throw new DivideByZeroException(); } catch (AccessViolationException) { throw; } } static public void B() { //A(); int i; try { i = 15; A(); i = 16; } catch (Exception e) { Console.WriteLine("Osetruju vyjimku:"); Console.WriteLine(e.Message); } } //========================================== public enum JakToDopadlo { OK, DeleniNulou, PrilisMaloCisel, PrilisMnohoCisel, SpatneZapsaneCislo} static public int Podil(string s, out JakToDopadlo jtd) { char[] odd = { ' ' }; string[] sp = s.Split(odd,StringSplitOptions.RemoveEmptyEntries); if (sp.Length < 2) { jtd = JakToDopadlo.PrilisMaloCisel; return 0; } if (sp.Length > 2) { jtd = JakToDopadlo.PrilisMnohoCisel; return 0; } try { int a = Int32.Parse(sp[0]); int b = Int32.Parse(sp[1]); jtd = JakToDopadlo.OK; if ( ((a<0)&&(b>0))||((a>0)&&(b<0))) { if ((a % b) != 0) return a / b - 1; else return a / b; } return a / b; } catch (DivideByZeroException) { jtd = JakToDopadlo.DeleniNulou; return 0; } catch (FormatException) { jtd = JakToDopadlo.SpatneZapsaneCislo; return 0; } catch (OverflowException) { jtd = JakToDopadlo.SpatneZapsaneCislo; return 0; } jtd = JakToDopadlo.OK; return 7; } static int pocetTestu = 0; static int pocetChyb = 0; static void VyzkousejPodil( string vstup, int spravnyVystup, JakToDopadlo spravneJTD) { pocetTestu++; JakToDopadlo jtd; int vysledek = Podil(vstup, out jtd); if (spravneJTD == JakToDopadlo.OK) { if ((jtd != JakToDopadlo.OK) || (vysledek != spravnyVystup)) { Console.WriteLine("CHYBA: {0} {1}:{2}/{3}:{4}", vstup, spravnyVystup, spravneJTD, vysledek, jtd); pocetChyb++; } } else if (jtd != spravneJTD) { Console.WriteLine("CHYBA: {0} {1}:{2}/{3}:{4}", vstup, spravnyVystup, spravneJTD, vysledek, jtd); pocetChyb++; } } static void OtestujPodil() { VyzkousejPodil("18 3",6, JakToDopadlo.OK); VyzkousejPodil("18 2",9, JakToDopadlo.OK); VyzkousejPodil("18 5",3, JakToDopadlo.OK); VyzkousejPodil("18 0", 0, JakToDopadlo.DeleniNulou); VyzkousejPodil("18", 0, JakToDopadlo.PrilisMaloCisel); VyzkousejPodil("", 0, JakToDopadlo.PrilisMaloCisel); VyzkousejPodil("18 5 0", 3, JakToDopadlo.PrilisMnohoCisel); VyzkousejPodil("18 5 1 2 3 4 5", 3, JakToDopadlo.PrilisMnohoCisel); VyzkousejPodil("18 5 4 5", 3, JakToDopadlo.PrilisMnohoCisel); VyzkousejPodil("l8 2", 9, JakToDopadlo.SpatneZapsaneCislo); VyzkousejPodil("999999999999999999999999 2", 0, JakToDopadlo.SpatneZapsaneCislo); VyzkousejPodil("1.8 2", 9, JakToDopadlo.SpatneZapsaneCislo); VyzkousejPodil("18 2.0", 9, JakToDopadlo.SpatneZapsaneCislo); VyzkousejPodil("18 -5", -4, JakToDopadlo.OK); Console.WriteLine( "{0} testu a {1} chyb", pocetTestu, pocetChyb); } static void Main(string[] args) { Zvire z = new Zvire(); z.PocetNoh = 2; Console.WriteLine( z.PocetNoh); z.PocetNoh = 4; Console.WriteLine(z.PocetNoh); z.PocetNoh = 77; Console.WriteLine(z.PocetNoh); //B(); OtestujPodil(); return; int i; try { i = 0; //i = i / i; i = 128; } catch (FieldAccessException) { } catch (AccessViolationException) { i = 777; throw; } finally { Console.WriteLine("Houstone, mame problem!"); } } } }