You are on page 1of 6

1. Wiedza deklaratywna oraz imperatywna.

WIEDZA DEKLARATYWNA (CO?) - dotyczy faktów, informacji, definicji i teori które


można jasno przedstawić i są świadomie znane. Jest to rodzaj wiedzy, który opisuje,
czym jest dana rzecz lub zjawisko, podając konkretne cechy, atrybuty i właściwości
WIEDZA IMPERATYWNA / PROCEDURALNA (JAK?) - algorytmiczna. Dotyczy
metod i sposobów rozwiązywania problemów. Jest to wiedza zdobywana przez
doświadczenie, dotyczy codziennych praktyk, w tym także zawodowych.
2. Algorytm - definicja.
Algorytm:
- Ściśle określona procedura obliczeniowa, która dla właściwych danych
wejściowych produkuje żądane dane wyjściowe.
- Ciąg kroków obliczeniowych.
- Środek umożliwiający rozwiązanie danego problemu.
3. Podział języków programowania.
PODZIAŁ ZE WZGLĘDU NA POZIOM:
● WYSOKO-POZIOMOWY - duży zestaw instrukcji prostych (np.pierwiastek).
Składnia jest zbudowana w stosunkowo przystępny dla człowieka sposób, np.
Python, Java, C#, PHP …
● ŚREDNIO-POZIOMOWY (JĘZYKI MIESZANE) np. C, C++
● NISKO-POZIOMOWY - operacje bezpośrednio na rejestrach pamięci.
Możliwie jak najbardziej zbliżonego do kodu maszynowego, a więc takiego,
który może być już bezpośrednio wykonywany przez komputer, np. asembler,
algor …
PODZIAŁ ZE WZGLĘDU NA ZASTOSOWANIE:
● ogólnego - duży zestaw instrukcji prostych, mnogość bibliotek, np. Python
● szczególnego - instrukcje zorientowane na bardzo konkretne zastosowanie,
np. działania na macierzach (Matlab), obsługę protokołów internetowych
(PHP)
● interpretowany - operuje bezpośrednio na kodzie źródłowym, źródło -
checker - interpreter - wynik
● kompilowany - kompiluje kod źródłowy do obiektu, źródło - checker +
kompilator - kod obiektowy -interpreter - wynik
Python: język wysokiego poziomu, ogólnego zastosowania, interpretowany
4. Budowa języka programowania.
● Konstrukcje prymitywne - literały (bitowy, liczbowy, łańcuchowy, logiczny,
znakowy, pusty, tablicowy, wyliczeniowy, zespolony…), operatory (+, -, *, **, /,
//, %, >, <, ==, =, …)
● Składnia (syntax, format) - mówi o tym jakie symbole są dostępne w danym
języku oraz jak te symbole mogą być łączone w większe struktury
● Semantyka (statyczna, pełna) - służy do zdefiniowania znaczenia programów
5. Podstawowe typy danych, typy podzielne, literały.
● boolean - typ logiczny, wartość logiczna - przyjmuje tylko dwie wartości
prawda i fałsz (True/False)
● integer – liczby całkowite - liczby całkowite, nie posiadające części
ułamkowej
● float – liczby zmiennoprzecinkowe, rzeczywiste - dowolne wartości
● string – typ sekwencyjny, ciąg znaków, łańcuchy tekstowe - napisy dowolnej
długości
● NoneType - specjaly typ (None)
literały (bitowy, liczbowy, łańcuchowy, logiczny, znakowy, pusty, tablicowy, wyliczeniowy,
zespolony…)
6. Kolejność operacji w j. Python.

7. Zmienne.
To nic innego jak nazwy obiektów. Operator przypisania (=)
x = 3 (dynamiczne typowanie - ​kompilator lub interpreter przypisuje typ wszystkim
zmiennym w czasie wykonywania)
8. Komentarze.
nie ma wpływu na program (prawie..) - zazwyczaj pomijany przez
kompilator/interpreter (#)
Komentarze mogą służyć do wyjaśniania kodu Pythona, do zwiększenia czytelności
kodu.
9. Programowanie liniowe.

10. Rozgałęzienia, instrukcja if.


komenda if - elif - else, warunek musi mieć typ Bool
Instrukcja If:
if WARUNEK_1:
BLOK 1
elif WARUNEK_2:
BLOK 2
else:
BLOK ELSE
11. Iteracja, instrukcje while oraz for.
Jak działa iteracja?
Iteracja polega na wielokrotnym wykonywaniu tych samych czynności – np. powtarzaniu
zapisanych w programie instrukcji – do momentu osiągnięcia określonego celu. Można
opisać ją słowami: „dopóki spełniony jest pewien warunek, wykonuj instrukcję”
Instrukcja While:
while WARUNEK:
BLOK
warunek = True - pętla się wykonuje / warunek = False - pętla kończy działanie
Instrukcja For:
for zmienna in iterator:
BLOK
12. Funkcja malejąca.
Warunek zatrzymania programu funkcją malejącą oznacza, że program będzie
kontynuował działanie dopóki wartość funkcji maleje, czyli zmniejsza się w kolejnych
iteracjach. Gdy funkcja przestaje maleć, program przerywa swoje działanie i kończy
wykonanie.
13. Przeszukiwanie wyczerpujące.
Przeszukiwanie wyczerpujące to proces, w którym analizuje się każdy element zbioru
danych, aby znaleźć poszukiwane informacje lub odpowiedzi na pytania.
14. Metoda Brute Force.
Podejście niealgorytmiczne (zgadnij i sprawdź), często bardzo dobrze działające. Jej
zyskiem jest krótki czas kodowania, a stratą koszt.
Metoda Brute Force (siłowa) to technika wykorzystywana w informatyce do rozwiązywania
problemów poprzez sprawdzenie wszystkich możliwych kombinacji. Polega na
systematycznym przeszukiwaniu wszystkich dostępnych opcji w celu znalezienia odpowiedzi
lub rozwiązania.

15. Liczby zmiennoprzecinkowe oraz przybliżenia. Zapis liczb zmiennoprzecinkowych w


odpowiednim systemie liczbowym.

16. Metoda równego podziału.


Metoda równego podziału (bisekcji) - polega na dzieleniu zakresu na połowę i
sprawdzaniu, czy element znajdujący się dokładnie pośrodku jest elementem szukanym, a
jeśli nie, to czy jest większy, czy mniejszy od szukanego, oraz na przeszukaniu odpowiednio
w prawo i lewo, (inaczej polega na systematycznym zmniejszaniu przedziału w którym
znajduje się pierwiastek, poprzez podzielenie tego przedziału na dwie równe części i
sprawdzenie, w której połowie znajduje się zero)

17. Funkcje (dekompozycja, abstrakcja, moduły, parametry formalne, argumenty).


Dekompozycja to proces dzielenia złożonego zadania lub problemu na mniejsze, bardziej
zarządzalne części. Polega na podziale programu na moduły, funkcje, klasy i inne podobne
elementy w celu uzyskania lepszej organizacji, czytelności i łatwiejszego zarządzania
kodem.
Abstrakcja w programowaniu oznacza ukrywanie szczegółów technicznych i skupianie się
na najważniejszych aspektach. Jest to proces, w którym tworzymy uproszczony model lub
reprezentację rzeczywistości, aby łatwiej zrozumieć i zarządzać danymi lub
funkcjonalnościami.
W skrócie, abstrakcja pomaga nam uprościć i zrozumieć bardziej skomplikowane fragmenty
kodu, poprzez skupienie się na podstawowych elementach i ignorowanie szczegółów
technicznych.
Moduł można określić jako fragment systemu polegający na wykonaniu wyodrębnionego
zadania programistycznego. np. import math (Jest to standardowy moduł Pythona, który
zawiera funkcje matematyczne i stałe. Możemy go zaimportować do naszego programu i
korzystać z jego funkcji i stałych)
Parametry formalne to symbole, które występują w definicji funkcji lub procedury, aby
reprezentować wartości przekazywane do tej funkcji lub procedury. Są one rodzajem
zmiennych lokalnych i nie mają przypisanych żadnych wartości na etapie deklaracji.
Argumenty (parametry właściwe) to wartości przekazywane do funkcji lub procedury w
momencie jej wywołania. Są to konkretne wartości, które są przypisywane do parametrów
formalnych. Argumenty przekazywane mogą być różnego rodzaju, takie jak liczby, napisy,
obiekty itp.

18. Zasięg (scope) i jego funkcja.


Zasięg - określa zakres widoczności zmiennych, funkcji i innych obiektów w kodzie.
LEGB - Local (zasięg lokalny, zasięg funkcji) Enclosing (nielokalny zasięg
zawierania) Global (zasięg globalny - modułowy) Built-in (zasięg wbudowany)
19. Zmienne lokalne i globalne.
ZMIENNE LOKALNE - to zmienna zdefiniowana wewnątrz bloku kodu, takiego jak np.
funkcja. Jest to zmienna, której zakres istnieje tylko wewnątrz tego bloku kodu i nie jest
dostępna poza nim.
ZMIENNE GLOBALNE - mogą być używane zarówno wewnątrz jak i na zewnątrz funkcji.
20. Stos i jego funkcja.
Stos (po kolei) to struktura danych w programowaniu, która działa na zasadzie LIFO
(Last In, First Out), czyli ostatni element dodany do stosu jest także pierwszym
elementem, który zostanie usunięty. każde wywołanie funkcji tworzy nową ramkę
stosu, zakończenie funkcji (return) usuwa ramkę ze stosu. Główną funkcją stosu jest
przechowywanie i manipulacja danymi.
21. Krotki, listy, słowniki. Operacje na zmiennych iterowanych.
obiekty iterowalne (krotki, listy, stringi) - mogą mieć indeksy dodatnie i ujemne
LISTY - zbiór uporządkowany i zmienny (modyfikowalny). Zezwala na zduplikowanych
członków.
KROTKI - zbiór uporządkowany i niezmienny. Zezwala na zduplikowanych członków.
SŁOWNIKI - zbiór nieuporządkowany i podlegający zmianom. Żadnych zduplikowanych
członków (Słowniki nie mogą zawierać dwóch pozycji o tym samym kluczu)
klucze - tylko typy niemodyfikowalne
wartości - co tam chcemy
odwołanie: d[klucz]
22. Przypisanie a modyfikacja.
PRZYPISANIE - tworzy zmienną , zmienia wskazanie istniejącej zmiennej
L = [1, 2, 3]
MODYFIKACJA - nie tworzy zmiennej, nie rusza nazwy, zmienia obiekt, pozostawia
wskazanie
L.append(4)
23. Dziel i zwyciężaj: rekurencja. Przypadek podstawowy i część indukcyjna.
- mniejsze problemy są łatwiejsze do rozwiązania
- rozwiązania małych problemów można łatwo przenieść na rozwiązania
problemów większych
Rekurencja - funkcja wywołuje samą siebie w celu rozwiązania pewnego problemu
Przypadek podstawowy - Jest to warunek zakończenia rekurencji i definiuje, jak algorytm
ma postępować, gdy nie jest już możliwe zastosowanie kolejnej iteracji rekurencyjnej.
Część indukcyjna - jest odpowiedzialna za rozłożenie większego problemu na mniejsze
podproblemy i stopniowe rozwiązanie ich w celu uzyskania ostatecznego rozwiązania
problemu głównego.
24. Przykłady rekurencji: silnia i potęga.
25. Czasy działania programów: optymistyczny, pesymistyczny i średni.
Optymistyczny : za pierwszym razem
Pesymistyczny: musisz długo czekać
26. Popularne tempa wzrostu.
● O(1) stałe (niezależna od danych wejściowych)
● O(log n) logarytmiczne
● O(n) liniowe
● O(n log n) liniowo-logarytmiczne
● O(n2) kwadratowe
● O(nc) wielomianowe
● O(cn) wykładnicze

You might also like