C ++ forrit sem notar handahófi talnarafala til að búa til setningar?

2 svör

  • lo_tsawqawUppáhalds svar

    Ég ætla ekki að skrifa neinn kóða fyrir þig, en ég hef nokkrar hugmyndir.

    Ef þér er sama hvort forritið notar raunveruleg orð, þá ætti framkvæmdin að vera frekar auðveld.

    Í fyrsta lagi láttu forritið ákveða hve mörg orð eiga að vera í setningunni fyrir hverja setningu. Láttu þá forritið ákveða hve margir stafir í orðinu fyrir hvert orð. Forritið ætti að vera á milli samhljóða og sérhljóða til að tryggja að gabbið sé enn áberandi. Forritið gæti einnig haft ákveðnar líkur á að setja inn sviga eða kommur, kannski 1 af 7 fyrir kommu og 1 af 40 fyrir sviga. Vertu viss um að fyrsta orðið í setningunni byrji með stórum staf. Í lok setningarinnar ætti forritið að ákveða hvort því ljúki með punkti, spurningarmerki eða upphrópunarmerki. Þú getur síðan endurtekið hversu margar handahófskenndar setningar þú vilt.



    Nú, ef þú vilt að forritið noti ALVÖRU orð, verður þú að vinna aðeins meira. Í fyrsta lagi þarftu lista yfir orð, 'orðabók' ef svo má segja. Þetta þarf að innihalda mikið af upplýsingum ef þú vilt búa til setningar með raunverulegum orðum. Þú þarft upplýsingar um málhluta hans (nafnorð, sögn, lýsingarorð, atviksorð, innskot osfrv.), Kyn (karlkyns, kvenkyns, hvorugkyns), ef orðið er sögn hvort sem það hefur einhverjar óreglulegar gerðir eða hvort sögnin er tímabundið eða ógegnsætt, ef orðið er nafnorð hvort sem það hefur óreglulegar fleirtölur (td 'datum' og 'gögn' eða 'gæs' og 'gæsir') eða hvort það er eiginnafn ekkert, sumt eða allan tímann , ef orðið er lýsingarorð hvort hægt sé að gera það að atviksorði með því að bæta við -ly, og í grundvallaratriðum upplýsingar um allar aðrar spurningar sem kunna að koma upp þegar setning er gerð. Það er líklega meira en nóg vinna akkúrat þarna. EN, þegar búið er að sjá um það, getur forritið notað handahófskennda töluframleiðandann ásamt reglum málfræðingsins til að búa til setningu „ramma“ og veldu síðan einfaldlega handahófsorð í rétta orðhlutanum til að „fylla út eyðurnar“. Til dæmis:

    (? grein?) (? lýsingarorð?) (nafnorð) (? atviksorð?) (sögn) (? grein?) (? lýsingarorð?) (? nafnorð?)

    Spurningamerkin benda til valkvæðra orðaþátta fyrir slíka rammasetningu. Forritið gæti sett setningar eins og eftirfarandi:

    10 / .01

    Blár apríkósu þykkir náðugur háu öpurnar.

    Bíllinn hefur gaman af raunveruleikanum.

    Prakkar halda treglega á öruggri slöngu.

    Barn kastar upp.

    Ef þú ert virkilega lengra kominn geturðu búið til aðra „setningaramma“:

    (? grein?) (? lýsingarorð?) (nafnorð) var (? atviksorð?) (sögn-fortíð_þátttaka)? eftir? (? grein?) (? lýsingarorð?) (? nafnorð-posessive?) (? grein?) (? lýsingarorð?) (? nafnorð?)

    Flauelsguð var næstum sleginn af hamingjusömum dollurum dýrindis yfirmannsins.

    Matthew var algerlega röntgen af ​​smjöri.

    Rauð sjálfsali var blásinn upp af stolti.

    Hinn fáránlega baseball var gleyptur.

    Að lokum verður þú að beita allri málþekkingu þinni og færni til að leysa vandamál - svo ekki sé minnst á mikinn tíma - á þessa. Reyndar hljómar það eins og eitthvað sem ég vil prófa. Sendu mér tölvupóst ef þú hefur áhuga.

  • Senthil

    Sjáðu hér, ég get ekki svarað þér en ég get gefið kóðann fyrir svipað forrit. Hérna er það:

    / * Magic.cpp * /

    / * Þetta forrit býr til slembitölu og fær innslátt

    frá notanda. Ef báðir leikirnir segja „Töfra“ annað „Þú veist ekki

    töfra '* /

    krabbamein sól krabbamein tungl

    # innifalið

    # innifalið

    # innifalið

    int búa til ();

    ógilt aðal ()

    {

    int rand_no;

    int input_no;

    clrscr ();

    hægri eyra brennandi merkingu

    kostnaður<<'What do you think is the Magic Number in my mind : ';

    cin >> input_no;

    rand_no = búa til ();

    mars Square Moon Synastry

    ef (rand_no == input_no)

    kostnaður<<'Woow! You are quite a magician!!!';

    Annar

    kostnaður<<'Phoof! You know no magic!!!';

    getch ();

    }

    int búa til ()

    {

    int rand_no;

    rand_no = rand ();

    skila rand_no;

    }