
- •Wyjaśnić pojęcia: informacja, dane, wiedza
- •Funkcje I podstawowe cechy systemu operacyjnego
- •Algorytm – pojęcie, rodzaje, złożoność obliczeniowa
- •Pojęcie pętli, rodzaje pętli
- •Obiektowy paradygmat programowania
- •Podstawowe typy I struktury danych w języku vba/c#
- •Uczenie sztucznych sieci neuronowych – pojęcie, metody
- •Algorytm genetyczny I operatory w nim stosowane
- •Metaheurystyki – pojęcie, rodzaje, przykład
- •Języki opisu stron www
- •Modele logiczne danych w bazach danych
- •Podstawy teoretyczne relacyjnego modelu baz danych (postulaty Codd’a)
- •13. Metody wnioskowania.
- •14. Pojęcie I narzędzia data mining.
- •Zastosowania Eksploracji Danych
- •Metody eksploracji danych (Narzędzia)
- •Przykładowe algorytmy z zakresu Data Mining
- •15. Zastosowanie systemów ekspertowych w zarządzaniu
- •16. Rola systemów erp I crm w przedsiębiorstwach.
- •17. Cykl życia systemu informatycznego.
- •18. Metody projektowania systemów informatycznych.
- •19. Metody wdrażania systemów informatycznych.
- •20. Symulacja jako narzędzie wspomagania decyzji.
Algorytm – pojęcie, rodzaje, złożoność obliczeniowa
Algorytm – w matematyce oraz informatyce to skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania.
Rodzaje algorytmów
Algorytmy sekwencyjne (liniowe) to algorytmy, w których wszystkie kroki wykonuje się w kolejności takiej, w jakiej zostały zapisane (np. obliczanie wielomianów); klocki w schemacie blokowym takiego algorytmu są ustawione jeden pod drugim.
Algorytmy z rozgałęzieniami to coś podobnego do algorytmów liniowych, z tym, że są różne drogi (rozgałęzienia) do uzyskania wyniku - inaczej mówiąc, algorytm wykonywany jest w zależności od pewnych warunków.
Algorytmy rekurencyjne to algorytmy, w których występuje funkcja/procedura wywołująca samą siebie, wywoływanie takie kończy się spełnieniem jakiegoś warunku. Charakterystyczną cechą funkcji (procedury) rekurencyjnej jest to, że wywołuje ona samą siebie. Drugą cechą rekursji jest jej dziedzina, którą mogą być tylko liczby naturalne. Najłatwiej zrozumieć mechanizm działania rekursji na przykładzie silni: rekurencyjny wzór na obliczenie n! zapisuje się w ten sposób: n!=n*(n-1)! Ze wzoru tego wynika, że aby obliczyć np. 4!, należy najpierw obliczyć 3!. Ale żeby obliczyć 3! trzeba obliczyć 2! itd. aż dojdziemy do 0!, które jak wiemy wynosi 1. Sposób obliczenia 4! wygląda więc następująco:
4!=4*3!=4*3*2!=4*3*2*1!=4*3*2*1*0!=4*3*2*1*1=24
Algorytmy iteracyjne charakteryzują się zapętleniem pewnych czynności, które są powtarzane aż do uzyskania jakiegoś celu; wówczas zostaje spełniony warunek kończący działanie pętli.
Złożoność obliczeniowa algorytmu - ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć - dlatego też używa się określeń "złożoność czasowa" i "złożoność pamięciowa".
Za jednostkę złożoności pamięciowej przyjmuje się pojedyncze słowo maszyny (np. Bajt). W przypadku złożoności czasowej nie można podać bezpośrednio jednostki czasu, np. milisekundy, bowiem nie wiadomo na jakiej maszynie dany algorytm będzie wykonywany. Dlatego też wyróżnia się, charakterystyczną dla algorytmu, operację dominującą. Liczba wykonań tej operacji jest proporcjonalna do wykonań wszystkich operacji.
Najczęściej algorytmy mają złożoność czasową proporcjonalną do funkcji:
Złożoności wielomianowe.
Złożoności ograniczone przez wielomian.
Złożoności niewielomianowe.
Pojęcie pętli, rodzaje pętli
W programowaniu pętla to jedna z trzech podstawowych konstrukcji programowania strukturalnego (obok instrukcji warunkowej i instrukcji wyboru). Umożliwia cykliczne wykonywanie ciągu instrukcji określoną liczbę razy, do momentu zajścia pewnych warunków, dla każdego elementu kolekcji lub w nieskończoność.
Rodzaje pętli:
Pętle licznikowe. Zawartość pętli licznikowych bądź iteracyjnych wykonuje się ustaloną liczbę razy. W najprostszym przypadku na początku pętli specjalna zmienna sterująca (licznikowa) jest ustawiana na wartość początkową, następnie przy każdym obiegu pętli jej wartość jest zwiększana o jeden, aż do osiągnięcia górnego limitu. Często pętla taka może odliczać w dół lub zmienna może być modyfikowana o wartość inną niż 1. Przykładami są tutaj pętle for z takich języków jak Pascal, Ada (ale nie C i C-podobne).
Pętle warunkowe. Ogólniejszą konstrukcją jest pętla warunkowa, nazywana również repetycyjną, która jest wykonywana, aż do odpowiedniej zmiany warunków. Przeważnie wyrażenie testujące sprawdzane jest na początku lub na końcu pętli. W niektórych językach (C-podobne) pętla jest wykonywana dopóki warunek jest spełniony, w innych, np. w Pascalu pętla repeat...until, dopóki warunek nie jest spełniony. Przykładami są instrukcje while, do...while, repeat...until. Istnieją języki w których warunek (lub warunki) zakończenia mogą być umieszczone wewnątrz pętli na przykład w Adzie pętla loop z konstrukcją exit when[3].
Pętla ogólna. To pętla stosowana w językach rodziny C i C-podobnych, jak np. C++. Umożliwia definiowanie zarówno pętli repetycyjnej (ze sprawdzeniem warunku na początku pętli), jak i pętli iteracyjnej, jednak w porównaniu do niej pętla ta jednak definiowana jest na niższym poziomie abstrakcji, co oznacza, że programista musi sam definiować warunek jej zakończenia i operację zmiany wartości zmiennej sterującej przy kolejnym przebiegu pętli.
Pętle "po kolekcji". Często pożądane jest, aby instrukcje pętli zostały wykonane dla każdego elementu tablicy, kolekcji itp. Można to zrobić za pomocą powyższych pętli, ale często szybszym i bardziej przejrzystym sposobem jest użycie pętli typu foreach, która zwalnia programistę z obowiązku ręcznego iterowania po kolekcji.
Pętla o określonej liczbie powtórzeń. W pewnych językach programowania zdefiniowano w ich składni konstrukcję pętli, w której programista podaje ilość powtórzeń iteracji. Nie specyfikuje się przy tym ani zmiennej sterującej, ani wartości początkowej i końcowej licznika, co stanowi zasadniczą różnicę w stosunku do pętli iteracyjnej (licznikowej).