ohjelmoinnin perusteet
Funktiot ja niiden perusrakenteet
SIMPPELI OHJELMA
int main(void){
printf("Moi maailma!");
return 0;
}
funktiot
int potenssiinKaksi(int x){
int y=x*x;
return y;
}
funktiot 2
- ottaa parametriksi ja
- tuottaa tulokseksi (palauttaa)
minkä tahansa muotoista tietoa.
Funktion kutsuminen aiheuttaa
suorituksen haarautumisen.
funktiot 3
Parametrien nimien ei täydy olla samoja prototyypin
- esittelyssä
- toteutuksessa
- tai kutsuvassa funkotiossa
...mutta tietotyyppien täytyy olla samat
summa(int x,int y) on sama kuin
summa(int a, int b)
mutta eri kuin summa(int x, float y) .
(Mikko Vuorinen, Ohjelmoinnin perusteet, Metropolia 2011)
funktiot 4
C:ssä funktiolle välitetään parametrit aina arvoina!
Eli funktioita kutsuttaessa parametrien arvot kopioidaan funktion parametreihin.
-> Jos muuttujan arvoa muuttaa funktiossa, se ei automaattisesti näy alkuperäisessä muuttujassa, joka on annettu parametriksi
funktiot 5
(Mikko Vuorinen, Ohjelmoinnin perusteet, Metropolia 2011)
#include "stdio.h"
void multiplyByThree(int n);
int main(void){
int number=3;
printf("%d",number);
printf("\n");
multiplyByThree(number);
printf("%d",number);
printf("\n");
}
void multiplyByThree(int number){
number = number * 3;
}
Title
int main(){
int omataulukko[5];
int pieninluku=pienin(omataulukko);
}
int pienin(int luvut[]){
int i=0,pienin;
while(i
Title
#include "stdio.h"
int multiplyByThree(int n);
int main(void){
int number=3;
printf("%d",number);
printf("\n");
number=multiplyByThree(number);
printf("%d",number);
printf("\n");
}
int multiplyByThree(int number){
number = number * 3;
return number;
}
PERUSRAKENTEET
(KIELEN SYNTAKSI + VARATUT SANAT)
int main(void){
perusrakenteet
(kielen syntaksi + varatut sanat)
int main(void){
printf("Moi maailma!");
return 0;
}
OMAN FUNKTION MÄÄRITTELY
#include <stdio.h>
int main(void){ // "void" tarkoittaa: tyhjä, ei parametrejä
funktion sisältö aaltosulkuihin
int main(void){
printf("Moi maailma!");
return 0;
}
VALMIIN FUNKTION KUTSUMINEN
int main(void){
printf("Moi maailma!");
return 0;
}
// ... komennot näytölle tulostamiseen ...
funktion suorituksen loppu
#include <stdio.h>
int main(void){
printf("Moi maailma!");
return 0; // koska funktion tyyppi yllä on int, palautettava kokonaisluku
}
kehittyneempi ohjelma
#include
/* Tämä on hieno ohjelma*/
int main(void){
int luku = 0;
printf("Moi maailma!");
scanf("%d", &luku);
printf("Luku oli: %d\n",luku);
return 0;
}
muuttujan määrittely
#include
/* Tämä on hieno ohjelma*/
int main(void){
int luku = 0;
printf("Moi maailma!");
scanf("%d", &luku);
printf("Luku oli: %d\n",luku);
return 0;
}
muuttujat?
int luku = 5;
bool kyllaTaiEi = true; // arvo: true / false
double desimaaliluku = 5.5; // liukuluku
char* teksti = "Moi maailma!";
QString teksti = "Moi tietokone.";
luvun kysyminen
#include <stdio.h>
/* Tämä on hieno ohjelma*/
int main(void){
int luku;
printf("Moi maailma!");
scanf("%d", &luku);
printf("Luku oli: %d\n",luku);
return 0;
}
funktiot, joilla on monta parametria
Luetaan käyttäjän kirjoittama arvo scanf():llä
scanf()-funktio toimii seuraavasti:
scanf("%d", &luku);
1. parametri määrittää että luetaan kokonaisluku,
2. parametri kertoo mihin muuttujaan luku tallennetaan
(Parametrit erotetaan pilkulla.)
scanf: taas yksi funktio
Scanf-funktion runko voisi näyttää esimerkiksi tältä:
void scanf(char* format, int* value1){
//funktion runko
}
muuttujan arvo näytölle
#include
/* Tämä on hieno ohjelma*/
int main(void){
int luku;
printf("Moi maailma!");
scanf("%d", &luku);
printf("Luku oli: %d\n",luku);
return 0;
}
valinnaiset parametrit
Jotkut funktiot voivat ottaa yhden tai monta parametria
printf("Moi maailma!");
printf("Luku oli: %d\n",luku);
ohjelmoinnin peruskäsitteet - funktiot (vanha)
By Olli Savolainen
ohjelmoinnin peruskäsitteet - funktiot (vanha)
- 3,277