Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019
Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include < iostream > 2 using namespace std ; 3 4 int main () 5 { 6 int n; 7 cin >> n; 8 9 int wynik = 1; 10 for ( int i = 2; i <= n; i ++) 11 wynik *= i; 12 13 cout << " Silnia wynosi " << wynik << endl ; 14 15 return 0; 16 }
Kartkówka Zadanie. Napisz program, który obliczy sumę pierwszych n wyrazów szeregu geometrycznego: Program powinien: wczytywać liczbę n z klawiatury 1 + 1 2 + 1 4 + 1 8 + wyświetlać tylko wynik sumy n pierwszych wyrazów
Pętla while Pętla while oraz do... while rób dopóki, przy czym: while( warunek ) {... } najpierw sprawdza warunek, a następnie wykonuje dopóki warunek do {... } while( warunek ) wykonuje jedną iterację pętli, po którym sprawdza warunek, a następnie wykonuje dopóki jest on spełniony 1 int i = 0; 2 while ( i < 11) 3 { 4 cout << i ++ << endl ; 5 } 6 7 do 8 { 9 cout << -- i << endl ; 10 } while (i > 0);
Break i continue break instrukcja wewntątrz pętli przerywa działanie pętli tak, że wykonywane są linijki programu następujące po jej ciele continue instrukcja wewnątrz pętli Poniższa pętla wyświetli liczby od 0 do n<n (włącznie): 1 for ( int i = 0; i < N; i ++){ 2 cout << i << endl ; 3 if (i == n) break ; 4 } Poniższa pętla wyświetli liczby od 0 do N z wyjątkiem liczby n 1 for ( int i = 0; i < N; i ++){ 2 if ( i == n) continue ; 3 cout << i << endl ; 4 }
Ćwiczenie 16, 17 i 18 Ćw 16. Napisz program, który poprosi użytkownika o wpisanie liczby, a następnie sprawdzi czy liczba dzielników jest większa od niej samej. Ćw 17. Napisz program, który będzie poda wartość szeregu geometrycznego 1 1 2 + 1 4 1 8 + do zadanej dokładności ɛ. Program powinien: wczytywać wartość ɛ z klawiatury podać wartość szeregu z dokładnością do ɛ oraz ilość zsumowanych wyrazów Ćw 18.* Napisz program, który zsumuje n wyrazów szeregu: 1 1 2 + 1 4 1 8 + najpierw używając zmiennych typu float, a następnie double. Zastosuj funkcję setprecision z biblioteki iomanip
Funkcje użytkownika Funkcja zwraca wartość danego typu, na podstawie argumentów (o zadanych typach) Deklaracja zajmuje nazwę (oraz ilość i typy argumentów) i mówi programowi, że pod tą nazwą zapisana jest już funkcja. Deklaracja musi być przed funkcją główną (mainem)! Definicja definiuje funkcję pod zadaną nazwą (oraz ilością i typami argumentów). Definicja może być za funkcją główną (mainem) Deklaracja z definicją oba powyższe symultanicznie, musi być przed mainem Uwaga! Nie ma definicji bez deklaracji!
Deklarowanie i definiowanie funkcji przykłady 1 using namespace std ; 2 3 int dodaj (int, int ); 4 5 int main () 6 { 7 int wynik = dodaj (2,2); 8 9 return 0; 10 } 11 12 int dodaj ( int a, int b) 13 { 14 return a+b; 15 }
Deklarowanie i definiowanie funkcji przykłady 1 using namespace std ; 2 3 int dodaj ( int a, int b); 4 5 int main () 6 { 7 int wynik = dodaj (2,2); 8 9 return 0; 10 } 11 12 int dodaj ( int a, int b) 13 { 14 return a+b; 15 }
Deklarowanie i definiowanie funkcji przykłady 1 using namespace std ; 2 3 int dodaj ( int a, int b) 4 { 5 return a+b; 6 } 7 8 int main () 9 { 10 int wynik = dodaj (2,2); 11 12 return 0; 13 }
Deklarowanie i definiowanie funkcji Główne elementy składowe definicji (po kolei): Uwaga! zwracany typ: int, float, double itd... Jeden dodatkowy typ: void czyli brak typu (brak zwracania czegokolwiek) nazwa funkcji argumenty funkcji (typy oraz nazwy) ciało funkcji return zwracanie (wyjątek: funkcja typu void)
Ćwiczenie 19 i 20 Ćw 19. Napisz program potega, który: prosi użytkownika o podanie dwóch liczb całkowitych a i b oblicza wartość a b na podstawie zdefiniowanej przez Ciebie funkcji wyświetla ją na standardowym wyjściu nie używa biblioteki cmath Ćw 20. Na wcześniejszych zajęciach napisaliśmy program silnia liczący silnię liczby naturalnej. Napisz program silnia2, tym razem pisząc funkcję silnia oraz jej wywołanie w funkcji głównej.
Ćwiczenie 21 i 22 Uwaga! Od tego momentu zawsze piszemy funkcje staramy nie pisać dużo kodu w mainie, a tylko wywołania własnych funkcji Ćw 21. Napisz program newton, który korzystając z poprzednio napisanej funkcji silnia obliczy symbol Newtona dany poprzez: ( ) n n! = k k!(n k)! Niech funkcja obliczająca symbol Newtona nazywa się newton. Ćw 22. Napisz program pascal, który poprosi użytkownika o podanie liczby naturalnej n używając wcześniej napisanej funkcji wyświetli pierwszych n wierszy trójkąta Pascala w postaci (np dla n równego 3): 1 1 1 1 2 1 1 3 3 1