Seuraavien harjoitusten tarkoituksena on opettaa C++ -ohjelmointiympäristön.
C++ -ohjelmien editointia ja kääntämistä harjoitellaan
C++BuilderX-kehitysympäristöllä ja komentorivillä Linux-koneella
Ensimmäiseksi hae itsellesi C++BuilderX personal-ohjelmiointiympäristön
rekisteröintitiedosto. Sen saat
borlandin sivuilta. Tiedoston pitäisi tulla sähköpostiisi. Tallenna se
hakemistoon C:\Documents and Settings\omatunnuksesi\ ja sen jälkeen
käynnistä C++BuilderX.
JOS ohjelma kysyy rekisteröintiä vastaa että sinulla on aktivointitiedosto ja
valitse hakemisto mistä se löytyy (ei pitäisi kysyä).
1. Yksinkertaisen ohjelman kirjoittaminen ja kääntäminen Borland C++BuilderX
-kehitysympäristön avulla.
- Luo uusi projekti tämän ohjeen mukaan. Anna
projektille nimeksi painoi. Laita myös ohjeen mukaan kääntäjään
kaikki varoitukset päälle.
- Lisää projektiin uusi CPP-tiedosto ja kopioi painoi.cpp
tiedoston sisältö siihen.
- Tallenna projekti ja kaikki tiedostot painamalla File->Save All.
- Käännä ohjelma painamalla Ctrl+F9 tai Project->Make Project
- Ohjelmointiympäristön pitäisi nyt tulostaa virheitä ja varoituksia.
Klikkaamalla tai siirtymällä nuolinäppäimillä
varoituksen/virheen kohdalle siirtyy kursori paikkaan, jossa varoitus/virhe
on ohjelmakoodissa.
- Korjaa kaikki virheet ja varoitukset.
- Käännä ohjelma ja testaa sitä.
- Tarkista vielä lopuksi mitä tiedostoja kääntäjä on luonut projektihakemistoosi.
2. Debuggerin käyttö.
C++ BuilderX:n debuggeri toimii samanlailla kuin JBuilderin debuggeri.
Kokeillaan kuitenkin korjatun version painoi2.cpp
ajamista debug-tilassa.
- Tee uusi projekti ja anna nimeksi painoi2. Kopioi
painoi2.cpp tiedosto projektihakemistoosi ja lisää
se projektiisi: Project->Add Files. Tai vaihtoehtoisesti voit taas
tehdä uuden CPP-tiedoston ja kopioida painoi2.cpp
tiedoston sisällön siihen.
- Käynnistä ohjelma debug-tilassa painamalla F8.
- Kun debug-tila on päällä
pitäisi ruudun alareunaan ilmestyä laatikko, jonka vasemmassa reunassa on
"läppiä". Valitse Data Watcehs-läppä ja klikkaa sitten oikealla napilla
tyhjää aluetta ja valitse Add Watch. Kirjoita Expression-kohtaan pituus ja
paina ok. Tee sama uudestaan ja lisää vahti paino-muuttujalle.
- Lisää vielä ehto paino<pituus ja
- Aja ohjelmaa rivi kerrallaan painamalla F8 tai F7, kuten JBuilderissa.
Voit myös asettaa koodiin keskeytyskohdan klikkaamalla koodieditorin vasempaa
reunusta haluamasi rivin kohdalta tai näppäimistöllä F5.
Valitsemasi rivin kohdalle pitäisi tulla punainen palkki.
- Katso välillä tulostusruutua, jossa ohjelma pyörii ja vastaile
tarvittaessa syöttöihin.
- Kokeile uudestaan. Käytä myös kursoriin saakka ajamista (eli siirrä
kursori jollekkin riville ja paina F4). Huomaa että ohjelman pitää olla tällöin
debug-tilassa.
- Ohjelman ajon voi keskeyttää painamalla Run->Program Reset tai F2.
3. Aliohjelmat ja referenssimuuttujat
Muokataan edellisessä luvussa kirjoitettua ohjelmaa niin, että parametrejä
ei välitetäkään osoittimien avulla.
- Tee uusi projekti ja anna nimeksi painoi3. Lisää taas haluamallasi tavalla
siihen painoi2.cpp tiedosto.
- Muokkaa tiedostosta painoi2.cpp tiedosto
painoi3.cpp poistamalla &-merkit
aliohjelmien kysy_paino ja kysy_pituus otsikoista.
- Aja ohjelma debug-tilassa ja tarkista, että paino ja pituus ovat Data
Watches-ikkunassa.
- Etene askel askeleelta ohjelma läpi ja tarkastele paino ja pituus vahtien
arvoja. Muuttuvatko ne samalla tavalla kuin aikaisemmin?
- Laita &-merkit takaisin tai avaa vanha projekti
painoi2 ja aja ohjelma uudestaa debug-tilassa. Tarkista että paino ja pituus
vahdit ovat asetettu ja seuraa niitä ohjelman edetessä. Mieti miksi nämä
versiot toimivat eri tavalla?
Lisätietoa C++:n funktioista ja parametrinvälityksestä on vuoden 2002 kurssin
luentomonisteessa: luku 8.
4. Yksinkertaisen C/C++-ohjelman editoiminen ja kääntäminen komentoriviltä
Linux/Unix-järjestelmissä.
Aloitetaan jo tutuksi tulleella Hello World! -ohjelmalla. Ota johonkin
atk-keskuksen Linux-koneeseen yhteys ssh:lla(itu, silmu, verso).
- Mene johonkin
sopivaan hakemistoon ja kirjoita seuraava koodi käyttäen jotain editoria(esim.
pico, emacs, vim):
#include <iostream>
using namespace std;
int main(void)
{
cout << "Hello World!\n";
return 0;
}
- Talleta esim. nimelle hello.cpp. Kääntäminen tapahtuu seuraavalla
käskyllä:
g++ hello.cpp -o hello
... ja ajaminen näin: ./hello
Eli yksinkertaisimmillaan annetaan kääntämiskäsky (g++), käännettävä koodi
(hello.cpp) ja nimi tuotokselle (-o hello). Huomaa että g++ on pelkästään C++-kääntäjä.
Voit käyttää myös halutessasi gcc kääntäjää joka on sekä C-, että C++-kääntäjä.
5. C:n ja C++:n eroja.
Sama ohjelma voidaan tehdä myös C:llä. Erona C:ssä on se, että syötössä
ja tulostuksessa pitää käyttää printf ja scanf-funktioita ja aliohjelmien
parametrienvälitys pääohjelmaan pitää tehdä osoittimien avulla.
- Tee uusi projekti nimellä painoi4 ja lisää siihen painoi3.cpp.
- Muuta nyt painoindeksi-ohjelma C-kielelle.
Vihjeitä: C:ssä et voi käyttää
iostream-otsikkotiedostoa, joten käytä stdio.h-otsikkotiedostoa. Yritä korvata
cout ja cin käskyt c:n vastaavilla printf ja scanf käskyillä. Sekä muuta
referenssimuuttujat osoittimilla. Apua voit katsoa taas monisteen
luku 8.
- Tallenna ohjelma nimellä painoi4.cpp ja testaa sitä.
Lisätietoa C++ -kielestä mm. seuraavissa lähteissä:
Santtu Salmi 21.4.2004