Ohjelmointi 2 2016 / Pääteohjaus C1
Seuraavien harjoitusten tarkoituksena on opettaa C++ -ohjelmointiympäristön. C++ -ohjelmien editointia ja kääntämistä harjoitellaan IDE:ssä ja komentorivillä Linux-koneella
1. C++ ja IDE:t
Valitse ensin IDE jolla haluat harjoitella. Kun tuo harjoitus loppuu, palaa tähän harjoitukseen jatkamaan yleistä osaa kohdasta 2.
- IDEnä Eclipse
- IDEnä CodeLite (sovella Eclipse ohjeita ja tehtäviä)
- IDEnä CodeBlocks (sovella Eclipse ohjeita ja tehtäviä)
2. Aliohjelmat ja referenssimuuttujat
Muokataan edellisessä esimerkissä kirjoitettua ohjelmaa niin, että parametrejä ei välitetäkään viitteiden 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 -muuttujat ovat näkyvissä kun askellat.
- Etene askel askeleelta ohjelma läpi ja tarkastele paino ja pituus -muuttujien 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.
painoi3.cpp
#include<iostream>
using namespace std;
void kysy_paino(double pai)
{
cout<<"Anna painosi(kg)>";
cin>>pai;
}
void kysy_pituus(double pit)
{
cout<<"Anna pituutesi(cm)>";
cin>>pit;
}
int main(void)
{
double pituus,paino;
kysy_pituus(pituus);
kysy_paino(paino);
double painoind=paino/( pituus*pituus/10000);
cout<<"Painoindeksisi on: "<<painoind<<"\n";
return 0;
}
3. 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 (esim. jalava) tai kokeile onko sinulla tunnus koneessa charra.it.jyu.fi.
- 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;
}
- 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ä.
4. 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.c ja testaa sitä.
Lisätietoa C++ -kielestä mm. seuraavissa lähteissä:
- Ohjelmointi++ -kurssin luentomoniste vuodelta 2002.
- Olio-ohjelmointi ja C++.
- Ohjaajien kirjoittamaa kertausmateriaalia mm. osoittimista, olioista, merkkijonoista ja tiedostoista.
Santtu Salmi 21.4.2004, Vesa Lappalainen 16.4.2007 & 1.4.2011
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.