Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 30.04.2016
Сообщений: 37

Распределение кода по классам

07.06.2016, 13:54. Показов 1044. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Недавно я закончил работу над написанием кода программы генерирования фраз(предложений), содержащих в себе теги: существительное, глагол, прилагательное, также для их составляющего были добавлены "функции" (число склонений, число для времен глаголов). И нужно распределить код по классам, где отдельно будут существительные, глаголы и прилагательные, учитывая число склонений и число для времен глаголов.
Сам код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
static int Main(string[] args)
        {
            int CountNouns = 3;   //Число существительных
            int CountAdject = 3;   //Число прилагательных
            int CountAct = 2;   //Число глаголов
            int CountSKL = 6;   //Число склонений
            int CountTime = 3;   //Число времён для глагола (настоящее, будущее, прошлое)
 
            //  Именительный,      Родительный,    Дательный,       Винительный,   Творительный,       Предложный,    Род (ср,ж,м)
            string[][] Nouns = new string[][]
            {
        new string[]{"дерево", "дерева", "дереву", "дерева", "деревом", "дереве", "0"},
        new string[]{"бумага", "бумаги", "бумаге", "бумаги", "бумагой", "бумаге", "1"},
        new string[]{"самолёт", "самолёта", "самолёту", "самолёта", "самолётом", "самолёте", "2"}
            };
 
            string[][][] Adject = new string[][][]
            {
        new string[][]
        {
            new string[]{"Красное", "У красного", "К красному", "У красного", "Красным", "На красном"}, //(0,0,0),(0,0,1),(0,0,6)
            new string[]{"Красная", "У красной", "К красной", "У красной", "Красной", "На красной"}, //(0,1,0),(0,1,1),(0,1,6)
            new string[]{"Красный", "У красного", "К красному", "У красного", "Красным", "На красном"}
        },
 
        new string[][]
        {
            new string[]{"Зелёное", "У зелёного", "К зелёному", "У зелёного", "Зелёным", "На зелёном"}, //(1,0,0),(1,0,1),(1,0,6)
            new string[]{"Зелёная", "У зелёной", "К зелёной", "У зелёной", "Зелёной", "На зелёной"}, //(1,1,0),(1,1,1),(1,1,6)
            new string[]{"Зелёный", "У зелёного", "К зелёному", "У зелёного", "Зелёным", "На зелёном"}
        },
 
        new string[][]
        {
            new string[]{"Красивое", "У красивого", "К красивому", "У красивого", "Красивым", "На красивом"}, //(1,0,0),(1,0,1),(1,0,6)
            new string[]{"Красивая", "У красивой", "К красивой", "У красивой", "Красивой", "На красивой"}, //(1,1,0),(1,1,1),(1,1,6)
            new string[]{"Красивый", "У красивого", "К красивому", "У красивого", "Красивым", "На красивом"}
        }
            };
 
 
            //   Настоящее, Прошлое, Будущее
            string[][][] Action = new string[][][]
            {
        new string[][]
        {
                  new string[]{"стоит", "стояло", "встанет"},    //Средний род
                  new string[]{"стоит", "стоялa", "встанет"},    //Женский род
                  new string[]{"стоит", "стоял", "встанет"},    //Мужской род
        },
 
        new string[][]
        {
            new string[]{"летит", "летело", "полетит"},    //Средний род
            new string[]{"летит", "летела", "полетит"},    //Женский род
            new string[]{"летит", "летел", "полетит"},    //Мужской род
        }
            };
 
            // ====================================================
 
 
            Random rand = new Random();
            for (int jj = 0; jj < 100; jj++)
            {
                //1. Выбор существительного
                int Noun_word = rand.Next(CountNouns);
                int Noun_case = rand.Next(CountSKL);
 
                //2. Ассоциируем с прилагательным
                int Adj_word = rand.Next(CountAdject);
                int Adj_case = Noun_case;
 
                int Act_word = rand.Next(CountAct);
                int Act_Case = rand.Next(CountTime);
 
 
                //Если средний род
                if (Nouns[Noun_word][CountSKL] == "0")
                    Console.Write("{0} {1} {2}", Adject[Adj_word][0][Adj_case], Nouns[Noun_word][Noun_case], Action[Act_word][0][Act_Case]);
 
                //Если женский род
                else if (Nouns[Noun_word][CountSKL] == "1")
                    Console.Write("{0} {1} {2}", Adject[Adj_word][1][Adj_case], Nouns[Noun_word][Noun_case], Action[Act_word][1][Act_Case]);
 
                //Если мужской род
                else if (Nouns[Noun_word][CountSKL] == "2")
                    Console.Write("{0} {1} {2}", Adject[Adj_word][2][Adj_case], Nouns[Noun_word][Noun_case], Action[Act_word][2][Act_Case]);
 
                Console.ReadKey();
 
            }
            return 0;
        }
Буду очень благодарен за Вашу помощь!

Добавлено через 53 минуты
Hares - большое спасибо!!!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.06.2016, 13:54
Ответы с готовыми решениями:

Как избежать копипаста кода по разным классам? Объявить базовый?
Добрый день. Я сделал несколько наследников от контролов Devepress, заточенных под определенный проект. Наследовал следующим образом: ...

Распределение кода на файлы
Как правильно распределить шаблон на main.cpp, header.h, funcii.cpp Шаблон функции funcii.cpp template &lt;typename T&gt; void...

Распределение кода по функциям
Есть программа, но все сделано в одной функции main. А нужно разделить все на отдельную функцию для ввода, отдельную для вывода и отдельную...

6
44 / 41 / 44
Регистрация: 08.05.2016
Сообщений: 119
07.06.2016, 19:30
Вопрос -- эта система должна поддерживать один конкретный язык, быть универсальной (грамматика подгружается из xml-файла) или должна поддерживать несколько языков, но без возможности их добавления без изменения кода? Помогу, чем смогу.
0
1 / 1 / 0
Регистрация: 30.04.2016
Сообщений: 37
07.06.2016, 21:09  [ТС]
Цитата Сообщение от Hares Посмотреть сообщение
Помогу, чем смогу.
Щедрый ты человек! Система должна поддерживать только 1 язык. Было бы замечательно, если бы грамматика загружалась из внешних файлов, но подойдет и содержание в самом коде. А вообще, вот само задание: Вложение 703649
Извини за наглость Просто время поджимает!

 Комментарий модератора 
Правила 5.18: Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.

Перепечатайте текст задания на форум.
0
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
08.06.2016, 01:30
Нейронная сеть идеальна для такой задачи
0
1 / 1 / 0
Регистрация: 30.04.2016
Сообщений: 37
08.06.2016, 09:43  [ТС]
Цитата Сообщение от DataPlanner Посмотреть сообщение
Нейронная сеть идеальна для такой задачи
Как бы она выглядела в коде?
0
44 / 41 / 44
Регистрация: 08.05.2016
Сообщений: 119
08.06.2016, 13:10
Забейте, это плохая идея. Нейронная сеть нужна для машинного обучения, а тут тупо проганье
0
1 / 1 / 0
Регистрация: 30.04.2016
Сообщений: 37
09.06.2016, 22:13  [ТС]
Всем привет. Помогите распределить код по классам.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Phrase_generator_new
{
    class Program
    {
        static int Main(string[] args)
        {
            int CountNouns = 3;   //Число существительных
            int CountAdject = 3;   //Число прилагательных
            int CountAct = 2;   //Число глаголов
            int CountSKL = 6;   //Число склонений
            int CountTime = 3;   //Число времён для глагола (настоящее, будущее, прошлое)
 
            //  Именительный,      Родительный,    Дательный,       Винительный,   Творительный,       Предложный,    Род (ср,ж,м)
            string[][] Nouns = new string[][]
            {
        new string[]{"дерево", "дерева", "дереву", "дерева", "деревом", "дереве", "0"},
        new string[]{"бумага", "бумаги", "бумаге", "бумаги", "бумагой", "бумаге", "1"},
        new string[]{"самолёт", "самолёта", "самолёту", "самолёта", "самолётом", "самолёте", "2"}
            };
 
            string[][][] Adject = new string[][][]
            {
        new string[][]
        {
            new string[]{"Красное", "У красного", "К красному", "У красного", "Красным", "На красном"}, //(0,0,0),(0,0,1),(0,0,6)
            new string[]{"Красная", "У красной", "К красной", "У красной", "Красной", "На красной"}, //(0,1,0),(0,1,1),(0,1,6)
            new string[]{"Красный", "У красного", "К красному", "У красного", "Красным", "На красном"}
        },
 
        new string[][]
        {
            new string[]{"Зелёное", "У зелёного", "К зелёному", "У зелёного", "Зелёным", "На зелёном"}, //(1,0,0),(1,0,1),(1,0,6)
            new string[]{"Зелёная", "У зелёной", "К зелёной", "У зелёной", "Зелёной", "На зелёной"}, //(1,1,0),(1,1,1),(1,1,6)
            new string[]{"Зелёный", "У зелёного", "К зелёному", "У зелёного", "Зелёным", "На зелёном"}
        },
 
        new string[][]
        {
            new string[]{"Красивое", "У красивого", "К красивому", "У красивого", "Красивым", "На красивом"}, //(1,0,0),(1,0,1),(1,0,6)
            new string[]{"Красивая", "У красивой", "К красивой", "У красивой", "Красивой", "На красивой"}, //(1,1,0),(1,1,1),(1,1,6)
            new string[]{"Красивый", "У красивого", "К красивому", "У красивого", "Красивым", "На красивом"}
        }
            };
 
 
            //   Настоящее,            Прошлое,                 Будущее
            string[][][] Action = new string[][][]
            {
        new string[][]
        {
                  new string[]{"стоит", "стояло", "встанет"},    //Средний род
                  new string[]{"стоит", "стоялa", "встанет"},    //Женский род
                  new string[]{"стоит", "стоял", "встанет"},    //Мужской род
        },
 
        new string[][]
        {
            new string[]{"летит", "летело", "полетит"},    //Средний род
            new string[]{"летит", "летела", "полетит"},    //Женский род
            new string[]{"летит", "летел", "полетит"},    //Мужской род
        }
            };
 
            // ====================================================
 
 
            Random rand = new Random();
            for (int jj = 0; jj < 100; jj++)
            {
                //1. Выбор существительного
                int Noun_word = rand.Next(CountNouns);
                int Noun_case = rand.Next(CountSKL);
 
                //2. Ассоциируем с прилагательным
                int Adj_word = rand.Next(CountAdject);
                int Adj_case = Noun_case;
 
                int Act_word = rand.Next(CountAct);
                int Act_Case = rand.Next(CountTime);
 
 
                //Если средний род
                if (Nouns[Noun_word][CountSKL] == "0")
                    Console.Write("{0} {1} {2}", Adject[Adj_word][0][Adj_case], Nouns[Noun_word][Noun_case], Action[Act_word][0][Act_Case]);
 
                //Если женский род
                else if (Nouns[Noun_word][CountSKL] == "1")
                    Console.Write("{0} {1} {2}", Adject[Adj_word][1][Adj_case], Nouns[Noun_word][Noun_case], Action[Act_word][1][Act_Case]);
 
                //Если мужской род
                else if (Nouns[Noun_word][CountSKL] == "2")
                    Console.Write("{0} {1} {2}", Adject[Adj_word][2][Adj_case], Nouns[Noun_word][Noun_case], Action[Act_word][2][Act_Case]);
 
                //Console.WriteLine();
                Console.ReadKey();
 
            }
            return 0;
        }
    }
}
Буду очень благодарен за вашу помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2016, 22:13
Помогаю со студенческими работами здесь

Перевод кода с Delphi: Оптимальное распределение инвестиций
помогите перевести данный код на VB пожалуйста unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Гауссово распределение и построение графика. Проверка кода
Добрый вечер! Товарищи помогите с написанием программы для Гауссова распределения и построения графика. Имеется код, который не мешало...

Составьте таблицу распределение и найдите функцию распределение числа появлений цифры
Монету бросают, пока не выпадет герб. Составьте таблицу распределение и найдите функцию распределение числа появлений цифры.

Распределение расходов по видам деятельности для УСН в Бухгалтерии 2.0 (распределение зарплаты)
Добрый день. Бухгалтерия предприятия, редакция 2.0 (2.0.64.20). При закрытии месяца март 2015 г. в регламентной операции по...

Двумерное нормальное распределение (Гаусса). Распределение значений в матрице
Здравствуйте. Для реализации алгоритма внедрения водяного знака мне нужно сделать распределение значений в матрице. Суть такова: есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru