ohjelmoinnin perusteet


Funktiot ja niiden perusrakenteet
http://dy.fi/81b


SIMPPELI OHJELMA



#include <stdio.h>

int main(void){
  printf("Moi maailma!");
  return 0;
}

funktiot

Samankaltaisia kuin matematiikan funktiot niiltä osin, että 

funktio voi ottaa parametreja, ja 
funktiolla on tulos (funktio palauttaa arvon).

y=f(x)
y=x²

int potenssiinKaksi(int x){
    int y=x*x;
    return y;
} 

funktiot 2


Ohjelmointikielen funktiot voivat
  • 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)

#include <stdio.h> 

int main(void){ 
 

} 

perusrakenteet 

(kielen syntaksi + varatut sanat)

#include <stdio.h>

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



#include <stdio.h>

int main(void){
  printf("Moi maailma!");
 
return 0;
}

VALMIIN FUNKTION KUTSUMINEN



#include <stdio.h> // otetaan käyttöön standard io -funktiot

int main(void){
  printf("Moi maailma!");
  return 0;
}

void printf(char* text){
// ... 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?


Löyhä sukulaisuussuhde matematiikan muuttujiin

x = 5
x = 5 + 2

C/C++:ssa muuttujat määriteltävä ennen käyttöä
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,127