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