ZAJ CIA 4. Podstawowe informacje o algorytmie. Operatory relacyjne i logiczne, instrukcja warunkowa if. ALGORYTM Algorytm jest przepisem opisuj cym krok po kroku rozwi zanie problemu lub osi gni cie jakiego celu. Przed napisaniem programu warto stworzy algorytm. S 4 sposoby jego budowania: - słowny, - lista kroków, - schemat blokowy, - drzewo. Przykład: Napisz algorytm obliczaj cy warto funkcji f ( ) = przy zało eniu, e dla =, f() =. Poni ej zostanie utworzony algorytm 4 sposobami. SŁOWNY a. dla liczb ujemnych = -, a wi c f ( ) = = b. dla liczb dodatnich =, a wi c f ( ) = = c. je li =, to z podanej wy ej definicji wynika, e f() =. W matematyce opis słowny przedstawiamy nast puj co:
2 LISTA KROKÓW Dane: Dowolna liczba rzeczywista. Wynik: Warto funkcji f() Krok. Wczytaj warto danej. Krok 2. Je li >, to f()=. Zako cz algorytm. Krok 3. Je li =, to f()=. Zako cz algorytm. Krok 4. Je li <, to f()=-. Zako cz algorytm. SCHEMAT BLOKOWY
3 DRZEWO 2. OPERATORY RELACYJNE W J ZYKU C Posługuj c si operatorami relacyjnymi mo na tworzy wyra enia relacyjne: == równe!= ró ne < mniejsze > wi ksze <= mniejsze lub równe >= wi ksze lub równe
4 np.: < y, je li znane s warto ci i y to wyra enie takie mo e by logicznie prawdziwe () lub fałszywe (). 3. INSTRUKCJA WARUNKOWA INSTRUKCJA WARUNKOWA if if ( wyra enie relacyjne) instrukcja_ ; instrukcja_2 ; instrukcja warunkowa if sprawdza czy wyra enie jest logicznie prawdziwe i wtedy wykonuje si instrukcja_, inaczej () wykonuje si instrukcja_2 (patrz rys..) cz od słowa mona pomin, a wtedy gdy wyraenie jest prawdziwe instrukcja_ jest wykonywana, je li jest fałszywe - nie jest wykonywana Rys.. Działanie instrukcji if. Oczywi cie zamiast jednej instrukcji moe by wykonywany zestaw instrukcji. Wtedy grupujemy je w jeden blok umieszczajc je w nawiasach logicznych. Działanie jest podobne. if ( wyraenie relacyjne ) instrukcja_a ; instrukcja_b ;... instrukcja_2a ; instrukcja_2b ;...
4. OPERATORY LOGICZNE Je li zachodzi potrzeba spełnienia kilku wyra e operatorów logicznych: && koniunkcja ( i ) alternatywa ( lub )! negacja (nie) relacyjnych na raz u ywa si 5 a b a b a&&b!a Przy słowie kluczowym if mo e znajdowa si dowolnie skomplikowane wyra enie logiczne np.: if ((<c) && (y>d)) blok instrukcji ; Tylko wtedy blok instrukcji zostanie wykonany je li jest mniejsze od c i y jest wiksze od d czyli gdy wystpi logiczna prawda (). KONSTRUKCJA -if Moliwe jest zagniedanie if.przykładowa konstrukcja podana jest poniej. if ( wyraenie_ ) blok instrukcji ; if ( wyraenie_2 ) blok instrukcji 2; blok instrukcji 3;
PRZYKŁAD. Zgadywanie liczby 6 #include <stdio.h> #include <conio.h> void main(void) int a=6; int liczba; printf( Program zgadnij liczbe\n ) printf( Podaj liczbe od do ); scanf( %d,&liczba; if (liczba==a) printf( Gratulacje zgadles! ); printf( Przykro mi, nie zgadles ); getch(); PRZYKŁAD 2. Zgadywanie liczby, wersja bogatsza z zagniedeniem. #include <stdio.h> #include <conio.h> void main(void) int a=6; int liczba; printf( Program zgadnij liczbe\n ); printf( Podaj liczbe od do ); scanf( %d,&liczba); if (liczba==a) printf( Gratulacje zgadles! ); if((liczba<) (liczba>)) printf( Podana liczba musi być od do!) ; printf( Przykro mi, nie zgadles ); getch();
7 ZADANIA. Napisać program sprawdzający czy podawana liczba naleŝy do przedziału (a,b). Jeśli liczba naleŝy do przedziału naleŝy wyświetlić komunikat_, jeśli nie naleŝy do przedziału komunikat_2. Przed pisaniem spróbuj najpierw narysować algorytm. 2. Rok w kalendarzu gregoriańskim, obowiązującym w większości krajów na świecie trwa 365 dni, a w latach przestępnych 366 dni. Lata przestępne to takie, których liczba jest podzielna przez 4, oprócz podzielnych przez, z tym, Ŝe lata podzielne przez 4 są przestępne. Napisz program który po podaniu roku będzie informował czy rok ten jest przestępny czy nie. Przed pisaniem spróbuj najpierw narysować algorytm. 3. Numeracja lat kalendarza perskiego odbywa się od 622 r.n.e. Zatem kaŝdy rok nosi numer o 62 mniejszy niŝ rok gregoriański. Obecnie w kalendarzu perskim stosuje się reguła, Ŝe na kaŝde 33 lata występuje 8 lat przestępnych. Są to te lata, dla których reszta z dzielenia numeru roku przez 33 wynosi, 5, 9, 3, 7, 22, 26 lub 3. Napisz program, który po podaniu roku gregoriańskiego zamieni go na rok perski i poda czy jest przestępny czy nie. Przed pisaniem spróbuj najpierw narysować algorytm. 4. Napisz program który sprawdzi czy podawana liczba typu integer jest liczbą pierwszą. Przed pisaniem spróbuj najpierw narysować algorytm. 5. Napisać program sortujący 3 podawane liczby w kolejności od największej do najmniejszej. Przed pisaniem spróbuj najpierw narysować algorytm.