ZARYS METOD
ZARYS METOD
PROGRAMOWANIA
PROGRAMOWANIA
INFORMACJE PODSTAWOWE
INFORMACJE PODSTAWOWE
OPROGRAMOWANIE
OPROGRAMOWANIE
–
–
software
software
zbiór sposobów sterowania pracą komputerów
zbiór sposobów sterowania pracą komputerów
stanowiący sekwencją rozkazów, które instruują
stanowiący sekwencją rozkazów, które instruują
komputer jakie operacje i w jakiej kolejności powinien
komputer jakie operacje i w jakiej kolejności powinien
on wykonać dla rozwiązania określonego problemu.
on wykonać dla rozwiązania określonego problemu.
Do niedawna były to głównie programy oparte o
Do niedawna były to głównie programy oparte o
języki
języki
programowania
programowania
:
:
program źródłowy
program źródłowy
musi tu być napisany
musi tu być napisany
w danej notacji symboli i reguł syntaktycznych i semantycznych.
w danej notacji symboli i reguł syntaktycznych i semantycznych.
Po czym dokonywana jest -
Po czym dokonywana jest -
translacja
translacja
– zamiana języka
– zamiana języka
programu na kod
programu na kod
0 1
0 1
stanowiący
stanowiący
język wewnętrzny
język wewnętrzny
komputera.
komputera.
Aktualnie większość programów użytkowych oparta jest
Aktualnie większość programów użytkowych oparta jest
o bardziej uniwersalne tzw.
o bardziej uniwersalne tzw.
narzędzia programowe
narzędzia programowe
FUNKCJONALNY PODZIAŁ
FUNKCJONALNY PODZIAŁ
OPROGRAMOWANIA
OPROGRAMOWANIA
Oprogramowanie systemowe
Oprogramowanie systemowe
–
systemy operacyjne
systemy operacyjne
–
translatory języków
translatory języków
–
programy narzędziowe eksploatacji
programy narzędziowe eksploatacji
–
oprogramowanie komunikacyjne
oprogramowanie komunikacyjne
Oprogramowanie użytkowe - aplikacyjne
Oprogramowanie użytkowe - aplikacyjne
np. pakiety do programowania w określonym
np. pakiety do programowania w określonym
języku, pakiety oprogramowania prac
języku, pakiety oprogramowania prac
administracyjnych ogólnego przeznaczenia,…
administracyjnych ogólnego przeznaczenia,…
Typowa struktura programu
Typowa struktura programu
obliczeniowego
obliczeniowego
(aplikacyjnego)
(aplikacyjnego)
Części składowe programu:
Części składowe programu:
–
nagłówek
nagłówek
(nazwa programu);
(nazwa programu);
–
opis danych (
opis danych (
deklaracje stałych i zmiennych, deklaracje funkcji,
deklaracje stałych i zmiennych, deklaracje funkcji,
procedur, modułów
procedur, modułów
itp.);
itp.);
–
właściwy program
właściwy program
- część wykonawcza.
- część wykonawcza.
Podstawowe struktury programu:
Podstawowe struktury programu:
–
struktura sekwencyjna
struktura sekwencyjna
- instrukcje są wykonywane w kolejności
- instrukcje są wykonywane w kolejności
występowania w programie i nie powodują przekazywania
występowania w programie i nie powodują przekazywania
sterowania w inne miejsce programu;
sterowania w inne miejsce programu;
–
struktura wyboru
struktura wyboru
- w zależności od wyniku postawionego
- w zależności od wyniku postawionego
warunku, sterowanie przekazywane jest w odpowiednie miejsce;
warunku, sterowanie przekazywane jest w odpowiednie miejsce;
–
struktura powtarzania (pętla)
struktura powtarzania (pętla)
- instrukcje znajdujące się w
- instrukcje znajdujące się w
obrębie tej struktury są wielokrotnie wykonywane, aż zostanie
obrębie tej struktury są wielokrotnie wykonywane, aż zostanie
spełniony przyjęty warunek.
spełniony przyjęty warunek.
Pojęcia podstawowe
Pojęcia podstawowe
Program
Program
- zbiór instrukcji stosowanych
- zbiór instrukcji stosowanych
zgodnie z dopuszczalnymi przez dany język
zgodnie z dopuszczalnymi przez dany język
regułami.
regułami.
Instrukcje programów są zamieniane na
Instrukcje programów są zamieniane na
polecenia w języku maszynowym przez
polecenia w języku maszynowym przez
translatory
translatory
, które dzielą się na :
, które dzielą się na :
–
i
i
nterpretery
nterpretery
- każde polecenie jest na bieżąco
- każde polecenie jest na bieżąco
zamieniane na kod maszynowy. Charakteryzuje je
zamieniane na kod maszynowy. Charakteryzuje je
łatwa praca interakcyjna i rekursja.
łatwa praca interakcyjna i rekursja.
–
kompilatory
kompilatory
- cały program przekładany jest na kod
- cały program przekładany jest na kod
maszynowy. Charakteryzuje je duża szybkość
maszynowy. Charakteryzuje je duża szybkość
wykonywania programu.
wykonywania programu.
ITERACJA
PODSTAWOWE ELEMENTY
PODSTAWOWE ELEMENTY
PROGRAMOWANIA
PROGRAMOWANIA
Definicja funkcji
Definicja funkcji
:
:
function
function
nazwa funkcji
nazwa funkcji
(parametry):
(parametry):
typ wyniku;
typ wyniku;
część opisowa
część opisowa
begin
begin
•
•
•
•
ciąg instrukcji
ciąg instrukcji
;
;
•
•
end
end
;
;
PĘTLA
PĘTLA
element języka
element języka
programowania służący do
programowania służący do
iteracyjnego wykonania
iteracyjnego wykonania
określonych instrukcji aż do
określonych instrukcji aż do
spełnienia warunku
spełnienia warunku
zakończenia działań
zakończenia działań
Definicja modułu
Definicja modułu
:
:
unit
unit
nazwa modułu;
nazwa modułu;
interface
interface
deklaracje zmiennych
deklaracje zmiennych
lista nagłówków procedur i
lista nagłówków procedur i
funkcji
funkcji
implementation
implementation
•
•
•
•
definicje procedur i funkcji
definicje procedur i funkcji
•
•
end
end
.
.
Tok procesu
Tok procesu
programowania
programowania
sformułowanie problemu (co program ma realizować);
sformułowanie problemu (co program ma realizować);
algorytm programu (jak program ma być realizowany);
algorytm programu (jak program ma być realizowany);
pisanie programu;
pisanie programu;
kompilacja programu (czy program jest napisany
kompilacja programu (czy program jest napisany
poprawnie);
poprawnie);
testowanie programu (czy program nie popełnia
testowanie programu (czy program nie popełnia
błędów);
błędów);
ostateczna realizacja programu.
ostateczna realizacja programu.
ALGORYTMIZACJA
PROBLEMU
PODSTAWOWE INSTRUKCJE
PODSTAWOWE INSTRUKCJE
WYSTĘPUJĄCE W JĘZYKACH
WYSTĘPUJĄCE W JĘZYKACH
PROGRAMOWANIA
PROGRAMOWANIA
Instrukcje warunkowe
Instrukcje warunkowe
if then
if then
else
else
pętle
pętle
for while repeat
for while repeat
instrukcje wyboru
instrukcje wyboru
case
case
funkcje i procedury
funkcje i procedury
zakresy deklarowanych danych
zakresy deklarowanych danych
Paradygmaty
Paradygmaty
programowania
programowania
programowanie
programowanie
liniowe
liniowe
- wszystko w jednym „worku”,
- wszystko w jednym „worku”,
go to
go to
!
!
programowanie
programowanie
strukturalne
strukturalne
-
-
rodzaj programowania,
rodzaj programowania,
w którym program tworzony jest poprzez pisanie wszystkich
w którym program tworzony jest poprzez pisanie wszystkich
kolejnych procedur, funkcji i deklarowania danych linia po linii.
kolejnych procedur, funkcji i deklarowania danych linia po linii.
Zalety
Zalety
- łatwy wgląd w strukturę programu
- łatwy wgląd w strukturę programu
Wady
Wady
- kompilacja programu jako całości .
- kompilacja programu jako całości .
Przykłady języków strukturalnych :
Przykłady języków strukturalnych :
Pascal
Pascal
,
,
Turbo
Turbo
-
-
Pascal
Pascal
,
,
C,
C,
FORTRAN
FORTRAN
...
...
programowanie
programowanie
obiektowe
obiektowe
- dane i procedury tworzą jeden
- dane i procedury tworzą jeden
obiekt.
obiekt.
programowanie funkcyjne
programowanie funkcyjne
- odwołania do funkcji.
- odwołania do funkcji.
Style programowania
Style programowania
Top-down
Top-down
czyli z góry do dołu;
czyli z góry do dołu;
najpierw planuje się całość a potem
najpierw planuje się całość a potem
dochodzi się do szczegółów
dochodzi się do szczegółów
Bottom-up
Bottom-up
, czyli z dołu w górę
, czyli z dołu w górę
, tworzy się kolejno elementy całości
, tworzy się kolejno elementy całości
programu.
programu.
Komputery i teksty
Dla wielu użytkowników komputer jest przede
wszystkim inteligentną maszyną do pisania :
• daje wiele opcji formatowania, wstawiania i
poprawiania
tekstu
• pozwala kopiować i manipulować tekstem np.
makra,
jest szybszy, elastyczniejszy i łatwiejszy w
obsłudze
Kategorie rozwiązań :
• edytory narzędziowe,
• edytory i procesory tekstu,.
Generacje języków
programowania
Pierwsza generacja
— kod maszynowy , binarny kod
instrukcji
Druga generacja
— asemblery, symboliczny kod instrukcji
Trzecia generacja
— języki wysokiego poziomu :
– instrukcje w j. angielskim, wyrażenia arytmetyczne oraz logiczne
a także zapisy funkcyjne
– wymagają użycia kompilatorów i interpreterów
Generacja trzy i pół
— środowiska programistyczne
Czwarta generacja
— języki idealnie nieproceduralne,
generatory aplikacji : naturalne postępowanie np. język
manipulowania rekordami b. d. SQL,
Piąta generacja
— inteligentne systemy wiedzy
Przykłady języków wysokiego
poziomu
języki
imperatywne
(proceduralne) — Fortran, COBOL, C
języki
aplikatywne
(funkcjonalne) — Lisp, Scheme
języki
deklaratywne
(regułowe) — Prolog, CLIPS
języki
symboliczne
— Lisp, Prolog, Mathematica, Maple
języki
obiektowe
— Smalltalk, Ada95, Lisp, C++, Java
Środowisko programistyczne
Język programowania wysokiego poziomu + wbudowane
funkcje dla systemów informacyjnych (obsługa ekranu,
bazy danych itp.) + interfejs graficzny — buildery i wizardy
Kod maszynowy i
asemblery
Języki wysokiego poziomu
Języki czwartej generacji
Elementy składowe języka czwartej
generacji:
fizyczny słownik danych
formater ekranu
generator raportów
język zapytań
specyfikator dialogu
generator kodu
język wysokiego poziomu
Przykłady języków czwartej
generacji
Narzędzia CASE (Computer Aided Software Engineering)
Oracle — komercyjny pakiet zawierający:
– relacyjna baza danych;
– interfejs bazy danych
– narzędzia do integracji baz danych z językami wysokiego
poziomu;
– kreator formularzy;
– kreator raportów;
– kreator reprezentacji graficznych;
– narzędzia do wyszukiwania
UML — Unified Modeling Language
UML
Języki symboliczne —
Mathematica
Języki symboliczne —
Mathematica
Inne języki
języki opisu strony – np. TEX / LATEX
języki skryptowe – np. HTML, XML,
JavaScript, PHP, Perl
języki manipulowania tekstem - sed,
awk
metajęzyki - np. WSDL
APL -
A
Programming Language
INNY POPULARNY PODZIAŁ
INNY POPULARNY PODZIAŁ
PROGRAMOWANIE PROCEDURALNE
PROGRAMOWANIE PROCEDURALNE
Np. z wykorzystaniem języków wysokiego
Np. z wykorzystaniem języków wysokiego
poziomu należy podać strukturę danego
poziomu należy podać strukturę danego
programu
programu
PROGRAMOWANIE OBIEKTOWE
PROGRAMOWANIE OBIEKTOWE
Oparte o procedury wynikające głównie z
Oparte o procedury wynikające głównie z
języków
wysokiego
poziomu
i
języków
wysokiego
poziomu
i
sprowadzające się do operowania gotowymi
sprowadzające się do operowania gotowymi
blokami programów wg ustalonych reguł dla
blokami programów wg ustalonych reguł dla
danego pakietu programowania
danego pakietu programowania