Cpp kertaustehtäviä

Mureakuha

Loikkaa: valikkoon, hakuun

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.

C++ ratkaisu

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.

C++ ratkaisu

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.

C++ ratkaisu

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.

C++ ratkaisu

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.

C++ ratkaisu

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ä.

C++ ratkaisu

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.

C++ ratkaisu

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ä.

C++ ratkaisu

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.

C++ ratkaisu

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.

C++ ratkaisu

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.

C++ ratkaisu

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.

C++ ratkaisu

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.

C++ ratkaisu

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

C++ ratkaisu

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.

C++ ratkaisu

Tämän dokumentin kopiointi, levittäminen sekä muokkaaminen on sallittua GNU Free Documentation Licensen version 1.2 tai uudemman Free Software Foundationin julkaiseman version mukaisesti, ilman muuttumattomuuslauseketta tai kansitekstejä. Tätä koskee vastuuvapaus.
Kopio lisenssistä (englanniksi) löytyy täältä.


Alkuperäinen (c) Petteri Hämäläinen

Henkilökohtaiset työkalut