Wyklad 3 - funkcje -wprowadzenie, WIT, Semestr II, Podstawy Programowania C

Poza tym na świecie jest niewiele istot groźniejszych od kobiety.

Podstawy programowania. Wykład 3 – wprowadzenie do funkcji
Małgorzata Nalbach-Moszyńska
5
Funkcje ............................................................................................................................... 2
5.1
Wywołanie funkcji ...................................................................................................... 2
5.2
Definiowanie funkcji ................................................................................................... 3
5.3
Przekazywanie parametrów ......................................................................................... 6
5.4
Uwagi o tworzeniu funkcji .......................................................................................... 6
1
Podstawy programowania. Wykład 3 – wprowadzenie do funkcji
Małgorzata Nalbach-Moszyńska
5 Funkcje
·
Podstawowe „cegiełki”, których buduje się program.
·
W każdym programie musi być co najmniej jedna funkcja –
main.
·
Może być wiele definicji i wywołań innych funkcji
5.1 Wywołanie funkcji
#include <stdio.h>
#include <math.h> /*tu są prototypy funkcji matematycznych*/
/* double sqrt(double); prototyp funkcji sqrt-
można zamiast #include */
int main(){ /*funkcja wywołująca */
double arg= 4;
double wart;
wart = sqrt(arg); /*sqrt - funkcja wywoływana,*/
/*arg -argument funkcji */
printf( "sqrt( %f ) = %f\n", arg, wart );
/*co zostanie wyświetlone? */
return 0;
}
·
Kompilator musi znać wszystkie identyfikatory występujące w programie. Musi
wiedzieć, że:
o
Identyfikator jest nazwą funkcji,
o
typ wartości tej funkcji to ...
o
liczbę i typy argumentów (parametrów funkcji)
Te informacje są zawarte w:
o
definicji funkcji,
o
prototypie funkcji.
·
Oznacza to, że przed wywołaniem funkcji musi wystąpić albo definicja, albo prototyp
funkcji, w przeciwnym przypadku wystąpi błąd kompilacji;
·
Standardowe pliki nagłówkowe zawierają prototypy funkcji
standardowych
np. plik
<
math.h>
zawiera prototypy funkcji matematycznych. Przykłady:
sqrt
(pierwiastek kwadratowy),
double sqrt( double arg);
cos
(cosinus),
double cos(double arg); prototyp fcji
log (logarytm naturalny),
log10 (logarytm dziesiętny).
2
Podstawy programowania. Wykład 3 – wprowadzenie do funkcji
Małgorzata Nalbach-Moszyńska
Jak to działa?
Funkcja wywołująca
Funkcja wywoływana
kod funkcji sqrt()
...
...
...
return()
//powrót do funkcji wywołującej
...
int main(){
...
wart = sqrt(arg);
...
}
5.2 Definiowanie funkcji
Schemat definicji funkcji
<typ zwracanej wartości> <nazwa> ( <lista parametrów formalnych>){
<instrukcje>
}
Przykład Obliczanie pola prostokąta
double pole (double dlug, double szer){ /*nagłówek funkcji*/
return dlug * szer; /* ciało funkcji*/
/* i zwracana wartość */
}
·
Wartość zwracana – typ
double
·
Nazwa funkcji –
pole
·
Dwa argumenty dlug i szer - oba typu double.
·
Parametry w nagłówku definicji funkcji to
parametry formalne,
a parametry w
wywołaniu to
parametry aktualne
.
Jeżeli nie interesuje nas wartość zwracana to nadajemy typ
void
i
return
bez
wartości.
3
 Podstawy programowania. Wykład 3 – wprowadzenie do funkcji
Małgorzata Nalbach-Moszyńska
Przykład 2 – program z polem prostokąta najpierw definicje funkcji - potem wywołanie.
/* w3p2 - definiowanie funkcji - obsługa prostokątów
najpierw definicje funkcji - potem wywołanie */
#include <stdio.h>
float pole (float dlug, float szer){
/* funkcja pole oblicza pole prostokąta */
printf("Wyliczam pole prostokata. Dlugosc %2.2f szerokosc
%2.2f \n",dlug,szer);
/* wydruk kontrolny, ułatwia testowanie */
return (dlug * szer);
}
void wyswietlProst (float dl, float szer, float area){
/* funkcja wyswietlProst wyświetla dane prostokąta */
printf("Dane prostokata\n");
printf("\t Dlugosc = %2.2f \t Szerokosc = %2.2f \t Pole =
%4.2f\n",dl,szer,area);
return;
}
int main(){
float dlug, szer, area;
/* wczytujemy wymiary */
printf("\t Podaj dlugosc = ");
scanf("%f", &dlug);
printf("\n\t Podaj szerokosc = ");
scanf("%f", &szer);
area = pole(dlug, szer); /* obliczamy pole */
wyswietlProst (dlug, szer, area);
return 0;
}
4
Podstawy programowania. Wykład 3 – wprowadzenie do funkcji
Małgorzata Nalbach-Moszyńska
Przykład – program z polem prostokąta najpierw prototyp, potem wywołanie na końcu
definicja.
/* w3p3 - definiowanie funkcji - obsługa prostokątów
najpierw prototypy funkcji - potem wywołanie, na koniec
definicja */
#include <stdio.h>
float pole (float dlug, float szer);
void wyswietlProst (float dl, float szer, float area);
int main(){
float dlug, szer, area;
/* wczytujemy wymiary */
printf("\t Podaj dlugosc = ");
scanf("%f", &dlug);
printf("\n\t Podaj szerokosc = ");
scanf("%f", &szer);
area = pole(dlug, szer); /* obliczamy pole */
wyswietlProst (dlug, szer, area);
return 0;
}
float pole (float dlug, float szer){
/* funkcja pole oblicza pole prostokąta */
printf("Wyliczam pole prostokata. Dlugosc %2.2f szerokosc
%2.2f \n",dlug,szer);
/* wydruk kontrolny, ułatwia testowanie */
return (dlug * szer);
}
void wyswietlProst (float dl, float szer, float area){
/* funkcja wyswietlProst wyświetla dane prostokąta */
printf("Dane prostokata\n");
printf("\t Dlugosc = %2.2f \t Szerokosc = %2.2f \t Pole =
%4.2f\n",dl,szer,area);
return;
}
5
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • kachorra.htw.pl