Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki Podstawy Informatyki i algorytmizacji wykład 3 dr inż. Maria Lachowicz
Wykład 3 1. Programowanie funkcyjne. 2. Klasyfikacja funkcji bibliotecznych tematyczna ze względu na budowę 3. Praca z helpem 4. Formuły warunkowe z zagnieżdżeniami funkcji JEŻELI w funkcji JEŻELI 5. Formuły warunkowe z funkcją JEŻELI i z funkcjami logicznymi: ORAZ, LUB, NIE z funkcją JEŻELI i z funkcjami DATA, CZAS (ze stałą typu data zdefiniowaną w teście logicznym)
Wykład 3 Cel zajęć Nabycie umiejętności w zakresie ALGORYTMIZACJI zadań obliczeniowych metodą programowania funkcyjnego
Arkusz kalkulacyjny w algorytmizacji Algorytmizacja to proces opracowywania schematu przetwarzania danych wejściowych, zgodnie ze specyfikacją użytkownika, w celu uzyskania danych wynikowych
Arkusz kalkulacyjny w algorytmizacji Algorytm to sekwencja instrukcji realizujących opracowany w procesie algorytmizacji schemat działań,
Arkusz kalkulacyjny w algorytmizacji Algorytm może być napisany w różnych konwencjach: w konwencji funkcyjnej (sem1 i sem2) w konwencji proceduralnej w konwencji proceduralno - zdarzeniowej(sem2) i różnych językach programowania: Visual Basic for Excel, C++, C#, Delphi, Matlab
Programowanie funkcyjne Programowanie funkcyjne polega na tworzeniu wyrażeń (formuł), w których wykorzystywane są funkcje biblioteczne dostępne w danym środowisku programistycznym
Funkcje: Definicja Funkcja biblioteczna jest wcześniej zdefiniowanym zestawem instrukcji napisanych w języku programowania (np. Visual Basic) które: można wykorzystywać w formułach nie można zmieniać
Funkcje: Działanie funkcji bibliotecznej NAZWA.FUNKCJI(argument_1; ; argument_n) Funkcja pobiera daną lub dane przez argumenty Funkcja przeprowadza na pobranych danych działania zgodnie z opisem (dostępnym w Helpie) generuje (zwraca) wynik
Funkcje: Składnia funkcji bibliotecznej NAZWA.FUNKCJI(argument_1; ; argument_n) Nazwa funkcji bibliotecznej jest niezmienna i zawsze po części słownej musi być zakończona parą nawiasów () (otwierającym i zmykającym) argumenty funkcji muszą być rozdzielone średnikami Liczba, typ i kolejność argumentów musi być zgodna z definicją funkcji
Funkcje: Działanie funkcji bibliotecznej Funkcje biblioteczne: upraszczają i skracają formuły umożliwiają i ułatwiają prowadzenie często wykonywanych złożonych obliczeń
Funkcje: Programowanie funkcyjne Programowanie funkcyjne polega na możliwości zagnieżdżania funkcji w funkcji: =FUNKCJA3( FUNKCJA2( FUNKCJA1())) W formule zawierającej zagnieżdżenia funkcji w funkcji znak = umieszcza się przed całą formułą tylko raz, na jej początku
Funkcje: Programowanie funkcyjne =FUNKCJA3( FUNKCJA2( FUNKCJA1())) W formule zawierającej zagnieżdżenia funkcji w funkcji pierwsza wykonana zostanie FUNKCJA1, która wygenerowany przez siebie wynik przekazuje jako wartość argumentu FUNKCJI2, druga wykonana zostanie FUNKCJA2 która wygenerowany przez siebie wynik przekazuje jako wartość argumentu FUNKCJI3, trzecia i jako ostatnia wykonana zostanie FUNKCJA3
Biblioteka funkcji. Klasyfikacja tematyczna Klasyfikacja tematyczna funkcji została przedstawiona w karcie Formuły Excela
Funkcje: Klasyfikacja Klasyfikacja funkcji ze względu na budowę (liczbę argumentów) a) funkcje bez argumentów: DZIŚ(), TERAZ(), Pi() b) funkcje ze stałą liczbą argumentów: ROK(data), MIESIĄC(data), DZIEŃ(data) DATA(rok ; miesiąc ; dzień) Argumenty w nawiasach kwadratowych można pominąć. Nie należy wtedy umieszczać ostatniego średnika c) funkcje ze zmienną liczbą argumentów : DZIEŃ.TYG( liczba_kolejna; [zwracany_typ]) d) funkcje z argumentem tablicą: WYSZUKAJ.PIONOWO( szukana_wartość; tablica; nr_kolumny ; [kolumna])
Funkcje: JEŻELI w formułach warunkowych Składnia funkcji JEŻELI(test_logiczny ; wartość_jeżeli_prawda ; wartość_jeżeli_fałsz) Może przyjmować tylko jedną z dwóch wartości: PRAWDA albo FAŁSZ Mogą Może być: wygenerować jedną z tekstami, dwóch wartości: liczbami, datami PRAWDA adresami, albo nazwami FAŁSZdanych działaniami na danych funkcjami UWAGI 1. Wartości argumentów funkcji muszą być rozdzielone średnikami 2. Liczba argumentów, typ i kolejność musi być zgodna z definicją funkcji
Funkcje: JEŻELI w formułach warunkowych
Funkcje: JEŻELI w JEŻELI przykład
Funkcje. Zagnieżdżenia JEŻELI w formułach warunkowych Możliwości zagnieżdżeń funkcji JEŻELI w funkcji JEŻELI A. JEŻELI(test_log_1; JEŻELI(test_log_2; wartość_2.1; wartość_2.2);wartość_2) B. druga JEŻELI jest jednocześnie drugim argumentem dla pierwszej funkcji JEŻELI (zastępuje wartość_jeżeli_prawda) JEŻELI(test_log; wartość_1; JEŻELI(test_log_2; wartość_2.1; wartość_2.2)) druga JEŻELI jest jednocześnie trzecim argumentem dla pierwszej instrukcji JEŻELI (zastępuje wartość_jeżeli_fałsz) Można zagnieździć nawet 64 funkcje JEŻELI w funkcji JEŻELI
Funkcje: JEŻELI w JEŻELI Ustalenie liczby funkcji JEŻELI, które należy użyć w formule warunkowej wymaga ustalenia liczby rozwiązań liczba rozwiązań liczba funkcji JEŻELI użytych w formule liczba testów logicznych 2 1 1 3 2 JEŻELI(JEŻELI) 2 4 3 JEŻELI( JEŻELI( JEŻELI))) 5 4 4 3
Funkcje: JEŻELI w JEŻELI przykład
Funkcje: JEŻELI w JEŻELI przykład
Funkcje: JEŻELI w JEŻELI przykład
Funkcje: JEŻELI, ORAZ, LUB SKŁADNIA ORAZ( test_logiczny_1 ;... ; test_logiczny_n ) LUB( test_logiczny_1 ;... ; test_logiczny_n ) (maksymalnie do 255 testów logicznych)
Funkcje: ORAZ, LUB Formuła Opis Wynik =ORAZ(PRAWDA; PRAWDA) =ORAZ(PRAWDA; FAŁSZ) =ORAZ(FAŁSZ; FAŁSZ) =LUB(PRAWDA; PRAWDA) =LUB(PRAWDA; FAŁSZ) =LUB (FAŁSZ; FAŁSZ) Wszystkie argumenty mają wartość PRAWDA Jeden argument ma wartość FAŁSZ Wszystkie argumenty mają wartość FAŁSZ Wszystkie argumenty mają wartość PRAWDA Jeden argument ma wartość FAŁSZ Wszystkie argumenty mają wartość FAŁSZ PRAWDA FAŁSZ FAŁSZ PRAWDA PRAWDA FAŁSZ
Funkcje: ORAZ, LUB. Zagnieżdżenia Zagnieżdżenie funkcji LUB w funkcji ORAZ
Funkcje: JEŻELI, ORAZ, LUB Używanie w formułach warunkowych funkcji JEŻELI, ORAZ, LUB wymaga : 1. ustalenia liczby rozwiązań 2. ustalenia liczby testów logicznych 3. ustalenia zależności pomiędzy testami logicznymi
Funkcje: JEŻELI, LUB. Przykład
Funkcje: JEŻELI, LUB. Przykład
Funkcje: LICZ.JEŻELI, SUMA.JEŻELI. Przykład
Funkcje: Różnica między TESTEM LOGICZNYM a kryterium Formuła Opis z testem logicznym = JEŻELI( data_produkcji < DATA(2012;7;1) ; 100 ; 200) z kryterium z testem logicznym z kryterium = SUMA.JEŻELI( data_rozliczenia ; "<2012-07-01" ; nad_godziny) = JEŻELI( stanowisko = "lekarz" ; 150 ; 30) = SUMA.JEŻELI( stanowisko ; "architekt" ; nad_godziny)
Funkcje: SUMA.JEŻELI, JEŻELI. Porównanie składni Argumentem funkcji SUMA.JEŻELI nie może być: inna funkcja, ani formuła (także z działaniami matematycznymi ) = SUMA.JEŻELI( stanowisko; "architekt"; godziny * stawka) Tak wywołana funkcja SUMA.JEŻELI spowduje BŁĄD!
Funkcje: SUMA.JEŻELI, JEŻELI. Porównanie składni Argumentem funkcji JEŻELI może być: inna funkcja, formuła (także z działaniami matematycznymi ) = JEŻELI( stanowisko = "architekt ; godziny * stawka; 0) Tak wywołana funkcja.jeżeli zadziała PRAWIDŁOWO