Cpp kertaustehtäviä
Mureakuha
Sisällysluettelo |
Tehtävät 1 - kirjoitussäännöt
- Milloin käytetään lohkosulkeita?
- Mikä ero on seuraavilla muuttujien määrityksillä?
const int pituus; static int paino; int ika;
- Mitä tarkoittavat termit viittausalue, näkyvyys ja elinikä?
Tehtävät 2 - tyypit, muuttujat ja vakiot
Määrittele seuraavat symboliset vakiot:
- tämä vuosi
- absoluuttinen nollapiste -273.15 C
- valonnopeus tyhjiössä 299792458 m/s
- elektronin varaus 1.6021773 * 10 ^ -19 C
- joka kuukauden sisältämien päivien lukumäärä omaan vakioonsa
Määrittele merkkijonomuuttuja koti ja alusta se kotikaupunkisi nimellä.
Määrittele merkkimuuttuja sukupuoli ja alusta se joko M- tai N-merkillä riippuen omasta sukupuolestasi.
Tehtävät 3 - ohjelman perustoiminnot
Kirjoita ohjelma, joka kysyy käyttäjältä valtion nimen ja tulostaa sen ruutuun.
Kirjoita ohjelma, joka kysyy käyttäjältä luvun ja tulostaa sen muutettuna kokonaisluvuksi, desimaaliluvuksi sekä sitä vastaavan ASCII-merkin.
Jos Maasta ammutaan raketti tarpeeksi suurella nopeudella, kulkee raketin ohjaajan mielestä aika hitaammin kuin Maahan jääneiden mielestä. Kaavan muodossa Maassa kuluva aika voidaan laskea seuraavasti; X = t/sqrt(1 - v*v / c*c), jossa t on raketin ohjaajan mittaama aika, v raketin nopeus ja c valonnopeus. Kirjoita ohjelma, joka laskee Maassa kuluneen ajan ja raketissa kuluneen ajan kun raketti käy mutkan seuraavissa tähdissä nopeudella, joka kysytään ohjelmassa:
- Alpha Centauri, etäisyys 4,3 valovuotta.
- Sirius, etäisyys 8,7 valovuotta.
- Tau Ceti, etäisyys 11,8 valovuotta.
Tehtävät 4 - vertailu- ja toistolauseet
Kirjoita ohjelma, joka kysyy käyttäjältä merkkejä yksi kerrallaan, kunnes käyttäjä syöttää nollan ja laskee ja näyttää merkkien ASCII-koodien yhteisarvon.
Kirjoita ohjelma, jossa käyttäjältä kysytään käyttäjätunnus ja salasana. Käyttäjällä on kolme mahdollisuutta syöttää oikea yhdistelmä, jolloin järjestelmä päästää eteenpäin. Muuten ohjelma ilmoittaa virheilmoituksella.
Kirjoita ohjelma, joka tulostaa:
- vain parilliset numerot väliltä 2 - 100.
- kolmella tai viidellä jaolliset numerot 0 - 100.
- numerot 0, 1, 2, 3, 4, 5, 10 ... 15, 20 ... 25, ... aina 95 asti.
- numerot 1 - 10, täydet kymmenet 10 - 100, täydet sadat 100 - 1000, täydet tuhannet 1000 - 10000 jne aina miljardiin asti.
Kirjoita ohjelma, jossa käyttäjältä kysytään satunnaisia kertolaskuja ja ohjelma pitää kirjaa oikeiden ja väärien vastauksista lukumäärästä. Ohjelma lopettaa laskennan negatiivisella vastauksella. C-kielessä satunnaislukuja tuotetaan rand-funktiolla (esim. int a = rand();) joka löytyy stdlib.h -otsikkotiedostosta.
Tehtävät 5 - merkkitiedon ja merkkijonon käsittely
Kirjoita ohjelma, joka kysyy käyttäjältä merkkejä yksi kerrallaan ja ilmoittaa onko merkki:
- iso kirjain
- pieni kirjain
- numero
- jokin muu erikoismerkki
Ohjelma lopettaa risuaidalla eli '#'-merkillä.
Kirjoita ohjelma, joka kysyy käyttäjältä merkkejä 'a'...'z' ja 'A'...'Z' yksi kerrallaan, kunnes käyttäjä syöttää jonkin muun merkin. Ohjelma näyttää syötetyn merkkijonon kokonaisuudessaan ja laskee merkkien ASCII-koodien yhteisarvon.
Kirjoita ohjelma, joka kysyy käyttäjältä kaksi merkkijonoa ja liittää ne yhteen siten, että pitempi merkkijono on ensin ja lyhempi vasta sitten riippumatta syöttöjärjestyksestä.
Tehtävät 6 - lisää tyypeistä
Kirjoita ohjelma, joka kysyy käyttäjältä pieniä kirjaimia yksitellen ja pitää yllä taulukkoa syötettyjen merkien määrästä. Kun käyttäjä syöttää pisteen, ohjelma tulostaa koko taulukon, josta selviää kuinka monta kappaletta kutakin merkkiä syötettiin.
Muodosta C-kielen enum-rakenteella BOOLEAN tietotyyppi, joka voi saada arvoja TOSI = 1 ja EPATOSI = 0. Muodosta struktuuri AUTO ja tätä struktuuria käyttävä muuttuja. Struktuuri käsitää seuraavat tiedot; merkki (char[20]), hinta uutena (long), valmistusvuosi (int), ajetut kilometrit (float), katsastettu (BOOLEAN). Määrittele ja alusta muuttuja oman autosi tiedoilla. Tulosta nämä tiedot, sekä laske tietoja hyväksi käyttäen auton tämän päivän hinta (hinta putoaa kymmenesosan joka vuosi) sekä keskimääräinen päivän ajomatka.
Toteuta CD-levyjen tietokantaohjelma, jossa on seuraava valikko:
=============================== a = lisää uusi CD b = poista CD c = selaa tietoja x = lopeta ===============================
Ohjelmassa on tilaa viidelle tietueelle. Jokaisesta levystä talletetaan 6 tietoa; koodi, esittäjä, levyn nimi, julkaisuvuosi, kokonaiskesto ja sanallinen arvostelu. Alusta käyttämättömät solut miinus-merkillä tai numerolla nolla. Ohjelman täytyy itse tunnistaa onko jokin tietue käytössä vai onko se tyhjä, eikä käytettyjen tietueiden päälle saa kirjoittaa.
Kirjoita ohjelma, jossa arvotaan lottonumeroita. Käyttäjältä kysytään ensin 7 numeroa, ohjelma arpoo satunnaisesti toiset 7 numeroa ja lopuksi näyttää kuinka monta käyttäjä sai oikein. Luo kaksi taulukkoa. Toiseen talletetaan käyttäjän numerot (esim. valitut[39], jossa 1 tarkoittaa valittua ja 0 ei valittua) ja toiseen arvotut numerot (esim. arvotut[39], jossa 1 tarkoittaa arvottua ja 0 ei arvottua). Sekä kone, että käyttäjä eivät saa valita samaa numeroa kuin yhden kerran.
Tehtävät 7 - aliohjelmat
Kirjoita funktio Suureksi(merkki), joka toimii samalla tavalla kuin ctype-kirjaston funktio toupper(merkki), mutta se toimii myös merkeillä å, ä, ö. Funktio siis muuntaa kirjainmerkin suureksi. VINKKI: Skandinaavisten merkkien ASCII-koodit ovat: ä 132, å 134, ö 148, Ä 142, Å 143, Ö 153. Muut merkit: a 97, ..., z 122 ja A 65, ..., Z 90. Käytä tätä tietoa hyväksesi.
Kirjoita C++-funktio Boforit, joka käyttää alla olevaa taulukkoa palauttaakseen tuulennopeuden boforeina riippuen saamastaan nopeus-parametristä.
Boforia Nopeus max (m/s) Nimi ======= ================ =========== 0 0.5 Tyyni 1 1.7 Hiljainen 2 3.3 Heikko 3 5.2 Heikonlainen 4 7.4 Kohtalainen 5 9.8 Navakka 6 12.4 Kova 7 15.2 Luja 8 18.2 Raju 9 21.5 Myrsky 10 25.1 Kova myrsky 11 29.0 Ankara myrsky 12 yli 29.0 Hirmumyrsky
Kirjoita funktio MassaEnergiaksi, joka ottaa esineen massan (merkitään m) parametrinä ja palauttaa sen vastaavuuden enegiassa Jouleina (lasketaan e=m*c*c) ja sille pääohjelma. Jos mikroaaltouunin teho on 1000 W eli se kuluttaa energiaa 1000 Joulea sekunnissa, kuinka monta vuotta laite toimisi annetulla massalla, jos kaikki energia saataisiin käyttöön? Valonnopeus c on 299792458 m/s.
Kopio lisenssistä (englanniksi) löytyy täältä.
Alkuperäinen (c) Petteri Hämäläinen
