C ++ - program, der bruger tilfældig talgenerator til at oprette sætninger?

2 svar

  • lo_tsawqawFavoritsvar

    Jeg vil ikke skrive nogen kode til dig, men jeg har nogle ideer.



    Hvis du ikke er ligeglad med, om programmet bruger rigtige ord, så skal implementeringen være ret let.

    Lad først programmet for hver sætning bestemme, hvor mange ord der skal være i sætningen. Lad derefter programmet for hvert ord bestemme, hvor mange bogstaver der skal være i ordet. Programmet skal skifte mellem konsonanter og vokaler for at sikre, at gibberishen stadig er udtalt. Programmet kan også have en bestemt sandsynlighed for at indsætte parenteser eller kommaer, måske 1 ud af 7 for et komma og 1 ud af 40 for parentes. Sørg for, at det første ord i sætningen begynder med et stort bogstav. I slutningen af ​​sætningen skal programmet beslutte, om det skal slutte med et punktum, spørgsmålstegn eller udråbstegn. Du kan derefter gentage for hvor mange tilfældige sætninger du gerne vil.



    Hvis du nu ønsker, at programmet skal bruge ægte ord, skal du gøre lidt mere arbejde. For det første har du brug for en liste med ord, en 'ordbog' for at sige det. Dette skal indeholde en masse information, hvis du vil lave sætninger ved hjælp af rigtige ord. Du har brug for information om dets tale (substantiv, verb, adjektiv, adverb, interjection osv.), Køn (maskulin, feminin, neutral), hvis ordet er et verbum, uanset om det har uregelmæssige former, eller om verbet er transitivt eller intransitivt, hvis ordet er et navneord, uanset om det har uregelmæssige flertal (f.eks. 'datum' og 'data' eller 'gås' og 'gæs'), eller om det er et eget navneord, ingen, noget eller hele tiden , hvis ordet er et adjektiv, om det kan gøres til et adverb ved at tilføje -ly, og grundlæggende information til ethvert andet spørgsmål, der måtte komme op, når man laver en sætning. Det er sandsynligvis mere end nok arbejde lige der. MEN når det først er taget hånd om, kan programmet bruge tilfældig talgenerator sammen med reglerne for grammer til at lave en sætning 'ramme', så vælg blot tilfældige ord i den rigtige del af talen for at 'udfylde blanktegnene'. For eksempel:



    (? artikel?) (? adjektiv?) (substantiv) (? adverb?) (verb) (? artikel?) (? adjektiv?) (? substantiv?)

    Spørgsmålstegnene angiver valgfri taledele for en sådan rammesætning. Programmet kan lave sætninger som følgende:

    777 betyder på hebraisk

    En blå abrikos imprægnerer nådigt de høje aber.



    Bilen kan lide virkeligheden.

    Lader holder modvilligt på en sikker slange.

    En baby kaster op.



    Hvis du bliver virkelig avanceret, kan du oprette andre 'sætningsrammer':

    (? artikel?) (? adjektiv?) (substantiv) var (? adverb?) (verb-past_participle)? af? (? artikel?) (? adjektiv?) (? substantiv-posessiv?) (? artikel?) (? adjektiv?) (? substantiv?)

    månekonjunktur ascendant synastry

    En fløjlsgud blev næsten smadret af den lækre boss glade dollars.

    Matthew blev totalt røntgen af ​​smør.

    En rød automat var oppustet af stolthed.

    De latterlige baseball blev slugt.

    Afslutningsvis bliver du nødt til at anvende al din sproglige viden og problemløsningskompetencer - for ikke at nævne meget tid - på denne. Faktisk lyder det som noget, jeg gerne vil prøve. E-mail mig, hvis du er interesseret.

  • Senthil

    Se her, jeg kan ikke give dig svaret, men jeg kan give koden til et lignende program. Her er det:

    / * Magic.cpp * /

    / * Dette program genererer et tilfældigt tal og får input

    fra bruger. Hvis begge matcher siger 'Magic' ellers, ved du nej

    magi '* /

    #omfatte

    #omfatte

    #omfatte

    int generere ();

    ugyldig hoved ()

    {

    int rand_no;

    int input_no;

    clrscr ();

    hjorte ånd dyr betydning

    koste<<'What do you think is the Magic Number in my mind : ';

    cin >> input_no;

    rand_no = generer ();

    hvis (rand_no == input_no)

    koste<<'Woow! You are quite a magician!!!';

    andet

    koste<<'Phoof! You know no magic!!!';

    getch ();

    }

    leo sun scorpio moon

    int generere ()

    {

    int rand_no;

    rand_no = rand ();

    returnere rand_no;

    }