(H) Sekavaa tekstiä¶
Tavoite: Opin käyttämään STL:n iteraattoreita ja algoritmeja.
Ohjeita:
Hae ohjelmakoodipohja: templates/05/mixing_alphabets/
->
student/05/mixing_alphabets/
.
“According to a researcher (sic) at Cambridge University, it doesn’t matter in what order the letters in a word are, the only important thing is that the first and last letter be at the right place. The rest can be a total mess and you can still read it without problem. This is because the human mind does not read every letter by itself but the word as a whole.”
Ohjelmakoodipohjassa on valmiina toistorakenne, joka lukee tekstiä sana kerrallaan, kunnes syötetään sana “END”, ja tulostaa jokaisen lukemansa sanan. Lisää ohjelmaan ohjelmakoodirivi(t), jo(t)ka sotkevat luettua tekstiä yllämainittujen sääntöjen mukaisesti siten, että ihminen pystyy sitä lukemaan.
Käytä tekstin sotkemisessa STL:n algoritmia shuffle
ja ohjelmakoodipohjassa main
-funktion ensimmäisellä rivillä
määriteltyä pseudosatunnaislukugeneraattoria generator
,
jolloin ohjelmalle tuotetaan automaattitesteissä sopivia satunnaislukuja.
Seuraavassa esimerkissä ohjelmalle on copy-pastella liitetty 2 riviä tekstiä, mukaanlukien 2. rivin lopussa oleva rivinvaihto:
Enter some text. Quit by entering the word "END".
According to a researcher at Cambridge University it
does not matter in what order the letters in a word are END
Aonrcdicg
to
a
rcasheerer
at
Cabrmigde
Uvensriity
it
deos
not
maettr
in
what
oerdr
the
lettres
in
a
word
are
Vinkkejä tehtävän tekemiseen:
- Jos ohjelman käyttöliittymän toiminta tuntuu kummalliselta,
huomaa, että
while
-rakenne suoritetaan yhden kerran aina jokaiselle luetulle sanalle. Jos kirjoitat yhden sanan ja painat enter,while
-rakenne suoritetaan yhden kerran. Jos kirjoitat rivin, jolla on 5 sanaa,while
-rakenne suoritetaan 5 kertaa. Kun 5 sanan riviä käsiteltäessäwhile
-rakenne suoritetaan ensimmäisen kerran, loput 4 sanaa ovat syötepuskurissa odottelemassa, että ohjelma suorittaa seuraavan lukuoperaation. Tehtävänannossa olevassa esimerkissä kaikki näytölle copy-pastetut tekstirivit ovat syötepuskurissa odottelemassa seuraavaa lukuoperaatiota. - Jos syötteen lukeminen tuntuu hankalalta, niin sitä ei tarvitse ymmärtää. Riittää, että osaat kirjoittaa yhden sanan “sekoittamisen” ohjelmakoodipohjassa sille osoitettuun kohtaan.
A+ esittää tässä kohdassa tehtävän palautuslomakkeen.