Programowanie komputerów, Ćwiczenie 2 Informacje wstępne
Transkrypt
Programowanie komputerów, Ćwiczenie 2 Informacje wstępne
Politechnika Rzeszowska, Wojciech Szydełko Programowanie komputerów, Ćwiczenie 2 Informacje wstępne Warunek if Składnia instrukcji warunkowej: if( werunek ) { instrukcje_1; } else{ instrukcje_2; } JeŜeli zmienna warunek przyjmuje wartość prawda to wykonywane są instrukcje_1 w przeciwnym razie instrukcje_2. Zamiast zmiennej warunek moŜemy stosować konstrukcje logiczne przez uŜycie operatorów > < <= >= != == . Pęta for Składnia pętli for for (z_sterująca = wartość_pocz; warunek_koń; iteracja){ instrukcje; } Zmienna z_sterująca wart_początkowa warunek_koń iteracja Opis Zmienna, której zadaniem jest określenie ile razy wykona się pętla Wartość jaką na początku wykonywania przyjmie z_sterująca Dopóki przyjmuje wartość prawda pętla się powtarza, gdy osiągnie wartość fałsz, pętla się kończy Określa sposób w jaki moŜna modyfikować zmienną sterującą pętli, np. jeŜeli zmienną sterującą jest i to zwiększmy ją np. o 1 prze i++ Pętla while Składnia pętli while while (warunek){ instrukcje; } Pętla jest wykonywana dopóki zmienna warunek jest prawdą. W momencie, gdy uzyskuje wartość fałsz zostaje przerwana. Uwaga: W bloku instrukcji for i while mogą znajdować się słowa kluczowe break oraz continue. Pierwsze powoduje bezwarunkowe przerwanie pętli. Drugie powoduje natychmiastową iterację pętli czyli tak jakby wykonanie części inkrementacji pętli i skok do początku bloku bez wykonywania instrukcji w bloku po wyrazie continue. WS_ver0.1_2008-04-01 1 Politechnika Rzeszowska, Wojciech Szydełko Deklaracja tablicy jednowymiarowej. Deklaracja tablicy jednowymiarowej oznacza rezerwacje pamięci na zbiór elementów jednego typu, np. int, float, double lub char. Ten ostatni element oznacza definicję tablicy znakowej nazywanej strugiem. Zawiera on znak końca springi ‘\0’ (zobacz rysunek poniŜej). t e s t \0 Inicjacja tablicy znakowej char tekst [100] = „test”; Inicjacja tablicy znakowej int tab [10] = {0, 1, 2 ,3, 4, 5, 6, 7, 8, 9} Zadania do realizacji na zajęciach 1. Obliczenie pierwiastków równania kwadratowego Napisać funkcję, która oblicza pierwiastki równania kwadratowego i wywołać ją w programie dla przykładowego równania. Parametry funkcji: współczynniki równania , tabela z rozwiązaniami: tablica[liczba_rozwiązań, rozw1, rozw2] Wartość zwracana: void Teoria: Równania kwadratowe DEFINICJA: Równaniem drugiego stopnia lub równaniem kwadratowym nazywamy równanie postaci: y = ax2 + bx + c TWIERDZENIE: Istnienie liczba rozwiązań równania kwadratowego y = ax2 + bx + c zaleŜą od wyróŜnika: ∆ = b 2 − 4ac . 1. Gdy < 0, równanie nie ma rozwiązań. 2. Gdy = 0, równanie ma jedno rozwiązanie: 3. Gdy −b 2a −b− ∆ −b+ ∆ > 0, równanie ma dwa rozwiązania: x1 = , x2 = 2a 2a x0 = W przypadku, gdy stałe b i c są róŜne od zera równanie y = ax2 + bx + c nazywa się równaniem kwadratowym zupełnym i rozwiązujemy je na podstawie powyŜszego twierdzenia. W przypadku, gdy b = 0 lub c = 0, równanie y = ax2 + bx + c przybiera postać: ax2 + c = 0 lub ax2 + bx = 0 lub ax2 = 0 i nazywa się równaniem kwadratowym niezupełnym. Równanie niezupełne rozwiązujemy rozkładając lewą stronę równania na czynniki. Algorytm moŜna przedstawić w postaci schematu: WS_ver0.1_2008-04-01 2 Politechnika Rzeszowska, Wojciech Szydełko jeŜeli a = 0, to jeŜeli b = 0, to jeŜeli c = 0, to równanie jest nieoznaczone w przeciwnym razie nie ma rozwiązania w przeciwnym razie jest jedno rozwiązanie -c/b w przeciwnym razie policz delta = b*b - 4*a*c jeŜeli delta<0, to nie ma rozwiązania w przeciwnym razie istnieją dwa (niekoniecznie róŜne) rozwiązania: −b− ∆ −b+ ∆ x1 = oraz x 2 = . 2a 2a 2. Silnia Napisać funkcję, która w sposób rekurencyjny obliczy silnie z podanej wartości n. NaleŜy kolejno liczyć silnie z wartości n-1 . Treść funkcji moŜe być następująca: long int silnia (int n){ if (n<=1) return 1; else return ( n * silnia (n-1)); } NaleŜy wywołać tą funkcję w programie głównym i przedstawić wynik działania funkcji dla parametrów wejściowych od 1 do 12 przy pomocy pętli for. 3. Tablice znakowe – tablica jednowymiarowa Zadanie 3.1 Przygotować program, który zamienia w tekście wejściowym wszystkie znaki „odstępu” na ‘*’. NaleŜy skopiować znaki z tablicy wejściowej i zapisać je w tablicy wyjściowej i na końcu tablicy zapisać znak końca ciągu znaków ‘\0’. Przechodzenie po elementach tablicy znakowej odbywa się przy pomocy pętli while(). Przeglądanie tablicy odbywa się do wykrycia znaku końca springi ‘\0’. Zadanie 3.2 Napisać program, który kaŜdą komórkę jednowymiarowej tablicy typu int podnosi do drugiej potęgi. Przeglądanie tablicy ma się odbyć przy pomocy pętli for(). WS_ver0.1_2008-04-01 3