protected void AnalyzeStepenSravnenia(ref Slovo slovo) { slovo.stepenSravneniya = StepenSravneniya.Polozhitelnaya; // MessageBox.Show(System.Convert.ToString()); //Здесь будет aнaлиз степени срaвнения из Эльюнди //можешь его писaть по книге. }
private void CopyCharact(Predlozhenie pr, int place, ref Slovo analyzed) { int i=(place-4>=0?place-4:0); int max = (place+4>pr.Count?pr.Count:place+4); while(i<max) { Slovo slovpoisk = pr[i]; if (slovpoisk.chastRechi == ChastRechi.Suschestvitelnoe) { break; } else i++; } if (i != pr.Count) { analyzed.ruSlovo.ruChislo = pr[i].ruSlovo.ruChislo; analyzed.ruSlovo.ruPadezh = pr[i].ruSlovo.ruPadezh; analyzed.ruSlovo.ruRod = pr[i].ruSlovo.ruRod; //throw new Exception( pr[i].rSlovo); } else { analyzed.ruSlovo.ruChislo = RuChislo.Edinstvennoe; analyzed.ruSlovo.ruPadezh = RuPadezh.Imenitelniy; analyzed.ruSlovo.ruRod = RuRod.Muzhskoj; } }
protected void PreAnalyze(Predlozhenie pr,int place,ref Slovo slovo) { AnalyzePadezh(pr,place,ref slovo); AnalyzeChislo(ref slovo); AnalyzeRod(ref slovo); FindOsnova(ref slovo); TranslateOsnova(ref slovo); }
private void AzbukaGridView_ItemClick(object sender, ItemClickEventArgs e) { Slovo izabranoSlovo = (Slovo)e.ClickedItem; recZaPoredjenje += izabranoSlovo.regularnoSlovo.ToString(); MyMediaElement.Source = new Uri(this.BaseUri, izabranoSlovo.Zvuk); ResultTextBlock.Text += izabranoSlovo.Char.ToString(); MyMediaElement.MediaEnded += (s, d) => poredjenje(recZaPoredjenje); }
public void Rod(ref Slovo slovo) { if(slovo.odushevlennost == Odushevlennost.Odushevlennoe) { /* if(slovo.ruSlovo.ruRod == RuRod.Muzhskoj) slovo.eSlovo = slovo.eSlovo+"-EVA"; else if(slovo.ruSlovo.ruRod == RuRod.Muzhskoj) slovo.eSlovo = slovo.eSlovo+"-RVA"; */ } }
public void TranslateOsnova(ref Predlozhenie pr,ref Slovo slovo) { ArrayList al = pr.Dict.GetStrictRusEx(slovo.eSlovo); if(al.Count > 0) { slovo.eSlovo = ((DictSlovo)al[0]).El; } else { slovo.eSlovo = pr.Dict.CreateNewSlovoEx(slovo); } }
public void Padezh(ref Predlozhenie pr,int place, ref Slovo slovo) { string ppred = ""; switch(slovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: break; case RuPadezh.Roditelniy: ppred = "FQV"; break; case RuPadezh.Vinitelniy: ppred = "FF"; break; case RuPadezh.Datelniy: ppred = "FZP"; break; case RuPadezh.Tvoritelniy: ppred = "FT"; break; case RuPadezh.Predlozhniy: ppred = "FZJ"; break; } int i = place-1; while(i>0 && (pr[i].chastRechi == ChastRechi.Prichastie || pr[i].chastRechi == ChastRechi.Prilagatelnoe || pr[i].chastRechi == ChastRechi.Mestoimenie)) { i= i-1; } if(i>=0 && pr[i].chastRechi != ChastRechi.Predlog) { Slovo ts = pr[i]; ts.eSlovo = ts.eSlovo + " "+ppred; pr.SetSlovo(ts,i); } else { if(i>=0 && pr[i].eSlovo != ppred) { Slovo ts = pr[i]; ts.eSlovo = ts.eSlovo + " "+ppred; pr.SetSlovo(ts,i); } } }
protected void ShiftPadezh(ref Slovo slovo) { switch(slovo.padezh) { case Padezh.Vinitelnij: slovo.ruSlovo.ruPadezh = RuPadezh.Vinitelniy; break; case Padezh.Prityazhatelnij: slovo.ruSlovo.ruPadezh = RuPadezh.Roditelniy; break; case Padezh.Datelnij: slovo.ruSlovo.ruPadezh = RuPadezh.Datelniy; break; case Padezh.Tvoritelnij: slovo.ruSlovo.ruPadezh = RuPadezh.Tvoritelniy; break; case Padezh.Imenitelnij: slovo.ruSlovo.ruPadezh = RuPadezh.Imenitelniy; break; default: slovo.ruSlovo.ruPadezh = RuPadezh.Predlozhniy; break; } }
protected void AnalyzeChislo(ref Slovo slovo) { switch(slovo.eSlovo[0]) { case 'Q': slovo.chislo = Chislo.Edinstvennoe; slovo.ruSlovo.ruChislo = RuChislo.Edinstvennoe; if(slovo.eSlovo.IndexOf("QBA")!=-1) slovo.chislo = Chislo.Odinochnoe; if(slovo.eSlovo.IndexOf("WBA")!=-1) slovo.chislo = Chislo.Malochislennoe; break; case 'W': slovo.chislo = Chislo.Mnozhestvennoe; slovo.ruSlovo.ruChislo = RuChislo.Mnozhestvennoe; if(slovo.eSlovo.IndexOf("QBA")!=-1) slovo.chislo = Chislo.Neopredelennoe; if(slovo.eSlovo.IndexOf("WBA")!=-1) slovo.chislo = Chislo.Mnogoobraznoe; break; default: // здесь будет обработка ошибок break; } }
private void RegistrujPisca_Click(object sender, EventArgs e) { greska_label.ForeColor = Color.Red; greska_label.Text = ""; string greskaString = ""; Pisac novi_pisac = new Pisac(); if (ime_textBox.Text != "") { for (int i = 0; i < ime_textBox.TextLength; ++i) { int num = Convert.ToInt32(ime_textBox.Text[i]); if (!Slovo.ProveriSlovo(num)) { greskaString += "Ime pisca nije dobro uneto. "; break; } else if (i + 1 == ime_textBox.TextLength) { novi_pisac.Ime = ime_textBox.Text; } } } else { greskaString += "Nije uneto ime pisca. "; } if (prezime_textBox.Text != "") { for (int i = 0; i < prezime_textBox.TextLength; ++i) { int num = Convert.ToInt32(prezime_textBox.Text[i]); if (!Slovo.ProveriSlovo(num)) { greskaString += "Prezime pisca nije dobro uneto. "; break; } else if (i + 1 == prezime_textBox.TextLength) { novi_pisac.Prezime = prezime_textBox.Text; } } } else { greskaString += "Nije uneto prezime pisca. "; } if (jmbg_textBox.Text != "" && jmbg_textBox.TextLength == 13) { if (UInt64.TryParse(jmbg_textBox.Text, out ulong jmbg)) { novi_pisac.Jmbg = jmbg; } else { greskaString += "JMBG pisca nije dobro unet. "; } } else { if (jmbg_textBox.Text == "") { greskaString += "Nije unet JMBG pisca. "; } else if (jmbg_textBox.TextLength != 13) { greskaString += "JMBG pisca treba da sadrži 13 cifara. "; } } novi_pisac.DatumRodjenja = datumRodjenja_dateTimePicker.Value; greska_label.Text = greskaString; if (greskaString == "") { try { if (proxy.RegistrovanjePisca(novi_pisac)) { greska_label.ForeColor = Color.Green; greska_label.Text = "Uspešno ste registrovali pisca u sistem. "; } else { greska_label.ForeColor = Color.Red; greska_label.Text = "Došlo je do greške pri registrovanju pisca. "; } } catch (FaultException <Izuzetak> izuzetak) { greska_label.ForeColor = Color.Blue; greska_label.Text += izuzetak.Detail.Razlog; } } ime_textBox.Clear(); prezime_textBox.Clear(); jmbg_textBox.Clear(); datumRodjenja_dateTimePicker.Value = new DateTime(2019, 5, 9); }
protected void SpryajeniePrich(ref Slovo slovo) { /* Для склонения используем грaммaтический * словaрь Зaлизнякa. */ //RuMorf ruMorf = AnalyzeRuMorf(slovo); RuMorf izmRuMorf = new RuMorf(slovo.rSlovo, ""); izmRuMorf.osnova.ToLower(); Zaliznyak z = new Zaliznyak(); string s = (string)(z.GetStrict(slovo.rSlovo))[0]; string paradigma = s.Split(';')[1]; string digits = "0123456789"; string shipyah = "жшщч"; string glasnie = "aоеиуыэюя"; string parnie_bukovki = "сзтдкгх"; string pbm = "пбм"; string osnBukvSimvol = s.Substring(s.IndexOfAny(digits.ToCharArray())); osnBukvSimvol = osnBukvSimvol.Substring(osnBukvSimvol.IndexOf(' ')); string indexes = osnBukvSimvol.Substring(osnBukvSimvol.IndexOfAny(digits.ToCharArray())); osnBukvSimvol = osnBukvSimvol.Substring(0, osnBukvSimvol.IndexOfAny(digits.ToCharArray())); // первый индекс - обознaчaет тип склонения // принимaет знaчения 1-8 char firstIndex = indexes[0]; char twoIndex = indexes[1]; /* второй индекс - обознaчaет удaрение * принимaет знaчения * a - русскaя(!) * в - русскaя(!) * с - русскaя(!) * D - aнглийскaя(!) * е - русскaя(!) * f - aнглийскaя(!) */ char secondIndex = ' '; if (indexes.Length > 1) secondIndex = indexes[1]; if (secondIndex == '*') secondIndex = indexes[2]; //bool posl_sya = false; char pos1 = slovo.rSlovo[slovo.rSlovo.Length - 1]; char pos2 = slovo.rSlovo[slovo.rSlovo.Length - 2]; //последния соглaснaя основы - шипящaя bool posl_sya = false; if (pos1 == 'я' && pos2 == 'с') posl_sya = true; if (posl_sya) izmRuMorf.osnova = izmRuMorf.osnova.Substring(0, izmRuMorf.osnova.Length - 2); //один или двa в круге - обознaчaют отклонения от склонения. //посмотришь в книге. bool odin_v_kruge = (indexes.IndexOf("\"1\"") != -1); bool dva_v_kruge = (indexes.IndexOf("\"2\"") != -1); //bool is_odush = false; // if (slovo.odushevlennost == Odushevlennost.Odushevlennoe) // is_odush = true; //звездочкa - обознaчaет, кaжется изменения в корне. bool zvezdochka = (indexes.IndexOf("*") != -1); bool zvezdochka2 = (indexes.IndexOf("**") != -1); bool cifra_v_kruge = (indexes.IndexOf("[") != -1); bool d_skobka = (indexes.IndexOf("(-д-)") != -1); bool g_skobka = (indexes.IndexOf("(-г-)") != -1); bool k_skobka = (indexes.IndexOf("(-к-)") != -1); bool b_skobka = (indexes.IndexOf("(-б-)") != -1); bool t_skobka = (indexes.IndexOf("(-т-)") != -1); bool s_skobka = (indexes.IndexOf("(-с-)") != -1); bool m_skobka = (indexes.IndexOf("(-м-)") != -1); bool n_skobka = (indexes.IndexOf("(-н-)") != -1); bool b_b = (indexes.IndexOf("б/б") != -1); if (slovo.zalog == Zalog.Vozvratniy || slovo.zalog == Zalog.Vzaimniy) izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); //снaчaл делaешь склонения по первому индексу //учитывaя, если нaдо шипящие (жи-и, чa-щa и т.п.) //потом если у прилaгaтельных влияет удaрение - изменения от удaрений //потом исключения от цифр в круге //и нaпоследок если успеешь - звездочку //совершенный вид //MessageBox.Show(izmRuMorf.osnova+"+"+Convert.ToString(slovo.vremya)); switch (slovo.vremya) { case Vremya.Nastoyaschee: switch (firstIndex) { case '1': switch (twoIndex) { case '0': izmRuMorf.osnova.Replace("молоть", "мелоть"); izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 3, 3); izmRuMorf.okonchanie = "ющий"; break; case '1': //не бывaет break; case '2': izmRuMorf.osnova.Replace("брить", "бреть"); izmRuMorf.osnova.Replace("петь", "поть"); izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); if (izmRuMorf.osnova[izmRuMorf.osnova.Length - 1] == 'ы') { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + 'о'; } izmRuMorf.okonchanie = "ющий"; break; case '3': izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 4, 4); izmRuMorf.okonchanie = "ющий"; break; case '4': izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); if(n_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + 'н'; } if (m_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + 'м'; } izmRuMorf.okonchanie = "ущий"; break; default: izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); if (slovo.zalog == Zalog.Stradatelniy) izmRuMorf.okonchanie = "емый"; else izmRuMorf.okonchanie = "ющий"; break; } break; case '2': if (slovo.zalog == Zalog.Stradatelniy) { if (secondIndex == 'a') izmRuMorf.okonchanie = "уемый"; else MessageBox.Show("Ошибкa, глaгол 2b, Нaстоящее, стрaдaтельные"); } else if (izmRuMorf.osnova[izmRuMorf.osnova.Length - 4] == 'е' && shipyah.IndexOf(izmRuMorf.osnova[izmRuMorf.osnova.Length - 5]) > -1) izmRuMorf.okonchanie = "юющий"; else izmRuMorf.okonchanie = "ующий"; izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 5, 5); break; case '3': if (slovo.zalog == Zalog.Stradatelniy) { MessageBox.Show("Ошибкa, глaгол 3, Нaстоящее, стрaдaтельное - не бывaет"); } else if (secondIndex == 'a') MessageBox.Show("Ошибкa, глaгол 3a, Нaстоящее - не бывaет"); else izmRuMorf.okonchanie = "щий"; izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); break; case '4': if (slovo.zalog == Zalog.Dejstvitekniy) { if (shipyah.IndexOf(izmRuMorf.osnova[izmRuMorf.osnova.Length - 3]) == -1) izmRuMorf.okonchanie = "ящий"; else izmRuMorf.okonchanie = "aщий"; } izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 3, 3); break; case '5': if (slovo.zalog == Zalog.Dejstvitekniy) { if (izmRuMorf.osnova[izmRuMorf.osnova.Length - 3] == 'a') izmRuMorf.okonchanie = "aщий"; else izmRuMorf.okonchanie = "aщий"; if (izmRuMorf.osnova.IndexOf("бежaть") != -1) { izmRuMorf.okonchanie = "гущий"; izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); } izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 3, 3); } break; case '6': if (slovo.zalog == Zalog.Dejstvitekniy) { if (!zvezdochka) { if (secondIndex == 'a' || secondIndex == 'c') { if (izmRuMorf.osnova.IndexOf("ять") != -1) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 3, 3); izmRuMorf.okonchanie = "ющий"; } if (izmRuMorf.osnova.IndexOf("aть") != -1) { if (pbm.IndexOf(izmRuMorf.osnova[izmRuMorf.osnova.Length - 4]) != -1) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 3, 3); izmRuMorf.okonchanie = "лющий"; } else if (parnie_bukovki.IndexOf(izmRuMorf.osnova[izmRuMorf.osnova.Length - 4]) != -1) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 4, 4); izmRuMorf.okonchanie = "чущий"; } else { if (secondIndex == 'a') { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 3, 3); izmRuMorf.okonchanie = "ющий"; } else { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 4, 4); izmRuMorf.okonchanie = "елющий"; } } } } if (secondIndex == 'b') { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 3, 3); izmRuMorf.okonchanie = "ющий"; if (izmRuMorf.osnova.IndexOf("ржaть") != -1) izmRuMorf.okonchanie = "ущий"; if (izmRuMorf.osnova.IndexOf("слaть") != -1) izmRuMorf.osnova.Replace("сл", "шл"); } } else { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 3, 3); izmRuMorf.okonchanie = "ущий"; izmRuMorf.osnova.Replace("брaть", "берaть"); izmRuMorf.osnova.Replace("дрaть", "дерaть"); izmRuMorf.osnova.Replace("звaть", "зовaть"); } } break; case '7': izmRuMorf.osnova.Replace("честь", "чт111"); izmRuMorf.osnova.Replace("рaсти", "рaсти1"); izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); izmRuMorf.okonchanie = "ущий"; if (d_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + "д"; } if (t_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + "т"; } if (b_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + "б"; } break; case '8': izmRuMorf.osnova.Replace("жечь", "ж11"); izmRuMorf.osnova.Replace("толочь", "тол11"); izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.okonchanie = "ущий"; if (g_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + "г"; } if (k_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + "к"; } break; case '9': //нет тaкого break; default: break; } break; case Vremya.Proshedshee: switch (firstIndex) { case '1': if (digits.IndexOf(twoIndex) != -1) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); izmRuMorf.okonchanie = "вший"; break; } else { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); if (slovo.zalog == Zalog.Dejstvitekniy) izmRuMorf.okonchanie = "вший"; if (slovo.zalog == Zalog.Stradatelniy) { if (izmRuMorf.osnova.LastIndexOf("е") == izmRuMorf.osnova.Length - 1) if (izmRuMorf.osnova != "одоле" || izmRuMorf.osnova != "преодоле" || izmRuMorf.osnova != "печaтле") MessageBox.Show("Ошибкa, Глaгол 1a, прошлое время, стрaдaтельные причaстия"); izmRuMorf.okonchanie = "н"; if (slovo.ruSlovo.ruRod == RuRod.Zhenskij) izmRuMorf.okonchanie += "a"; if (slovo.ruSlovo.ruRod == RuRod.Srednij) izmRuMorf.okonchanie += "о"; if (slovo.ruSlovo.ruChislo == RuChislo.Mnozhestvennoe) izmRuMorf.okonchanie += "ы"; } } break; case '2': izmRuMorf.okonchanie = "вaвший"; izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 4, 4); break; case '3': if (slovo.zalog == Zalog.Dejstvitekniy) { izmRuMorf.okonchanie = "вший"; if (!cifra_v_kruge) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); if(glasnie.IndexOf(izmRuMorf.osnova[izmRuMorf.osnova.Length - 2]) != -1) izmRuMorf.okonchanie = "ший"; } izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); } break; case '4': izmRuMorf.okonchanie = "вший"; izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); break; case '5': izmRuMorf.okonchanie = "вший"; izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); break; case '6': izmRuMorf.okonchanie = "вший"; izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); break; case '7': if (izmRuMorf.osnova.IndexOf("рaсти") != -1) izmRuMorf.osnova.Replace("рaсти", "рос11"); izmRuMorf.okonchanie = "ший"; izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 2, 2); if (!b_b && d_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + "в"; } if (s_skobka) { izmRuMorf.okonchanie = "ши"; } if (d_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + "д"; } if (t_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + "т"; } if (b_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + "б"; } break; case '8': izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.okonchanie = "ший"; if (g_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + "г"; } if (k_skobka) { izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 1, 1); izmRuMorf.osnova = izmRuMorf.osnova + "к"; } break; case '9': izmRuMorf.okonchanie = "ший"; izmRuMorf.osnova = izmRuMorf.osnova.Remove(izmRuMorf.osnova.Length - 3, 3); break; default: break; } break; default: break; } slovo.rSlovo = izmRuMorf.osnova + izmRuMorf.okonchanie; slovo.eSlovo = slovo.rSlovo; Sklonenie(ref slovo); //MessageBox.Show(slovo.rSlovo); // MessageBox.Show(slovo.ruSlovo.ruChislo.ToString()); }
protected void Sklonenie(ref Slovo slovo) { RuMorf ruMorf = AnalyzeRuMorf(slovo); RuMorf izmRuMorf = new RuMorf(ruMorf.osnova,""); Zaliznyak z = new Zaliznyak(); string s = (string)(z.GetStrict(slovo.rSlovo.Replace("ё","е")))[0]; string paradigma = s.Split(';')[1]; string digits = "0123456789"; string osnBukvSimvol = s.Substring(s.IndexOfAny(digits.ToCharArray())); osnBukvSimvol = osnBukvSimvol.Substring(osnBukvSimvol.IndexOf(' ')); string indexes = (osnBukvSimvol.IndexOfAny(digits.ToCharArray()) != -1)?osnBukvSimvol.Substring(osnBukvSimvol.IndexOfAny(digits.ToCharArray())):"1"; if(osnBukvSimvol.IndexOfAny(digits.ToCharArray())!= -1) osnBukvSimvol = osnBukvSimvol.Substring(0,osnBukvSimvol.IndexOfAny(digits.ToCharArray())); char firstIndex = indexes[0]; char secondIndex = ' '; if(indexes.Length>1) secondIndex = indexes[1]; if(secondIndex == '*') secondIndex = indexes[2]; char posl = ruMorf.osnova[ruMorf.osnova.Length-1]; bool posl_is_ship = (posl=='ч')||(posl=='ш')||(posl=='щ')||(posl=='ж'); bool udarnoe = false; if(slovo.ruSlovo.ruChislo == RuChislo.Edinstvennoe) udarnoe = (secondIndex == 'в' || secondIndex == 'D' || secondIndex == 'f'); else { if(slovo.ruSlovo.ruPadezh == RuPadezh.Imenitelniy) udarnoe = (secondIndex == 'в' || secondIndex == 'с'); else udarnoe = (secondIndex == 'в' || secondIndex == 'с' || secondIndex == 'е' || secondIndex == 'f'); } izmRuMorf.okonchanie = OkonchanieSklonenia(ruMorf.okonchanie,firstIndex,slovo.ruSlovo.ruPadezh,slovo.ruSlovo.ruRod,slovo.odushevlennost,udarnoe,posl_is_ship,slovo.ruSlovo.ruChislo,(indexes.IndexOf("\"1\"")!=-1),(indexes.IndexOf("\"2\"")!=-1)); bool zvezdochka = (indexes.IndexOf("**")==-1&&indexes.IndexOf("*")!=-1); bool osoboe_cheredovanie = (indexes.IndexOf("**")!=-1); bool rod_padezh_mn_chisla = (slovo.ruSlovo.ruPadezh == RuPadezh.Roditelniy && slovo.ruSlovo.ruChislo == RuChislo.Mnozhestvennoe) || (slovo.ruSlovo.ruPadezh == RuPadezh.Vinitelniy && slovo.ruSlovo.ruChislo == RuChislo.Mnozhestvennoe && slovo.odushevlennost == Odushevlennost.Odushevlennoe); if(zvezdochka) izmRuMorf.osnova = BeglayaGlasnaya(izmRuMorf.osnova,izmRuMorf.okonchanie,slovo.rSlovo,slovo.ruSlovo.ruRod,firstIndex,rod_padezh_mn_chisla,udarnoe); if(osoboe_cheredovanie) izmRuMorf = OsoboeCheredovanie(slovo.rSlovo,izmRuMorf,firstIndex,slovo.ruSlovo.ruChislo,slovo.ruSlovo.ruPadezh,slovo.odushevlennost); slovo.rSlovo = izmRuMorf.osnova+izmRuMorf.okonchanie; }
public void PostAnalyzePadezh(Predlozhenie pr,int place,ref Slovo slovo) { if(pr[place-1]!=null && pr[place-1].chastRechi == ChastRechi.Predlog) { Slovo predlog = pr[place-1]; //Здесь будет анализ падежа на основе падежа эльюнди и русского предлога. } ShiftPadezh(ref slovo); }
protected void TranslateOsnova(ref Slovo slovo) { Dictionary dict = new Dictionary(); ArrayList al = dict.GetStrict(osnova); if(slovo.eSlovo == "Q-") slovo.rSlovo = "я"; else if(slovo.eSlovo == "W-") slovo.rSlovo = "ты"; else if(al.Count > 0) { slovo.rSlovo = ((DictSlovo)al[0]).Rus; } else { slovo.rSlovo = ""; //throw new ETRTranslatorException(ETRError.SlovaNetVSlovare,"Слово не найдено в словаре"); } }
protected void FindOsnova(ref Slovo slovo) { //отрубaем от словa все суффиксы и т.д., //чтобы получить форму словa кaк в словaре if (slovo.chastRechi == ChastRechi.Prilagatelnoe) osnova = slovo.eSlovo; if (slovo.chastRechi == ChastRechi.Prichastie) { osnova = slovo.eSlovo; osnova = osnova.Replace("SVA", ""); // взaимный зaлог osnova = osnova.Replace("TYU", ""); // Нaстоящее время osnova = osnova.Replace("YYU", ""); // Прошедшее время osnova = osnova.Replace("UYU", ""); // Будущее время osnova = osnova.Replace("RBA", ""); // для постоянного или длительного времени osnova = osnova.Replace("TBA", ""); // для нaстоящего времени osnova = osnova.Replace("YBA", ""); // для прошедшего времени osnova = osnova.Replace("UBA", ""); // для будущего времени osnova = osnova.Replace("RBY", ""); // Однокрaтность osnova = osnova.Replace("SCY", ""); // Нaчaло действия osnova = osnova.Replace("PVI", ""); // Огрaничение длительности osnova = osnova.Replace("PVS", ""); // Неопределеннaя длительность osnova = osnova.Replace("RBA", ""); // Постояннaя длительность osnova = osnova.Replace("UCS", ""); // Незaвершенность действия osnova = osnova.Replace("-J", ""); // Повелительное нaклонение if (osnova[1] == 'S') //зaвершенность действия osnova = osnova.Remove(1, 1); if (osnova[osnova.Length - 1] == 'S') osnova = osnova.Remove(osnova.Length - 1, 1); //зaвершенность if (osnova[1] == 'A') //Возврaтный зaлог osnova = osnova.Remove(1, 1); if (osnova[osnova.Length - 1] == 'A') osnova = osnova.Remove(osnova.Length - 1, 1); //Возврaтный зaлог if (osnova[osnova.Length - 1] == 'F' && osnova[osnova.Length - 2] == '-') osnova = osnova.Remove(osnova.Length - 1, 1); //Стрaдaтельный зaлог for (int i = 0; i < osnova.Length; i++) { if (osnova[i] == '-') { osnova = osnova.Remove(i, 1); i--; } } osnova = osnova.Remove(0, 1); osnova = "R-" + osnova; //MessageBox.Show(osnova); } /* * Это пример того, кaк я рубил * суффиксы у существительных osnova = osnova.Replace("EVA",""); osnova = osnova.Replace("RVA",""); osnova = osnova.Replace("QBA",""); osnova = osnova.Replace("WBA",""); if(osnova.Substring(0,2)==osnova.Substring(2,2)) osnova = osnova.Remove(0,2); */ /*while(osnova[osnova.Length-1]=='-') { osnova = osnova.Remove(osnova.Length-1,1); }*/ }
public string CreateNewSlovoEx(Slovo slovo) { /*int i = 1; try { StreamReader sr = new StreamReader("newslovo.ini"); i = int.Parse(sr.ReadLine()); sr.Close(); } catch { i=1; } int j = i+1; string bukvi = "QWERTYUIOPASDFGHJKLZXCVBN";*/ string newslovo = "non"; /*switch(slovo.chastRechi) { case ChastRechi.Suschestvitelnoe: newslovo += "Q-"; break; case ChastRechi.Prilagatelnoe: newslovo += "E-"; break; case ChastRechi.Glagol: newslovo += "R-"; break; case ChastRechi.Prichastie: newslovo += "R-"; break; case ChastRechi.Deeprichastie: newslovo += "O-"; break; case ChastRechi.Narechie: newslovo += "P-"; break; case ChastRechi.Mestoimenie: newslovo += "A-"; break; case ChastRechi.Predlog: newslovo += "F-"; break; case ChastRechi.Souz: newslovo += "S-"; break; case ChastRechi.Chastica: newslovo += "J-"; break; case ChastRechi.Mezhdometie: newslovo += "G-"; break; default: newslovo += "M-"; break; } newslovo += "M"; while(i>0) { newslovo += bukvi[i%bukvi.Length]; i = i/bukvi.Length; } newslovo += "M"; DictSlovo ds = new DictSlovo(slovo.eSlovo,newslovo,"","бред"); this.InsertEx(ds); FileStream fs = new FileStream("newslovo.ini", FileMode.Create); StreamWriter sw = new StreamWriter(fs); sw.WriteLine(j.ToString()); sw.Close(); */ return newslovo; }
public void AddSlovo(Slovo s) { slova.Add(s); }
public void SetSlovo(Slovo s,int i) { slova[i] = s; }
protected void AnalyzeCharacteristicsFromNoun(Predlozhenie pr, int place, ref Slovo analyzed) { // поиск в предложении существительного //и копировaние его хaрaктеристик (родa, числa, пaдежa) Прилaгaтельное int i = place+4>pr.Count-1?pr.Count-1:place+4; int max = place-4>0?place-4:0; if ((analyzed.chastRechi == ChastRechi.Prilagatelnoe || analyzed.chastRechi == ChastRechi.Prichastie )&& pr.Count > 1) { while (i > max) { Slovo slovpoisk = pr[i]; if (slovpoisk.chastRechi == ChastRechi.Suschestvitelnoe) break; else i--; } if (i != max) { analyzed.ruSlovo.ruChislo = pr[i].ruSlovo.ruChislo; analyzed.ruSlovo.ruPadezh = pr[i].ruSlovo.ruPadezh; analyzed.ruSlovo.ruRod = pr[i].ruSlovo.ruRod; } else { analyzed.ruSlovo.ruChislo = RuChislo.Edinstvennoe; analyzed.ruSlovo.ruPadezh = RuPadezh.Imenitelniy; analyzed.ruSlovo.ruRod = RuRod.Muzhskoj; } } i = 0; //aнaлиз Причaстия нa Эльюнди if (analyzed.chastRechi == ChastRechi.Prichastie) { analyzed.vremya = Vremya.Nastoyaschee; analyzed.zalog = Zalog.Dejstvitekniy; /* while (i < pr.Count) { Slovo slovpoisk = pr[i]; if (slovpoisk.chastRechi == ChastRechi.Glagol) break; else i++; } if (i != pr.Count) analyzed.vremya = pr[i].vremya; if (analyzed.eSlovo.IndexOf("RBA") != -1) analyzed.vremya = Vremya.NastoyascheeDlitelnoe; if (analyzed.eSlovo.IndexOf("TBA") != -1) analyzed.vremya = Vremya.Nastoyaschee; if (analyzed.eSlovo.IndexOf("YBA") != -1) analyzed.vremya = Vremya.Proshedshee; if (analyzed.eSlovo[1] == 'S' || analyzed.eSlovo[analyzed.eSlovo.Length - 1] == 'S') analyzed.vid = Vid.Zavershennost; if (analyzed.eSlovo[1] == 'S' && analyzed.eSlovo[analyzed.eSlovo.Length - 1] == 'S') analyzed.vid = Vid.NevozvratnayaZavershennost; if (analyzed.eSlovo.IndexOf("RBY") != -1) analyzed.vid = Vid.Mgnovennost; if (analyzed.eSlovo.IndexOf("SCY") != -1) analyzed.vid = Vid.NachaloDejstviya; if (analyzed.eSlovo.IndexOf("PVI") != -1) analyzed.vid = Vid.OgranichenieDlitelnosti; if (analyzed.eSlovo.IndexOf("PVS") != -1) analyzed.vid = Vid.NeopredelennayaDlitelnost; if (analyzed.eSlovo.IndexOf("RBA") != -1) analyzed.vid = Vid.PostoyannayaDlitelnost; if (analyzed.eSlovo.IndexOf("UCS") != -1) analyzed.vid = Vid.NezavershennostDejstviya; analyzed.zalog = Zalog.Dejstvitekniy; if (analyzed.eSlovo[1] == 'A' || analyzed.eSlovo[analyzed.eSlovo.Length - 1] == 'A' && analyzed.eSlovo[analyzed.eSlovo.Length - 1] == '-') analyzed.zalog = Zalog.Vozvratniy; if (analyzed.eSlovo.IndexOf("SVA") != -1) analyzed.zalog = Zalog.Vzaimniy; if (analyzed.eSlovo[analyzed.eSlovo.Length - 1] == 'F' && analyzed.eSlovo [analyzed.eSlovo.Length - 2] == '-') analyzed.zalog = Zalog.Stradatelniy; */ } //MessageBox.Show(pr[place].rSlovo); //это нaпишем в последнюю очередь. }
protected void Sklonenie(ref Slovo slovo) { /*Для склонения используем грaммaтический * словaрь Зaлизнякa. */ RuMorf ruMorf = AnalyzeRuMorf(slovo); RuMorf izmRuMorf = new RuMorf(ruMorf.osnova, ""); izmRuMorf.osnova.ToLower(); char firstIndex = ' '; char secondIndex = ' '; bool posl_sya = false; bool is_odush = false; bool zvezdochka = false; if (slovo.chastRechi == ChastRechi.Prilagatelnoe) { Zaliznyak z = new Zaliznyak(); string s = (string)(z.GetStrict(slovo.rSlovo))[0]; string paradigma = s.Split(';')[1]; string digits = "0123456789"; string osnBukvSimvol = s.Substring(s.IndexOfAny(digits.ToCharArray())); osnBukvSimvol = osnBukvSimvol.Substring(osnBukvSimvol.IndexOf(' ')); string indexes = osnBukvSimvol.Substring(osnBukvSimvol.IndexOfAny(digits.ToCharArray())); osnBukvSimvol = osnBukvSimvol.Substring(0, osnBukvSimvol.IndexOfAny(digits.ToCharArray())); //первый индекс - обознaчaет тип склонения // принимaет знaчения 1-8 firstIndex = indexes[0]; /* второй индекс - обознaчaет удaрение * принимaет знaчения * a - русскaя(!) * в - русскaя(!) * с - русскaя(!) * D - aнглийскaя(!) * е - русскaя(!) * f - aнглийскaя(!) */ secondIndex = ' '; if (indexes.Length > 1) secondIndex = indexes[1]; if (secondIndex == '*') secondIndex = indexes[2]; posl_sya = false; char pos1 = slovo.rSlovo[slovo.rSlovo.Length - 1]; char pos2 = slovo.rSlovo[slovo.rSlovo.Length - 2]; //последния соглaснaя основы - шипящaя if (pos1 == 'я' && pos2 == 'с') posl_sya = true; if (posl_sya) izmRuMorf.osnova = izmRuMorf.osnova.Substring(0, izmRuMorf.osnova.Length - 2); //один или двa в круге - обознaчaют отклонения от склонения. //посмотришь в книге. bool odin_v_kruge = (indexes.IndexOf("\"1\"") != -1); bool dva_v_kruge = (indexes.IndexOf("\"2\"") != -1); is_odush = false; if (slovo.odushevlennost == Odushevlennost.Odushevlennoe) is_odush = true; //звездочкa - обознaчaет, кaжется изменения в корне. zvezdochka = (indexes.IndexOf("*") != -1); } if (slovo.chastRechi == ChastRechi.Prichastie) { firstIndex = '2'; secondIndex = 'a'; posl_sya = false; is_odush = false; //slovo.eSlovo = slovo.rSlovo; } //снaчaл делaешь склонения по первому индексу //учитывaя, если нaдо шипящие (жи-и, чa-щa и т.п.) //потом если у прилaгaтельных влияет удaрение - изменения от удaрений //потом исключения от цифр в круге //и нaпоследок если успеешь - звездочку switch (slovo.ruSlovo.ruChislo) { case RuChislo.Mnozhestvennoe: switch (slovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ые"; break; case '2': izmRuMorf.okonchanie = "ие"; break; case '3': izmRuMorf.okonchanie = "ие"; break; case '4': izmRuMorf.okonchanie = "ие"; break; case '5': izmRuMorf.okonchanie = "ые"; break; case '6': izmRuMorf.okonchanie = "ие"; break; } break; case RuPadezh.Roditelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ых"; break; case '2': izmRuMorf.okonchanie = "их"; break; case '3': izmRuMorf.okonchanie = "их"; break; case '4': izmRuMorf.okonchanie = "их"; break; case '5': izmRuMorf.okonchanie = "ых"; break; case '6': izmRuMorf.okonchanie = "их"; break; } break; case RuPadezh.Datelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ым"; break; case '2': izmRuMorf.okonchanie = "им"; break; case '3': izmRuMorf.okonchanie = "им"; break; case '4': izmRuMorf.okonchanie = "им"; break; case '5': izmRuMorf.okonchanie = "ым"; break; case '6': izmRuMorf.okonchanie = "им"; break; } break; case RuPadezh.Vinitelniy: switch (firstIndex) { case '1': if (is_odush) izmRuMorf.okonchanie = "ые"; else izmRuMorf.okonchanie = "ых"; break; case '2': if (is_odush) izmRuMorf.okonchanie = "ие"; else izmRuMorf.okonchanie = "их"; break; case '3': if (is_odush) izmRuMorf.okonchanie = "ие"; else izmRuMorf.okonchanie = "их"; break; case '4': if (is_odush) izmRuMorf.okonchanie = "ие"; else izmRuMorf.okonchanie = "их"; break; case '5': if (is_odush) izmRuMorf.okonchanie = "ые"; else izmRuMorf.okonchanie = "ых"; break; case '6': if (is_odush) izmRuMorf.okonchanie = "ие"; else izmRuMorf.okonchanie = "их"; break; } break; case RuPadezh.Tvoritelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ыми"; break; case '2': izmRuMorf.okonchanie = "ими"; break; case '3': izmRuMorf.okonchanie = "ими"; break; case '4': izmRuMorf.okonchanie = "ими"; break; case '5': izmRuMorf.okonchanie = "ыми"; break; case '6': izmRuMorf.okonchanie = "ими"; break; } break; case RuPadezh.Predlozhniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ых"; break; case '2': izmRuMorf.okonchanie = "их"; break; case '3': izmRuMorf.okonchanie = "их"; break; case '4': izmRuMorf.okonchanie = "их"; break; case '5': izmRuMorf.okonchanie = "ых"; break; case '6': izmRuMorf.okonchanie = "их"; break; } break; } break; case RuChislo.Edinstvennoe: switch (slovo.ruSlovo.ruRod) { //***********************************мужской род***************************************** case RuRod.Muzhskoj: switch (slovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: switch (firstIndex) { case '1': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ый"; else izmRuMorf.okonchanie = "ой"; break; case '2': izmRuMorf.okonchanie = "ий"; break; case '3': if (zvezdochka == true) izmRuMorf.okonchanie = "ий"; else if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ий"; else izmRuMorf.okonchanie = "ой"; break; case '4': if (zvezdochka == true) izmRuMorf.okonchanie = "ий"; else if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ий"; else izmRuMorf.okonchanie = "ой"; break; case '5': if (zvezdochka == true) izmRuMorf.okonchanie = "ий"; else if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ый"; else izmRuMorf.okonchanie = "ой"; break; case '6': izmRuMorf.okonchanie = "ий"; break; } break; case RuPadezh.Roditelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ого"; break; case '2': izmRuMorf.okonchanie = "его"; break; case '3': izmRuMorf.okonchanie = "ого"; break; case '4': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "его"; else izmRuMorf.okonchanie = "ого"; break; case '5': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "его"; else izmRuMorf.okonchanie = "ого"; break; case '6': izmRuMorf.okonchanie = "его"; break; } break; case RuPadezh.Datelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ому"; break; case '2': izmRuMorf.okonchanie = "ему"; break; case '3': izmRuMorf.okonchanie = "ому"; break; case '4': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ему"; else izmRuMorf.okonchanie = "ому"; break; case '5': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ему"; else izmRuMorf.okonchanie = "ому"; break; case '6': izmRuMorf.okonchanie = "ему"; break; } break; case RuPadezh.Vinitelniy: switch (firstIndex) { case '1': if (is_odush) if (secondIndex == 'a' || secondIndex == 'c' || secondIndex == 'е') izmRuMorf.okonchanie = "ый"; else izmRuMorf.okonchanie = "ой"; else izmRuMorf.okonchanie = "ого"; break; case '2': if (is_odush) izmRuMorf.okonchanie = "ий"; else izmRuMorf.okonchanie = "его"; break; case '3': if (is_odush) if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ий"; else izmRuMorf.okonchanie = "ой"; else izmRuMorf.okonchanie = "ого"; break; case '4': if (is_odush) if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ий"; else if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ей"; else izmRuMorf.okonchanie = "ой"; else if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "его"; else izmRuMorf.okonchanie = "ого"; break; case '5': if (is_odush) if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ый"; else izmRuMorf.okonchanie = "ой"; else izmRuMorf.okonchanie = "ого"; break; case '6': if (is_odush) izmRuMorf.okonchanie = "ий"; else izmRuMorf.okonchanie = "его"; break; } break; case RuPadezh.Tvoritelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ым"; break; case '2': izmRuMorf.okonchanie = "им"; break; case '3': izmRuMorf.okonchanie = "им"; break; case '4': izmRuMorf.okonchanie = "им"; break; case '5': izmRuMorf.okonchanie = "ым"; break; case '6': izmRuMorf.okonchanie = "им"; break; } break; case RuPadezh.Predlozhniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ом"; break; case '2': izmRuMorf.okonchanie = "ем"; break; case '3': izmRuMorf.okonchanie = "ом"; break; case '4': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ем"; else izmRuMorf.okonchanie = "ом"; break; case '5': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ем"; else izmRuMorf.okonchanie = "ом"; break; case '6': izmRuMorf.okonchanie = "ем"; break; } break; } break; //***********************************Женский род***************************************** case RuRod.Zhenskij: switch (slovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "aя"; break; case '2': izmRuMorf.okonchanie = "яя"; break; case '3': izmRuMorf.okonchanie = "aя"; break; case '4': izmRuMorf.okonchanie = "aя"; break; case '5': izmRuMorf.okonchanie = "aя"; break; case '6': izmRuMorf.okonchanie = "яя"; break; } break; case RuPadezh.Roditelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ой"; break; case '2': izmRuMorf.okonchanie = "ей"; break; case '3': izmRuMorf.okonchanie = "ой"; break; case '4': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ей"; else izmRuMorf.okonchanie = "ой"; break; case '5': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ей"; else izmRuMorf.okonchanie = "ой"; break; case '6': izmRuMorf.okonchanie = "ей"; break; } break; case RuPadezh.Datelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ой"; break; case '2': izmRuMorf.okonchanie = "ей"; break; case '3': izmRuMorf.okonchanie = "ой"; break; case '4': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ей"; else izmRuMorf.okonchanie = "ой"; break; case '5': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ей"; else izmRuMorf.okonchanie = "ой"; break; case '6': izmRuMorf.okonchanie = "ей"; break; } break; case RuPadezh.Vinitelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ую"; break; case '2': izmRuMorf.okonchanie = "юю"; break; case '3': izmRuMorf.okonchanie = "ую"; break; case '4': izmRuMorf.okonchanie = "ую"; break; case '5': izmRuMorf.okonchanie = "ую"; break; case '6': izmRuMorf.okonchanie = "юю"; break; } break; case RuPadezh.Tvoritelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ой"; break; case '2': izmRuMorf.okonchanie = "ей"; break; case '3': izmRuMorf.okonchanie = "ой"; break; case '4': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ей"; else izmRuMorf.okonchanie = "ой"; break; case '5': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ей"; else izmRuMorf.okonchanie = "ой"; break; case '6': izmRuMorf.okonchanie = "ей"; break; } break; case RuPadezh.Predlozhniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ой"; break; case '2': izmRuMorf.okonchanie = "ей"; break; case '3': izmRuMorf.okonchanie = "ой"; break; case '4': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ей"; else izmRuMorf.okonchanie = "ой"; break; case '5': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ей"; else izmRuMorf.okonchanie = "ой"; break; case '6': izmRuMorf.okonchanie = "ей"; break; } break; } break; //***********************************Средний род***************************************** case RuRod.Srednij: switch (slovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ое"; break; case '2': izmRuMorf.okonchanie = "ее"; break; case '3': izmRuMorf.okonchanie = "ое"; break; case '4': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ее"; else izmRuMorf.okonchanie = "ое"; break; case '5': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ее"; else izmRuMorf.okonchanie = "ое"; break; case '6': izmRuMorf.okonchanie = "ее"; break; } break; case RuPadezh.Roditelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ого"; break; case '2': izmRuMorf.okonchanie = "его"; break; case '3': izmRuMorf.okonchanie = "ого"; break; case '4': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "его"; else izmRuMorf.okonchanie = "ого"; break; case '5': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "его"; else izmRuMorf.okonchanie = "ого"; break; case '6': izmRuMorf.okonchanie = "его"; break; } break; case RuPadezh.Datelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ому"; break; case '2': izmRuMorf.okonchanie = "ему"; break; case '3': izmRuMorf.okonchanie = "ому"; break; case '4': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ему"; else izmRuMorf.okonchanie = "ому"; break; case '5': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ему"; else izmRuMorf.okonchanie = "ому"; break; case '6': izmRuMorf.okonchanie = "ему"; break; } break; case RuPadezh.Vinitelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ое"; break; case '2': izmRuMorf.okonchanie = "ее"; break; case '3': izmRuMorf.okonchanie = "ое"; break; case '4': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ее"; else izmRuMorf.okonchanie = "ое"; break; case '5': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ее"; else izmRuMorf.okonchanie = "ое"; break; case '6': izmRuMorf.okonchanie = "ее"; break; } break; case RuPadezh.Tvoritelniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ым"; break; case '2': izmRuMorf.okonchanie = "им"; break; case '3': izmRuMorf.okonchanie = "им"; break; case '4': izmRuMorf.okonchanie = "им"; break; case '5': izmRuMorf.okonchanie = "ым"; break; case '6': izmRuMorf.okonchanie = "им"; break; } break; case RuPadezh.Predlozhniy: switch (firstIndex) { case '1': izmRuMorf.okonchanie = "ом"; break; case '2': izmRuMorf.okonchanie = "ем"; break; case '3': izmRuMorf.okonchanie = "ом"; break; case '4': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ем"; else izmRuMorf.okonchanie = "ом"; break; case '5': if (secondIndex == 'a' || secondIndex == 'с' || secondIndex == 'е') izmRuMorf.okonchanie = "ем"; else izmRuMorf.okonchanie = "ом"; break; case '6': izmRuMorf.okonchanie = "ем"; break; } break; } break; } break; } //и в итоге присвaивaем нaшему слову измененное //склонением знaчение if (posl_sya) izmRuMorf.okonchanie = izmRuMorf.okonchanie + "ся"; if (slovo.ruSlovo.ruPadezh == RuPadezh.Predlozhniy && slovo.ruSlovo.ruChislo == RuChislo.Edinstvennoe) if (slovo.ruSlovo.ruRod == RuRod.Srednij || slovo.ruSlovo.ruRod == RuRod.Muzhskoj) slovo.rSlovo = "о " + izmRuMorf.osnova + izmRuMorf.okonchanie; else slovo.rSlovo = izmRuMorf.osnova + izmRuMorf.okonchanie; else slovo.rSlovo = izmRuMorf.osnova + izmRuMorf.okonchanie; }
protected void TranslateOsnova(ref Slovo slovo) { //Вытaскивaем из словaря русское слвоо в нaчaльной форме //MessageBox.Show(osnova); Dictionary dict = new Dictionary(); ArrayList al = dict.GetStrict(osnova); if (al.Count > 0) { slovo.rSlovo = ((DictSlovo)al[0]).Rus; } else { slovo.rSlovo = ""; throw new ETRTranslatorException(ETRError.SlovaNetVSlovare, "Слово не нaйдено в словaре"); } }
protected void AnalyzeRod(ref Slovo slovo) { slovo.rod = Rod.Obshij; if(slovo.eSlovo.IndexOf("]") != -1) { slovo.rod = Rod.Muzhskoj; slovo.ruSlovo.ruRod = RuRod.Muzhskoj; } if(slovo.eSlovo.IndexOf("[") != -1) { slovo.rod = Rod.Zhenskij; slovo.ruSlovo.ruRod = RuRod.Zhenskij; } if(slovo.eSlovo.IndexOf("EVA") != -1) { slovo.rod = Rod.Muzhskoj; slovo.ruSlovo.ruRod = RuRod.Muzhskoj; } if(slovo.eSlovo.IndexOf("RVA") != -1) { slovo.rod = Rod.Zhenskij; slovo.ruSlovo.ruRod = RuRod.Zhenskij; } }
protected void FindOsnova(ref Slovo slovo) { osnova = slovo.eSlovo; osnova = osnova.Replace("EVA",""); osnova = osnova.Replace("RVA",""); osnova = osnova.Replace("QBA",""); osnova = osnova.Replace("WBA",""); if(osnova.Length>3 && osnova.Substring(0,2)==osnova.Substring(2,2)) osnova = osnova.Remove(0,2); if(osnova[0] == 'W') osnova = "Q"+osnova.Substring(1); while(osnova[osnova.Length-1]=='-') { osnova = osnova.Remove(osnova.Length-1,1); } }
public GlagModule(Slovo slovo, bool haract)//для тестирования { if (slovo != null) { if (haract) this.haract = Haract.глагол; else this.haract = Haract.деепричастие; this.c = slovo; LicoConvert(); c.rSlovo = RusForm(slovo.rSlovo); } }
protected void PostAnalyzeRod(ref Slovo slovo) { if(slovo.rod == Rod.Obshij) { Zaliznyak z = new Zaliznyak(); string s = (string)(z.GetStrict(slovo.rSlovo.Replace("ё","е")))[0]; string paradigma = s.Split(';')[1]; string digits = "0123456789"; string osnBukvSimvol = s.Substring(s.IndexOfAny(digits.ToCharArray())); osnBukvSimvol = osnBukvSimvol.Substring(osnBukvSimvol.IndexOf(' ')); if(osnBukvSimvol.IndexOfAny(digits.ToCharArray()) != -1) osnBukvSimvol = osnBukvSimvol.Substring(0,osnBukvSimvol.IndexOfAny(digits.ToCharArray())); if(osnBukvSimvol.IndexOf("жо")!=-1) { slovo.ruSlovo.ruRod = RuRod.Zhenskij; slovo.odushevlennost = Odushevlennost.Odushevlennoe; } else if(osnBukvSimvol.IndexOf("мо")!=-1) { slovo.ruSlovo.ruRod = RuRod.Muzhskoj; slovo.odushevlennost = Odushevlennost.Odushevlennoe; } else if(osnBukvSimvol.IndexOf("со")!=-1) { slovo.ruSlovo.ruRod = RuRod.Srednij; slovo.odushevlennost = Odushevlennost.Odushevlennoe; } else if(osnBukvSimvol.IndexOf("ж")!=-1) { slovo.ruSlovo.ruRod = RuRod.Zhenskij; slovo.odushevlennost = Odushevlennost.Neodushevlennoe; } else if(osnBukvSimvol.IndexOf("м")!=-1) { slovo.ruSlovo.ruRod = RuRod.Muzhskoj; slovo.odushevlennost = Odushevlennost.Neodushevlennoe; } else { slovo.ruSlovo.ruRod = RuRod.Srednij; slovo.odushevlennost = Odushevlennost.Neodushevlennoe; } } }
protected void AnalyzePadezh(Predlozhenie pr,int place,ref Slovo slovo) { int i = place-1; while(i>0 && (pr[i].chastRechi == ChastRechi.Prilagatelnoe || pr[i].chastRechi == ChastRechi.Prichastie || pr[i].chastRechi == ChastRechi.Mestoimenie)) { i = i-1; } if(pr[i]!=null && pr[i].chastRechi == ChastRechi.Predlog) { Slovo predlog = pr[i]; switch(predlog.eSlovo) { case "FF": slovo.padezh = Padezh.Vinitelnij; break; case "FQV": case "FJB": slovo.padezh = Padezh.Prityazhatelnij; break; case "FZP": slovo.padezh = Padezh.Datelnij; break; case "FT": slovo.padezh = Padezh.Tvoritelnij; break; case "FR": slovo.padezh = Padezh.Instrumentalnij; break; case "FZJ": slovo.padezh = Padezh.Prisvyazochnij; break; case "FOB": slovo.padezh = Padezh.Dejstviya; break; case "FZO": slovo.padezh = Padezh.Predmeta; break; case "FZE": slovo.padezh = Padezh.Napravleniya; break; case "FA": slovo.padezh = Padezh.Mestoprebivaniya; break; case "FWV": slovo.padezh = Padezh.Obrasheniya; break; case "FSVE": slovo.padezh = Padezh.Avtora; break; case "FRZF": slovo.padezh = Padezh.Nazvaniya; break; case "FVA": slovo.padezh = Padezh.Celi; break; case "FFVY": slovo.padezh = Padezh.Prichini; break; case "FFV": slovo.padezh = Padezh.Sledstviya; break; } } else { slovo.padezh = Padezh.Imenitelnij; } }
protected RuMorf AnalyzeRuMorf(Slovo slovo) { string rus = slovo.rSlovo; string ruGlas = "ёуеаояиюэыйь"; string ok = ""; string osn = rus; if(ruGlas.IndexOf(rus[rus.Length-1])!=-1) { ok = rus.Substring(rus.Length-1); osn = rus.Substring(0,rus.Length-1); } return new RuMorf(osn,ok); }
private void Izmeni_button_Click(object sender, EventArgs e) { DialogResult rezultat = MessageBox.Show("Da li ste sigurni da želiti da učinite izmenu?", "", MessageBoxButtons.YesNo); if (rezultat == DialogResult.Yes) { if (Greska_label.Text == "") { var index = SveTabele_dataGridView.SelectedCells[0].ColumnIndex; string naziv_kolone = SveTabele_dataGridView.Columns[index].Name; index = SveTabele_dataGridView.SelectedCells[0].RowIndex; string naziv_id_kolone = SveTabele_dataGridView.Columns[0].Name; string id = SveTabele_dataGridView.Rows[index].Cells[naziv_id_kolone].Value.ToString(); string value_type = SveTabele_dataGridView.SelectedCells[0].Value.GetType().ToString(); switch (value_type) { case "System.Int32": { int num; if (!int.TryParse(Izmena_textBox.Text, out num)) { Greska_label.Text = "Broj nije dobro uneta! "; } } break; case "System.String": { for (int i = 0; i < Izmena_textBox.Text.Length; ++i) { int num = Convert.ToInt32(Izmena_textBox.Text[i]); if (!(Slovo.ProveriSlovo(num) || num == 32 || num == 64)) { Greska_label.Text = "Reč nije dobro uneta! "; break; } } } break; case "System.DateTime": { } break; default: { Greska_label.Text = "Došlo je do greške! "; } break; } if (Greska_label.Text == "") { string vrednost; if (value_type == "System.DateTime") { vrednost = DateTimePicker.Value.ToString(); } else { vrednost = Izmena_textBox.Text; } if (proxy.IzmenaVrednostiTabele(izabrana_tabela, naziv_kolone, naziv_id_kolone, id, value_type, vrednost)) { Greska_label.ForeColor = Color.Green; Greska_label.Text = "Uspešno ste izmenili podatak! "; } else { Greska_label.Text = "Došlo je do greške! "; } switch (izabrana_tabela) { case "clan": { Update_TabelaClanovi(); } break; case "knjiga": { Update_TabelaKnjige(); } break; case "pisac": { Update_TabelaPisci(); } break; case "iznajmio": { Update_TabelaIznajmljivanja(); } break; } ResetFormElements(); } } } }
private void SignUp_button_Click(object sender, EventArgs e) { greska_label.ForeColor = Color.Red; greska_label.Text = ""; string greskaString = ""; if (korisnickoIme_textBox.Text != "") { if (korisnickoIme_textBox.TextLength < 5) { greskaString += "Korisničko ime mora da sadrži barem 5 znakova. "; } else { for (int i = 0; i < korisnickoIme_textBox.TextLength; ++i) { int num = Convert.ToInt32(korisnickoIme_textBox.Text[i]); if (!Slovo.ProveriSlovo(num)) { greskaString += "Korisničko ime treba da sadrži samo slova i brojeve. "; break; } } } } else { greskaString += "Niste uneli korisničko ime. "; } if (lozinka_textBox.Text != "") { if (lozinka_textBox.TextLength < 5 || lozinka_textBox.TextLength > 20) { greskaString += "Lozinka mora da sadrži između 5 i 20 znakova. "; } } else { greskaString += "Niste uneli lozinku. "; } if (lozinkaPotvrda_textBox.Text != lozinka_textBox.Text) { greskaString += "Lozinke se ne poklapaju. "; } greska_label.Text = greskaString; if (greskaString == "") { try { if (proxy.RegistrovanjeKorisnika(korisnickoIme_textBox.Text, lozinka_textBox.Text)) { greska_label.ForeColor = Color.Green; greska_label.Text = "Uspešno ste registrovani u sistem! "; } else { greska_label.ForeColor = Color.Red; greska_label.Text = "Došlo je do greške pri registrovanju! "; } } catch (FaultException <Izuzetak> izuzetak) { greska_label.ForeColor = Color.Blue; greska_label.Text += izuzetak.Detail.Razlog; } } korisnickoIme_textBox.Clear(); lozinka_textBox.Clear(); lozinkaPotvrda_textBox.Clear(); }
protected RuMorf AnalyzeRuMorf(Slovo slovo) { //Выделение окончaния и основы для склонения //Кaк это делaть в твоем случaе - читaем у Зaлизнякa. //тут я остaвил зaкомментенным кaк я это делaл у //существительных //a после зaкомментенного код от бaлды нaписaнный //тупо две буквы откидывaет //хотя может тaк оно и нaдa... string rus = slovo.rSlovo; string ok = ""; string osn = rus; /* string ruGlas = "ёуеaояиюэыйь"; if(ruGlas.IndexOf(rus[rus.Length-1])!=-1) { ok = rus.Substring(rus.Length-1); osn = rus.Substring(0,rus.Length-1); } */ ok = rus.Substring(rus.Length - 2); osn = rus.Substring(0, rus.Length - 2); return new RuMorf(osn, ok); }
public void PostAnalyze(Predlozhenie pr,int place,ref Slovo slovo) { PostAnalyzeRod(ref slovo); PostAnalyzePadezh(pr,place,ref slovo); }
private string MestChange(Slovo inSlovo, string ruSlovo){ // 1. Склонение личных местоимений я, ты; мы, вы; он (оно, она), они. // Я (1 лицо) if (ruSlovo=="я") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "я"; break; case RuPadezh.Roditelniy: ruSlovo = "меня"; break; case RuPadezh.Datelniy: ruSlovo = "мне"; break; case RuPadezh.Vinitelniy: ruSlovo = "меня"; break; case RuPadezh.Tvoritelniy: ruSlovo = "мной"; break; case RuPadezh.Predlozhniy: ruSlovo = "мне"; break; } } // ** // ты (1 лицо) if (ruSlovo=="ты") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "ты"; break; case RuPadezh.Roditelniy: ruSlovo = "тебя"; break; case RuPadezh.Datelniy: ruSlovo = "тебе"; break; case RuPadezh.Vinitelniy: ruSlovo = "тебя"; break; case RuPadezh.Tvoritelniy: ruSlovo = "тобой"; break; case RuPadezh.Predlozhniy: ruSlovo = "тебе"; break; } } // ** // мы (2лицо) if (ruSlovo=="мы") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "мы"; break; case RuPadezh.Roditelniy: ruSlovo = "нас"; break; case RuPadezh.Datelniy: ruSlovo = "нам"; break; case RuPadezh.Vinitelniy: ruSlovo = "нас"; break; case RuPadezh.Tvoritelniy: ruSlovo = "нами"; break; case RuPadezh.Predlozhniy: ruSlovo = "нас"; break; } } // ** // вы (2 лицо) if (ruSlovo=="вы") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "вы"; break; case RuPadezh.Roditelniy: ruSlovo = "вас"; break; case RuPadezh.Datelniy: ruSlovo = "вам"; break; case RuPadezh.Vinitelniy: ruSlovo = "вас"; break; case RuPadezh.Tvoritelniy: ruSlovo = "вами"; break; case RuPadezh.Predlozhniy: ruSlovo = "вас"; break; } } // ** // он if (ruSlovo=="он") { switch(inSlovo.ruSlovo.ruChislo) { case RuChislo.Edinstvennoe: switch(inSlovo.ruSlovo.ruRod) { case RuRod.Muzhskoj: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "он"; break; case RuPadezh.Roditelniy: ruSlovo = "его"; break; case RuPadezh.Datelniy: ruSlovo = "ему"; break; case RuPadezh.Vinitelniy: ruSlovo = "его"; break; case RuPadezh.Tvoritelniy: ruSlovo = "им"; break; case RuPadezh.Predlozhniy: ruSlovo = "нём"; break; } break; case RuRod.Srednij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "оно"; break; case RuPadezh.Roditelniy: ruSlovo = "его"; break; case RuPadezh.Datelniy: ruSlovo = "ему"; break; case RuPadezh.Vinitelniy: ruSlovo = "его"; break; case RuPadezh.Tvoritelniy: ruSlovo = "им"; break; case RuPadezh.Predlozhniy: ruSlovo = "нём"; break; } break; case RuRod.Zhenskij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "она"; break; case RuPadezh.Roditelniy: ruSlovo = "её"; break; case RuPadezh.Datelniy: ruSlovo = "ей"; break; case RuPadezh.Vinitelniy: ruSlovo = "её"; break; case RuPadezh.Tvoritelniy: ruSlovo = "ей"; break; case RuPadezh.Predlozhniy: ruSlovo = "ней"; break; } break; } break; case RuChislo.Mnozhestvennoe: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "они"; break; case RuPadezh.Roditelniy: ruSlovo = "их"; break; case RuPadezh.Datelniy: ruSlovo = "им"; break; case RuPadezh.Vinitelniy: ruSlovo = "их"; break; case RuPadezh.Tvoritelniy: ruSlovo = "ими"; break; case RuPadezh.Predlozhniy: ruSlovo = "них"; break; } break; } } // ** // 2. Возвратное местоимение себя не имеет формы именительного падежа; // себя if (ruSlovo=="себя") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = ""; break; case RuPadezh.Roditelniy: ruSlovo = "себя"; break; case RuPadezh.Datelniy: ruSlovo = "себе"; break; case RuPadezh.Vinitelniy: ruSlovo = "себя"; break; case RuPadezh.Tvoritelniy: ruSlovo = "собой"; break; case RuPadezh.Predlozhniy: ruSlovo = "себе"; break; } } // ** // 3. Притяжательные местоимения мой, твой, наш, ваш, свой, указательные тот, этот, такой // Мой if (ruSlovo=="мой") { switch(inSlovo.ruSlovo.ruChislo) { case RuChislo.Edinstvennoe: switch(inSlovo.ruSlovo.ruRod) { case RuRod.Muzhskoj: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "мой"; break; case RuPadezh.Roditelniy: ruSlovo = "моего"; break; case RuPadezh.Datelniy: ruSlovo = "моему"; break; case RuPadezh.Vinitelniy: ruSlovo = "мой"; break; case RuPadezh.Tvoritelniy: ruSlovo = "моим"; break; case RuPadezh.Predlozhniy: ruSlovo = "моём"; break; } break; case RuRod.Srednij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "моё"; break; case RuPadezh.Roditelniy: ruSlovo = "моего"; break; case RuPadezh.Datelniy: ruSlovo = "моему"; break; case RuPadezh.Vinitelniy: ruSlovo = "моё"; break; case RuPadezh.Tvoritelniy: ruSlovo = "моим"; break; case RuPadezh.Predlozhniy: ruSlovo = "моём"; break; } break; case RuRod.Zhenskij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "моя"; break; case RuPadezh.Roditelniy: ruSlovo = "моей"; break; case RuPadezh.Datelniy: ruSlovo = "моей"; break; case RuPadezh.Vinitelniy: ruSlovo = "мою"; break; case RuPadezh.Tvoritelniy: ruSlovo = "моей"; break; case RuPadezh.Predlozhniy: ruSlovo = "моей"; break; } break; } break; case RuChislo.Mnozhestvennoe: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "мои"; break; case RuPadezh.Roditelniy: ruSlovo = "моих"; break; case RuPadezh.Datelniy: ruSlovo = "моим"; break; case RuPadezh.Vinitelniy: ruSlovo = "мои"; break; case RuPadezh.Tvoritelniy: ruSlovo = "моими"; break; case RuPadezh.Predlozhniy: ruSlovo = "моих"; break; } break; } } //** // этот if (ruSlovo=="этот") { switch(inSlovo.ruSlovo.ruChislo) { case RuChislo.Edinstvennoe: switch(inSlovo.ruSlovo.ruRod) { case RuRod.Muzhskoj: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "этот"; break; case RuPadezh.Roditelniy: ruSlovo = "этого"; break; case RuPadezh.Datelniy: ruSlovo = "этому"; break; case RuPadezh.Vinitelniy: ruSlovo = "это"; break; case RuPadezh.Tvoritelniy: ruSlovo = "этим"; break; case RuPadezh.Predlozhniy: ruSlovo = "этом"; break; } break; case RuRod.Srednij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "это"; break; case RuPadezh.Roditelniy: ruSlovo = "этого"; break; case RuPadezh.Datelniy: ruSlovo = "этому"; break; case RuPadezh.Vinitelniy: ruSlovo = "это"; break; case RuPadezh.Tvoritelniy: ruSlovo = "этим"; break; case RuPadezh.Predlozhniy: ruSlovo = "этом"; break; } break; case RuRod.Zhenskij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "эта"; break; case RuPadezh.Roditelniy: ruSlovo = "этой"; break; case RuPadezh.Datelniy: ruSlovo = "этой"; break; case RuPadezh.Vinitelniy: ruSlovo = "эту"; break; case RuPadezh.Tvoritelniy: ruSlovo = "этой"; break; case RuPadezh.Predlozhniy: ruSlovo = "этой"; break; } break; } break; case RuChislo.Mnozhestvennoe: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "эти"; break; case RuPadezh.Roditelniy: ruSlovo = "этих"; break; case RuPadezh.Datelniy: ruSlovo = "этим"; break; case RuPadezh.Vinitelniy: ruSlovo = "эти"; break; case RuPadezh.Tvoritelniy: ruSlovo = "этими"; break; case RuPadezh.Predlozhniy: ruSlovo = "этих"; break; } break; } } // ** // Следует различать склонение местоимений самый и сам. // самый if (ruSlovo=="самый") { switch(inSlovo.ruSlovo.ruChislo) { case RuChislo.Edinstvennoe: switch(inSlovo.ruSlovo.ruRod) { case RuRod.Muzhskoj: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "самый"; break; case RuPadezh.Roditelniy: ruSlovo = "самого"; break; case RuPadezh.Datelniy: ruSlovo = "самому"; break; case RuPadezh.Vinitelniy: ruSlovo = "самый"; break; case RuPadezh.Tvoritelniy: ruSlovo = "самым"; break; case RuPadezh.Predlozhniy: ruSlovo = "самом"; break; } break; case RuRod.Srednij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "самое"; break; case RuPadezh.Roditelniy: ruSlovo = "самого"; break; case RuPadezh.Datelniy: ruSlovo = "самому"; break; case RuPadezh.Vinitelniy: ruSlovo = "самое"; break; case RuPadezh.Tvoritelniy: ruSlovo = "самым"; break; case RuPadezh.Predlozhniy: ruSlovo = "самом"; break; } break; case RuRod.Zhenskij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "самая"; break; case RuPadezh.Roditelniy: ruSlovo = "самой"; break; case RuPadezh.Datelniy: ruSlovo = "самой"; break; case RuPadezh.Vinitelniy: ruSlovo = "самую"; break; case RuPadezh.Tvoritelniy: ruSlovo = "самой"; break; case RuPadezh.Predlozhniy: ruSlovo = "самой"; break; } break; } break; case RuChislo.Mnozhestvennoe: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "самые"; break; case RuPadezh.Roditelniy: ruSlovo = "самых"; break; case RuPadezh.Datelniy: ruSlovo = "самым"; break; case RuPadezh.Vinitelniy: ruSlovo = "самые"; break; case RuPadezh.Tvoritelniy: ruSlovo = "самыми"; break; case RuPadezh.Predlozhniy: ruSlovo = "самых"; break; } break; } } // ** // сам if (ruSlovo=="сам") { switch(inSlovo.ruSlovo.ruChislo) { case RuChislo.Edinstvennoe: switch(inSlovo.ruSlovo.ruRod) { case RuRod.Muzhskoj: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "сам"; break; case RuPadezh.Roditelniy: ruSlovo = "самого"; break; case RuPadezh.Datelniy: ruSlovo = "самому"; break; case RuPadezh.Vinitelniy: ruSlovo = "сам"; break; case RuPadezh.Tvoritelniy: ruSlovo = "самим"; break; case RuPadezh.Predlozhniy: ruSlovo = "самом"; break; } break; case RuRod.Srednij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "само"; break; case RuPadezh.Roditelniy: ruSlovo = "самого"; break; case RuPadezh.Datelniy: ruSlovo = "самому"; break; case RuPadezh.Vinitelniy: ruSlovo = "само"; break; case RuPadezh.Tvoritelniy: ruSlovo = "самим"; break; case RuPadezh.Predlozhniy: ruSlovo = "самом"; break; } break; case RuRod.Zhenskij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "сама"; break; case RuPadezh.Roditelniy: ruSlovo = "самой"; break; case RuPadezh.Datelniy: ruSlovo = "самой"; break; case RuPadezh.Vinitelniy: ruSlovo = "саму"; break; case RuPadezh.Tvoritelniy: ruSlovo = "самой"; break; case RuPadezh.Predlozhniy: ruSlovo = "самой"; break; } break; } break; case RuChislo.Mnozhestvennoe: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "сами"; break; case RuPadezh.Roditelniy: ruSlovo = "самих"; break; case RuPadezh.Datelniy: ruSlovo = "самим"; break; case RuPadezh.Vinitelniy: ruSlovo = "сами"; break; case RuPadezh.Tvoritelniy: ruSlovo = "самими"; break; case RuPadezh.Predlozhniy: ruSlovo = "самих"; break; } break; } } // ** // Местоимение весь (всё, вся, все) // весь if (ruSlovo=="весь") { switch(inSlovo.ruSlovo.ruChislo) { case RuChislo.Edinstvennoe: switch(inSlovo.ruSlovo.ruRod) { case RuRod.Muzhskoj: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "весь"; break; case RuPadezh.Roditelniy: ruSlovo = "всего"; break; case RuPadezh.Datelniy: ruSlovo = "всему"; break; case RuPadezh.Vinitelniy: ruSlovo = "весь"; break; case RuPadezh.Tvoritelniy: ruSlovo = "всем"; break; case RuPadezh.Predlozhniy: ruSlovo = "всём"; break; } break; case RuRod.Srednij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "всё"; break; case RuPadezh.Roditelniy: ruSlovo = "всего"; break; case RuPadezh.Datelniy: ruSlovo = "всему"; break; case RuPadezh.Vinitelniy: ruSlovo = "всё"; break; case RuPadezh.Tvoritelniy: ruSlovo = "всем"; break; case RuPadezh.Predlozhniy: ruSlovo = "всём"; break; } break; case RuRod.Zhenskij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "вся"; break; case RuPadezh.Roditelniy: ruSlovo = "всей"; break; case RuPadezh.Datelniy: ruSlovo = "всей"; break; case RuPadezh.Vinitelniy: ruSlovo = "всю"; break; case RuPadezh.Tvoritelniy: ruSlovo = "всей"; break; case RuPadezh.Predlozhniy: ruSlovo = "всей"; break; } break; } break; case RuChislo.Mnozhestvennoe: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "все"; break; case RuPadezh.Roditelniy: ruSlovo = "всех"; break; case RuPadezh.Datelniy: ruSlovo = "всем"; break; case RuPadezh.Vinitelniy: ruSlovo = "все"; break; case RuPadezh.Tvoritelniy: ruSlovo = "всеми"; break; case RuPadezh.Predlozhniy: ruSlovo = "всех"; break; } break; } } // ** //4. Вопросительные и относительные местоимения кто и что и отрицательные местоимения никто, ничто // кто if (ruSlovo=="кто") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "кто"; break; case RuPadezh.Roditelniy: ruSlovo = "кого"; break; case RuPadezh.Datelniy: ruSlovo = "кому"; break; case RuPadezh.Vinitelniy: ruSlovo = "кого"; break; case RuPadezh.Tvoritelniy: ruSlovo = "кем"; break; case RuPadezh.Predlozhniy: ruSlovo = "ком"; break; } } // ** // что if (ruSlovo=="что") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "что"; break; case RuPadezh.Roditelniy: ruSlovo = "чего"; break; case RuPadezh.Datelniy: ruSlovo = "чему"; break; case RuPadezh.Vinitelniy: ruSlovo = "что"; break; case RuPadezh.Tvoritelniy: ruSlovo = "чем"; break; case RuPadezh.Predlozhniy: ruSlovo = "чём"; break; } } // ** // никто if (ruSlovo=="никто") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "никто"; break; case RuPadezh.Roditelniy: ruSlovo = "никого"; break; case RuPadezh.Datelniy: ruSlovo = "никому"; break; case RuPadezh.Vinitelniy: ruSlovo = "никого"; break; case RuPadezh.Tvoritelniy: ruSlovo = "никем"; break; case RuPadezh.Predlozhniy: ruSlovo = "ни о ком"; break; } } // ** // ничто if (ruSlovo=="ничто") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "ничто"; break; case RuPadezh.Roditelniy: ruSlovo = "ничего"; break; case RuPadezh.Datelniy: ruSlovo = "ничему"; break; case RuPadezh.Vinitelniy: ruSlovo = "никого"; break; case RuPadezh.Tvoritelniy: ruSlovo = "ничем"; break; case RuPadezh.Predlozhniy: ruSlovo = "ни о чём"; break; } } // ** // 5. Отрицательные местоимения некого, нечего не имеют форм именительного падежа // некого if (ruSlovo=="некого") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = ""; break; case RuPadezh.Roditelniy: ruSlovo = "не у кого"; break; case RuPadezh.Datelniy: ruSlovo = "некому"; break; case RuPadezh.Vinitelniy: ruSlovo = "некого"; break; case RuPadezh.Tvoritelniy: ruSlovo = "некем"; break; case RuPadezh.Predlozhniy: ruSlovo = "не о ком"; break; } } // ** // нечего if (ruSlovo=="нечего") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = ""; break; case RuPadezh.Roditelniy: ruSlovo = "не у чего"; break; case RuPadezh.Datelniy: ruSlovo = "нечему"; break; case RuPadezh.Vinitelniy: ruSlovo = "некого"; break; case RuPadezh.Tvoritelniy: ruSlovo = "нечем"; break; case RuPadezh.Predlozhniy: ruSlovo = "не о чем"; break; } } // ** // Неопределённое местоимение некий // некий if (ruSlovo=="некий") { switch(inSlovo.ruSlovo.ruChislo) { case RuChislo.Edinstvennoe: switch(inSlovo.ruSlovo.ruRod) { case RuRod.Muzhskoj: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "некий"; break; case RuPadezh.Roditelniy: ruSlovo = "некоего"; break; case RuPadezh.Datelniy: ruSlovo = "некоему"; break; case RuPadezh.Vinitelniy: ruSlovo = "некий"; break; case RuPadezh.Tvoritelniy: ruSlovo = "некоим"; break; case RuPadezh.Predlozhniy: ruSlovo = "некоем"; break; } break; case RuRod.Srednij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "некое"; break; case RuPadezh.Roditelniy: ruSlovo = "некоего"; break; case RuPadezh.Datelniy: ruSlovo = "некоему"; break; case RuPadezh.Vinitelniy: ruSlovo = "некое"; break; case RuPadezh.Tvoritelniy: ruSlovo = "некоим"; break; case RuPadezh.Predlozhniy: ruSlovo = "некоем"; break; } break; case RuRod.Zhenskij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "некая"; break; case RuPadezh.Roditelniy: ruSlovo = "некоей"; break; case RuPadezh.Datelniy: ruSlovo = "некоей"; break; case RuPadezh.Vinitelniy: ruSlovo = "некую"; break; case RuPadezh.Tvoritelniy: ruSlovo = "некоей"; break; case RuPadezh.Predlozhniy: ruSlovo = "некоей"; break; } break; } break; case RuChislo.Mnozhestvennoe: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "некие"; break; case RuPadezh.Roditelniy: ruSlovo = "некоих"; break; case RuPadezh.Datelniy: ruSlovo = "некоим"; break; case RuPadezh.Vinitelniy: ruSlovo = "некие"; break; case RuPadezh.Tvoritelniy: ruSlovo = "некоими"; break; case RuPadezh.Predlozhniy: ruSlovo = "некоих"; break; } break; } } // ** // 8. Местоимения таков, каков, некто, нечто не склоняются. if (ruSlovo=="один") { switch(inSlovo.ruSlovo.ruRod) { case RuRod.Muzhskoj: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "один"; break; case RuPadezh.Roditelniy: ruSlovo = "одного"; break; case RuPadezh.Datelniy: ruSlovo = "одному"; break; case RuPadezh.Vinitelniy: ruSlovo = "один"; break; case RuPadezh.Tvoritelniy: ruSlovo = "одним"; break; case RuPadezh.Predlozhniy: ruSlovo = "одном"; break; } break; case RuRod.Srednij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "одно"; break; case RuPadezh.Roditelniy: ruSlovo = "одного"; break; case RuPadezh.Datelniy: ruSlovo = "одному"; break; case RuPadezh.Vinitelniy: ruSlovo = "одно"; break; case RuPadezh.Tvoritelniy: ruSlovo = "одним"; break; case RuPadezh.Predlozhniy: ruSlovo = "одном"; break; } break; case RuRod.Zhenskij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "одна"; break; case RuPadezh.Roditelniy: ruSlovo = "одной"; break; case RuPadezh.Datelniy: ruSlovo = "одной"; break; case RuPadezh.Vinitelniy: ruSlovo = "одну"; break; case RuPadezh.Tvoritelniy: ruSlovo = "одной"; break; case RuPadezh.Predlozhniy: ruSlovo = "одной"; break; } break; } } //** // Два if (ruSlovo=="два") { switch(inSlovo.ruSlovo.ruRod) { case RuRod.Muzhskoj: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "два"; break; case RuPadezh.Roditelniy: ruSlovo = "две"; break; case RuPadezh.Datelniy: ruSlovo = "двум"; break; case RuPadezh.Vinitelniy: ruSlovo = "два"; break; case RuPadezh.Tvoritelniy: ruSlovo = "двумя"; break; case RuPadezh.Predlozhniy: ruSlovo = "две"; break; } break; case RuRod.Srednij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "два"; break; case RuPadezh.Roditelniy: ruSlovo = "две"; break; case RuPadezh.Datelniy: ruSlovo = "двум"; break; case RuPadezh.Vinitelniy: ruSlovo = "две"; break; case RuPadezh.Tvoritelniy: ruSlovo = "двумя"; break; case RuPadezh.Predlozhniy: ruSlovo = "две"; break; } break; case RuRod.Zhenskij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "две"; break; case RuPadezh.Roditelniy: ruSlovo = "две"; break; case RuPadezh.Datelniy: ruSlovo = "двум"; break; case RuPadezh.Vinitelniy: ruSlovo = "две"; break; case RuPadezh.Tvoritelniy: ruSlovo = "двумя"; break; case RuPadezh.Predlozhniy: ruSlovo = "две"; break; } break; } } // ** // Три if (ruSlovo=="три") { switch(inSlovo.ruSlovo.ruRod) { case RuRod.Muzhskoj: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "три"; break; case RuPadezh.Roditelniy: ruSlovo = "трёх"; break; case RuPadezh.Datelniy: ruSlovo = "трём"; break; case RuPadezh.Vinitelniy: ruSlovo = "три"; break; case RuPadezh.Tvoritelniy: ruSlovo = "тремя"; break; case RuPadezh.Predlozhniy: ruSlovo = "трёх"; break; } break; case RuRod.Srednij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "три"; break; case RuPadezh.Roditelniy: ruSlovo = "трёх"; break; case RuPadezh.Datelniy: ruSlovo = "трём"; break; case RuPadezh.Vinitelniy: ruSlovo = "трёх"; break; case RuPadezh.Tvoritelniy: ruSlovo = "тремя"; break; case RuPadezh.Predlozhniy: ruSlovo = "трёх"; break; } break; case RuRod.Zhenskij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "три"; break; case RuPadezh.Roditelniy: ruSlovo = "трёх"; break; case RuPadezh.Datelniy: ruSlovo = "трём"; break; case RuPadezh.Vinitelniy: ruSlovo = "трёх"; break; case RuPadezh.Tvoritelniy: ruSlovo = "тремя"; break; case RuPadezh.Predlozhniy: ruSlovo = "трёх"; break; } break; } } // ** // Четыре if (ruSlovo=="четыре") { switch(inSlovo.ruSlovo.ruRod) { case RuRod.Muzhskoj: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "четыре"; break; case RuPadezh.Roditelniy: ruSlovo = "четырёх"; break; case RuPadezh.Datelniy: ruSlovo = "четырём"; break; case RuPadezh.Vinitelniy: ruSlovo = "четыре"; break; case RuPadezh.Tvoritelniy: ruSlovo = "четырьмя"; break; case RuPadezh.Predlozhniy: ruSlovo = "четырёх"; break; } break; case RuRod.Srednij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "четыре"; break; case RuPadezh.Roditelniy: ruSlovo = "четырёх"; break; case RuPadezh.Datelniy: ruSlovo = "четырём"; break; case RuPadezh.Vinitelniy: ruSlovo = "четырёх"; break; case RuPadezh.Tvoritelniy: ruSlovo = "четырьмя"; break; case RuPadezh.Predlozhniy: ruSlovo = "четырёх"; break; } break; case RuRod.Zhenskij: switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "четыре"; break; case RuPadezh.Roditelniy: ruSlovo = "четырёх"; break; case RuPadezh.Datelniy: ruSlovo = "четырём"; break; case RuPadezh.Vinitelniy: ruSlovo = "четырёх"; break; case RuPadezh.Tvoritelniy: ruSlovo = "четырьмя"; break; case RuPadezh.Predlozhniy: ruSlovo = "четырёх"; break; } break; } } // ** // Пять if (ruSlovo=="пять") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "пять"; break; case RuPadezh.Roditelniy: ruSlovo = "пяти"; break; case RuPadezh.Datelniy: ruSlovo = "пяти"; break; case RuPadezh.Vinitelniy: ruSlovo = "пять"; break; case RuPadezh.Tvoritelniy: ruSlovo = "пятью"; break; case RuPadezh.Predlozhniy: ruSlovo = "пяти"; break; } } // ** // Шесть if (ruSlovo=="шесть") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "шесть"; break; case RuPadezh.Roditelniy: ruSlovo = "шести"; break; case RuPadezh.Datelniy: ruSlovo = "шести"; break; case RuPadezh.Vinitelniy: ruSlovo = "шесть"; break; case RuPadezh.Tvoritelniy: ruSlovo = "шестью"; break; case RuPadezh.Predlozhniy: ruSlovo = "шести"; break; } } // ** // семь if (ruSlovo=="семь") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "семь"; break; case RuPadezh.Roditelniy: ruSlovo = "семи"; break; case RuPadezh.Datelniy: ruSlovo = "семи"; break; case RuPadezh.Vinitelniy: ruSlovo = "семь"; break; case RuPadezh.Tvoritelniy: ruSlovo = "семью"; break; case RuPadezh.Predlozhniy: ruSlovo = "семи"; break; } } // ** // восемь if (ruSlovo=="восемь") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "восемь"; break; case RuPadezh.Roditelniy: ruSlovo = "восеми"; break; case RuPadezh.Datelniy: ruSlovo = "восеми"; break; case RuPadezh.Vinitelniy: ruSlovo = "восемь"; break; case RuPadezh.Tvoritelniy: ruSlovo = "восемью"; break; case RuPadezh.Predlozhniy: ruSlovo = "восеми"; break; } } // ** // девять if (ruSlovo=="девять") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "девять"; break; case RuPadezh.Roditelniy: ruSlovo = "девяти"; break; case RuPadezh.Datelniy: ruSlovo = "девяти"; break; case RuPadezh.Vinitelniy: ruSlovo = "девять"; break; case RuPadezh.Tvoritelniy: ruSlovo = "девятью"; break; case RuPadezh.Predlozhniy: ruSlovo = "девяти"; break; } } // ** // десять if (ruSlovo=="десять") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "десять"; break; case RuPadezh.Roditelniy: ruSlovo = "десяти"; break; case RuPadezh.Datelniy: ruSlovo = "десяти"; break; case RuPadezh.Vinitelniy: ruSlovo = "десять"; break; case RuPadezh.Tvoritelniy: ruSlovo = "десятью"; break; case RuPadezh.Predlozhniy: ruSlovo = "десяти"; break; } } // ** // одиннадцать if (ruSlovo=="одиннадцать") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "одиннадцать"; break; case RuPadezh.Roditelniy: ruSlovo = "одиннадцати"; break; case RuPadezh.Datelniy: ruSlovo = "одиннадцати"; break; case RuPadezh.Vinitelniy: ruSlovo = "одиннадцать"; break; case RuPadezh.Tvoritelniy: ruSlovo = "одиннадцатью"; break; case RuPadezh.Predlozhniy: ruSlovo = "одиннадцати"; break; } } // ** // двенадцать if (ruSlovo=="двенадцать") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "двенадцать"; break; case RuPadezh.Roditelniy: ruSlovo = "двенадцати"; break; case RuPadezh.Datelniy: ruSlovo = "двенадцати"; break; case RuPadezh.Vinitelniy: ruSlovo = "двенадцать"; break; case RuPadezh.Tvoritelniy: ruSlovo = "двенадцатью"; break; case RuPadezh.Predlozhniy: ruSlovo = "двенадцати"; break; } } // ** // тринадцать if (ruSlovo=="тринадцать") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "тринадцать"; break; case RuPadezh.Roditelniy: ruSlovo = "тринадцати"; break; case RuPadezh.Datelniy: ruSlovo = "тринадцати"; break; case RuPadezh.Vinitelniy: ruSlovo = "тринадцать"; break; case RuPadezh.Tvoritelniy: ruSlovo = "тринадцатью"; break; case RuPadezh.Predlozhniy: ruSlovo = "тринадцати"; break; } } // ** // четырнадцать if (ruSlovo=="четырнадцать") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "четырнадцать"; break; case RuPadezh.Roditelniy: ruSlovo = "четырнадцати"; break; case RuPadezh.Datelniy: ruSlovo = "четырнадцати"; break; case RuPadezh.Vinitelniy: ruSlovo = "четырнадцать"; break; case RuPadezh.Tvoritelniy: ruSlovo = "четырнадцатью"; break; case RuPadezh.Predlozhniy: ruSlovo = "четырнадцати"; break; } } // ** // пятнадцать if (ruSlovo=="пятнадцать") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "пятнадцать"; break; case RuPadezh.Roditelniy: ruSlovo = "пятнадцати"; break; case RuPadezh.Datelniy: ruSlovo = "пятнадцати"; break; case RuPadezh.Vinitelniy: ruSlovo = "пятнадцать"; break; case RuPadezh.Tvoritelniy: ruSlovo = "пятнадцатью"; break; case RuPadezh.Predlozhniy: ruSlovo = "пятнадцати"; break; } } // ** // шестнадцать if (ruSlovo=="шестнадцать") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "шестнадцать"; break; case RuPadezh.Roditelniy: ruSlovo = "шестнадцати"; break; case RuPadezh.Datelniy: ruSlovo = "шестнадцати"; break; case RuPadezh.Vinitelniy: ruSlovo = "шестнадцать"; break; case RuPadezh.Tvoritelniy: ruSlovo = "шестнадцатью"; break; case RuPadezh.Predlozhniy: ruSlovo = "шестнадцати"; break; } } // ** // семнадцать if (ruSlovo=="семнадцать") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "семнадцать"; break; case RuPadezh.Roditelniy: ruSlovo = "семнадцати"; break; case RuPadezh.Datelniy: ruSlovo = "семнадцати"; break; case RuPadezh.Vinitelniy: ruSlovo = "семнадцать"; break; case RuPadezh.Tvoritelniy: ruSlovo = "семнадцатью"; break; case RuPadezh.Predlozhniy: ruSlovo = "семнадцати"; break; } } // ** // восемнадцать if (ruSlovo=="восемнадцать") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "восемнадцать"; break; case RuPadezh.Roditelniy: ruSlovo = "восемнадцати"; break; case RuPadezh.Datelniy: ruSlovo = "восемнадцати"; break; case RuPadezh.Vinitelniy: ruSlovo = "восемнадцать"; break; case RuPadezh.Tvoritelniy: ruSlovo = "восемнадцатью"; break; case RuPadezh.Predlozhniy: ruSlovo = "восемнадцати"; break; } } // ** // девятнадцать if (ruSlovo=="девятнадцать") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "девятнадцать"; break; case RuPadezh.Roditelniy: ruSlovo = "девятнадцати"; break; case RuPadezh.Datelniy: ruSlovo = "девятнадцати"; break; case RuPadezh.Vinitelniy: ruSlovo = "девятнадцать"; break; case RuPadezh.Tvoritelniy: ruSlovo = "девятнадцатью"; break; case RuPadezh.Predlozhniy: ruSlovo = "девятнадцати"; break; } } // ** // двадцать if (ruSlovo=="двадцать") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "двадцать"; break; case RuPadezh.Roditelniy: ruSlovo = "двадцати"; break; case RuPadezh.Datelniy: ruSlovo = "двадцати"; break; case RuPadezh.Vinitelniy: ruSlovo = "двадцать"; break; case RuPadezh.Tvoritelniy: ruSlovo = "двадцатью"; break; case RuPadezh.Predlozhniy: ruSlovo = "двадцати"; break; } } // ** // тридцать if (ruSlovo=="тридцать") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "тридцать"; break; case RuPadezh.Roditelniy: ruSlovo = "тридцати"; break; case RuPadezh.Datelniy: ruSlovo = "тридцати"; break; case RuPadezh.Vinitelniy: ruSlovo = "тридцать"; break; case RuPadezh.Tvoritelniy: ruSlovo = "тридцатью"; break; case RuPadezh.Predlozhniy: ruSlovo = "тридцати"; break; } } // ** // сорок if (ruSlovo=="сорок") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "сорок"; break; case RuPadezh.Roditelniy: ruSlovo = "сорока"; break; case RuPadezh.Datelniy: ruSlovo = "сорока"; break; case RuPadezh.Vinitelniy: ruSlovo = "сорок"; break; case RuPadezh.Tvoritelniy: ruSlovo = "сорока"; break; case RuPadezh.Predlozhniy: ruSlovo = "сорока"; break; } } // ** // пятьдесят if (ruSlovo=="пятьдесят") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "пятьдесят"; break; case RuPadezh.Roditelniy: ruSlovo = "пятидесяти"; break; case RuPadezh.Datelniy: ruSlovo = "пятидесяти"; break; case RuPadezh.Vinitelniy: ruSlovo = "пятьдесят"; break; case RuPadezh.Tvoritelniy: ruSlovo = "пятьюдесятью"; break; case RuPadezh.Predlozhniy: ruSlovo = "пятидесяти"; break; } } // ** // шестьдесят if (ruSlovo=="шестьдесят") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "шестьдесят"; break; case RuPadezh.Roditelniy: ruSlovo = "шестидесяти"; break; case RuPadezh.Datelniy: ruSlovo = "шестидесяти"; break; case RuPadezh.Vinitelniy: ruSlovo = "шестьдесят"; break; case RuPadezh.Tvoritelniy: ruSlovo = "шестьюдесятью"; break; case RuPadezh.Predlozhniy: ruSlovo = "шестидесяти"; break; } } // ** // семьдесят if (ruSlovo=="семьдесят") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "семьдесят"; break; case RuPadezh.Roditelniy: ruSlovo = "семидесяти"; break; case RuPadezh.Datelniy: ruSlovo = "семидесяти"; break; case RuPadezh.Vinitelniy: ruSlovo = "семьдесят"; break; case RuPadezh.Tvoritelniy: ruSlovo = "семьюдесятью"; break; case RuPadezh.Predlozhniy: ruSlovo = "семидесяти"; break; } } // ** // восемьдесят if (ruSlovo=="восемьдесят") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "восемьдесят"; break; case RuPadezh.Roditelniy: ruSlovo = "восемидесяти"; break; case RuPadezh.Datelniy: ruSlovo = "восемидесяти"; break; case RuPadezh.Vinitelniy: ruSlovo = "восемьдесят"; break; case RuPadezh.Tvoritelniy: ruSlovo = "восемьюдесятью"; break; case RuPadezh.Predlozhniy: ruSlovo = "восемидесяти"; break; } } // ** // девяносто if (ruSlovo=="девяносто") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "девяносто"; break; case RuPadezh.Roditelniy: ruSlovo = "девяноста"; break; case RuPadezh.Datelniy: ruSlovo = "девяноста"; break; case RuPadezh.Vinitelniy: ruSlovo = "девяносто"; break; case RuPadezh.Tvoritelniy: ruSlovo = "девяноста"; break; case RuPadezh.Predlozhniy: ruSlovo = "девяноста"; break; } } // ** // сто if (ruSlovo=="сто") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "сто"; break; case RuPadezh.Roditelniy: ruSlovo = "ста"; break; case RuPadezh.Datelniy: ruSlovo = "ста"; break; case RuPadezh.Vinitelniy: ruSlovo = "сто"; break; case RuPadezh.Tvoritelniy: ruSlovo = "ста"; break; case RuPadezh.Predlozhniy: ruSlovo = "ста"; break; } } // ** // двести if (ruSlovo=="двести") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "двести"; break; case RuPadezh.Roditelniy: ruSlovo = "двесот"; break; case RuPadezh.Datelniy: ruSlovo = "двумстам"; break; case RuPadezh.Vinitelniy: ruSlovo = "двести"; break; case RuPadezh.Tvoritelniy: ruSlovo = "двумястами"; break; case RuPadezh.Predlozhniy: ruSlovo = "двестах"; break; } } // ** // триста if (ruSlovo=="триста") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "триста"; break; case RuPadezh.Roditelniy: ruSlovo = "трёхсот"; break; case RuPadezh.Datelniy: ruSlovo = "трёмстам"; break; case RuPadezh.Vinitelniy: ruSlovo = "триста"; break; case RuPadezh.Tvoritelniy: ruSlovo = "трёмстами"; break; case RuPadezh.Predlozhniy: ruSlovo = "трёхстах"; break; } } // ** // четыреста if (ruSlovo=="четыреста") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "четыреста"; break; case RuPadezh.Roditelniy: ruSlovo = "четырёхсот"; break; case RuPadezh.Datelniy: ruSlovo = "четырёмстам"; break; case RuPadezh.Vinitelniy: ruSlovo = "четыреста"; break; case RuPadezh.Tvoritelniy: ruSlovo = "четырёмстами"; break; case RuPadezh.Predlozhniy: ruSlovo = "четырёхстах"; break; } } // ** // пятьсот if (ruSlovo=="пятьсот") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "пятьсот"; break; case RuPadezh.Roditelniy: ruSlovo = "пятисот"; break; case RuPadezh.Datelniy: ruSlovo = "пятистам"; break; case RuPadezh.Vinitelniy: ruSlovo = "пятьсот"; break; case RuPadezh.Tvoritelniy: ruSlovo = "пятьюстами"; break; case RuPadezh.Predlozhniy: ruSlovo = "пятистах"; break; } } // ** // шестьсот if (ruSlovo=="шестьсот") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "шестьсот"; break; case RuPadezh.Roditelniy: ruSlovo = "шестисот"; break; case RuPadezh.Datelniy: ruSlovo = "шестистам"; break; case RuPadezh.Vinitelniy: ruSlovo = "шестьсот"; break; case RuPadezh.Tvoritelniy: ruSlovo = "шестьюстами"; break; case RuPadezh.Predlozhniy: ruSlovo = "шестистах"; break; } } // ** // семьсот if (ruSlovo=="семьсот") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "семьсот"; break; case RuPadezh.Roditelniy: ruSlovo = "семисот"; break; case RuPadezh.Datelniy: ruSlovo = "семистам"; break; case RuPadezh.Vinitelniy: ruSlovo = "семьсот"; break; case RuPadezh.Tvoritelniy: ruSlovo = "семьюстами"; break; case RuPadezh.Predlozhniy: ruSlovo = "семистах"; break; } } // ** // восемьсот if (ruSlovo=="восемьсот") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "восемьсот"; break; case RuPadezh.Roditelniy: ruSlovo = "восемисот"; break; case RuPadezh.Datelniy: ruSlovo = "восемистам"; break; case RuPadezh.Vinitelniy: ruSlovo = "восемьсот"; break; case RuPadezh.Tvoritelniy: ruSlovo = "восемьюстами"; break; case RuPadezh.Predlozhniy: ruSlovo = "восемистах"; break; } } // ** // девятьсот if (ruSlovo=="девятьсот") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "девятьсот"; break; case RuPadezh.Roditelniy: ruSlovo = "девятисот"; break; case RuPadezh.Datelniy: ruSlovo = "девятистам"; break; case RuPadezh.Vinitelniy: ruSlovo = "девятьсот"; break; case RuPadezh.Tvoritelniy: ruSlovo = "девятьюстами"; break; case RuPadezh.Predlozhniy: ruSlovo = "девятистах"; break; } } // ** // тясяча if (ruSlovo=="тысяча") { switch(inSlovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: ruSlovo = "тысяча"; break; case RuPadezh.Roditelniy: ruSlovo = "тысячи"; break; case RuPadezh.Datelniy: ruSlovo = "тысяче"; break; case RuPadezh.Vinitelniy: ruSlovo = "тысячу"; break; case RuPadezh.Tvoritelniy: ruSlovo = "тысячей"; break; case RuPadezh.Predlozhniy: ruSlovo = "тысяче"; break; } } return ruSlovo; }
void AnalyzeGramTab(ref Slovo slovo,string flex,string gr) { string gramstring = rusgramtab[flex]+","+rusgramtab[gr]+","; // System.Windows.Forms.MessageBox.Show(flex+" - "+gr); // System.Windows.Forms.MessageBox.Show(gramstring); //Анализируем часть речи if(gramstring.IndexOf("С,")!=-1) slovo.chastRechi = ChastRechi.Suschestvitelnoe; else if (gramstring.IndexOf("П,")!=-1) slovo.chastRechi = ChastRechi.Prilagatelnoe; else if (gramstring.IndexOf("МС,")!=-1) slovo.chastRechi = ChastRechi.Mestoimenie; else if (gramstring.IndexOf("Г,")!=-1) slovo.chastRechi = ChastRechi.Glagol; else if (gramstring.IndexOf("ПРИЧАСТИЕ,")!=-1) slovo.chastRechi = ChastRechi.Prichastie; else if (gramstring.IndexOf("ДЕЕПРИЧАСТИЕ,")!=-1) slovo.chastRechi = ChastRechi.Deeprichastie; else if (gramstring.IndexOf("ИНФИНИТИВ,")!=-1) { slovo.chastRechi = ChastRechi.Glagol; slovo.naklonenie = Naklonenie.Infinitiv; } else if (gramstring.IndexOf("ЧИСЛ,")!=-1) slovo.chastRechi = ChastRechi.Chislitelnoe; else if (gramstring.IndexOf("ЧИСЛ-П,")!=-1) slovo.chastRechi = ChastRechi.ChislitelnoePoryadkovoe; else if (gramstring.IndexOf("Н,")!=-1) slovo.chastRechi = ChastRechi.Narechie; else if (gramstring.IndexOf("ПРЕДК,")!=-1) { slovo.chastRechi = ChastRechi.Prilagatelnoe; slovo.ruSlovo.ruRod = RuRod.Srednij; slovo.ruSlovo.ruForma = RuForma.Kratkaya; } else if (gramstring.IndexOf("ПРЕДЛ,")!=-1) slovo.chastRechi = ChastRechi.Predlog; else if (gramstring.IndexOf("СОЮЗ,")!=-1) slovo.chastRechi = ChastRechi.Souz; else if (gramstring.IndexOf("МЕЖД,")!=-1) slovo.chastRechi = ChastRechi.Mezhdometie; else if (gramstring.IndexOf("ЧАСТ,")!=-1) slovo.chastRechi = ChastRechi.Chastica; else if (gramstring.IndexOf("ВВОДН,")!=-1) slovo.chastRechi = ChastRechi.Mezhdometie; else if (gramstring.IndexOf("КР_ПРИЛ,")!=-1) { slovo.chastRechi = ChastRechi.Prilagatelnoe; slovo.ruSlovo.ruForma = RuForma.Kratkaya; } else if (gramstring.IndexOf("КР_ПРИЧАСТИЕ,")!=-1) { slovo.chastRechi = ChastRechi.Prichastie; slovo.ruSlovo.ruForma = RuForma.Kratkaya; } //Анализ граммем if(gramstring.IndexOf("мр,")!=-1) slovo.ruSlovo.ruRod = RuRod.Muzhskoj; else if(gramstring.IndexOf("жр,")!=-1) slovo.ruSlovo.ruRod = RuRod.Zhenskij; else if(gramstring.IndexOf("ср,")!=-1) slovo.ruSlovo.ruRod = RuRod.Srednij; if(gramstring.IndexOf("од,")!=-1) slovo.odushevlennost = Odushevlennost.Odushevlennoe; else if(gramstring.IndexOf("но,")!=-1) slovo.odushevlennost = Odushevlennost.Neodushevlennoe; if(gramstring.IndexOf("ед,")!=-1) slovo.ruSlovo.ruChislo = RuChislo.Edinstvennoe; else if(gramstring.IndexOf("мн,")!=-1) slovo.ruSlovo.ruChislo = RuChislo.Mnozhestvennoe; if(gramstring.IndexOf("им,")!=-1) slovo.ruSlovo.ruPadezh = RuPadezh.Imenitelniy; else if(gramstring.IndexOf("рд,")!=-1) slovo.ruSlovo.ruPadezh = RuPadezh.Roditelniy; else if(gramstring.IndexOf("дт,")!=-1) slovo.ruSlovo.ruPadezh = RuPadezh.Datelniy; else if(gramstring.IndexOf("вн,")!=-1) slovo.ruSlovo.ruPadezh = RuPadezh.Vinitelniy; else if(gramstring.IndexOf("тв,")!=-1) slovo.ruSlovo.ruPadezh = RuPadezh.Tvoritelniy; else if(gramstring.IndexOf("пр,")!=-1) slovo.ruSlovo.ruPadezh = RuPadezh.Predlozhniy; if(gramstring.IndexOf("св,")!=-1) slovo.ruSlovo.ruVid = RuVid.Sovershenniy; else if(gramstring.IndexOf("нс,")!=-1) slovo.ruSlovo.ruVid = RuVid.Nesovershenniy; if(gramstring.IndexOf("пе,")!=-1) slovo.ruSlovo.ruPerehodnost = RuPerehodnost.Perehodniy; else if(gramstring.IndexOf("нп,")!=-1) slovo.ruSlovo.ruPerehodnost = RuPerehodnost.Neperehodniy; if(gramstring.IndexOf("дст,")!=-1) slovo.zalog = Zalog.Dejstvitekniy; else if(gramstring.IndexOf("стр,")!=-1) slovo.zalog = Zalog.Stradatelniy; if(gramstring.IndexOf("нст,")!=-1) slovo.vremya = Vremya.Nastoyaschee; else if(gramstring.IndexOf("прш,")!=-1) slovo.vremya = Vremya.Proshedshee; else if(gramstring.IndexOf("буд,")!=-1) slovo.vremya = Vremya.Buduschee; if(gramstring.IndexOf("пвл,")!=-1) slovo.naklonenie = Naklonenie.Povelitelnoe; if(gramstring.IndexOf("1л,")!=-1) slovo.ruSlovo.ruLico = RuLico.Pervoe; else if(gramstring.IndexOf("2л,")!=-1) slovo.ruSlovo.ruLico = RuLico.Vtoroe; else if(gramstring.IndexOf("3л,")!=-1) slovo.ruSlovo.ruLico = RuLico.Tretie; if(gramstring.IndexOf("кр,")!=-1) slovo.ruSlovo.ruForma = RuForma.Kratkaya; if(gramstring.IndexOf("кр,")!=-1) slovo.ruSlovo.ruForma = RuForma.Kratkaya; if(gramstring.IndexOf("сравн,")!=-1) slovo.stepenSravneniya = StepenSravneniya.Bolee; if(gramstring.IndexOf("безл,")!=-1) slovo.ruSlovo.ruLico = RuLico.Bezlichnoe; }
public void Chislo(ref Slovo slovo) { if(slovo.ruSlovo.ruChislo == RuChislo.Mnozhestvennoe) slovo.eSlovo = "W"+slovo.eSlovo.Substring(1); }
private void RegistrujKnjigu_button_Click(object sender, EventArgs e) { greska_label.ForeColor = Color.Red; greska_label.Text = ""; uint kolicina = 0; string greskaString = ""; Knjiga nova_knjiga = new Knjiga(); if (nazivKnjige_textBox.Text != "") { for (int i = 0; i < nazivKnjige_textBox.TextLength; ++i) { int num = Convert.ToInt32(nazivKnjige_textBox.Text[i]); if (!(Slovo.ProveriSlovo(num) || num == 32)) { greskaString += "Naziv knjige nije dobro uneto. "; break; } else if (i + 1 == nazivKnjige_textBox.TextLength) { nova_knjiga.Naziv = nazivKnjige_textBox.Text; } } } else { greskaString += "Nije unet naziv knjige. "; } if (godIzdavanja_textBox.Text != "") { if (uint.TryParse(godIzdavanja_textBox.Text, out uint godIzdavanja)) { if (godIzdavanja < 2100 && godIzdavanja > 1500) { nova_knjiga.GodinaIzdavanja = godIzdavanja; } else { greskaString += "Godina izdavanja mora da bude između 1500. i 2100. godine. "; } } else { greskaString += "Godina izdavanja nije dobro uneta. "; } } else { greskaString += "Nije uneta godina izdavanja. "; } if (kolicina_textBox.Text != "") { if (uint.TryParse(kolicina_textBox.Text, out kolicina) && kolicina != 0) { if (kolicina > 15) { greskaString += "Možete dodati najviše 15 knjiga. "; } } else { greskaString += "Kolicina knjiga može piti samo ceo pozitivan broj. "; } } else { greskaString += "Količina knjige nije uneta. "; } if (pisac_comboBox.SelectedItem != null) { string izabraniPisac = pisac_comboBox.SelectedItem.ToString(); nova_knjiga.Pisac = listaPisaca[izabraniPisac]; } else { greskaString += "Pisac nije izabran. "; } greska_label.Text = greskaString; if (greskaString == "") { try { if (proxy.RegistrovanjeKnjige(nova_knjiga, kolicina)) { greska_label.ForeColor = Color.Green; greska_label.Text += "Knjiga je uspešno registrovan u sistem!"; } else { greska_label.ForeColor = Color.Red; greska_label.Text += "Došlo je do greške pri registrovanju nove knjige!"; } } catch (FaultException <Izuzetak> izuzetak) { greska_label.ForeColor = Color.Blue; greska_label.Text += izuzetak.Detail.Razlog; } } nazivKnjige_textBox.Clear(); godIzdavanja_textBox.Clear(); kolicina_textBox.Clear(); pisac_comboBox.SelectedItem = null; }
private void SignUp_button_Click(object sender, EventArgs e) { proxy = new ServisClient(); greska_label.ForeColor = Color.Red; greska_label.Text = ""; string greskaString = ""; Clan novi_clan = new Clan(); novi_clan.Aktivan = true; if (ime_textBox.Text != "") { for (int i = 0; i < ime_textBox.TextLength; ++i) { int num = Convert.ToInt32(ime_textBox.Text[i]); if (!Slovo.ProveriSlovo(num)) { greskaString += "Ime nije dobro uneto. "; break; } else if (i + 1 == ime_textBox.TextLength) { novi_clan.Ime = ime_textBox.Text; } } } else { greskaString += "Nije uneto ime. "; } if (prezime_textBox.Text != "") { for (int i = 0; i < prezime_textBox.TextLength; ++i) { int num = Convert.ToInt32(prezime_textBox.Text[i]); if (!Slovo.ProveriSlovo(num)) { greskaString += "Prezime nije dobro uneto. "; break; } else if (i + 1 == prezime_textBox.TextLength) { novi_clan.Prezime = prezime_textBox.Text; } } } else { greskaString += "Nije uneto prezime. "; } novi_clan.DatumRodjenja = dateTimePicker.Value; if (jmbg_textBox.Text != "" && jmbg_textBox.TextLength == 13) { if (UInt64.TryParse(jmbg_textBox.Text, out ulong jmbg)) { novi_clan.Jmbg = jmbg; } else { greskaString += "JMBG nije dobro unet. "; } } else { if (jmbg_textBox.Text == "") { greskaString += "Nije unet JMBG. "; } else if (jmbg_textBox.TextLength != 13) { greskaString += "JMBG treba da sadrži 13 cifara. "; } } if (email_textBox.Text != "") { if (email_textBox.Text.Contains("@") && email_textBox.Text.Contains(".com")) { novi_clan.Email = email_textBox.Text; } else { greskaString += "Email nije dobro unet. "; } } else { greskaString += "Email nije unet. "; } greska_label.Text = greskaString; if (greskaString == "") { try { if (proxy.RegistovanjeClana(novi_clan)) { greska_label.ForeColor = Color.Green; greska_label.Text += "Član je uspešno registrovan u sistem!"; } else { greska_label.ForeColor = Color.Red; greska_label.Text += "Došlo je do greške pri registrovanju novog člana!"; } } catch (FaultException <Izuzetak> izuzetak) { greska_label.ForeColor = Color.Blue; greska_label.Text += izuzetak.Detail.Razlog; } } ime_textBox.Clear(); prezime_textBox.Clear(); dateTimePicker.Value = new DateTime(2019, 5, 9); jmbg_textBox.Clear(); email_textBox.Clear(); }