PODSTAWY PROGRAMOWANIA ĆWICZENIE NR 4 Funkcje

advertisement
PODSTAWY PROGRAMOWANIA
ĆWICZENIE NR 4
Funkcje definiowane przez użytkownika
Podczas pisania programu często zdarza się, że pewien jego fragment występuje kilkakrotnie, lub
chcemy jakąś cześć naszego programu wydzielić w celu jego lepszej przejrzystości. W tym celu stosuje się
funkcje, które definiowane są przez użytkownika. Funkcja najkrócej mówiąc, to taki kawałek programu w
programie. To tak jakby na potrzeby naszego programu napisać inny „mniejszy” program, który będziemy
wielokrotnie uruchamiać. Definiowanie dowolnej funkcji wygląda następująco:
Typ_zwracany nazwa_funkcji ( lista_przekazywanych_argumentów)
{
.....
wnętrze_funkcji
.....
return wartość_zwracana_przez_funkcję
}
Dla przykładu napiszmy funkcję obliczającą silnię z podanej liczby.
double silnia(int wartosc)
{
double wynik=1;
int i;
for(i=2;i<=wartosc;i++)
{
wynik=wynik*i;
}
return wynik;
}
W linii pierwszej zadeklarowaliśmy, że funkcja będzie zwracać liczbę typu double, nazwa funkcji to
silnia i do funkcji przekazywany jest 1 parametr typu int, który wewnątrz funkcji widziany jest pod zmienną o
nazwie wartosc. W przypadku gdy do funkcji chcemy przekazać więcej parametrów niż 1, wówczas
oddzielamy je przecinkami, na liście_przekazywanych_argumentów.
Następnie wewnątrz funkcji jest kod odpowiedzialny, za wyznaczenie wartości silnia z podanej
zmiennej. A jako wynik działania funkcji zwracana jest do miejsca jej wywołania wartość zmiennej o nazwie
wynik.
Teraz napiszmy program, którego zadaniem będzie wyznaczenie wartości silni z podanej przez użytkownika
wartości z wykorzystaniem powyższej funkcji. Program taki może wyglądać następująco:
#include <iostream.h>
#include <conio.h>
double silnia(int wartosc)
{
double wynik=1;
int i;
for(i=2;i<=wartosc;i++)
{
wynik=wynik*i;
}
return wynik;
}
int main()
{
int n,i;
double wyn;
clrscr();
cout<<"Podaj n:";
cin>>n;
wyn=silnia(n);
cout<<"Silnia z liczby "<<n<<" wynosi "<<wyn<<endl;
getch();
return 0;
}
Zadania do wykonania:
1. Napisać program obliczający sumę dwóch liczb całkowitych z użyciem funkcji użytkownika o nazwie suma.
2. Napisać program obliczający przy użyciu funkcji wartość wyrażenia:
n
1 1+ 5 
1 1− 5 
 −

Fn =
⋅ 
⋅
5  2 
5  2 
n
np. dla n=7 => Fn=13. Do obliczenia potęgi służy funkcja pow(podstawa, wykładnik) np. pow(3,2) oznacza
podniesienie wartości 3 do potęgi drugiej. Aby móc stosować funkcję pow(x, y) w programie należy w linii
#include dołączyć bibliotekę matematyczną #include <math.h>. Pierwiastek kwadratowy z danej liczby to
funkcja sqrt(dana_liczba) – również potrzebna biblioteka matematyczna math.h.
3. Napisać funkcję z dwoma parametrami wejściowymi wyznaczającą sumę liczb całkowitych z przedziału
obustronnie zamkniętego [a; b]. Czyli np. gdy a=3 i b=6, wówczas suma=18. Funkcję wykorzystać w
programie, w którym użytkownik poda wartości a i b, a następnie przy użyciu funkcji zostanie wyznaczona
suma. Efekt działania programu ma być wyświetlony na ekran.
4. Napisać funkcję o nazwie pierw uruchamianą z 1 parametrem, która będzie sprawdzać czy podana liczba jest
liczbą pierwszą. Jeśli TAK wówczas ma zwrócić wartość 1, jeśli NIE ma zwrócić wartość 0. Liczba pierwsza,
to taka liczba która jest podzielna tylko przez 1 i przez samą siebie. Pomocny będzie operator wyznaczający
resztę z dzielenia dwóch liczb, operator ten to %, A%B -> reszta z dzielenia A przez B. Po napisaniu funkcji
napisać program z jej wykorzystaniem, który będzie sprawdzać czy podana przez użytkownika liczba jest
liczbą pierwszą oraz będzie wypisywać odpowiednie komunikaty na ekran.
Download