background image

1

Informatyka 1

Informatyka 1

zaj

zaj

ę

ę

cia nr 4

cia nr 4

Elektrotechnika, semestr II

Elektrotechnika, semestr II

rok akademicki 2008/2009

rok akademicki 2008/2009

mgr in

mgr in

ż

ż

. Pawe

. Pawe

ł

ł

Myszkowski

Myszkowski

Plan dzisiejszych zaj

Plan dzisiejszych zaj

ęć

ęć

1.

1.

Idea funkcji u

Idea funkcji u

ż

ż

ytkownika

ytkownika

2.

2.

Konstrukcja funkcji w j

Konstrukcja funkcji w j

ę

ę

zyku C

zyku C

3.

3.

Przyk

Przyk

ł

ł

ady funkcji u

ady funkcji u

ż

ż

ytkownika

ytkownika

4.

4.

Gdzie umieszczamy deklaracj

Gdzie umieszczamy deklaracj

ę

ę

funkcji?

funkcji?

5.

5.

Zmienne globalne i lokalne

Zmienne globalne i lokalne

background image

2

Funkcja

Funkcja

wysoce niezale

wysoce niezale

ż

ż

ny blok definicji

ny blok definicji

i instrukcji programu.

i instrukcji programu.

U

U

ż

ż

ywa si

ywa si

ę

ę

tak

tak

ż

ż

e terminu 

e terminu 

podprogram

podprogram

lub 

lub 

procedura

procedura

, chocia

, chocia

ż

ż

w niekt

w niekt

ó

ó

rych j

rych j

ę

ę

zykach 

zykach 

programowania 

programowania 

procedura

procedura

funkcja

funkcja

to 

to 

dwie r

dwie r

ó

ó

ż

ż

ne rzeczy.

ne rzeczy.

1. Funkcje u

1. Funkcje u

ż

ż

ytkownika 

ytkownika 

-

-

idea

idea

1. 

1. 

Funkcje u

Funkcje u

ż

ż

ytkownika 

ytkownika 

-

-

idea

idea

System

operacyjny

Funkcja

main()

Funkcja

biblioteczna

lub

użytkownika

Uruchomienie

programu

Wywołanie

funkcji

Zwrócenie

wartości

Zwrócenie

wartości

background image

3

Schemat:

Schemat:

typ_zwracanego_wyniku

typ_zwracanego_wyniku

nazwa_funkcji

nazwa_funkcji

(

(

parametry_funkcji

parametry_funkcji

)

)

{

{

//cia

//cia

ł

ł

o funkcji, czyli deklaracje zmiennych, instrukcje

o funkcji, czyli deklaracje zmiennych, instrukcje

return

return

warto

warto

ść

ść

_zwracana_przez_funkcj

_zwracana_przez_funkcj

ę

ę

;

;

}

}

Lini

Lini

ę

ę

typ_zwracanego_wyniku

typ_zwracanego_wyniku

nazwa_funkcji

nazwa_funkcji

(

(

parametry_funkcji

parametry_funkcji

)

)

nazywamy nag

nazywamy nag

ł

ł

ó

ó

wkiem funkcji.

wkiem funkcji.

2. Konstrukcja funkcji w j

2. Konstrukcja funkcji w j

ę

ę

zyku C

zyku C

1) Funkcja, kt

1) Funkcja, kt

ó

ó

ra nie zwraca 

ra nie zwraca 

ż

ż

adnej warto

adnej warto

ś

ś

ci

ci

i nie ma parametr

i nie ma parametr

ó

ó

w

w

Definicja:

Definicja:

void

void

plansza(void

plansza(void

)

)

{

{

printf("Oto

printf("Oto

program 

program 

obliczaj

obliczaj

ą

ą

cy

cy

\

\

n

n

\

\

n

n

");

");

printf("Autor

printf("Autor

: imi

: imi

ę

ę

nazwisko

nazwisko

\

\

n

n

\

\

n

n

");

");

getch

getch

(); //dzia

(); //dzia

ł

ł

a podobnie jak 

a podobnie jak 

system("PAUSE

system("PAUSE

");

");

return;

return;

}

}

Wywo

Wywo

ł

ł

anie:

anie:

plansza(); //wywo

plansza(); //wywo

ł

ł

ujemy w funkcji 

ujemy w funkcji 

main

main

3. Przyk

3. Przyk

ł

ł

ady funkcji u

ady funkcji u

ż

ż

ytkownika

ytkownika

void ma tu dwojakie znaczenie:

1) typ pusty (brak zwracanej wartości)

2) brak parametrów funkcji

background image

4

2) Funkcja, kt

2) Funkcja, kt

ó

ó

ra nie zwraca 

ra nie zwraca 

ż

ż

adnej warto

adnej warto

ś

ś

ci

ci

ale ma parametry

ale ma parametry

Definicja:

Definicja:

void

void

wypisz_sume(int

wypisz_sume(int

a, 

a, 

int

int

b)

b)

{

{

int

int

c=a+b

c=a+b

;

;

printf("

printf("

\

\

nSuma

nSuma

%d oraz %d wynosi %

%d oraz %d wynosi %

d",a,b,c

d",a,b,c

);

);

} //funkcja nic nie zwraca, ale wypisuje wynik na ekranie

} //funkcja nic nie zwraca, ale wypisuje wynik na ekranie

Wywo

Wywo

ł

ł

anie:

anie:

int

int

x1, x2;

x1, x2;

printf("Podaj

printf("Podaj

dwie liczby ca

dwie liczby ca

ł

ł

kowite: ");

kowite: ");

scanf("%d%d",&x1,&x2);

scanf("%d%d",&x1,&x2);

wypisz_sume(x1,x2);

wypisz_sume(x1,x2);

3. Przyk

3. Przyk

ł

ł

ady funkcji u

ady funkcji u

ż

ż

ytkownika

ytkownika

3) Funkcja, kt

3) Funkcja, kt

ó

ó

ra zwraca warto

ra zwraca warto

ść

ść

i ma parametry

i ma parametry

Definicja:

Definicja:

int

int

sumuj(int

sumuj(int

a, 

a, 

int

int

b)

b)

lub pro

lub pro

ś

ś

ciej

ciej

int

int

sumuj(int

sumuj(int

a, 

a, 

int

int

b)

b)

{

{

{

{

int

int

c=a+b

c=a+b

;

;

return (

return (

a+b

a+b

);

);

return c;

return c;

}

}

}

}

Wywo

Wywo

ł

ł

anie:

anie:

int

int

x1, x2, wynik;

x1, x2, wynik;

printf("Podaj

printf("Podaj

dwie liczby ca

dwie liczby ca

ł

ł

kowite: ");

kowite: ");

scanf("%d%d",&x1,&x2);

scanf("%d%d",&x1,&x2);

wynik=sumuj(x1,x2);  

wynik=sumuj(x1,x2);  

//inne wywo

//inne wywo

ł

ł

anie by

anie by

ł

ł

oby b

oby b

łę

łę

dne!

dne!

3. Przyk

3. Przyk

ł

ł

ady funkcji u

ady funkcji u

ż

ż

ytkownika

ytkownika

background image

5

Deklaracj

Deklaracj

ę

ę

(cia

(cia

ł

ł

o funkcji) mo

o funkcji) mo

ż

ż

emy umie

emy umie

ś

ś

ci

ci

ć

ć

:

:

1)

1)

w tym samym pliku co funkcja 

w tym samym pliku co funkcja 

main

main

()

()

a) przed funkcj

a) przed funkcj

ą

ą

main

main

()

()

b) po funkcji 

b) po funkcji 

main

main

()

()

2)

2)

w osobnym pliku (biblioteka funkcji 

w osobnym pliku (biblioteka funkcji 

u

u

ż

ż

ytkownika .h)

ytkownika .h)

4. Gdzie umieszczamy deklaracj

4. Gdzie umieszczamy deklaracj

ę

ę

funkcji?

funkcji?

1a) przed funkcj

1a) przed funkcj

ą

ą

main

main

()

()

#

#

include

include

<

<

stdio.h

stdio.h

>

>

typ_zwracany

typ_zwracany

moja_funkcja(parametry

moja_funkcja(parametry

)

)

{

{

//cia

//cia

ł

ł

o funkcji

o funkcji

}

}

int

int

main

main

()

()

{

{

moja_funkcja

moja_funkcja

(

(

); //wywo

); //wywo

ł

ł

anie funkcji

anie funkcji

}

}

4. Gdzie umieszczamy deklaracj

4. Gdzie umieszczamy deklaracj

ę

ę

funkcji?

funkcji?

background image

6

1b) po funkcji 

1b) po funkcji 

main

main

()

()

#

#

include

include

<

<

stdio.h

stdio.h

>

>

typ_zwracany

typ_zwracany

moja_funkcja(parametry

moja_funkcja(parametry

); //tzw. prototyp funkcji

); //tzw. prototyp funkcji

int

int

main

main

()

()

{

{

moja_funkcja

moja_funkcja

(

(

); //wywo

); //wywo

ł

ł

anie funkcji

anie funkcji

}

}

typ_zwracany

typ_zwracany

moja_funkcja(parametry

moja_funkcja(parametry

)

)

{

{

//cia

//cia

ł

ł

o funkcji

o funkcji

}

}

4. Gdzie umieszczamy deklaracj

4. Gdzie umieszczamy deklaracj

ę

ę

funkcji?

funkcji?

1) Zmienne globalne

1) Zmienne globalne

Zmienne globalne "widoczne" s

Zmienne globalne "widoczne" s

ą

ą

w ca

w ca

ł

ł

ym programie, 

ym programie, 

zar

zar

ó

ó

wno w funkcji 

wno w funkcji 

main

main

() jak te

() jak te

ż

ż

w funkcjach 

w funkcjach 

u

u

ż

ż

ytkownika.

ytkownika.

#

#

include

include

<

<

stdio.h

stdio.h

>

>

int

int

zmienna_globalna

zmienna_globalna

//zmienne globalne deklarujemy w nag

//zmienne globalne deklarujemy w nag

ł

ł

ó

ó

wku

wku

int

int

main

main

()

()

{

{

zmienna_globalna=10;

zmienna_globalna=10;

}

}

5. Zmienne globalne i lokalne

5. Zmienne globalne i lokalne

background image

7

2) Zmienne lokalne

2) Zmienne lokalne

Zmienne lokalne "widoczne" s

Zmienne lokalne "widoczne" s

ą

ą

tylko w tym 

tylko w tym 

bloku programu, w kt

bloku programu, w kt

ó

ó

rym s

rym s

ą

ą

zadeklarowane.

zadeklarowane.

int

int

main

main

()

()

{

{

int

int

zmienna_lokalna

zmienna_lokalna

//zmienna lokalna funkcji 

//zmienna lokalna funkcji 

main

main

//jest niewidoczna wewn

//jest niewidoczna wewn

ą

ą

trz funkcji u

trz funkcji u

ż

ż

ytkownika

ytkownika

}

}

5. Zmienne globalne i lokalne

5. Zmienne globalne i lokalne

2) Zmienne lokalne c.d.

2) Zmienne lokalne c.d.

#

#

include

include

<

<

stdio.h

stdio.h

>

>

int

int

moja_funkcja(void

moja_funkcja(void

)

)

{

{

int

int

zmienna_lokalna

zmienna_lokalna

//zmienna lokalna funkcji

//zmienna lokalna funkcji

//jest widoczna tylko wewn

//jest widoczna tylko wewn

ą

ą

trz funkcji 

trz funkcji 

moja_funkcja

moja_funkcja

}

}

5. Zmienne globalne i lokalne

5. Zmienne globalne i lokalne

background image

8

Dzi

Dzi

ę

ę

kuj

kuj

ę

ę

za uwag

za uwag

ę

ę