Pääteohjaus C1

Seuraavien harjoitusten tarkoituksena on opettaa C++ -ohjelmointiympäristön. C++ -ohjelmien editointia ja kääntämistä harjoitellaan Delphi 2006 tai 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.

  1. 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.
  2. Lisää projektiin uusi CPP-tiedosto ja kopioi painoi.cpp tiedoston sisältö siihen.
  3. Tallenna projekti ja kaikki tiedostot painamalla File->Save All.
  4. Käännä ohjelma painamalla Ctrl+F9 tai Project->Make Project
  5. 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.
  6. Korjaa kaikki virheet ja varoitukset.
  7. Käännä ohjelma ja testaa sitä.
  8. 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.

  1. 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.
  2. Käynnistä ohjelma debug-tilassa painamalla F8.
  3. 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.
  4. Lisää vielä ehto paino<pituus ja
  5. 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.
  6. Katso välillä tulostusruutua, jossa ohjelma pyörii ja vastaile tarvittaessa syöttöihin.
  7. 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.
  8. 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.
  1. Tee uusi projekti ja anna nimeksi painoi3. Lisää taas haluamallasi tavalla siihen painoi2.cpp tiedosto.
  2. Muokkaa tiedostosta painoi2.cpp tiedosto painoi3.cpp poistamalla &-merkit aliohjelmien kysy_paino ja kysy_pituus otsikoista.
  3. Aja ohjelma debug-tilassa ja tarkista, että paino ja pituus ovat Data Watches-ikkunassa.
  4. Etene askel askeleelta ohjelma läpi ja tarkastele paino ja pituus vahtien arvoja. Muuttuvatko ne samalla tavalla kuin aikaisemmin?
  5. 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) tai kokeile onko sinulla tunnus koneessa charra.it.jyu.fi.

  1. Mene johonkin sopivaan hakemistoon ja kirjoita seuraava koodi käyttäen jotain editoria(esim. pico, nano, emacs, vim):
    #include <iostream>
    
    using namespace std;
    
    int main(void)
    {
      cout << "Hello World!\n";
      return 0;
    }
    
  2. 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.

  1. Tee uusi projekti nimellä painoi4 ja lisää siihen painoi3.cpp.
  2. 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.

  3. Tallenna ohjelma nimellä painoi4.cpp ja testaa sitä.

Lisätietoa C++ -kielestä mm. seuraavissa lähteissä:

Santtu Salmi 21.4.2004