protected void AnalyzeStepenSravnenia(ref Slovo slovo)
 {
     slovo.stepenSravneniya = StepenSravneniya.Polozhitelnaya;
     // MessageBox.Show(System.Convert.ToString());
     //Здесь будет aнaлиз степени срaвнения из Эльюнди
     //можешь его писaть по книге.
 }
Beispiel #2
0
		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;
            }
		}
Beispiel #3
0
		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);
		}
Beispiel #4
0
        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);
        }
Beispiel #5
0
		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";				*/
			}
		}
Beispiel #6
0
		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);
			}
		}
Beispiel #7
0
		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);
				}
			}
		}
Beispiel #8
0
		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;
			}		
		}
Beispiel #9
0
		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());

        }
Beispiel #12
0
		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;
		}
Beispiel #13
0
		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);
		}
Beispiel #14
0
		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);
            }*/
        }
Beispiel #16
0
		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;
		}
Beispiel #17
0
		public void AddSlovo(Slovo s)
		{
			slova.Add(s);
		}
Beispiel #18
0
		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ре");
     }
 }
Beispiel #22
0
		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;
			}
		}
Beispiel #23
0
		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);
			}
		}
Beispiel #24
0
 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);
     }
 }
Beispiel #25
0
		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;
				}
			}
		}
Beispiel #26
0
		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;
			}				
		}
Beispiel #27
0
		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);
		}
Beispiel #28
0
        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();
                    }
                }
            }
        }
Beispiel #29
0
        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);
        }
Beispiel #31
0
		public void PostAnalyze(Predlozhenie pr,int place,ref Slovo slovo)
		{
			PostAnalyzeRod(ref slovo);
			PostAnalyzePadezh(pr,place,ref slovo);			
		}
Beispiel #32
0
		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;
			
		}
Beispiel #34
0
		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();
        }