lab 13

background image

1

Informatyka 1

Informatyka 1

zaj

zaj

ę

ę

cia nr 13

cia nr 13

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.

Funkcje

Funkcje

przypomnienie podstaw

przypomnienie podstaw

2.

2.

Sposoby przekazywania parametr

Sposoby przekazywania parametr

ó

ó

w do

w do

funkcji

funkcji

a)

a)

przez warto

przez warto

ść

ść

b)

b)

przez wska

przez wska

ź

ź

nik

nik

c)

c)

przez referencj

przez referencj

ę

ę

3.

3.

Tablice jako parametry funkcji

Tablice jako parametry funkcji

4.

4.

Zadania do zrobienia

Zadania do zrobienia

background image

2

1. Funkcje

1. Funkcje

przypomnienie podstaw

przypomnienie podstaw

System

operacyjny

Funkcja

main()

Funkcja

biblioteczna

lub

użytkownika

Uruchomienie

programu,

przekazanie

parametrów

Wywołanie

funkcji,

przekazanie

parametrów

Zwrócenie

wartości

Zwrócenie

wartości

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.

1. Funkcje

1. Funkcje

przypomnienie podstaw

przypomnienie podstaw

background image

3

Funkcja z parametrami

Funkcja z parametrami

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!

1. Funkcje

1. Funkcje

przypomnienie podstaw

przypomnienie podstaw

a) przez warto

a) przez warto

ść

ść

Przekazywanie przez warto

Przekazywanie przez warto

ść

ść

przedstawione zosta

przedstawione zosta

ł

ł

o na poprzednim

o na poprzednim

slajdzie. Sprawd

slajdzie. Sprawd

ź

ź

my nast

my nast

ę

ę

puj

puj

ą

ą

cy przyk

cy przyk

ł

ł

ad:

ad:

void

void

podwoj_parametr(int

podwoj_parametr(int

a)

a)

{

{

a=a*2;

a=a*2;

return;

return;

}

}

Wywo

Wywo

ł

ł

anie:

anie:

int

int

liczba=10;

liczba=10;

podwoj_parametr(liczba

podwoj_parametr(liczba

);

);

printf("Liczba

printf("Liczba

po podwojeniu = %

po podwojeniu = %

d",liczba

d",liczba

);

);

2. Sposoby przekazywania parametr

2. Sposoby przekazywania parametr

ó

ó

w

w

Gdy parametr przekazujemy przez

wartość, przy wejściu do funkcji

kompilator tworzy jego kopię.

Wszelkie operacje wewnątrz funkcji

wykonywane są na tej kopii, ale jest

ona usuwana przy wyjściu z funkcji.
Zatem zmiana nie jest widoczna na

zewnątrz.

background image

4

b) przez wska

b) przez wska

ź

ź

nik

nik

void

void

podwoj_parametr(int

podwoj_parametr(int

*a)

*a)

{

{

*a=*a*2;

*a=*a*2;

return;

return;

}

}

Wywo

Wywo

ł

ł

anie:

anie:

int

int

liczba=10;

liczba=10;

podwoj_parametr(&liczba

podwoj_parametr(&liczba

);

);

printf("Liczba

printf("Liczba

po podwojeniu = %

po podwojeniu = %

d",liczba

d",liczba

);

);

2. Sposoby przekazywania parametr

2. Sposoby przekazywania parametr

ó

ó

w

w

W tym przypadku do funkcji trafia

adres obszaru w pamięci.
Operacje wykonywane są

na zawartości tego obszaru,

zatem zmiana widoczna

jest na zewnątrz.

c) przez referencj

c) przez referencj

ę

ę

void

void

podwoj_parametr(int

podwoj_parametr(int

&a)

&a)

{

{

a=a*2;

a=a*2;

return;

return;

}

}

Wywo

Wywo

ł

ł

anie:

anie:

int

int

liczba=10;

liczba=10;

podwoj_parametr(liczba

podwoj_parametr(liczba

);

);

printf("Liczba

printf("Liczba

po podwojeniu = %

po podwojeniu = %

d",liczba

d",liczba

);

);

//wywo

//wywo

ł

ł

anie nie r

anie nie r

ó

ó

ż

ż

ni si

ni si

ę

ę

od tego, gdy przekazujemy przez warto

od tego, gdy przekazujemy przez warto

ść

ść

2. Sposoby przekazywania parametr

2. Sposoby przekazywania parametr

ó

ó

w

w

Zasada taka sama

jak w poprzednim przypadku,

ale nieco inny mechanizm.

Zmiana także widoczna

jest na zewnątrz.

background image

5

void

void

zeruj(int

zeruj(int

tablica[10])

tablica[10])

{

{

int

int

i;

i;

for (i=0;i<10;i++)

for (i=0;i<10;i++)

tablica[i]=0;

tablica[i]=0;

}

}

Wywo

Wywo

ł

ł

anie:

anie:

int

int

tab[10];

tab[10];

zeruj(tab

zeruj(tab

); //przy wywo

); //przy wywo

ł

ł

aniu nie podajemy rozmiaru, a tylko nazw

aniu nie podajemy rozmiaru, a tylko nazw

ę

ę

3. Tablice jako parametry funkcji

3. Tablice jako parametry funkcji

Nazwa tablicy jest adresem

jej pierwszego elementu

(początku obszaru, w którym się mieści).

Zatem choć przekazanie wygląda jak

przez wartość, ale tylko tak wygląda.

Tak naprawdę jest to przekazanie

przez referencję i zmiana zachodzi.

Je

Je

ż

ż

eli chcemy zablokowa

eli chcemy zablokowa

ć

ć

tablic

tablic

ę

ę

przed zmian

przed zmian

ą

ą

w funkcji, dodajemy

w funkcji, dodajemy

modyfikator

modyfikator

const

const

.

.

void

void

zeruj(

zeruj(

const

const

int

int

tablica[10])

tablica[10])

{

{

int

int

i;

i;

for (i=0;i<10;i++)

for (i=0;i<10;i++)

tablica[i]=0;

tablica[i]=0;

}

}

Wywo

Wywo

ł

ł

anie:

anie:

int

int

tab[10];

tab[10];

zeruj(tab

zeruj(tab

); //i tu kompilator b

); //i tu kompilator b

ę

ę

dzie krzycza

dzie krzycza

ł

ł

,

,

ż

ż

e tak nie wolno

e tak nie wolno

3. Tablice jako parametry funkcji

3. Tablice jako parametry funkcji

background image

6

Dzi

Dzi

ę

ę

kuj

kuj

ę

ę

za uwag

za uwag

ę

ę


Wyszukiwarka

Podobne podstrony:
lab 13, Notatki, FIZYKA, SEMESTR II, laborki, lab
a, lab.13, Laborka 13
Lab 13
Lab 13 - rossi, Politechnika Śląska
lab 13, 9.2.1.10 Packet Tracer Configuring Standard ACLs Instructions
Lab 13 - Przewodzenie ciepła, laborka 13, Cel ?wiczenia
Lab 13 - Przewodzenie ciepła, skaly13
lab 13 8 1
Lab 13 id 257441 Nieznany
Lab 13 14 15 16 Multimedia Klasa 4 2011 2012 Lista4, Informatyka, Technikum, Grafika
LAB 13 SSANIE OPIS, sgsp, Hydromechanika, HYDROMECHANIKA 1
PW LAB 13
LAB 13, TARASIUK
NS1 lab 8 3 13 en Configure Cisco IOS Firewall CBAC
Lab 13 - Przewodzenie ciepła, laborka 13, Imię i nazwisko
IE RS lab 13 solutions
fiz lab 13
lab 13 5 1 2

więcej podobnych podstron