Algorytmy - algorytm to przepis według którego rozwiązujemy jakieś zadanie, inaczej zbiór prawideł, metoda działania, porządek wykonywania czynności umożliwiający przejście od danych do wyniku. Znajdowanie algorytmów: według matematyka G. Polya można wyróżnić 4 fazy: 1.zrozumienie problemu. 2.opracowanie planu rozwiązania. 3.wykonanie planu. 4.ocena rozwiązania pod kątem jego poprawności. Alfabetem abstrakcyjnym nazywa się dowolny skończony zbiór obiektów nazywanych literami8 danego alfabetu. Słowem dowolny skończony i uporządkowany ciąg liter symboli danego alfabetu. Liczba liter symboli w słowie nazywa się długością słowa. Odwzorowaniem alfabetowym nazywa się dowolna odpowiedniość przyporządkowującą słowom w pewnym alfabecie słowa w innym lub tym samym alfabecie. Operator alfabetowi jest jednoznaczny gdy każdemu słowu wejściowemu przyporządkowane jest jedno słowo wyjściowe. Zbiór wszystkich słów na których określony jest operator alfabetowi nazywamy obszarem określalności operatora. Odwzorowania kodujące są najprostszym typem operatorów alfabetowych. Taki operator można zdefiniować podając tablicę odpowiedzialności. Gdy obszar Mnogookreslalności operatora alfabetowego jest nieskończony to zadaje się go poprzez system reguł umożliwiających w skończonej liczbie kroków znaleźć słowo wyjściowe. Cechy algorytmów: zdeterminowanie, masowość, skuteczność. Algorytmy deterministyczne określane są poprzez jednoznaczne operatory alfabetowi. Masowość algorytmów algorytm może być stosowany do całego zbioru słów dla których określony jest operator alabetowy. Skutecznośc algorytmów algorytmy powinny dawać rozwiązania w nieskończonej liczbie kroków. Złożoność problemów: Problemy biorąc pod uwagę złożoność podzielono na dwie klasy: wielomianowe (łatwo rozwiązalne), niewielomianowe (trudno rozwiązalne). Każdy ogólny sposób zadawania algorytmów nazywamy systemem algorytmicznym. Graficzny obraz dowolnej czynności nazywamy blokiem. Bloki dzielimy na operatory i predykaty. Operator jest obrazem czynności i ma jedno wejście i jedno wyjście. Oznacza to że jest w operatorze jedna operacja wykonywana jako pierwsza i jedna operacja wykonywana jako ostatnia. Operacje objęte operatorem są zawsze wykonywane w tej samej kolejności. Predykat (blok decyzyjny) posiada podobnie jak operator jedno wejście i wiecej niż jedno wyjście. Rozumieć to należy w ten sposób ze są co najmniej dwie operacje, które mogą być wykonywane jako ostatnie. Algorytm zapisany w pewnym języku programowania i przeznaczony do realizacji przez komputer nazywamy programem komputerowym. Często używa się bardzo zbliżonego do języka programowania formalizmu nazywanego pseudokodem. Mnogość jest zbiorem potęgowym zbioru wartości typu bazowego. Tablica to struktura składająca się ze składników jednakowego typu. Jest to struktura o dostępie swobodnym. Dostęp do składnika uzyskujemy za pomocą indeksu. Moc typu tablicowego jest skończona. Moc (T) określa liczbę różnych wartości jaką może przyjmować zmienna tego typu. Rekord jest to struktura złożona ze skończonej liczby komponentów różnego typu każdemu komponentowi nadajemy nazwę i podajemy typ. Moc typu rekordowego jest skończona i równa jest iloczynowi mocy składników. Polami nazywamy składniki rekordu. Dostęp do składnika uzyskujemy (selektor) podając identyfikator pola oddzielony od nazwy kropką. Plik sekwencyjny jest to struktura złożona o mocy nieskończonej i o dostępie sekwencyjnym. Każdy plik typu składa się z 0 lub więcej składników. Plik jest strukturą dynamiczną powstaje w trakcie realizacji obliczeń. Dostęp do pliku uzyskuje się dzięki mechanizmowi sekwencyjnemu. Plik może być w jednym z dwóch stanów: konstruowania (zapis do pliku), przeglądania (czytania z pliku). Stos jest listą o pewnym ustalonym sposobie jej tworzenia i przebudowy. Jest to lista w której wszystkie operacje wstawiania i usuwania wykonuje się na końcu struktury. Koniec stosu nazywamy wierzchołkiem a początek dnem. Strukturę tą określa się skrótem LIFO. Zapisanie obiektu na stosie nazywamy włożeniem na stos. Usunięcie nazywamy zdjęciem. Kolejka jest listą o pewnym ustalonym sposobie jej tworzenia i przebudowy. Jest to lista w której wszystkie operacje wstawiania wykonywane są na jej końcu, a usuwania na początku. Początek kolejki to głowa a koniec ogon. Strukturę tą określa się skrótem FIFO. Drzewa struktura składająca się ze składników określonego typu T połączonych ze sobą. Każdy element drzewa nazywamy węzłem, węzeł zawiera składniki (typu T) oraz połączenia do skończonej liczby rozłączonych drzewiastych struktur nazywanymi poddrzewami. Węzeł na samym wierzchołku struktury nazywamy korzeniem. Drzewo binarne jeżeli z węzłem związane mogą być co najwyżej 2 poddrzewa . Pascal twórcą był Niclaus Witrh z ETH w Zurychu. Program to ciąg jednostek leksykalnych i odstępów. Jednostki leksykalne nazywane są też symbolami pascalowymi.