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) + ' '); } } }
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); } }
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); } }
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)"; } }