using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        int i = 10;
        string s = i.ToString();
        Label1.Text = s;
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Random r = new Random();
        int n = r.Next(8);
        Label2.Text = "" + n;

        //Składnia podstawowa if
        if (n < 6) Label2.Text += "<BR>Wylosowana liczba jest mniejsza od 6.";

        //Składnia rozszerzona if..else
        if (n <= 4) Label2.Text += "<BR>Wylosowana liczba jest mniejsza lub równa 4.";
        else Label2.Text += "<BR>Wylosowana liczba jest większa od 4.";
    }
    protected void Button3_Click(object sender, EventArgs e)
    {
        Random r = new Random();
        int n = r.Next(8);
        string opis;
        switch (n)
        {
            case 1: opis = "niedziela"; break;
            case 2: opis = "poniedziałek"; break;
            case 3: opis = "wtorek"; break;
            case 4: opis = "środa"; break;
            case 5: opis = "czwartek"; break;
            case 6: opis = "piątek"; break;
            case 7: opis = "sobota"; break;
            default: opis = "błąd!"; break;
        }
        Label3.Text = "Wylosowany dzień tygodnia to " + opis + " (" + n.ToString() + ")";
    }

    long silnia(byte arg)
    {
        if (arg == 0) return 0;
        long wartosc = 1;
        for (byte i = 1; i <= arg; i++)
            wartosc *= i;
        return wartosc;
    }

    protected void Button4_Click(object sender, EventArgs e)
    {
        byte n = 5;
        Label4.Text = ""+n+"!="+silnia(n);
    }

    long najwiekszyDzielnik(long arg)
    {
        long dzielnik = arg - 1;
        while (arg % dzielnik != 0)
            dzielnik--;
        return dzielnik;
    }


    protected void Button5_Click(object sender, EventArgs e)
    {
        Label5.Text=najwiekszyDzielnik(69).ToString();
    }
    protected void Button6_Click(object sender, EventArgs e)
    {
        Random r = new Random();
        int n = r.Next(8);
        //Zadanie komputera to odgadnąć 
        //liczbę z zakresu od 0 do 7
        int z; int licznik = 0;
        do
        {
            licznik++;
            z = r.Next(8);
        }
        while (n != z);
        Label6.Text = "Komputer zgadł liczbę " + z + " po " + licznik + " próbach!";
    }

    protected void Button7_Click(object sender, EventArgs e)
    {
        Label7.Text = "<BR>";
        for (int i = -1; i <= 1; i++)
            for (int j = -1; j <= 1; j++)
            {
                if (i == 0 && j == 0) continue; //pomijamy przypadki, gdy obie zmienne równe sa 0
                Label7.Text+="i=" + i + ", j=" + j+"<BR>";
            }
    }

    private void sesja_id(out string id,out string locale_id)
    {
        id = Session.SessionID;
        locale_id = Session.LCID.ToString();
    }

    protected void Button8_Click(object sender, EventArgs e)
    {
        string id="??",lcid="??";
        sesja_id(out id,out lcid);
        Label8.Text="ID="+id+", LCID="+lcid;
    }
    protected void Button9_Click(object sender, EventArgs e)
    {
        try
        {
            int x = 0;
            int y = 1 / x;
            Label9a.Text="To polecenie nie zostanie wykonane!";
        }
        catch (Exception exc)
        {
            Label9a.Text="Wyjątek: " + exc.Message;
        }

        try
        {
            int x = 0;
            int y = 1 / x;
        }
        catch (DivideByZeroException exc)
        {
            Label9b.Text="Dzielenie przez zero";
        }
        catch (Exception exc)
        {
            Label9b.Text = "Inne wyjątki";
        }
    }

    protected void Button10_Click(object sender, EventArgs e)
    {
        try
        {
            throw new Exception("Wyjątek zgłoszony bez powodu");
            Label10.Text = "To polecenie nie zostanie wykonane!";
        }
        catch (Exception exc)
        {
            Label10.Text = "Wyjątek: " + exc.Message;
        }
    }
}
