1. C++ ohjelma
Ensimmäinen C++ -ohjelmamme näyttää siis seuraavalta:
C++ ohjelman rakenne koostuu seuraavista osista
Materiaalin osa | Tarkoitus | Esimerkki |
---|---|---|
Avainsanat | Sanat, joilla on erityinen merkitys kääntäjälle | int, float, if, float |
Tunnisteet | Sanat jotka eivät ole rakennettu kieleen | cout, std, x, funktio |
Literaalit | Sanat, jotka suoraan koodissa määrittivät arvon | “Hello, world!”, 24.3, 0, ’c’ |
Operaattori | Matemaattiset tai loogiset operaatiot | +, -, &&, %, « |
Välimerkit / Erottimet | Merkit jotka luovat rakennetta | { } ( ) , ; |
Tyhjät merkit | Tyhjät merkit, joilla ei ole kääntäjälle merkitystä | Välit, tab-merkit, rivinvaihto |
Esimerkki-ohjelman selitys rivi-riviltä
- Rivit jotka alkavat # merkillä ovat niin sanottuja esikääntäjän komentoja, ne muuttavat kirjoitettua lähdekoodia joka välitetään varsinaiselle kääntäjälle. #include komento kertoo esikääntäjälle, että tähän kohtaan sisällytetään sen tiedoston sisältö joka < >-merkkien sisään on kirjoitettu. Esimerkissä käytämme iostream tiedostoa joka antaa käyttöömme C++:sen syöte / tulostusfunktiot. #include-komennolla voidaan hakea tiedostoja joko käyttäjän/projektin omista poluista käyttämällä lainausmerkkejä esim. #include ”oma_header.h” tai sitten järjestelmänpoluista käyttämällä nuolimerkkejä kuten esimerkissä.
- using namespace std; , C++:ssa funktioita voidaan kasata osaksi nimiavaruuksia (namespace), jotta niiden hallinta ja erottelu olisi helpompaa. Tätä käsitellään myöhemmin kurssilla. Nyt riittää tietää, että komennolla määritellään, että tässä koodissa käytetään std-nimiavaruuden funktioita/muuttujia. Nämä funktiot tulevat edellä mainitusta iostream-tiedostosta.
- Jokainen C++ ohjelma sisältää yhden int main() -funktion, tämä on ohjelman kohta, josta kaikki ohjelman suoritus alkaa. Funktio palauttaa kokonaismuuttuja tyyppisen arvon (int) sille ohjelmalle, joka on ohjelmamme on käynnistänyt. Yleensä tämä arvo on 0, jos ohjelma on suoriutunut onnistuneesti. Muut arvot kuvaavat virhetilanteita ohjelmassa. main()-funktion sisältö on rajattu lohkoksi {…}-merkein.
- cout « “Hello World!” « endl;:
- **cout « **, kertoo kääntäjälle että haluamma tulostaa ruudulle jotain, tämä jotain seuraa « -merkin jälkeen.
- “Hello World!”, määrittää tähän kohtaan tekstityyppisen literaalin
- « endl;, yhdistää seuraavaksi tulostukseen endl; avainsanan, joka tarkoittaa rivinvaihtoa
- _**main-funktion **_lopussa on edellä mainittu ohjelman lopetus, tämä lopetus palauttaa 0 arvon.
Oppimistehtäviä:
Koeta kopioida rivi cout « “Hello World!” « endl; ja liittää se olemassa olevan rivin alle. Muuta rivin sisältöä, niin että se tulostaa oman nimesi.
Muuta return 0; -> return 1; , tapahtuuko mitään?
Entä jos poistat { -merkin, millaisia virheitä saat?, palauta nyt { -merkki
Lisää \n sanan Hello jälkeen, mitä tapahtuu? Testaa myös seuraavat \t, \\, \”
Jos kirjoitat koodia joka ei ole kelvollinen C++ -kääntäjälle, QtCreator ilmoittaa siitä virheellä: Näet miltä riviltä virhe löytyy sekä minkälainen virhe on kyseessä. Tuplaklikkaa riviä ja IDE avaa sinulle sen rivin jolla virhe on.