Komputery, programy i programowanie
Wstęp do programowania
wykład 1
Agata Półrola
Wydział Matematyki i Informatyki UŁ
sem. zimowy 2010/2011
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
strona www: http://www.math.uni.lodz.pl/~polrola
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
strona www: http://www.math.uni.lodz.pl/~polrola
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
To oczywiście pewnie wszyscy wiedzą...
Komputer może być traktowany jako urządzenie służące do
przechowywania i przetwarzania informacji
Działanie komputera jest kontrolowane przez wykonywany
przez niego
program
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Podstawowe elementy komputera
Procesor
- “mózg” komputera. Zawiera:
jednostkę sterującą (CU - control unit) - element nadzorujący i
koordynujący działanie komputera
jednostkę wykonawczą (EU - execution unit), a w niej m.in.
element odpowiedzialny za operacje arytmetyczne i logiczne
(ALU - arithmetic-logic unit) oraz różnego rodzaju rejestry.
Pamięć wewnętrzna
przechowuje m.in. uruchamiany program, dane, tymczasowe
struktury danych niezbędne do poprawnego działania
uruchamianego programu itp.
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Podstawowe elementy komputera
Procesor
- “mózg” komputera. Zawiera:
jednostkę sterującą (CU - control unit) - element nadzorujący i
koordynujący działanie komputera
jednostkę wykonawczą (EU - execution unit), a w niej m.in.
element odpowiedzialny za operacje arytmetyczne i logiczne
(ALU - arithmetic-logic unit) oraz różnego rodzaju rejestry.
Pamięć wewnętrzna
przechowuje m.in. uruchamiany program, dane, tymczasowe
struktury danych niezbędne do poprawnego działania
uruchamianego programu itp.
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Podstawowe elementy komputera - cd
jednostki wejścia/wyjścia
umożliwiające komunikację z
“otoczeniem” (mysz, klawiatura, ekran itp)
pamięć pomocnicza
pozwalająca przechowywać dane,
programy które nie są wykonywane itp
zawartość pamięci pomocniczej jest zazwyczaj zorganizowana
w
pliki
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Podstawowe elementy komputera - cd
jednostki wejścia/wyjścia
umożliwiające komunikację z
“otoczeniem” (mysz, klawiatura, ekran itp)
pamięć pomocnicza
pozwalająca przechowywać dane,
programy które nie są wykonywane itp
zawartość pamięci pomocniczej jest zazwyczaj zorganizowana
w
pliki
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Podstawowe elementy komputera - cd
jednostki wejścia/wyjścia
umożliwiające komunikację z
“otoczeniem” (mysz, klawiatura, ekran itp)
pamięć pomocnicza
pozwalająca przechowywać dane,
programy które nie są wykonywane itp
zawartość pamięci pomocniczej jest zazwyczaj zorganizowana
w
pliki
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Pamięć
Pamięć komputera może być traktowana jako ciąg
komórek
pamięci
(nazywanych czasami
słowami
).
Każda komórka ma pewien
adres
, określający jej pozycję w
pamięci.
Każda komorka składa się z pewnej liczby
bitów
(zazwyczaj 8,
16, 32 lub 64).
8 bitów tworzy
bajt
Każdy bit zawiera
cyfrę dwójkową
(0 lub 1)
za pomocą ciągów cyfr dwójkowych zapisujemy liczby
całkowite, rzeczywiste, wartości logiczne, instrukcje programu
itd
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Pamięć
Pamięć komputera może być traktowana jako ciąg
komórek
pamięci
(nazywanych czasami
słowami
).
Każda komórka ma pewien
adres
, określający jej pozycję w
pamięci.
Każda komorka składa się z pewnej liczby
bitów
(zazwyczaj 8,
16, 32 lub 64).
8 bitów tworzy
bajt
Każdy bit zawiera
cyfrę dwójkową
(0 lub 1)
za pomocą ciągów cyfr dwójkowych zapisujemy liczby
całkowite, rzeczywiste, wartości logiczne, instrukcje programu
itd
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Pamięć
Pamięć komputera może być traktowana jako ciąg
komórek
pamięci
(nazywanych czasami
słowami
).
Każda komórka ma pewien
adres
, określający jej pozycję w
pamięci.
Każda komorka składa się z pewnej liczby
bitów
(zazwyczaj 8,
16, 32 lub 64).
8 bitów tworzy
bajt
Każdy bit zawiera
cyfrę dwójkową
(0 lub 1)
za pomocą ciągów cyfr dwójkowych zapisujemy liczby
całkowite, rzeczywiste, wartości logiczne, instrukcje programu
itd
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Pamięć
Pamięć komputera może być traktowana jako ciąg
komórek
pamięci
(nazywanych czasami
słowami
).
Każda komórka ma pewien
adres
, określający jej pozycję w
pamięci.
Każda komorka składa się z pewnej liczby
bitów
(zazwyczaj 8,
16, 32 lub 64).
8 bitów tworzy
bajt
Każdy bit zawiera
cyfrę dwójkową
(0 lub 1)
za pomocą ciągów cyfr dwójkowych zapisujemy liczby
całkowite, rzeczywiste, wartości logiczne, instrukcje programu
itd
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Pamięć
Pamięć komputera może być traktowana jako ciąg
komórek
pamięci
(nazywanych czasami
słowami
).
Każda komórka ma pewien
adres
, określający jej pozycję w
pamięci.
Każda komorka składa się z pewnej liczby
bitów
(zazwyczaj 8,
16, 32 lub 64).
8 bitów tworzy
bajt
Każdy bit zawiera
cyfrę dwójkową
(0 lub 1)
za pomocą ciągów cyfr dwójkowych zapisujemy liczby
całkowite, rzeczywiste, wartości logiczne, instrukcje programu
itd
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Pamięć
Pamięć komputera może być traktowana jako ciąg
komórek
pamięci
(nazywanych czasami
słowami
).
Każda komórka ma pewien
adres
, określający jej pozycję w
pamięci.
Każda komorka składa się z pewnej liczby
bitów
(zazwyczaj 8,
16, 32 lub 64).
8 bitów tworzy
bajt
Każdy bit zawiera
cyfrę dwójkową
(0 lub 1)
za pomocą ciągów cyfr dwójkowych zapisujemy liczby
całkowite, rzeczywiste, wartości logiczne, instrukcje programu
itd
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Wykonanie programu
Wykonywany program zajmuje grupę powiązanych ze sobą
komórek pamięci. Komórki lub grupy komórek zawierają
poszczególne
instrukcje
programu.
program to ciąg instrukcji
podczas wykonania programu CU czyta kolejne instrukcje z
pamięci i zapewnia, że są one wykonywane w odpowiednim
porządku
instrukcja “mówi” komputerowi, że powinien wykonać jakieś
zadanie (np. przenieść zawartość komórki pamięci znajdującej
się pod jakimś adresem do określonego rejestru procesora,
albo dodać dwie liczby w ALU)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Wykonanie programu
Wykonywany program zajmuje grupę powiązanych ze sobą
komórek pamięci. Komórki lub grupy komórek zawierają
poszczególne
instrukcje
programu.
program to ciąg instrukcji
podczas wykonania programu CU czyta kolejne instrukcje z
pamięci i zapewnia, że są one wykonywane w odpowiednim
porządku
instrukcja “mówi” komputerowi, że powinien wykonać jakieś
zadanie (np. przenieść zawartość komórki pamięci znajdującej
się pod jakimś adresem do określonego rejestru procesora,
albo dodać dwie liczby w ALU)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Postać programu (“wewnątrz komputera”)
Instrukcja jest zapisana jako pewien ciąg zer i jedynek.
instrukcja o tej samej roli może mieć różną postać w rożnych modelach komputerów
Program zapisany w takiej postaci może być wykonany przez
komputer. Mówimy, że jest w postaci
kodu maszynowego
instrukcje kodu maszynowego nazywa się też
rozkazami maszynowymi
Przykład
0011001111110011
0011111110000110
1001001111001111
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Postać programu (“wewnątrz komputera”)
Instrukcja jest zapisana jako pewien ciąg zer i jedynek.
instrukcja o tej samej roli może mieć różną postać w rożnych modelach komputerów
Program zapisany w takiej postaci może być wykonany przez
komputer. Mówimy, że jest w postaci
kodu maszynowego
instrukcje kodu maszynowego nazywa się też
rozkazami maszynowymi
Przykład
0011001111110011
0011111110000110
1001001111001111
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Postać programu (“wewnątrz komputera”)
Instrukcja jest zapisana jako pewien ciąg zer i jedynek.
instrukcja o tej samej roli może mieć różną postać w rożnych modelach komputerów
Program zapisany w takiej postaci może być wykonany przez
komputer. Mówimy, że jest w postaci
kodu maszynowego
instrukcje kodu maszynowego nazywa się też
rozkazami maszynowymi
Przykład
0011001111110011
0011111110000110
1001001111001111
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Języki programowania
początkowo programy były pisane w kodzie maszynowym
kolejnym etapem był
język asembler
jest to język używający krótkich nazw odpowiadających
poszczególnym rozkazom maszynowym danego typu procesora
oraz pozwalający na użycie nazw zmiennych zamiast ich
adresów
Przykład
LOAD A
ADD B
STORE C
przetłumaczenie takiego programu na kod maszynowy jest bardzo proste
język asembler jest w użyciu; pozwala pisać bardzo wydajne programy
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Języki programowania
początkowo programy były pisane w kodzie maszynowym
kolejnym etapem był
język asembler
jest to język używający krótkich nazw odpowiadających
poszczególnym rozkazom maszynowym danego typu procesora
oraz pozwalający na użycie nazw zmiennych zamiast ich
adresów
Przykład
LOAD A
ADD B
STORE C
przetłumaczenie takiego programu na kod maszynowy jest bardzo proste
język asembler jest w użyciu; pozwala pisać bardzo wydajne programy
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Języki programowania
początkowo programy były pisane w kodzie maszynowym
kolejnym etapem był
język asembler
jest to język używający krótkich nazw odpowiadających
poszczególnym rozkazom maszynowym danego typu procesora
oraz pozwalający na użycie nazw zmiennych zamiast ich
adresów
Przykład
LOAD A
ADD B
STORE C
przetłumaczenie takiego programu na kod maszynowy jest bardzo proste
język asembler jest w użyciu; pozwala pisać bardzo wydajne programy
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Języki programowania
początkowo programy były pisane w kodzie maszynowym
kolejnym etapem był
język asembler
jest to język używający krótkich nazw odpowiadających
poszczególnym rozkazom maszynowym danego typu procesora
oraz pozwalający na użycie nazw zmiennych zamiast ich
adresów
Przykład
LOAD A
ADD B
STORE C
przetłumaczenie takiego programu na kod maszynowy jest bardzo proste
język asembler jest w użyciu; pozwala pisać bardzo wydajne programy
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Języki programowania - cd
kolejnym etapem są
języki programowania wysokiego poziomu
(np. Pascal, Ada, C++, Java, ...)
prosty zapis operacji
Przykład
C := A + B
programy napisane w takich językach są tłumaczone na kod maszynowy
przy pomocy specjalnego translatora
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Języki programowania - cd
kolejnym etapem są
języki programowania wysokiego poziomu
(np. Pascal, Ada, C++, Java, ...)
prosty zapis operacji
Przykład
C := A + B
programy napisane w takich językach są tłumaczone na kod maszynowy
przy pomocy specjalnego translatora
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Języki programowania - cd
kolejnym etapem są
języki programowania wysokiego poziomu
(np. Pascal, Ada, C++, Java, ...)
prosty zapis operacji
Przykład
C := A + B
programy napisane w takich językach są tłumaczone na kod maszynowy
przy pomocy specjalnego translatora
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Języki programowania - cd
kolejnym etapem są
języki programowania wysokiego poziomu
(np. Pascal, Ada, C++, Java, ...)
prosty zapis operacji
Przykład
C := A + B
programy napisane w takich językach są tłumaczone na kod maszynowy
przy pomocy specjalnego translatora
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Od kodu do programu wykonywalnego
Program napisany w języku programowania ma postać pliku
tekstowego. Ta postać nazywana jest
kodem źródłowym
Aby program można było wykonać, musi zostać
przetłumaczony na
kod wykonywalny
zapisany w języku
maszynowym
proces tłumaczenia programu nazywany jest
kompilacją
proces tłumaczenia programu składa się tak naprawdę z dwóch czynności:
kompilacji
i
łączenia
kompilacja zamienia program źródłowy na plik binarny zawierający
program w kodzie maszynowym (object file). Najczęściej nie jest on
jeszcze końcową wersją programu - zawiera odwołania do zewnętrznych
podprogramów umieszczonych w bibliotekach
łączenie (konsolidacja, linkowanie) tworzy kolejny plik binarny, w którym
jest już wszystko co jest potrzebne do wykonania programu na danym
sprzęcie z danym systemem operacyjnym
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Od kodu do programu wykonywalnego
Program napisany w języku programowania ma postać pliku
tekstowego. Ta postać nazywana jest
kodem źródłowym
Aby program można było wykonać, musi zostać
przetłumaczony na
kod wykonywalny
zapisany w języku
maszynowym
proces tłumaczenia programu nazywany jest
kompilacją
proces tłumaczenia programu składa się tak naprawdę z dwóch czynności:
kompilacji
i
łączenia
kompilacja zamienia program źródłowy na plik binarny zawierający
program w kodzie maszynowym (object file). Najczęściej nie jest on
jeszcze końcową wersją programu - zawiera odwołania do zewnętrznych
podprogramów umieszczonych w bibliotekach
łączenie (konsolidacja, linkowanie) tworzy kolejny plik binarny, w którym
jest już wszystko co jest potrzebne do wykonania programu na danym
sprzęcie z danym systemem operacyjnym
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Języki interpretowane (skryptowe)
Programy napisane w niektórych językach programowania (np. w
języku Perl) uruchamiane są w inny sposób.
do uruchomienia programu potrzebne jest środowisko
uruchomieniowe -
interpreter
interpreter nie tworzy programu wykonywalnego; poszczególne
instrukcje programu tłumaczone są po kolei na bieżąco na kod
maszynowy i wykonywane. Odwołania do podprogramów
umieszczonych w zewnętrznych bibliotekach również
przetwarzane są na bieżąco
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Etapy tworzenia programu
Aby napisać program musimy:
określić wymagania programu (
faza analizy wymagań i
specyfikacji
)
zaprojektować sposób rozwiązania problemu (
faza projektowa
)
zapisać w/w projekt w wybranym języku programowania (
faza
implementacji
)
skompilować i uruchomić program
sprawdzić, czy program działa poprawnie (
faza testowania
)
... z czego faza implementacji jest chyba najprostsza ... ;-)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Etapy tworzenia programu
Aby napisać program musimy:
określić wymagania programu (
faza analizy wymagań i
specyfikacji
)
zaprojektować sposób rozwiązania problemu (
faza projektowa
)
zapisać w/w projekt w wybranym języku programowania (
faza
implementacji
)
skompilować i uruchomić program
sprawdzić, czy program działa poprawnie (
faza testowania
)
... z czego faza implementacji jest chyba najprostsza ... ;-)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
PROGRAMOWANIE
JEST JEDNO
tylko językow programowania wiele
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
PROGRAMOWANIE
JEST JEDNO
tylko językow programowania wiele
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Algorytmy
Aby napisać program, musimy znaleźć odpowiedni
algorytm
- czyli
opisać, jak rozwiązać konkretny problem / zadanie
Algorytmy można zapisywać na różne sposoby:
w języku naturalnym
w postaci schematu blokowego
w postaci instrukcji programu
w pseudokodzie
...
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Algorytmy
Aby napisać program, musimy znaleźć odpowiedni
algorytm
- czyli
opisać, jak rozwiązać konkretny problem / zadanie
Algorytmy można zapisywać na różne sposoby:
w języku naturalnym
w postaci schematu blokowego
w postaci instrukcji programu
w pseudokodzie
...
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Przykłady algorytmów
przepis na ciasto
instrukcja składania mebli
“przepis” na rozwiązanie równania kwadratowego postaci
ax
2
+ bx + c = 0
metoda znalezienia największej liczby w (bardzo, bardzo
długim) ciągu liczb
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Elementy algorytmów
Sposób opisu algorytmu musi pozwalać na wyrażenie:
sekwencyjności
wyboru
iteracji
rekursji
(rekurencji)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Sekwencyjność
Opisujemy kolejne kroki. Kroki muszą być wykonywane w takiej
kolejności, w jakiej zostały zapisane
Przykład
weź 4 jajka, szklankę cukru i cukier waniliowy
utrzyj żółtka z cukrem
przygotuj szklankę mąki z łyżeczką proszku do pieczenia
dodaj część mąki do ucieranej masy
ubij pianę z białek
dodaj do ucieranej masy pianę i resztę mąki
...
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Sekwencyjność
Opisujemy kolejne kroki. Kroki muszą być wykonywane w takiej
kolejności, w jakiej zostały zapisane
Przykład
weź 4 jajka, szklankę cukru i cukier waniliowy
utrzyj żółtka z cukrem
przygotuj szklankę mąki z łyżeczką proszku do pieczenia
dodaj część mąki do ucieranej masy
ubij pianę z białek
dodaj do ucieranej masy pianę i resztę mąki
...
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Wybór
Opisujemy fakt konieczności podjęcia decyzji którą z
alternatywnych “ścieżek” wybrać
Przykłady
jeżeli
ucierana masa jest zbyt gęsta,
to
dodaj łyżkę wody
jeżeli
uczestnik turnieju odpowiedział poprawnie na co najmniej 5 pytań,
to
przechodzi do następnego etapu,
w przeciwnym razie
odpada z gry
jeżeli
wyróżnik trójmianu kwadratowego jest ujemny,
to
piszemy że trójmian nie
ma pierwiastków,
jeżeli
wyróżnik jest równy zero,
to
piszemy że trójmian ma
jeden pierwiastek,
w pozostałych przypadkach
trójmian ma dwa pierwiastki
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Wybór
Opisujemy fakt konieczności podjęcia decyzji którą z
alternatywnych “ścieżek” wybrać
Przykłady
jeżeli
ucierana masa jest zbyt gęsta,
to
dodaj łyżkę wody
jeżeli
uczestnik turnieju odpowiedział poprawnie na co najmniej 5 pytań,
to
przechodzi do następnego etapu,
w przeciwnym razie
odpada z gry
jeżeli
wyróżnik trójmianu kwadratowego jest ujemny,
to
piszemy że trójmian nie
ma pierwiastków,
jeżeli
wyróżnik jest równy zero,
to
piszemy że trójmian ma
jeden pierwiastek,
w pozostałych przypadkach
trójmian ma dwa pierwiastki
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Iteracja
Opisujemy fakt, że pewna część algorytmu będzie powtarzana -
albo określoną ilość razy, albo do momentu zajścia pewnego
warunku
Przykłady
podgrzewaj masę mieszając,
dopóki
cukier się nie rozpuści
powtórz 100 razy
czynność “idź krok na północ” (czyli idź 100 kroków na
północ)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Iteracja
Opisujemy fakt, że pewna część algorytmu będzie powtarzana -
albo określoną ilość razy, albo do momentu zajścia pewnego
warunku
Przykłady
podgrzewaj masę mieszając,
dopóki
cukier się nie rozpuści
powtórz 100 razy
czynność “idź krok na północ” (czyli idź 100 kroków na
północ)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Rekurencja
Problem dzielimy na mniejsze (zagnieżdżone) podproblemy o
podobnej strukturze. Każdy z nich rozwiązujemy stosując ten sam
algorytm.
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Aby tworzyć algorytmy, powinniśmy rozumieć co jest w stanie
zrobić komputer
W przypadku bardziej złożonego problemu wygodnie jest:
podzielić problem na mniejsze, prostsze podproblemy
zaprojektować rozwiązanie dla każdego z nich, w razie
potrzeby znów dzieląc je na podproblemy
Jest to tzw. projektowanie “od ogółu do szczegółu” albo “z góry w dół” (top-down
design)
Kolejny krok to zapisanie algorytmu w wybranym języku
programowania
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Aby tworzyć algorytmy, powinniśmy rozumieć co jest w stanie
zrobić komputer
W przypadku bardziej złożonego problemu wygodnie jest:
podzielić problem na mniejsze, prostsze podproblemy
zaprojektować rozwiązanie dla każdego z nich, w razie
potrzeby znów dzieląc je na podproblemy
Jest to tzw. projektowanie “od ogółu do szczegółu” albo “z góry w dół” (top-down
design)
Kolejny krok to zapisanie algorytmu w wybranym języku
programowania
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Aby tworzyć algorytmy, powinniśmy rozumieć co jest w stanie
zrobić komputer
W przypadku bardziej złożonego problemu wygodnie jest:
podzielić problem na mniejsze, prostsze podproblemy
zaprojektować rozwiązanie dla każdego z nich, w razie
potrzeby znów dzieląc je na podproblemy
Jest to tzw. projektowanie “od ogółu do szczegółu” albo “z góry w dół” (top-down
design)
Kolejny krok to zapisanie algorytmu w wybranym języku
programowania
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Każdy język ma swoją
składnię
:
słowa kluczowe
instrukcje
itd
Na wykładzie / ćwiczeniach będziemy używać języka
Ada
(dokładniej: Ada 2005)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Każdy język ma swoją
składnię
:
słowa kluczowe
instrukcje
itd
Na wykładzie / ćwiczeniach będziemy używać języka
Ada
(dokładniej: Ada 2005)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Ada
Dobry pierwszy język programowania: łatwa składnia, duże
możliwości, pilnowanie programisty (kontrola błędów)
Język został opracowany w latach 70tych XX wieku, wygrał konkurs zorganizowany
przez Departament Obrony USA pokonując 19 innych projektów. Nazwa Ada pochodzi
od imienia Ady Augusty Lovelace, uważanej za pierwszą programistkę w historii.
Poprzednie wersje języka: Ada83, Ada95
Kto używa: kontrola lotów, lotnictwo (Airbus, Boeing, Eurofighter,
Iliuszyn), koleje (metro w Paryżu i Londynie, TGV) i inni
http://www.adacore.com/home/ada_answers/lookwho/
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Ada
Dobry pierwszy język programowania: łatwa składnia, duże
możliwości, pilnowanie programisty (kontrola błędów)
Język został opracowany w latach 70tych XX wieku, wygrał konkurs zorganizowany
przez Departament Obrony USA pokonując 19 innych projektów. Nazwa Ada pochodzi
od imienia Ady Augusty Lovelace, uważanej za pierwszą programistkę w historii.
Poprzednie wersje języka: Ada83, Ada95
Kto używa: kontrola lotów, lotnictwo (Airbus, Boeing, Eurofighter,
Iliuszyn), koleje (metro w Paryżu i Londynie, TGV) i inni
http://www.adacore.com/home/ada_answers/lookwho/
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Ada
Dobry pierwszy język programowania: łatwa składnia, duże
możliwości, pilnowanie programisty (kontrola błędów)
Język został opracowany w latach 70tych XX wieku, wygrał konkurs zorganizowany
przez Departament Obrony USA pokonując 19 innych projektów. Nazwa Ada pochodzi
od imienia Ady Augusty Lovelace, uważanej za pierwszą programistkę w historii.
Poprzednie wersje języka: Ada83, Ada95
Kto używa: kontrola lotów, lotnictwo (Airbus, Boeing, Eurofighter,
Iliuszyn), koleje (metro w Paryżu i Londynie, TGV) i inni
http://www.adacore.com/home/ada_answers/lookwho/
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Ada
Dobry pierwszy język programowania: łatwa składnia, duże
możliwości, pilnowanie programisty (kontrola błędów)
Język został opracowany w latach 70tych XX wieku, wygrał konkurs zorganizowany
przez Departament Obrony USA pokonując 19 innych projektów. Nazwa Ada pochodzi
od imienia Ady Augusty Lovelace, uważanej za pierwszą programistkę w historii.
Poprzednie wersje języka: Ada83, Ada95
Kto używa: kontrola lotów, lotnictwo (Airbus, Boeing, Eurofighter,
Iliuszyn), koleje (metro w Paryżu i Londynie, TGV) i inni
http://www.adacore.com/home/ada_answers/lookwho/
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Przydatne linki
http://www.adaic.org/standards/ada05.html
http://www.sigada.org/education/
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Przykładowy program
−− n a s z p i e r w s z y program
p r o c e d u r e p r o g 0 i s
b e g i n
n u l l ;
−− t e n program n i c n i e r o b i
end p r o g 1 ;
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
−− n a s z d r u g i program − p o w i t a n i e
with ada . t e x t i o ;
use ada . t e x t i o ;
p r o c e d u r e w01 p1 i s
b e g i n
ada . T e x t I O . p u t ( ” witam : −) ” ) ;
s k i p l i n e ;
end w01 p1 ;
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Ogólna postać programu
with u ż y w a n e p a k i e t y ; −− k l a u z u l a
’ w i t h ’
−− e w e n t u a l n i e k l a u z u l a
’ u s e ’
p o s t a c i
−−
’ u s e u ż y w a n e p a k i e t y ’
p r o c e d u r e n a z w a p r o g r a m u i s
−− c z ę ś ć d e k l a r a c y j n a programu
b e g i n
−− c z ę ś ć wykonywalna programu
end p r o g 1 ;
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Elementy programu
program w Adzie składa się z
procedury
klauzula with
informuje z jakich
pakietów
(bibliotek - zbiorów
funkcji i procedur) ma korzystać program
klauzula use
pozwala na szybki dostęp (bezpośrdnie
korzystanie) z zawartości pakietów
część deklaracyjna
zawiera deklaracje i definicje zmiennych,
podprogramów wykorzystywanych przez nasz program itp
część wykonywalna
zawiera instrukcje programu
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Elementy programu
program w Adzie składa się z
procedury
klauzula with
informuje z jakich
pakietów
(bibliotek - zbiorów
funkcji i procedur) ma korzystać program
klauzula use
pozwala na szybki dostęp (bezpośrdnie
korzystanie) z zawartości pakietów
część deklaracyjna
zawiera deklaracje i definicje zmiennych,
podprogramów wykorzystywanych przez nasz program itp
część wykonywalna
zawiera instrukcje programu
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Elementy programu
program w Adzie składa się z
procedury
klauzula with
informuje z jakich
pakietów
(bibliotek - zbiorów
funkcji i procedur) ma korzystać program
klauzula use
pozwala na szybki dostęp (bezpośrdnie
korzystanie) z zawartości pakietów
część deklaracyjna
zawiera deklaracje i definicje zmiennych,
podprogramów wykorzystywanych przez nasz program itp
część wykonywalna
zawiera instrukcje programu
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Elementy programu
program w Adzie składa się z
procedury
klauzula with
informuje z jakich
pakietów
(bibliotek - zbiorów
funkcji i procedur) ma korzystać program
klauzula use
pozwala na szybki dostęp (bezpośrdnie
korzystanie) z zawartości pakietów
część deklaracyjna
zawiera deklaracje i definicje zmiennych,
podprogramów wykorzystywanych przez nasz program itp
część wykonywalna
zawiera instrukcje programu
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Elementy programu
program w Adzie składa się z
procedury
klauzula with
informuje z jakich
pakietów
(bibliotek - zbiorów
funkcji i procedur) ma korzystać program
klauzula use
pozwala na szybki dostęp (bezpośrdnie
korzystanie) z zawartości pakietów
część deklaracyjna
zawiera deklaracje i definicje zmiennych,
podprogramów wykorzystywanych przez nasz program itp
część wykonywalna
zawiera instrukcje programu
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Identyfikatory
Nazwy wykorzystywane w programie (tzw.
identyfikatory
muszą
być ciągami znaków złożonymi z liter, cyft i znaków podkreślenia,
zaczynającymi się od litery. Dwa znaki podkreślenia nie mogą
występować po sobie. Duże i małe litery nie są rozróżniane.
Przykłady
poprawne: prog1, prog 1, moja zmienna, A123
niepoprawne: prog
1,
moj program, on&ona,
1szy program, max%
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Identyfikatory
Nazwy wykorzystywane w programie (tzw.
identyfikatory
muszą
być ciągami znaków złożonymi z liter, cyft i znaków podkreślenia,
zaczynającymi się od litery. Dwa znaki podkreślenia nie mogą
występować po sobie. Duże i małe litery nie są rozróżniane.
Przykłady
poprawne: prog1, prog 1, moja zmienna, A123
niepoprawne: prog
1,
moj program, on&ona,
1szy program, max%
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Słowa kluczowe
Niektóre słowa są tzw.
słowami kluczowymi
(zarezerwowanymi).
Są to słowa (identyfikatory), którym w języku nadano specjalne
znaczenie
Słowa kluczowe w Adzie
abort
else
new
return
abs
elsif
not
abstract
end
null
accept
entry
select
access
separate
aliased
exit
of
subtype
all
or
protected
others
tagged
array
function
out
task
terminate
generic
package
then
begin
goto
pragma
body
private
if
procedure
case
in
for
constant
is
use
raise
declare
range
when
limited
record
while
delta
loop
rem
with
renames
do
mod
requeue
xor
exception
reverse
and
at
type
until
delay
digits
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Słowa kluczowe
Niektóre słowa są tzw.
słowami kluczowymi
(zarezerwowanymi).
Są to słowa (identyfikatory), którym w języku nadano specjalne
znaczenie
Słowa kluczowe w Adzie
abort
else
new
return
abs
elsif
not
abstract
end
null
accept
entry
select
access
separate
aliased
exit
of
subtype
all
or
protected
others
tagged
array
function
out
task
terminate
generic
package
then
begin
goto
pragma
body
private
if
procedure
case
in
for
constant
is
use
raise
declare
range
when
limited
record
while
delta
loop
rem
with
renames
do
mod
requeue
xor
exception
reverse
and
at
type
until
delay
digits
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Komentarz
Komentarz to fragment zawartości pliku z kodem źródlowym
programu, który nie jest brany pod uwagę przy kompilacji.
Komentarze rozpoczynamy dwoma myślnikami (komentarzem jest
wówczas tekst od tych znaków do końca linii)
Przykład
-- to jest komentarz
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Komentarz
Komentarz to fragment zawartości pliku z kodem źródlowym
programu, który nie jest brany pod uwagę przy kompilacji.
Komentarze rozpoczynamy dwoma myślnikami (komentarzem jest
wówczas tekst od tych znaków do końca linii)
Przykład
-- to jest komentarz
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Tekst na ekranie - proste operacje
Procedury umożliwiające proste operacje związane z
wyprowadzaniem tekstu na ekran, zawarte w pakiecie
ada.text io:
put("tekst");
- wypisanie na ekranie tekstu podanego jako parametr;
kursor zostaje bezpośrednio za wypisanym tekstem
put line("Tekst");
-
wypisanie na ekranie tekstu podanego jako
parametr, kursor przechodzi na początek kolejnej linii
new line;
-
przeniesienie kursora na początek nowej linii
new line(n);
-
n-krotne przeniesienie kursora na początek nowej linii
set col(n);
-
ustawienie kursora w n-tej kolumnie (przy czym kursor idzie
zawsze w przód)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Komputery, programy i programowanie
Tekst na ekranie - proste operacje
Procedury umożliwiające proste operacje związane z
wyprowadzaniem tekstu na ekran, zawarte w pakiecie
ada.text io:
put("tekst");
- wypisanie na ekranie tekstu podanego jako parametr;
kursor zostaje bezpośrednio za wypisanym tekstem
put line("Tekst");
-
wypisanie na ekranie tekstu podanego jako
parametr, kursor przechodzi na początek kolejnej linii
new line;
-
przeniesienie kursora na początek nowej linii
new line(n);
-
n-krotne przeniesienie kursora na początek nowej linii
set col(n);
-
ustawienie kursora w n-tej kolumnie (przy czym kursor idzie
zawsze w przód)
Agata Półrola Wydział Matematyki i Informatyki UŁ