Ratkaistu: luo satunnainen merkki

Viimeisin päivitys: 09/11/2023
Kirjoittaja: C SourceTrail

Muoti- ja ohjelmointiasiantuntijana arvostan molempien maailmojen kauneutta, jopa satunnaisten merkkien luomisessa. C++:n maailmassa tämä tehtävä voidaan rinnastaa täydellisen asun muotoiluun: se vaatii periaatteiden ymmärtämistä, luovuutta ja ripaus satunnaisuutta tehdäkseen siitä jännittävän.

Tänään lähdemme jännittävälle matkalle ja perehdymme syvemmälle funktion luomiseen satunnaisen merkin luomiseksi C++:ssa. Aivan kuten kauniin vaatekappaleen neulominen, käytämme oikeita työkaluja ja tekniikoita luodaksemme ohjelman, joka on sekä toimiva että tehokas.

Mukana olevat kirjastot

Tärkein satunnaislukujen generointitoiminto on kirjastossa, joka tunnetaan nimellä cstdlib. Se on kuin pääkangas, jota käytämme muotimestariteoksen luomiseen. Tämä kirjasto sisältää funktion nimeltä rand().

#sisältää

Kun tätä funktiota kutsutaan, se palauttaa kokonaisluvun välillä 0 ja RAND_MAX, vakion cstdlibissä, joka tyypillisesti edustaa suurta arvoa. Samalla tavalla kuin eloisat värit voivat herättää muotikappaleen, satunnaisuus lisää koodiimme arvaamattomuutta, mikä tekee siitä dynaamisen ja joustavan.

Satunnaisen hahmon luominen

Samalla tavalla kuin huolellinen muotisuunnittelija yhdistää eri elementtejä luodakseen upean ilmeen, aiomme nyt yhdistää työkalumme ratkaistaksemme käsillä olevan tehtävän – luomalla satunnaisen hahmon. Tämä sisältää joukon rand()-funktion palauttamia kokonaislukuja kartoitetaan tulostettavia merkkejä vastaaviin ASCII-arvoihin.

#sisältää
#sisältää
#sisältää

char gener_random_char() {
srand(aika(0));
int satunnainenInt = rand() % 128;
while(randomInt < 33) { randomInt = rand() % 128; } palauttaa static_cast(randomInt);
}

int main () {
std::cout << genero_random_char(); paluu 0; } [/code] Muodissa ajoitus on kaikki kaikessa, eikä se eroa meidän maailmassamme. Time(0)-funktio ctime-kirjastosta auttaa meitä siementämään rand()-funktiomme nykyisen ajan perusteella, mikä johtaa erinomaiseen satunnaisuusgeneraattoriin. Aivan kuten ajaton vaate, joka kestää ajan kokeen, niin myös ratkaisumme.

Koodia käsittelevä

Funktio rand() palauttaa satunnaisen kokonaisluvun. Kuten aiemmin mainittiin, tätä voitaisiin verrata satunnaisen kankaan poimimiseen muotilaatikosta. Mutta kaikki materiaalit eivät sovellu suunnitteluumme; Tästä syystä niiden laatu tai tässä tapauksessa valikoima on tarkistettava.

Moduloimme satunnaislukua 128:lla varmistaaksemme, että se on tulostettavien ASCII-merkkien alueella, joka on 0–127. Ei-tulostettavien merkkien poistamiseksi otamme kuitenkin käyttöön while-silmukan, joka tuottaa satunnaislukuja, kunnes saamme satunnaisluvun 33 tai enemmän, joka vastaa ensimmäistä tulostettavaa ASCII-merkkiä – '!' (huutomerkki).

Lopuksi muunnetaan (valetaan) int chariksi. Tuloksena on satunnainen tulostettava merkki. Jokainen funktion kutsu luo eri merkin, koska käytämme aikaperusteista kylvöä. Lopulta ainutlaatuinen mestariteoksemme on valmis maailman nähtäväksi, aivan kuten viimeisin muotitrendi iskee kiitoradalle. Molemmissa maailmoissa yllätys on ensiarvoisen tärkeää, ja se on ohjelmoinnin satunnaisuuden kauneus ja muodin tyyli.

Yhteenvetona voidaan todeta, että aivan kuten erilaiset elementit muodostavat muodin, eri kirjastot ja toiminnot sekoittuvat ratkaisemaan ohjelmointihaasteita. Satunnainen merkkien sukupolvi on vain yksi upeista asioista, joita voimme tehdä C++:lla, aivan kuten luoda upea asukokonaisuus näennäisesti yhteensopimattomista esineistä. Se on luovuuden taikuutta – oli se sitten muodissa tai koodissa.

Related viestiä: