Język ANSI C – funkcje

Transkrypt

Język ANSI C – funkcje
Katedra Elektrotechniki Teoretycznej i
Informatyki
wykład 5 - sem.III
Dr inż. M. Czyżak
Język ANSI C – funkcje
Ogólna budowa programu w języku C
W języku C program składa się z jednego lub większej liczby
segmentów kodu zwanych funkcjami, z których jedna musi nazywać się
main().
Wykonanie programu zaczyna się od funkcji main() i program
powinien kończyć się wraz z zakończeniem działania funkcji main().
Program również może się zakończyć, gdy pojawi się sytuacja
nienormalna-wyjątek, np. dzielenie przez zero, albo też gdy zostanie
zakończony w sposób jawny ( ctrl-break, zamknięcie okna w systemie
Windows), powodem zakończenia może być też wywołanie funkcji
exit().
Język C – funkcje
Powody stosowania funkcji w programach (1)
1. Korzystanie z bibliotek lub funkcji stworzonych przez innych
programistów.
2. Podział zadania programistycznego na mniejsze, które mogą być
opracowywane niezależnie( np. w różnym czasie lub równocześnie
przez różnych programistów).
Język C – funkcje
Powody stosowania funkcji w programach (2)
3. Ułatwienia w uruchamianiu dużych programów ( można niezależnie
uruchamiać i testować poszczególne funkcje).
4. Program jest zbyt duży, by pisać go jako jedną funkcję main().
5. Unikanie powtarzania w programie tego samego kodu, gdy pewne
zadania trzeba wykonywać wielokrotnie.
Język ANSI C – funkcje
Funkcje a struktura programu w języku C (1)
Program w języku C może być programem jednoplikowym lub
wieloplikowym.
W programie jednoplikowym wszystkie funkcje znajdują się w
jednym pliku źródłowym lub są do niego dołączane przy zastosowaniu
dyrektywy #include.
W programie wieloplikowym pliki są łączone w sposób zależny od
środowiska (np. w środowisku Dev C++ opcja Projekt->Dodaj do
projektu).
Język ANSI C – funkcje
Funkcje a struktura programu w języku C (2)
- Funkcje nie muszą występować w pliku źródłowym w
określonym porządku ( pewne sposoby uporządkowania mogą
wymagać dodatkowych deklaracji), jednak umieszczenie main()
jako pierwszej funkcji w pliku ułatwia analizę programu.
- Każda funkcja może wywoływać dowolną inną funkcję.
- Nie jest dopuszczalne zagnieżdżanie funkcji, tzn. nie można
jednej funkcji definiować wewnątrz innej funkcji.
- W programie występuje tylko jedna funkcja main() i musi ona
wystąpić niezależnie od liczby plików źródłowych.
Język ANSI C – funkcje
Przykład. Prosty program stosujący funkcję do obliczania
kwadratu pewnej wartości.
#include <stdio.h> // lub #include <cstdio>
int kwadrat (int num){
int pom; // zmienna lokalna funkcji
pom=num*num;
return pom; }
// zmienna pom nie jest konieczna,
//być
return num*num;
int main()
{
int kw, wartosc;
printf("\n Podaj wartosc :");
scanf("%d",&wartosc);
Język ANSI C – funkcje
Wywołanie funkcji (uruchomienie kodu funkcji)
kw= kwadrat(wartosc);
/* zmienna wartosc jest tzw. argumentem funkcji, zmienna wartość zawiera
liczbę, która ma być podniesiona do kwadratu */
printf ("\n Kwadrat liczby %d
wynosi :%d",wartosc, kw);
system("PAUSE");
return 0;}
W momencie zakończenia działania, funkcja kwadrat przesyła do
funkcji main() obliczoną wartość i wartość ta jest wstawiana w
miejsce wywołania funkcji. W kolejnym etapie następuje wstawienie tej
wartości do zmiennej kw.
Język ANSI C – funkcje
Przykład. Zastosowanie deklaracji funkcji.
#include <stdio.h>
int kwadrat (int);
// deklaracja funkcji
int main() {
int kw, wartosc;
printf("\n Podaj wartosc :"); scanf("%d",&wartosc);
kw=kwadrat(wartosc);
printf("\n Kwadrat liczby %d wynosi:%d \n", wartosc,kw);
system ("PAUSE");
return 0;}
int kwadrat (int num){
int pom;
pom=num*num;
return pom;}
Język ANSI C – funkcje
Wynik działania programu
-----------------------Podaj wartosc :25
Kwadrat liczby 25 wynosi:625
Aby kontynuować, naciśnij dowolny klawisz . . .
Język ANSI C – funkcje
Przykład. (do wykonania w trakcie wykładu)
Napisać i wywołać w main() następujące funkcje:
a) funkcję obliczającą sumę swoich argumentów typu int
b) funkcję obliczającą różnicę swoich argumentów typu int
c)funkcję obliczającą iloczyn swoich argumentów typu double
Funkcje obliczające sumę i różnicę wywołać dla dwóch par argumentów.
Język ANSI C – funkcje
#include <stdio.h>
int sum (int a, int b);
// deklaracje funkcji
int roznica (int a, int b);
double iloczyn (double a, double b);
int main() {
int a,b,c,d,sum,roz;
double e,f,ilo;
printf("\n Podaj a :");
scanf("%d",&a);
printf("\n Podaj b :");
scanf("%d",&b);
sum=suma(a,b);// a,b to argumenty wywołania funkcji
Język ANSI C – funkcje
cz 2. programu
printf("\n Suma %d + %d =%d ", a,b,sum);
printf("\n Podaj c :");
scanf("%d",&c);
printf("\n Podaj d :");
scanf("%d",&d);
sum=suma(c,d);
printf("\n Suma %d + %d =%d ", c,d,sum);
roz=roznica(a,b);
printf("\n Roznica %d - %d =%d ", a,b,roz);
roz=roznica(c,d);
printf("\n Roznica %d - %d =%d
\n", c,d,roz);
Język ANSI C – funkcje
cz 3. programu
printf("\n Podaj e :"); scanf("%lf",&e);
printf("\n Podaj f :"); scanf("%lf",&f);
ilo=iloczyn(e,f);
printf("\n Iloczyn %f * %f =%f \n", e,f,ilo);
system ("PAUSE");
return 0;
}
Język ANSI C – funkcje
cz 4. programu
int suma (int a, int b){
int sum;
sum=a+b;
return sum;}
int roznica (int a, int b){
int roz;
roz=a-b;
return roz;}
double iloczyn (double a, double b){
double ilo;
ilo=a*b;
return ilo;}
Język ANSI C – funkcje
Wynik działania programu
--------------------------------Podaj a :2
Podaj b :3
Suma 2 + 3 =5
Podaj c :4
Podaj d :5
Suma 4 + 5 =9
Roznica 2 - 3 =-1
Roznica 4 - 5 =-1
Podaj e :2.5
Podaj f :3.5
Iloczyn 2.500000 * 3.500000 =8.750000
Aby kontynuować, naciśnij dowolny klawisz . . .
Język ANSI C – funkcje
Przykład. Napisać i zastosować w programie funkcję silnia.
#include <stdio.h>
int silnia (int n ){
int i, sil=1;
if (n>0)
for (i=1;i<=n;i++)
sil=sil*i;
return sil;
}
int main() {
int l1=5, l2=6;
int sil1,sil2;
sil1=silnia (l1);
sil2=silnia (l2);
printf("\n % d ! wynosi %d", l1,sil1);
printf("\n % d ! wynosi %d\n", l2,sil2);
system("PAUSE");
return 0;}
Język ANSI C – funkcje
Przykład. Napisać i zastosować w programie funkcję silnia.
Wynik działania programu
5 ! wynosi 120
6 ! wynosi 720
Aby kontynuować, naciśnij dowolny klawisz . . .

Podobne dokumenty