Viikkoharjoitus 1

Ensimmäisissä harjoituksissa tutustutaan hieman sovulluksen tekemiseen C-kielellä ja GNU-työkaluilla. Alla on toimiva hello world lähdekoodi.

#include <stdio.h>

int main(int argc, char **argv) //Ohjelman suoritus alkaa main-funktiolla,
                                //joka saa kaksi parametria käynnistyessään: 
			        //1. kertoo sille annetujen parametrien
			        //määrän ja 2. on osoite parametritaulukkoon
{
	printf("Hello world\n");    //Tulostetaan viesti
	return 0;                   //ja poistutaan nollalla.
}

Koodin voi kääntää toimivaksi esim. jalavassa komennolla

gcc hello.c -o hellow

ja suorittaa komennolla

./hellow

Tehtävä 1

Kokeile tehdä ja ajaa edellä mainittu ohjelma.

Tehtävä 2

Tee otsikkotiedosto fibonacci.h ja sen sisällöksi seuraavaa:

#ifndef FIBONACCI_H
#define FIBONACCI_H

int fibonacci(int);//Laskee parametrinä annetun fibonaccin luvun
		   //ja palauttaa tämän tai nollan, jos parametri "liian iso" 

#endif /* FIBONACCI_H */

Lisää Hello World -sovellukseesi alla oleva rivi muiden includien perään

#include "fibonacci.h"

sekä seuraava muuttujan esittely, funktiokutsu ja tulostusrivi:

int f;
f=fibonacci(5);
printf("5. Fibonacci luku on %d",f);

Edellä annettu gcc-komento ei enää toimikaan. Miksi? (Tämän sinänsä pitäisi olla triviaalia, mutta kysytään kuitenkin.)

Tehtävä 3

Nouda osoitteesta http://users.jyu.fi/~kurhinen/tiea325/fibonacci.o edellisessä tehtävässä kutsumasi fibonaccin luvun laskevan rutiinin objektikoodi fibonacci.o. Miten saat tämän tiedoston avulla edellisen sovelluksen tehtävän toimimaan?