コード例 #1
0
        public Celownik_M(Mianownik mianownik)
        {
            Text = mianownik.Text;
            var l = Text.Length;

            if (l < 2)
            {
                return;
            }

            if (Text[l - 2] == 'e')
            {
                if (Text.Last() == 'j')
                {
                }
                else
                {
                    Text = Text.Remove(l - 2, 1);
                }
            }
            l = Text.Length;

            if (Text.Last() == 'a')
            {
                ReplaceLast("om");
            }
            else
            {
                Text += "om";
            }
        }
コード例 #2
0
        public Wołacz(Mianownik mianownik)
        {
            Text = mianownik.Text;
            var l = Text.Length;

            if (l < 2)
            {
                return;
            }

            if (Text[l - 2] == 'e')
            {
                if (Text.Last() == 'j')
                {
                }
                else
                {
                    Text = Text.Remove(l - 2, 1);
                }
            }
            else if (Text[l - 2] == 'ó')
            {
                ReplaceSecondLast('o');
            }
            l = Text.Length;

            if (Text.Last() == 'a')
            {
                ReplaceLast('o');
            }
            else if (Text.Last() == 'ć')
            {
                ReplaceLast("ci");
            }
            else if (Text.Last() == 'd')
            {
                Text += "zie";
            }
            else if (Text.Last() == 'e' || Text.Last() == 'o')
            {
                ReplaceLast('u');
            }
            else if (Text.Last() == 'r')
            {
                Text += "ze";
            }
            else if (Text.Last() == 'n' || Text.Last() == 's' || Text.Last() == 'z')
            {
                Text += "ie";
            }
            else if (Text.Last() == 't')
            {
                ReplaceLast("cie");
            }
            else
            {
                Text += 'u';
            }
        }
コード例 #3
0
        public Dopełniacz(Mianownik mianownik)
        {
            Text = mianownik.Text;
            var l = Text.Length;

            if (l < 2)
            {
                return;
            }

            if (Text[l - 2] == 'e')
            {
                if (Text.Last() == 'j')
                {
                }
                else
                {
                    Text = Text.Remove(l - 2, 1);
                }
            }
            else if (Text[l - 2] == 'ó')
            {
                ReplaceSecondLast('o');
            }
            l = Text.Length;

            if (Text.Last() == 'a')
            {
                if (Text[l - 2] == 'i' || Text[l - 2] == 'k' || Text[l - 2] == 'l')
                {
                    ReplaceLast('i');
                }
                else
                {
                    ReplaceLast('y');
                }
            }
            else if (Text.Last() == 'ć')
            {
                ReplaceLast("ci");
            }
            else if (Text.Last() == 'n' || Text.Last() == 's' || Text.Last() == 't')
            {
                Text += 'u';
            }
            else if (Text.Last() == 'e' || Text.Last() == 'o')
            {
                ReplaceLast('a');
            }
            else if (Text.Last() == 'w')
            {
                Text  = Text.Remove(l - 2, 1);
                Text += 'i';
            }
            else
            {
                Text += 'a';
            }
        }
コード例 #4
0
        public Mianownik_M(Mianownik mianownik)
        {
            Text = mianownik.Text;
            var l = Text.Length;

            if (l < 2)
            {
                return;
            }

            if (Text[l - 2] == 'e')
            {
                if (Text.Last() == 'j')
                {
                }
                else
                {
                    Text = Text.Remove(l - 2, 1);
                }
            }
            l = Text.Length;

            if (Text.Last() == 'a')
            {
                if (Text[l - 2] == 'i')
                {
                    ReplaceLast('e');
                }
                else if (Text[l - 2] == 'k')
                {
                    ReplaceLast('i');
                }
                else
                {
                    ReplaceLast('y');
                }
            }
            else if (Text.Last() == 'c' || Text.Last() == 'l')
            {
                Text += 'e';
            }
            else if (Text.Last() == 'k' && !IsName())
            {
                Text += 'i';
            }
            else if (Text.Last() == 'o')
            {
                ReplaceLast('a');
            }
            else if (IsName())
            {
                Text += "owie";
            }
            else
            {
                Text += 'y';
            }
        }
コード例 #5
0
        public Narzędnik(Mianownik mianownik)
        {
            Text = mianownik.Text;
            var l = Text.Length;

            if (l < 2)
            {
                return;
            }

            if (Text[l - 2] == 'e')
            {
                if (Text.Last() == 'j')
                {
                }
                else
                {
                    Text = Text.Remove(l - 2, 1);
                }
            }
            else if (Text[l - 2] == 'ó')
            {
                ReplaceSecondLast('o');
            }
            l = Text.Length;

            if (Text.Last() == 'a')
            {
                ReplaceLast('ą');
            }
            else if (Text.Last() == 'ć')
            {
                ReplaceLast("cią");
            }
            else if (Text.Last() == 'e')
            {
                Text += 'm';
            }
            else if (Text.Last() == 'g' || Text.Last() == 'k')
            {
                Text += "iem";
            }
            else if (Text.Last() == 'o')
            {
                ReplaceLast("em");
            }
            else
            {
                Text += "em";
            }
        }
コード例 #6
0
ファイル: Form1.cs プロジェクト: hakerg/Polska-Deklinacja
        private void WypełnijPrzypadki_Button_Click(object sender, EventArgs e)
        {
            var s = new Mianownik(Mianownik_TextBox.Text);

            Dopełniacz_TextBox.Text  = new Dopełniacz(s).Text;
            Celownik_TextBox.Text    = new Celownik(s).Text;
            Biernik_TextBox.Text     = new Biernik(s).Text;
            Narzędnik_TextBox.Text   = new Narzędnik(s).Text;
            Miejscownik_TextBox.Text = new Miejscownik(s).Text;
            Wołacz_TextBox.Text      = new Wołacz(s).Text;

            Mianownik_M_TextBox.Text   = new Mianownik_M(s).Text;
            Dopełniacz_M_TextBox.Text  = new Dopełniacz_M(s).Text;
            Celownik_M_TextBox.Text    = new Celownik_M(s).Text;
            Biernik_M_TextBox.Text     = new Biernik_M(s).Text;
            Narzędnik_M_TextBox.Text   = new Narzędnik_M(s).Text;
            Miejscownik_M_TextBox.Text = new Miejscownik_M(s).Text;
            Wołacz_M_TextBox.Text      = new Wołacz_M(s).Text;

            if (PrzymiotnikCheckBox.Checked)
            {
                if (PrzymiotnikTextBox.Text.Length < 2)
                {
                    MessageBox.Show("Przymiotnik jest za krótki");
                }
                else
                {
                    var          p = new Przymiotnik(PrzymiotnikTextBox.Text);
                    Słowo.Rodzaj r = s.JakiRodzaj();
                    Dopełniacz_TextBox.Text  = Dopełniacz_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Dopełniacz, r) + ' ');
                    Celownik_TextBox.Text    = Celownik_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Celownik, r) + ' ');
                    Biernik_TextBox.Text     = Biernik_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Biernik, r) + ' ');
                    Narzędnik_TextBox.Text   = Narzędnik_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Narzędnik, r) + ' ');
                    Miejscownik_TextBox.Text = Miejscownik_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Miejscownik, r) + ' ');
                    Wołacz_TextBox.Text      = Wołacz_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Wołacz, r) + ' ');

                    r = Słowo.LiczbaMnoga(r);
                    Mianownik_M_TextBox.Text   = Mianownik_M_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Mianownik, r) + ' ');
                    Dopełniacz_M_TextBox.Text  = Dopełniacz_M_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Dopełniacz, r) + ' ');
                    Celownik_M_TextBox.Text    = Celownik_M_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Celownik, r) + ' ');
                    Biernik_M_TextBox.Text     = Biernik_M_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Biernik, r) + ' ');
                    Narzędnik_M_TextBox.Text   = Narzędnik_M_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Narzędnik, r) + ' ');
                    Miejscownik_M_TextBox.Text = Miejscownik_M_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Miejscownik, r) + ' ');
                    Wołacz_M_TextBox.Text      = Wołacz_M_TextBox.Text.Insert(0, p.Odmień(Słowo.Przypadek.Wołacz, r) + ' ');
                }
            }
        }
コード例 #7
0
ファイル: Form1.cs プロジェクト: hakerg/Polska-Deklinacja
        private void Liczba_Button_Click(object sender, EventArgs e)
        {
            Mianownik m = new Mianownik(Rzeczownik_L_Textbox.Text);

            if (WykluczPotęgi_CheckBox.Checked)
            {
                int pow = Liczba.MaxPower;
                if (Int32.TryParse(WykluczonePotęgi_TextBox.Text, out pow))
                {
                    Liczba_Label.Text = "Słownie: " + new Liczba(Liczba_TextBox.Text, m.JakiRodzaj(), pow).Text + ' ' + m.GetNumberForm(Liczba_TextBox.Text);
                }
                else
                {
                    MessageBox.Show("Potęga musi być liczbą o wartości od 3 do 603 " + Liczba.MaxPower.ToString());
                }
            }
            else
            {
                Liczba_Label.Text = "Słownie: " + new Liczba(Liczba_TextBox.Text, m.JakiRodzaj()).Text + ' ' + m.GetNumberForm(Liczba_TextBox.Text);
            }
        }
コード例 #8
0
        public Dopełniacz_M(Mianownik mianownik)
        {
            Text = mianownik.Text;
            var l = Text.Length;

            if (l < 2)
            {
                return;
            }

            if (Text[l - 2] == 'e')
            {
                if (Text.Last() == 'j')
                {
                }
                else
                {
                    Text = Text.Remove(l - 2, 1);
                }
            }
            else if (Text[l - 2] == 'k')
            {
                Text = Text.Insert(l - 2, "e");
            }
            l = Text.Length;

            if (Text.Last() == 'a')
            {
                Text = Text.Substring(0, l - 1);
            }
            else if (Text.Last() == 'c' && Text[l - 2] == 'ą')
            {
                ReplaceSecondLast('ę');
                ReplaceLast("cy");
            }
            else
            {
                Text += "ów";
            }
        }
コード例 #9
0
        public Biernik(Mianownik mianownik)
        {
            Text = mianownik.Text;
            var l = Text.Length;

            if (l < 2)
            {
                return;
            }

            if (Text[l - 2] == 'e')
            {
                if (Text.Last() == 'j')
                {
                }
                else
                {
                    Text = Text.Remove(l - 2, 1);
                }
            }
            else if (Text[l - 2] == 'ó')
            {
                ReplaceSecondLast('o');
            }
            l = Text.Length;

            if (Text.Last() == 'a')
            {
                ReplaceLast('ę');
            }
            else if (IsName() || Text.Last() == 'c')
            {
                Text += 'a';
            }
            else
            {
            }
        }
コード例 #10
0
ファイル: Wołacz_M.cs プロジェクト: hakerg/Polska-Deklinacja
 public Wołacz_M(Mianownik mianownik)
 {
     Text = new Mianownik_M(mianownik).Text;
 }
コード例 #11
0
        public Liczba(double liczba, Rodzaj rodzaj, int ExcludePowersOver = -1)
        {
            if (ExcludePowersOver == -1)
            {
                ExcludePowersOver = MaxPower;
            }
            bool ApplyOneForm = (liczba == 1);

            Text = "";
            foreach (KeyValuePair <int, string> v in e)
            {
                if (v.Key > ExcludePowersOver)
                {
                    continue;
                }
                double power = Math.Pow(10, v.Key);
                if (double.IsInfinity(power))
                {
                    continue;
                }
                double t = Math.Floor(liczba / power);
                if (t == 1)
                {
                    Text += v.Value + ' ';
                }
                else if (t > 0)
                {
                    Mianownik m = new Mianownik(v.Value);
                    Text += new Liczba(t, m.JakiRodzaj(), ExcludePowersOver).Text + ' ' + m.GetNumberForm(t) + ' ';
                }
                liczba -= t * power;
            }
            if (liczba >= 100)
            {
                double t = Math.Floor(liczba / 100);
                Text   += setki[(int)t - 1] + ' ';
                liczba -= t * 100;
            }
            if (liczba >= 11 && liczba <= 19)
            {
                Text += nastki[(int)liczba - 11] + ' ';
            }
            else
            {
                if (liczba >= 10)
                {
                    double t = Math.Floor(liczba / 10);
                    Text   += dziesiątki[(int)t - 1] + ' ';
                    liczba -= t * 10;
                }
                if (liczba > 0)
                {
                    if (ApplyOneForm)
                    {
                        if (rodzaj == Rodzaj.Żeński)
                        {
                            Text += "jedna ";
                        }
                        else if (rodzaj == Rodzaj.Nijaki)
                        {
                            Text += "jedno ";
                        }
                        else
                        {
                            Text += cyfry[(int)liczba] + ' ';
                        }
                    }
                    else if (liczba == 2 && rodzaj == Rodzaj.Żeński)
                    {
                        Text += "dwie ";
                    }
                    else
                    {
                        Text += cyfry[(int)liczba] + ' ';
                    }
                }
            }
            if (Text.Length == 0)
            {
                Text = cyfry[0];
            }
            else
            {
                Text = Text.Remove(Text.Length - 1);
            }
        }
コード例 #12
0
        public Liczba(string liczba, Rodzaj rodzaj, int ExcludePowersOver = -1)
        {
            if (ExcludePowersOver == -1)
            {
                ExcludePowersOver = MaxPower;
            }
            bool ApplyOneForm = (liczba == "1");
            int  digits       = liczba.Length;

            Text = "";
            foreach (KeyValuePair <int, string> v in e)
            {
                if (v.Key > ExcludePowersOver)
                {
                    continue;
                }
                if (digits > v.Key)
                {
                    string t = liczba.Substring(0, digits - v.Key);
                    int    n = 0;
                    int.TryParse(t.Last().ToString(), out n);
                    if (t.Length > 1 && t.First() != '0' || n > 2)
                    {
                        Mianownik m = new Mianownik(v.Value);
                        Text += new Liczba(t, m.JakiRodzaj(), ExcludePowersOver).Text + ' ' + m.GetNumberForm(t) + ' ';
                    }
                    else if (n == 1)
                    {
                        Text += v.Value + ' ';
                    }
                    liczba = liczba.Substring(digits - v.Key);
                    digits = liczba.Length;
                }
            }
            int number;

            if (int.TryParse(liczba, out number))
            {
                if (number >= 100)
                {
                    int t = number / 100;
                    Text   += setki[t - 1] + ' ';
                    number -= t * 100;
                }
                if (number >= 11 && number <= 19)
                {
                    Text += nastki[number - 11] + ' ';
                }
                else
                {
                    if (number >= 10)
                    {
                        int t = number / 10;
                        Text   += dziesiątki[t - 1] + ' ';
                        number -= t * 10;
                    }
                    if (number > 0)
                    {
                        if (ApplyOneForm)
                        {
                            if (rodzaj == Rodzaj.Żeński)
                            {
                                Text += "jedna ";
                            }
                            else if (rodzaj == Rodzaj.Nijaki)
                            {
                                Text += "jedno ";
                            }
                            else
                            {
                                Text += cyfry[number] + ' ';
                            }
                        }
                        else if (number == 2 && rodzaj == Rodzaj.Żeński)
                        {
                            Text += "dwie ";
                        }
                        else
                        {
                            Text += cyfry[number] + ' ';
                        }
                    }
                }
                if (Text.Length == 0)
                {
                    Text = cyfry[0];
                }
                else
                {
                    Text = Text.Remove(Text.Length - 1);
                }
            }
            else
            {
                Text = "(nieprawidłowa liczba)";
            }
        }
コード例 #13
0
        public Celownik(Mianownik mianownik)
        {
            Text = mianownik.Text;
            var l = Text.Length;

            if (l < 2)
            {
                return;
            }

            if (Text[l - 2] == 'e')
            {
                if (Text.Last() == 'j')
                {
                }
                else
                {
                    Text = Text.Remove(l - 2, 1);
                }
            }
            else if (Text[l - 2] == 'ó')
            {
                ReplaceSecondLast('o');
            }
            l = Text.Length;

            if (Text.Last() == 'a')
            {
                if (Text[l - 2] == 'c')
                {
                    ReplaceLast("y");
                }
                else if (Text[l - 2] == 'd')
                {
                    ReplaceLast("zie");
                }
                else if (Text[l - 2] == 'k')
                {
                    ReplaceSecondLast('c');
                    ReplaceLast('e');
                }
                else if (Text[l - 2] == 'r')
                {
                    ReplaceLast("ze");
                }
                else if (Text[l - 2] == 't')
                {
                    ReplaceSecondLast('c');
                    ReplaceLast("ie");
                }
                else
                {
                    ReplaceLast("ie");
                }
            }
            else if (Text.Last() == 'ć')
            {
                ReplaceLast("ci");
            }
            else if (Text.Last() == 'e')
            {
                ReplaceLast('u');
            }
            else if (Text.Last() == 'o')
            {
                ReplaceLast('u');
            }
            else
            {
                Text += "owi";
            }
        }