#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
int main( )
{
const int CountNouns = 3 ; //Число существительных (дерево, бумага, самолёт)
const int CountAdject = 3 ; //Число прилагательных (красный, зелёный, красивый)
const int CountAct = 2 ; //Число глаголов (стоит, летит)
const int CountSKL = 6 ; //Число склонений (в русском 6)
const int CountTime = 3 ; //Число времён для глагола (настоящее, будущее, прошлое)
// Именительный, Родительный, Дательный, Винительный, Творительный, Предложный, Род (ср,ж,м)
string Nouns[ CountNouns] [ CountSKL + 1 ] = {
{ "дерево" , "дерева" , "дереву" , "дерева" , "деревом" , "дереве" , "0" } ,
{ "бумага" , "бумаги" , "бумаге" , "бумаги" , "бумагой" , "бумаге" , "1" } ,
{ "самолёт" , "самолёта" , "самолёту" , "самолёта" , "самолётом" , "самолёте" , "2" }
} ;
string Adject[ CountAdject] [ CountNouns] [ CountSKL] = {
{
{ "Красное" , "У красного" , "К красному" , "У красного" , "Красным" , "На красном" } , //(0,0,0),(0,0,1),(0,0,6)
{ "Красная" , "У красной" , "К красной" , "У красной" , "Красной" , "На красной" } , //(0,1,0),(0,1,1),(0,1,6)
{ "Красный" , "У красного" , "К красному" , "У красного" , "Красным" , "На красном" }
} ,
{
{ "Зелёное" , "У зелёного" , "К зелёному" , "У зелёного" , "Зелёным" , "На зелёном" } , //(1,0,0),(1,0,1),(1,0,6)
{ "Зелёная" , "У зелёной" , "К зелёной" , "У зелёной" , "Зелёной" , "На зелёной" } , //(1,1,0),(1,1,1),(1,1,6)
{ "Зелёный" , "У зелёного" , "К зелёному" , "У зелёного" , "Зелёным" , "На зелёном" }
} ,
{
{ "Красивое" , "У красивого" , "К красивому" , "У красивого" , "Красивым" , "На красивом" } , //(1,0,0),(1,0,1),(1,0,6)
{ "Красивая" , "У красивой" , "К красивой" , "У красивой" , "Красивой" , "На красивой" } , //(1,1,0),(1,1,1),(1,1,6)
{ "Красивый" , "У красивого" , "К красивому" , "У красивого" , "Красивым" , "На красивом" }
}
} ;
// Настоящее, Прошлое, Будущее
string Action[ CountAct] [ 3 ] [ CountTime] = {
{
{ "стоит" , "стояло" , "встанет" } , //Средний род
{ "стоит" , "стоялa" , "встанет" } , //Женский род
{ "стоит" , "стоял" , "встанет" } , //Мужской род
} ,
{
{ "летит" , "летело" , "полетит" } , //Средний род
{ "летит" , "летела" , "полетит" } , //Женский род
{ "летит" , "летел" , "полетит" } , //Мужской род
}
} ;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
setlocale( LC_ALL,"" ) ;
srand ( time ( 0 ) ) ;
for ( int jj = 0 ; jj < 100 ; jj++ ) {
//1. Выбор существительного
int Noun_word = rand ( ) % CountNouns;
int Noun_case = rand ( ) % CountSKL;
//2. Ассоциируем с прилагательным
int Adj_word = rand ( ) % CountAdject;
int Adj_case = Noun_case;
int Act_word = rand ( ) % CountAct;
int Act_Case = rand ( ) % CountTime;
if ( Nouns[ Noun_word] [ CountSKL] == "0" ) { //Если средний род
cout << Adject[ Adj_word] [ 0 ] [ Adj_case] << ' ' << Nouns[ Noun_word] [ Noun_case] << ' ' << Action[ Act_word] [ 0 ] [ Act_Case] ;
}
else if ( Nouns[ Noun_word] [ CountSKL] == "1" ) { //Если женский род
cout << Adject[ Adj_word] [ 1 ] [ Adj_case] << ' ' << Nouns[ Noun_word] [ Noun_case] << ' ' << Action[ Act_word] [ 1 ] [ Act_Case] ;
}
else if ( Nouns[ Noun_word] [ CountSKL] == "2" ) { //Если мужской род
cout << Adject[ Adj_word] [ 2 ] [ Adj_case] << ' ' << Nouns[ Noun_word] [ Noun_case] << ' ' << Action[ Act_word] [ 2 ] [ Act_Case] ;
}
cout << '\n ' ;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGN0aW1lPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgoKaW50IG1haW4oKQp7CiAgICBjb25zdCBpbnQgQ291bnROb3VucyAgICA9IDM7ICAgLy/Qp9C40YHQu9C+INGB0YPRidC10YHRgtCy0LjRgtC10LvRjNC90YvRhSAo0LTQtdGA0LXQstC+LCDQsdGD0LzQsNCz0LAsINGB0LDQvNC+0LvRkdGCKQogICAgY29uc3QgaW50IENvdW50QWRqZWN0ICAgPSAzOyAgIC8v0KfQuNGB0LvQviDQv9GA0LjQu9Cw0LPQsNGC0LXQu9GM0L3Ri9GFICAgKNC60YDQsNGB0L3Ri9C5LCDQt9C10LvRkdC90YvQuSwg0LrRgNCw0YHQuNCy0YvQuSkKICAgIGNvbnN0IGludCBDb3VudEFjdCAgICAgID0gMjsgICAvL9Cn0LjRgdC70L4g0LPQu9Cw0LPQvtC70L7QsiAo0YHRgtC+0LjRgiwg0LvQtdGC0LjRgikKICAgIGNvbnN0IGludCBDb3VudFNLTCAgICAgID0gNjsgICAvL9Cn0LjRgdC70L4g0YHQutC70L7QvdC10L3QuNC5ICjQsiDRgNGD0YHRgdC60L7QvCA2KQogICAgY29uc3QgaW50IENvdW50VGltZSAgICAgPSAzOyAgIC8v0KfQuNGB0LvQviDQstGA0LXQvNGR0L0g0LTQu9GPINCz0LvQsNCz0L7Qu9CwICjQvdCw0YHRgtC+0Y/RidC10LUsINCx0YPQtNGD0YnQtdC1LCDQv9GA0L7RiNC70L7QtSkKCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAg0JjQvNC10L3QuNGC0LXQu9GM0L3Ri9C5LCAgICAgINCg0L7QtNC40YLQtdC70YzQvdGL0LksICAgINCU0LDRgtC10LvRjNC90YvQuSwgICAgICAg0JLQuNC90LjRgtC10LvRjNC90YvQuSwgICDQotCy0L7RgNC40YLQtdC70YzQvdGL0LksICAgICAgINCf0YDQtdC00LvQvtC20L3Ri9C5LCAgICDQoNC+0LQgKNGB0YAs0LYs0LwpCiAgIHN0cmluZyBOb3Vuc1tDb3VudE5vdW5zXVtDb3VudFNLTCArIDFdID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsi0LTQtdGA0LXQstC+IiwgICAgICAgItC00LXRgNC10LLQsCIsICAgICAgICLQtNC10YDQtdCy0YMiLCAgICAgICAi0LTQtdGA0LXQstCwIiwgICAgICAgICLQtNC10YDQtdCy0L7QvCIsICAgICAgICAi0LTQtdGA0LXQstC1IiwgICAgICAgIjAifSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ItCx0YPQvNCw0LPQsCIsICAgICAgICLQsdGD0LzQsNCz0LgiLCAgICAgICAi0LHRg9C80LDQs9C1IiwgICAgICAgItCx0YPQvNCw0LPQuCIsICAgICAgICAi0LHRg9C80LDQs9C+0LkiLCAgICAgICAgItCx0YPQvNCw0LPQtSIsICAgICAgICIxIn0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyLRgdCw0LzQvtC70ZHRgiIsICAgICAgItGB0LDQvNC+0LvRkdGC0LAiLCAgICAgItGB0LDQvNC+0LvRkdGC0YMiLCAgICAgItGB0LDQvNC+0LvRkdGC0LAiLCAgICAgICLRgdCw0LzQvtC70ZHRgtC+0LwiLCAgICAgICLRgdCw0LzQvtC70ZHRgtC1IiwgICAgICIyIn0KICAgfTsKCiAgIHN0cmluZyBBZGplY3RbQ291bnRBZGplY3RdW0NvdW50Tm91bnNdW0NvdW50U0tMXSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ItCa0YDQsNGB0L3QvtC1IiwgICAgICLQoyDQutGA0LDRgdC90L7Qs9C+IiwgICAgICLQmiDQutGA0LDRgdC90L7QvNGDIiwgICAgItCjINC60YDQsNGB0L3QvtCz0L4iLCAgICAgICLQmtGA0LDRgdC90YvQvCIsICAgICAgICLQndCwINC60YDQsNGB0L3QvtC8In0sIC8vKDAsMCwwKSwoMCwwLDEpLCgwLDAsNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ItCa0YDQsNGB0L3QsNGPIiwgICAgICLQoyDQutGA0LDRgdC90L7QuSIsICAgICAgItCaINC60YDQsNGB0L3QvtC5IiwgICAgICLQoyDQutGA0LDRgdC90L7QuSIsICAgICAgICLQmtGA0LDRgdC90L7QuSIsICAgICAgICLQndCwINC60YDQsNGB0L3QvtC5In0sIC8vKDAsMSwwKSwoMCwxLDEpLCgwLDEsNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ItCa0YDQsNGB0L3Ri9C5IiwgICAgICLQoyDQutGA0LDRgdC90L7Qs9C+IiwgICAgICLQmiDQutGA0LDRgdC90L7QvNGDIiwgICAgItCjINC60YDQsNGB0L3QvtCz0L4iLCAgICAgICLQmtGA0LDRgdC90YvQvCIsICAgICAgICLQndCwINC60YDQsNGB0L3QvtC8In0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsi0JfQtdC70ZHQvdC+0LUiLCAgICAgItCjINC30LXQu9GR0L3QvtCz0L4iLCAgICAgItCaINC30LXQu9GR0L3QvtC80YMiLCAgICAgItCjINC30LXQu9GR0L3QvtCz0L4iLCAgICAgICAi0JfQtdC70ZHQvdGL0LwiLCAgICAgICAi0J3QsCDQt9C10LvRkdC90L7QvCJ9LCAvLygxLDAsMCksKDEsMCwxKSwoMSwwLDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyLQl9C10LvRkdC90LDRjyIsICAgICAi0KMg0LfQtdC70ZHQvdC+0LkiLCAgICAgICLQmiDQt9C10LvRkdC90L7QuSIsICAgICAgItCjINC30LXQu9GR0L3QvtC5IiwgICAgICAgICLQl9C10LvRkdC90L7QuSIsICAgICAgICLQndCwINC30LXQu9GR0L3QvtC5In0sIC8vKDEsMSwwKSwoMSwxLDEpLCgxLDEsNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ItCX0LXQu9GR0L3Ri9C5IiwgICAgICLQoyDQt9C10LvRkdC90L7Qs9C+IiwgICAgICLQmiDQt9C10LvRkdC90L7QvNGDIiwgICAgICLQoyDQt9C10LvRkdC90L7Qs9C+IiwgICAgICAgItCX0LXQu9GR0L3Ri9C8IiwgICAgICAgItCd0LAg0LfQtdC70ZHQvdC+0LwifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyLQmtGA0LDRgdC40LLQvtC1IiwgICAgICLQoyDQutGA0LDRgdC40LLQvtCz0L4iLCAgICAgItCaINC60YDQsNGB0LjQstC+0LzRgyIsICAgICAi0KMg0LrRgNCw0YHQuNCy0L7Qs9C+IiwgICAi0JrRgNCw0YHQuNCy0YvQvCIsICAgICAgICLQndCwINC60YDQsNGB0LjQstC+0LwifSwgLy8oMSwwLDApLCgxLDAsMSksKDEsMCw2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsi0JrRgNCw0YHQuNCy0LDRjyIsICAgICAi0KMg0LrRgNCw0YHQuNCy0L7QuSIsICAgICAgItCaINC60YDQsNGB0LjQstC+0LkiLCAgICAgICLQoyDQutGA0LDRgdC40LLQvtC5IiwgICAgItCa0YDQsNGB0LjQstC+0LkiLCAgICAgICAi0J3QsCDQutGA0LDRgdC40LLQvtC5In0sIC8vKDEsMSwwKSwoMSwxLDEpLCgxLDEsNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ItCa0YDQsNGB0LjQstGL0LkiLCAgICAgItCjINC60YDQsNGB0LjQstC+0LPQviIsICAgICAi0Jog0LrRgNCw0YHQuNCy0L7QvNGDIiwgICAgICLQoyDQutGA0LDRgdC40LLQvtCz0L4iLCAgICLQmtGA0LDRgdC40LLRi9C8IiwgICAgICAgItCd0LAg0LrRgNCw0YHQuNCy0L7QvCJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICB9OwoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICDQndCw0YHRgtC+0Y/RidC10LUsICAgICAgICAgICAg0J/RgNC+0YjQu9C+0LUsICAgICAgICAgICAgICAgICDQkdGD0LTRg9GJ0LXQtQogICBzdHJpbmcgQWN0aW9uW0NvdW50QWN0XVszXVtDb3VudFRpbWVdID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsi0YHRgtC+0LjRgiIsICAgICAgICAgICAgItGB0YLQvtGP0LvQviIsICAgICAgICAgICAgItCy0YHRgtCw0L3QtdGCIn0sICAgIC8v0KHRgNC10LTQvdC40Lkg0YDQvtC0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyLRgdGC0L7QuNGCIiwgICAgICAgICAgICAi0YHRgtC+0Y/Qu2EiLCAgICAgICAgICAgICLQstGB0YLQsNC90LXRgiJ9LCAgICAvL9CW0LXQvdGB0LrQuNC5INGA0L7QtAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsi0YHRgtC+0LjRgiIsICAgICAgICAgICAgItGB0YLQvtGP0LsiLCAgICAgICAgICAgICAi0LLRgdGC0LDQvdC10YIifSwgICAgLy/QnNGD0LbRgdC60L7QuSDRgNC+0LQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsi0LvQtdGC0LjRgiIsICAgICAgICAgICAgItC70LXRgtC10LvQviIsICAgICAgICAgICAgItC/0L7Qu9C10YLQuNGCIn0sICAgIC8v0KHRgNC10LTQvdC40Lkg0YDQvtC0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyLQu9C10YLQuNGCIiwgICAgICAgICAgICAi0LvQtdGC0LXQu9CwIiwgICAgICAgICAgICAi0L/QvtC70LXRgtC40YIifSwgICAgLy/QltC10L3RgdC60LjQuSDRgNC+0LQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ItC70LXRgtC40YIiLCAgICAgICAgICAgICLQu9C10YLQtdC7IiwgICAgICAgICAgICAgItC/0L7Qu9C10YLQuNGCIn0sICAgIC8v0JzRg9C20YHQutC+0Lkg0YDQvtC0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIH07CiAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKICAgc2V0bG9jYWxlKExDX0FMTCwiIik7CiAgIHNyYW5kKHRpbWUoMCkpOwoKICAgZm9yIChpbnQgamogPSAwOyBqaiA8IDEwMDsgamorKyl7CgogICAvLzEuINCS0YvQsdC+0YAg0YHRg9GJ0LXRgdGC0LLQuNGC0LXQu9GM0L3QvtCz0L4KICAgaW50IE5vdW5fd29yZCA9ICByYW5kKCkgJSBDb3VudE5vdW5zOwogICBpbnQgTm91bl9jYXNlID0gIHJhbmQoKSAlIENvdW50U0tMOwoKICAgLy8yLiDQkNGB0YHQvtGG0LjQuNGA0YPQtdC8INGBINC/0YDQuNC70LDQs9Cw0YLQtdC70YzQvdGL0LwKICAgaW50IEFkal93b3JkICA9ICByYW5kKCklQ291bnRBZGplY3Q7CiAgIGludCBBZGpfY2FzZSAgPSAgTm91bl9jYXNlOwoKICAgaW50IEFjdF93b3JkID0gcmFuZCgpICUgQ291bnRBY3Q7CiAgIGludCBBY3RfQ2FzZSA9IHJhbmQoKSAlIENvdW50VGltZTsKCgoKCgogICAgaWYgKE5vdW5zW05vdW5fd29yZF1bQ291bnRTS0xdID09ICIwIil7ICAgIC8v0JXRgdC70Lgg0YHRgNC10LTQvdC40Lkg0YDQvtC0CiAgICAgICAgY291dCA8PCBBZGplY3RbQWRqX3dvcmRdWzBdW0Fkal9jYXNlXSA8PCAnICcgPDwgTm91bnNbTm91bl93b3JkXVtOb3VuX2Nhc2VdIDw8ICcgJyA8PCBBY3Rpb25bQWN0X3dvcmRdWzBdW0FjdF9DYXNlXTsKICAgIH0KICAgIGVsc2UgaWYgKE5vdW5zW05vdW5fd29yZF1bQ291bnRTS0xdID09ICIxIil7ICAgICAgICAgLy/QldGB0LvQuCDQttC10L3RgdC60LjQuSDRgNC+0LQKICAgICAgICBjb3V0IDw8IEFkamVjdFtBZGpfd29yZF1bMV1bQWRqX2Nhc2VdIDw8ICcgJyA8PCBOb3Vuc1tOb3VuX3dvcmRdW05vdW5fY2FzZV0gPDwgJyAnIDw8IEFjdGlvbltBY3Rfd29yZF1bMV1bQWN0X0Nhc2VdOwogICAgfQogICAgZWxzZSBpZiAoTm91bnNbTm91bl93b3JkXVtDb3VudFNLTF0gPT0gIjIiKXsgICAgICAgIC8v0JXRgdC70Lgg0LzRg9C20YHQutC+0Lkg0YDQvtC0CiAgICAgICBjb3V0IDw8IEFkamVjdFtBZGpfd29yZF1bMl1bQWRqX2Nhc2VdIDw8ICcgJyA8PCBOb3Vuc1tOb3VuX3dvcmRdW05vdW5fY2FzZV0gPDwgJyAnIDw8IEFjdGlvbltBY3Rfd29yZF1bMl1bQWN0X0Nhc2VdOwogICAgfQogICAgY291dCA8PCAnXG4nOwoKICAgfQoKCn0K