• Nie Znaleziono Wyników

Informatyka II. INF & EIT.

N/A
N/A
Protected

Academic year: 2021

Share "Informatyka II. INF & EIT."

Copied!
1
0
0

Pełen tekst

(1)

Informatyka II. INF & EIT. Ćwiczenie 2.

Funkcje i moduły

Zagadnienia: Wykorzystanie funkcji w programach. Przekazywanie parametrów do funkcji.

Funkcje przeciążone i rekurencyjne. Inicjacja tablic losowymi danymi. Programy wielomoduło- we. Pliki nagłówkowe. Projekty.

1. Opracować trzy funkcje obliczające sumę dwóch liczb typu double. Dane są następujące pro- totypy:

a) double sum(double, double);

b) void sum(double, double, double* ); // suma zwracana przez wskaźnik c) void sum(double, double, double& ); // suma zwracana przez referencję

2. Opracować funkcję obliczającą iteracyjnie współczynniki dwumianu (x+y)n ze wzoru

! )!

(

! k k n

n k

n

= −



 

 dla k = 0, 1, 2, ..., n.

W szczególności, 0 1

0=

 

 ; 1

0 1=

 

 , 1

1 1=

 

 ;

0 1 2=

 

 , 2

1 2=

 

 , 1

2 2=

 

 ;

0 1 3=

 

 , 3

1 3=

 

 , 3

2 3=

 

 , 1

3 3=

 

 ;

3. Zaprojektować funkcję rekurencyjną (funkcja wywołuje sama siebie), która oblicza n! ze wzoru n! = n∗(n-1)!, gdzie 0!=1.

4. Opracować funkcję rekurencyjną (funkcja wywołuje sama siebie), która oblicza współczyn- niki dwumianu (x+y)n z trójkąta Pascala. Współczynniki An[k] (dla k=0, 1, 2, ..., n) należy obliczać ze wzorów: An[0] = An[n] = 1, An[k] = An-1[k-1] + An-1[k], dla k=1,2, ..., n-1.

W szczególności,

A0[0] = 1; A1[0] = 0, A1[1] = A0[0] + A0[1] = 1 + 0 = 1, itd.

1 n=0; k=0;

11 n=1; k=0, k=1;

121 n=2; k=0, k=1, k=2;

1331 n=3; k=0, k=1, k=2, k=3;

5. Napisać program, który losuje k cyfr liczby binarnej do tablicy unsigned char dane[N], gdzie 1<= k <= N, a następnie oblicza wartość dziesiętną liczby. Zadanie zrealizować z wykorzystaniem funkcji losującej dane do tablicy i funkcji obliczającej wartość dziesiętną liczby.

6. Umieścić prototypy funkcji z zadania 1 w pliku nagłówkowym sum.h, a ich definicje w osobnych modułach modul1.cpp, modul2.cpp, modul3.cpp, wykorzystujących plik sum.h.

W programie głównym umieścić plik nagłówkowy oraz wywołania trzech funkcji obliczają- cych sumę liczb. Utworzyć projekt umożliwiający kompilację programu wielomodułowego.

W modułach umieścić dyrektywy kompilacji warunkowej zapobiegające wielokrotnemu dołączaniu pliku nagłówkowego do programu głównego.

Cytaty

Powiązane dokumenty

przydzielić dynamicznie pamięć zmiennym typu char, int, long, float, double oraz zapamię- tać ich adresy w odpowiednich wskaźnikach. W przypadku, gdy alokacja pamięci powiedzie

a) tworzącą dynamiczną tablicę 2-wymiarową typu int A[nw][nk] o liczbie wierszy i liczbie kolumn wczytywanych do zmiennych int nw, nk; funkcja typu int** zwraca adres po-

Prototyp funkcji: void oblicz(double min, double max, int n, tx T, wskaźnik_funkcji). W programie głównym wykonać obliczenia dla funkcji sin w przedziale [-pi/2, pi/2].

Przekopiować wyrazy łańcucha tekst (trzy wyrazy) do trzech tablic typu char t[20]. Każdy wyraz powinien znaleźć się w osobnej tablicy. Wyprowadzić zawar- tości tablic na

Opracować funkcje umożliwiające wczytanie danych z klawiatury lub wstawienie wartości losowych do zmiennej strukturalnej typu tosoba (deklaracja typu tosoba zobacz zadanie 1). Dane

b) odczytującą zawartość pliku znak po znaku w trybie otwarcia binarnego i wyprowadzają- cą znaki na ekran; wykorzystać funkcję fgetc; prototyp: CzytajZn(FILE *f, char *nazwa);..

Opracować program, który zapisze do pliku binarnego dane w formacie: rozmiar danej typu tdana (zmienna typu unsigned), liczba danych w pliku (zmienna typu long), ciąg danych

e) usunięcie elementu o podanej wartości klucza; funkcja powinna odnaleźć element, zmie- nić powiązania w liście, a następnie zwolnić pamięć przydzieloną elementowi; prototyp