Podstawy programowania
Algorytm - to skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania.
Cechy algorytmu:
Algorytmiczne rozwiązywanie problemów
Komputer jest stosowany do rozwiązywania problemów zarówno przez profesjonalnych informatyków, którzy projektują i tworzą oprogramowanie, jak i przez tych, którzy stosują tylko technologię informacyjno-komunikacyjną, czyli nie wykraczają poza posługiwanie się gotowymi narzędziami informatycznymi. W obu przypadkach ma zastosowanie podejście do rozwiązywania problemów algorytmicznych, która polega na systematycznej pracy nad komputerowym rozwiązaniem problemu i obejmuje cały proces projektowania i otrzymania rozwiązania. Celem nadrzędnym tej metodologii jest otrzymanie dobrego rozwiązania, czyli takiego, które jest:
Ta metoda składa się z następujących sześciu etapów:
1. Opis i analiza sytuacji problemowej. Na podstawie opisu i analizy sytuacji problemowej należy w pełni zrozumieć, na czym polega problem, jakie są dane dla problemu i jakich oczekujemy wyników, oraz jakie są możliwe ograniczenia.
2. Sporządzenie specyfikacji problemu, czyli dokładnego opisu problemu na podstawie rezultatów etapu 1. Specyfikacja problemu zawiera:
Specyfikacja jest wykorzystana w następnym etapie jako specyfikacja tworzonego rozwiązania (np. programu).
3. Zaprojektowanie rozwiązania. Dla sporządzonej na poprzednim etapie specyfikacji problemu, jest projektowane rozwiązanie komputerowe (np. program), czyli wybierany odpowiedni algorytm i dobierane do niego struktury danych. Wybierane jest także środowisko komputerowe (np. język programowania), w którym będzie realizowane rozwiązanie na komputerze.
4. Komputerowa realizacja rozwiązania. Dla projektu rozwiązania, opracowanego na poprzednim etapie, jest budowane kompletne rozwiązanie komputerowe, np. w postaci programu w wybranym języku programowania. Następnie, testowana jest poprawność rozwiązania komputerowego i badana jego efektywność działania na różnych danych.
5. Testowanie rozwiązania. Ten etap jest poświęcony na systematyczną weryfikację poprawności rozwiązania i testowanie jego własności, w tym zgodności ze specyfikacją.
6. Prezentacja rozwiązania. Dla otrzymanego rozwiązania należy jeszcze opracować dokumentację i pomoc dla (innego) użytkownika. Cały proces rozwiązywania problemu kończy prezentacja innym zainteresowanym osobom (uczniom, nauczycielowi) sposobu otrzymania rozwiązania oraz samego rozwiązania wraz z dokumentacją.
Katalog uporządkowany
Język programowania
Przeznaczenie: definiowanie algorytmów.
Wymagane cechy:
Język programowania służy do:
Podstawowe elementy języka programowania
Zmienne i stałe
if (x <100 && x>40)
x=x+30;
Struktury kontrolne
Zmieniają kolejność wykonywania komend języka
Procedury i funkcje
Przeznaczenie: wygodne wydzielenie powtarzalnego fragmentu kodu np.:
int xy(int x, int y) {
… powtarzany fragment kodu
}
OPIS: int – typ zwracanego wyniku
xy – nazwa funkcji
x – przekazywany parametr
y – przekazywany parametr
Rekurencja
Sortowanie danych
Jest bardzo wiele różnych algorytmów sortowania, a wszystkie różnią się znacznie czasem wykonywania I wymaganą pamięcią. Jedne działają szybko dla każdego rodzaju danych, inne bardzo zwalniają dla pewnych typów danych wejściowych. Wyróżniamy:
Klasy
Wyrażenia arytmetyczne i logiczne
W językach programowania można używać swobodnie złożonych wyrażeń arytmetycznych i logicznych
Semantyka i syntaktyka
W językach programowania ściśle określa się
Notacja BNF (Backus-Naur form) – ścisłe definiowanie gramatyki języków programowania (bezkontekstowe)
Przykład:
<liczba_binarna> ::= <liczba_binarna> <cyfra>
<liczba_binarna> ::= <cyfra>
<cyfra> ::= 0 | 1
Języki proceduralne
Języki obiektowe
Języki programowania
SŁOWNIK POJĘĆ / DEFINICJE:
Program - (ang. computer program) zbiór poleceń zapisany w kodzie maszynowym przeznaczony do wykonania przez komputer. Za jego pomocą maszyna ta może przetwarzać dane, rozwiązywać zadania i wykonywać wiele innych funkcji.
Programowanie - (ang. programming) proces tworzenia oprogramowania komputerowego, na który składają się takie etapy pracy jak: projektowanie programu, jego pisanie (programowanie właściwe), kompilacja, testowanie i aktualizowanie.
Słowa kluczowe - słowa zarezerwowane dla danego języka programowania, mające ściśle określone znaczenie, np. nazwy poleceń;
Kod źródłowy - (ang. code) określony, logiczny system zapisu stosowany do przedstawiania informacji. W informatyce pod pojęciem kod kryje się sposób przedstawiania danych jako liczb binarnych lub heksadecymalnych, aby były one zrozumiałe dla komputera.
Translator czyli interpretator - program służący do tłumaczenia kodu programu zapisanego w jęz. programowania z postaci źródłowej do postaci wynikowej. Wyróżniamy: kompilatory tłum. programy zapisane w jęz. wysokiego poziomu; asemblery tłum. programy zapisane w jęz. symbolicznym.
Kompilator - program służący do tłumaczenia kodu w jęz. źródłowym (w jęz. programowania) na odpowiadający mu kod w jęz. wynikowym (maszynowym).
Interpreter program analizujacy kod źródłowy instrukcja po instrukcji i przedstawiający sprawdzony fragment kodu na bieżąco;
Moduł - to wydzielony fragment programu komp. Każdy moduł jest kompilowany osobno, co ułatwia pracę i analizę błędów.
Linker (konsolidator) - narzędzie do łączenia skompilowanych modułów w jeden plik wykonywalny;
Konsolidacja - proces łączenia skompilowanych modułów w jeden plik wykonywalny;
Aplikacja - ogólna nazwa programów użytkowych napisanych dla konkretnych zastosowań. Aplikacje przeznaczone są do uruchamiania na określonych typach komputerów, systemów operacyjnych.
Aplikacja internetowa (web application) - program pracujacy na serwerze i komunikujący się z userem poprzez sieć oraz przez przeglądarkę internetową
Aplet - niewielki program komputerowy który pracuje tylko w połączeniu z programem głównym, są to biblioteki np. aplety jęz. java, active-x uruchamiany na stronach internetowych;
Edytor - program umożliwiający obróbkę (edycję) danych pewnego rodzaju (np. edytor tekstowy, edytor dyskowy, edytor kodów źródłowych)
Parser - analizator składni. Program interpretujący dane wejściowe i dzielący tak, żeby były zrozumiałe dla następnych w kolejności mechanizmów przetwarzania m. in. kompilatora, języki skryptowe są wykonywane bezpośrednio przez parser.
Debbuger - procedura wyszukiwania błędów (ang. bug) krok po kroku w programach komputerowych. Służą do tego specjalne programy zwane debbuger'ami. Wspomagają programistów gdyż wyszukiwanie błędów jest bardzo żmudną i pracochłonną czynnością
Na koniec trochę przykładów algorytmów - gry: [WIEŻA HANOI] [GRA W ŻYCIE] [WISIELEC]
EdU 2015