dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
1
1
ALGORYTM
ALGORYTM
Algorytm
Algorytm
, dokładny przepis podający sposób
, dokładny przepis podający sposób
rozwiązania określonego zadania w skończonej liczbie
rozwiązania określonego zadania w skończonej liczbie
kroków; zbiór poleceń odnoszących się do pewnych
kroków; zbiór poleceń odnoszących się do pewnych
obiektów, ze wskazaniem porządku, w jakim mają być
obiektów, ze wskazaniem porządku, w jakim mają być
realizowane. Nabrał znaczenia z rozwojem informatyki,
realizowane. Nabrał znaczenia z rozwojem informatyki,
gdzie opisuje logiczny ciąg operacji, które ma wykonać
gdzie opisuje logiczny ciąg operacji, które ma wykonać
program.
program.
Algorytm sposób postępowania
Algorytm sposób postępowania
Algorytm zapisany przy pomocy języka
Algorytm zapisany przy pomocy języka
programowania jest programem.
programowania jest programem.
Wyróżnia się
Wyróżnia się
algorytmy numeryczne
algorytmy numeryczne
, operujące na
, operujące na
liczbach (np. algorytm Euklidesa), i
liczbach (np. algorytm Euklidesa), i
nienumeryczne
nienumeryczne
,
,
operujące na obiektach nieliczbowych (np. sortowanie
operujące na obiektach nieliczbowych (np. sortowanie
dokumentów). Istnieje również podział algorytmów na
dokumentów). Istnieje również podział algorytmów na
sekwencyjne
sekwencyjne
(kolejność czynności jest określona
(kolejność czynności jest określona
jednoznacznie) i
jednoznacznie) i
niesekwencyjne
niesekwencyjne
(równoległe,
(równoległe,
współbieżne - następstwo między pewnymi operacjami
współbieżne - następstwo między pewnymi operacjami
nie jest określone).
nie jest określone).
dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
2
2
Język programowania
Język programowania
Język programowania
Język programowania
, zbiór zasad składni, instrukcji, dzięki którym
, zbiór zasad składni, instrukcji, dzięki którym
powstaje kod źródłowy programu. Procesor jest w stanie wykonywać
powstaje kod źródłowy programu. Procesor jest w stanie wykonywać
program w kodzie maszynowym. Jednakże tworzenie programów
program w kodzie maszynowym. Jednakże tworzenie programów
w tym języku jest praktycznie niemożliwe. Dlatego programista
w tym języku jest praktycznie niemożliwe. Dlatego programista
używa języka zrozumiałego dla człowieka, który następnie jest
używa języka zrozumiałego dla człowieka, który następnie jest
kompilowany bądź interpretowany do postaci maszynowej.
kompilowany bądź interpretowany do postaci maszynowej.
Istnieje wiele rodzajów języków programowania. Można je podzielić
Istnieje wiele rodzajów języków programowania. Można je podzielić
na języki strukturalne i obiektowe. Innym kryterium podziału jest
na języki strukturalne i obiektowe. Innym kryterium podziału jest
zastosowanie języków (innych używa się do tworzenia programów
zastosowanie języków (innych używa się do tworzenia programów
multimedialnych, a innych do obliczeń numerycznych czy np.
multimedialnych, a innych do obliczeń numerycznych czy np.
aplikacji sieciowych). Niektóre z języków są bardziej uniwersalne niż
aplikacji sieciowych). Niektóre z języków są bardziej uniwersalne niż
inne. Do najpopularniejszych obecnie języków programowania należą
inne. Do najpopularniejszych obecnie języków programowania należą
C/C++, Java, Fortran czy Pascal.
C/C++, Java, Fortran czy Pascal.
dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
3
3
Kod źródłowy, Kod
Kod źródłowy, Kod
maszynowy
maszynowy
Kod
źródłowy,
program
komputerowy
napisany
w języku
Kod
źródłowy,
program
komputerowy
napisany
w języku
programowania. Jest to postać programu, która jest zrozumiała dla
programowania. Jest to postać programu, która jest zrozumiała dla
programisty (bez konieczności jego uruchamiania). Kod źródłowy jest
programisty (bez konieczności jego uruchamiania). Kod źródłowy jest
przekształcany na kod maszynowy w procesie kompilacji programu.
przekształcany na kod maszynowy w procesie kompilacji programu.
Kod maszynowy, język rozumiany przez procesor. Program w kodzie
Kod maszynowy, język rozumiany przez procesor. Program w kodzie
maszynowym składa się z ciągu wartości binarnych, które oznaczają
maszynowym składa się z ciągu wartości binarnych, które oznaczają
zarówno instrukcje jak i dane. Program, który jest napisany
zarówno instrukcje jak i dane. Program, który jest napisany
w pewnym języku programowania, musi zostać skompilowany, aby
w pewnym języku programowania, musi zostać skompilowany, aby
mógł być wykonywany przez komputer. Postać kodu maszynowego
mógł być wykonywany przez komputer. Postać kodu maszynowego
zależy od architektury procesora, na który dany program jest
zależy od architektury procesora, na który dany program jest
przeznaczony. Dlatego program musi zostać skompilowany na
przeznaczony. Dlatego program musi zostać skompilowany na
konkretnej maszynie, ewentualnie na systemie kompatybilnym
konkretnej maszynie, ewentualnie na systemie kompatybilnym
z systemem docelowym.
z systemem docelowym.
dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
4
4
TRANSLATOR
TRANSLATOR
Kompilator
Kompilator
, translator języka wysokiego poziomu, którego
, translator języka wysokiego poziomu, którego
programy wynikowe mogą być wprowadzone do pamięci i wykonane
programy wynikowe mogą być wprowadzone do pamięci i wykonane
dopiero
po
zakończeniu tłumaczenia (w
odróżnieniu od
dopiero
po
zakończeniu tłumaczenia (w
odróżnieniu od
interpretatora).
interpretatora).
Programy wynikowe kompilatora mogą być przechowywane, łączone
Programy wynikowe kompilatora mogą być przechowywane, łączone
z innymi programami i wielokrotnie wykonywane znacznie szybciej
z innymi programami i wielokrotnie wykonywane znacznie szybciej
niż programy interpretowane.
niż programy interpretowane.
Interpreter, interpretator
Interpreter, interpretator
(angielskie
(angielskie
interpreter
interpreter
), translator
), translator
przekładający instrukcje programu na kod pośredni, który następnie
przekładający instrukcje programu na kod pośredni, który następnie
interpretuje przy każdym ich wykonaniu. Ponieważ interpreter nie
interpretuje przy każdym ich wykonaniu. Ponieważ interpreter nie
tworzy przekładu w kodzie maszynowym, lecz wykonuje instrukcje,
tworzy przekładu w kodzie maszynowym, lecz wykonuje instrukcje,
tłumacząc je na bieżąco za każdym razem, wykonanie programu
tłumacząc je na bieżąco za każdym razem, wykonanie programu
znacznie się wydłuża. Interpreter nie zmusza z kolei do oczekiwania
znacznie się wydłuża. Interpreter nie zmusza z kolei do oczekiwania
na wykonanie kompilacji po każdej zmianie programu. Typowymi
na wykonanie kompilacji po każdej zmianie programu. Typowymi
interpreterami są systemy programowania Basic, Java, Perl;
interpreterami są systemy programowania Basic, Java, Perl;
dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
5
5
Oprogramowanie - software
Oprogramowanie - software
Oprogramowanie
Oprogramowanie
(angielskie
(angielskie
software
software
), program lub zbiór
), program lub zbiór
programów,
umożliwiający
korzystanie
z komputera
oraz
programów,
umożliwiający
korzystanie
z komputera
oraz
ewentualnie ze sprzętu peryferyjnego (modemu, skanera, itp.)
ewentualnie ze sprzętu peryferyjnego (modemu, skanera, itp.)
bądź pozwalający rozwiązywać konkretne problemy użytkownika.
bądź pozwalający rozwiązywać konkretne problemy użytkownika.
Ogół programów przyjęto dzielić na oprogramowanie
Ogół programów przyjęto dzielić na oprogramowanie
systemowe
systemowe
i oprogramowanie
i oprogramowanie
użytkowe
użytkowe
. Oprogramowanie jest niezbywalną
. Oprogramowanie jest niezbywalną
częścią systemu komputerowego, dzięki swojej wymienności może
częścią systemu komputerowego, dzięki swojej wymienności może
zmieniać jego przeznaczenie. Ten sam komputer osobisty może
zmieniać jego przeznaczenie. Ten sam komputer osobisty może
być używany jako elektroniczny sekretariat, a w chwilę potem,
być używany jako elektroniczny sekretariat, a w chwilę potem,
dzięki użyciu innego oprogramowania przeistacza się w salon gier
dzięki użyciu innego oprogramowania przeistacza się w salon gier
lub internetową pocztę, telefon i radio, przy czym dzięki
lub internetową pocztę, telefon i radio, przy czym dzięki
wieloprogramowości i środowisku okienkowemu może pełnić
wieloprogramowości i środowisku okienkowemu może pełnić
wszystkie te funkcje jednocześnie.
wszystkie te funkcje jednocześnie.
dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
6
6
Programowanie strukturalne
Programowanie strukturalne
, rodzaj programowania w którym
, rodzaj programowania w którym
program podzielony jest na niewielkie moduły - procedury, bądź
program podzielony jest na niewielkie moduły - procedury, bądź
funkcje.
Programowanie
strukturalne
ułatwia
projektowanie,
funkcje.
Programowanie
strukturalne
ułatwia
projektowanie,
testowanie
a także
utrzymanie
kodu
programu.
Do
testowanie
a także
utrzymanie
kodu
programu.
Do
najpopularniejszych języków strukturalnych zalicza się Pascal, C,
najpopularniejszych języków strukturalnych zalicza się Pascal, C,
Modula-2.
Modula-2.
Programowanie obiektowe
Programowanie obiektowe
, rodzaj programowania, w którym dane
, rodzaj programowania, w którym dane
i wykonywane na nich operacje są połączone. Ten formalny zabieg
i wykonywane na nich operacje są połączone. Ten formalny zabieg
umożliwia szybsze pisanie większych programów, przez "składanie
umożliwia szybsze pisanie większych programów, przez "składanie
ich" ze wzajemnie powiązanych obiektów, które odpowiadają za daną
ich" ze wzajemnie powiązanych obiektów, które odpowiadają za daną
funkcję programu (np. przygotowanie danych, wykonanie obliczeń,
funkcję programu (np. przygotowanie danych, wykonanie obliczeń,
zaprezentowanie wyników).
zaprezentowanie wyników).
Projektowanie obiektowe
Projektowanie obiektowe
(angielskie
(angielskie
object-oriented design
object-oriented design
), ogół
), ogół
metod i sposobów rozwiązywania problemów programowania
metod i sposobów rozwiązywania problemów programowania
z zastosowaniem metodologii obiektowej, tj. uwzględnianiem takich
z zastosowaniem metodologii obiektowej, tj. uwzględnianiem takich
aspektów, jak ukrywanie informacji, abstrakcja, dziedziczenie
aspektów, jak ukrywanie informacji, abstrakcja, dziedziczenie
i hierarchizowanie, elastyczność i wykorzystanie wtórne oraz środków
i hierarchizowanie, elastyczność i wykorzystanie wtórne oraz środków
takich, jak typy definiowane przez użytkownika, hierarchie klas, klasy
takich, jak typy definiowane przez użytkownika, hierarchie klas, klasy
abstrakcyjne,
wielopostaciowość.
Diagramy
klas
zastąpiły
abstrakcyjne,
wielopostaciowość.
Diagramy
klas
zastąpiły
w projektowaniu obiektowym dawniejsze schematy blokowe.
w projektowaniu obiektowym dawniejsze schematy blokowe.
dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
7
7
Sprzęt - hardware
Sprzęt - hardware
dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
8
8
Hardware
Hardware
Hardware
Hardware
- materialna część komputera. Ogólnie
- materialna część komputera. Ogólnie
hardwarem nazywa się sprzęt komputerowy jako taki i
hardwarem nazywa się sprzęt komputerowy jako taki i
odróżnia się go od software'u - czyli oprogramowania.
odróżnia się go od software'u - czyli oprogramowania.
Podział ten jest nieostry, gdyż współcześnie wiele
Podział ten jest nieostry, gdyż współcześnie wiele
elementów sprzętu komputerowego posiada "wszyte"
elementów sprzętu komputerowego posiada "wszyte"
weń na stałe oprogramowanie, stanowiące jego
weń na stałe oprogramowanie, stanowiące jego
integralną część, bez którego elementy te nie mogłyby
integralną część, bez którego elementy te nie mogłyby
funkcjonować.
funkcjonować.
Np: większość drukarek komputerowych posiada w swojej
Np: większość drukarek komputerowych posiada w swojej
pamięci zestaw komend, przy pomocy których realizuje
pamięci zestaw komend, przy pomocy których realizuje
proces drukowania i których odpowiednik znajduje się
proces drukowania i których odpowiednik znajduje się
w pamięci komputera stanowąc programowy sterownik
w pamięci komputera stanowąc programowy sterownik
tego urządzenia
tego urządzenia
dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
9
9
Hardwarem jest np:
Hardwarem jest np:
procesor
procesor
pamięć komputerowa
pamięć komputerowa
twardy dysk
twardy dysk
monitor
monitor
klawiatura
klawiatura
mysz
mysz
dołączony do komputera sprzęt audio-wizualny
dołączony do komputera sprzęt audio-wizualny
drukarka
drukarka
skaner
skaner
modem
modem
itp.
itp.
Źródło: "http://pl.wikipedia.org/wiki/Hardware"
Źródło: "http://pl.wikipedia.org/wiki/Hardware"
dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
10
10
Schemat ideowy PC
Schemat ideowy PC
Procesor
Pamięć
Urządzenia zewn.
Urządzenia zewn.
Urządzenia zewn.
Szyny
Magistra
le
dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
11
11
PROCESOR
PROCESOR
Procesor
Procesor
(
(
processor
processor
) - urządzenie
) - urządzenie
potrafiące pobierać dane z
potrafiące pobierać dane z
,
,
interpretować je i wykonywać jako
interpretować je i wykonywać jako
.
Wykonuje on bardzo szybko ciąg prostych operacji
Wykonuje on bardzo szybko ciąg prostych operacji
(rozkazów)
wybranych
ze
zbioru
operacji
(rozkazów)
wybranych
ze
zbioru
operacji
podstawowych
określonych
zazwyczaj
przez
podstawowych
określonych
zazwyczaj
przez
producenta procesora jako
producenta procesora jako
.
.
dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
12
12
Procesor wykonywany jest zwykle jako
Procesor wykonywany jest zwykle jako
zamknięty w
hermetycznej obudowie posiadającej
hermetycznej obudowie posiadającej
wyprowadzenia. Złoto jest
konieczne, aby zmniejszyć
konieczne, aby zmniejszyć
pasożytnicze połączeń. Jego
pasożytnicze połączeń. Jego
sercem jest
sercem jest
, na który naniesiono techniką
, na który naniesiono techniką
szereg warstw
szereg warstw
. Tworzą one sieć od
. Tworzą one sieć od
kilku do kilkudziesięciu milionów
kilku do kilkudziesięciu milionów
. Połączenia wykonane są z
. Połączenia wykonane są z
(
,
,
). Ważnym parametrem procesora jest rozmiar
). Ważnym parametrem procesora jest rozmiar
elementów budujących jego strukturę. Im są one mniejsze tym niższe
elementów budujących jego strukturę. Im są one mniejsze tym niższe
jest zużycie
jest zużycie
,
,
pracy oraz wyższa
pracy.
Współczesne procesory wykonywane są w technologii pozwalającej na
Współczesne procesory wykonywane są w technologii pozwalającej na
uzyskanie elementów o rozmiarach mniejszych niż 90
uzyskanie elementów o rozmiarach mniejszych niż 90
pracujących z
pracujących z
częstotliwością 2
częstotliwością 2
W funkcjonalnej strukturze procesora można wyróżnić:
W funkcjonalnej strukturze procesora można wyróżnić:
zespoł
zespoł
do przechowywania danych i wyników, rejestry mogą
do przechowywania danych i wyników, rejestry mogą
być ogólnego przeznaczenia, lub mają specjalne przeznaczenie,
być ogólnego przeznaczenia, lub mają specjalne przeznaczenie,
jednostkę arytmetyczną (
jednostkę arytmetyczną (
) do wykonywania operacji
) do wykonywania operacji
obliczeniowych na danych,
obliczeniowych na danych,
układ sterujący przebiegiem wykonywania programu.
układ sterujący przebiegiem wykonywania programu.
Jedną z podstawowych cech procesora jest długość (liczba bitów) słowa,
Jedną z podstawowych cech procesora jest długość (liczba bitów) słowa,
na którym wykonywane są podstawowe operacje obliczeniowe. Jeśli
na którym wykonywane są podstawowe operacje obliczeniowe. Jeśli
słowo ma np. 32 bity, mówimy że procesor jest 32-bitowy. Innym ważnym
słowo ma np. 32 bity, mówimy że procesor jest 32-bitowy. Innym ważnym
parametrem określającym procesor jest szybkość z jaką wykonuje on
parametrem określającym procesor jest szybkość z jaką wykonuje on
program. Szybkość ta w znacznym stopniu zależy od czasu trwania
program. Szybkość ta w znacznym stopniu zależy od czasu trwania
pojedynczego taktu procesora, jest on odwrotnością częstotliwości
pojedynczego taktu procesora, jest on odwrotnością częstotliwości
procesora.
procesora.
dr inż. Tadeusz BURAK
dr inż. Tadeusz BURAK
13
13
Pamięć
Pamięć
Pamięć komputerowa
Pamięć komputerowa
to te części komputera, które
to te części komputera, które
przechowują dane i programy.
przechowują dane i programy.
Pamięci dzieli się ze względu na:
Pamięci dzieli się ze względu na:
możliwości zapisu i odczytu:
możliwości zapisu i odczytu:
ROM read only memory
ROM read only memory
–
tylko do odczytu (zapis odbywa się w fazie produkcji),
tylko do odczytu (zapis odbywa się w fazie produkcji),
–
jednokrotnego zapisu,
jednokrotnego zapisu,
RAM random acces memory
RAM random acces memory
–
wielokrotnego zapisu i odczytu.
wielokrotnego zapisu i odczytu.
ulotność:
ulotność:
–
pamięci ulotne przechowują dane tak długo, jak długo są
pamięci ulotne przechowują dane tak długo, jak długo są
zasilane,
zasilane,
–
pamięci nieulotne zachowują informację po odłączeniu
pamięci nieulotne zachowują informację po odłączeniu
zasilania.
zasilania.