C++-kielessä on määritelty seuraavat aritmeettiset operaatiot:
Operaatioiden suoritusjärjestys on totuttu (ensin kerto- ja jakolasku, sitten yhteen- ja vähennyslasku) ja normaalin laskujärjestyksen voi ohittaa kaarisuluin ryhmittelemällä:
3+4*5 3*(4+5)
Huomattavaa on, ettei C++ tarjoa valmista operaattoria potenssiin korotusta varten.
Perussääntönä aritmeettisissa operaatioissa on, että jos molemmat operandit ovat saman tyyppisiä, on myös tulos kyseistä tyyppiä. Siten summan
4+5
tulos on kokonaisluku 9, mutta summan
4.0+5.0
tulos on liukuluku 9.0.
Erityisesti on huomattava, että kahden kokonaisluvun jako-operaatiossa tuloksena on kokonaisluku, eli tällöin suoritetaan kokonaisjako.
Näin ollen osamäärän
5/2
arvoksi saadaankin yllättäen tasan 2, kun taas osamäärän
5.0/2.0
arvoksi tulee 2.5.
Jos operaation toinen operandi on liukuluku ja toinen kokonaisluku, menetellään siten, että kokonaisluku muunnetaan automaattisesti liukuluvuksi ennen operaation suoritusta, joten varsinaisessa operaatiossa on kaksi liukulukua. Näin ollen tulos on liukuluku. Kääntäjä suorittaa muuntamisen itse, käyttäjän ei tarvitse siitä huolehtia. Käyttäjän tulee kuitenkin tietää, että kone suorittaa tällaista muuntamista. Muutoin tulee ennemmin tai myöhemmin eteen tilanne, jossa ihmetellään saatuja tuloksia. Siten lausekkeet
5/2.0 ja 5.0/2
molemmat antavat tulokseksi 2.5.
Lisäksi on määritelty etumerkkioperaatio -. Jos muuttujat i ja j ovat kokonaislukumuuttujia ja j:n arvo on 12, sijoituksen
i = -j;
jälkeen muuttujan i arvo on -12.
Kokonaisluvuille on määritelty myös modulo-operaatio %. Tämä operaatio palauttaa kokonaisjaon jakojäännöksen, eli operaation
14%5
arvoksi saadaan 4.
Ykkösen lisääminen tai vähentäminen muuttujan arvoon voidaan C++-kielessä suorittaa lyhyesti ++ tai-- operaatioilla, siis lause
i++; // sama kuin i = i + 1;
lisää muuttujan i arvoa yhdellä ja
i--; // sama kuin i = i - 1;
vähentää i:n arvoa yhdellä.
Käydään läpi tähän mennessä opittuja asioita esimerkin avulla. Ohjelmassa on kommentein kerrottu eri ohjelmakohtien ja lauseiden merkityksestä. Tällaista ylikommentointia ei omissa ohjelmissa tietenkään käytetä. Ohjelman lukijasta oletetaan (tavallisesti), että hän hallitsee C++-kielen, joten kaikki tyyppiä "tässä määritellään muuttuja" olevat kommentit voidaan omissa ohjelmissa unohtaa. Kommentein kerrotaan, mitä ohjelma tekee ja millä menetelmällä, eikä miten se on ohjelmoinnin kannalta toteutettu.
/* *********************************************************
ESIM1.CPP
Alkukommentti kertoo mm. ohjelman tekijän, päivämäärän ja
lyhyesti mitä ohjelma tekee. Kommentit eivät vaikuta
mitenkään ohjelman toimintaan. Kurssilla ohjelma ilman
kommentteja ei kuitenkaan "toimi".
Luotu: 05.08.1993, Markku Malinen
Muutettu: 15.09.1995, Tarmo Hyttinen
24.04.1997, Timo Männikkö
Toiminta: Laskee yhteen matkoja.
********************************************************* */
#include <iostream.h> // kirjasto, jossa määritelty mm. cout
int main(void) // pääohjelma
{
int alkumatka = 10, loppumatka; // muuttujien määrittelyt
int kokomatka; // alkumatka alustetaan, muita ei
double tuplamatka;
loppumatka = 15; // sijoitetaan vakioarvo
kokomatka = alkumatka + loppumatka; // sijoitetaan aritmeettisten
tuplamatka = 2.0*kokomatka; // lausekkeiden arvoja
cout << "Edestakainen matka on "; // tulostetaan näytölle
cout << tuplamatka << " km\n";
return 0; // palautetaan käyttöjärjestelmälle arvo 0
}
Mitä edellinen ohjelma tulostaa?