EBieleninik
PWr II
1
Pojęcia podstawowe
Program – sposób zapisu algorytmu w celu jego realizacji przez komputer.
Program składa się ze zbioru instrukcji i struktur danych.
Instrukcja – opis operacji jaka ma być wykonana.
Struktury danych – róŜne postacie danych, na których są wykonywane operacje.
PROGRAM = ALGORYTM + STRUKTURY DANYCH
EBieleninik
PWr II
2
PROGRAM = ALGORYTM + STRUKTURY DANYCH
Program moŜe być napisany w wybranej notacji.
Notacja taka powinna moŜliwie najlepiej pasować do problemu. JeŜeli ma on być
wykonany na komputerze, to musi być zapisany w
języku programowania.
Język programowania – język uŜywany do pisania programów realizowanych
przez komputer.
RozróŜnia się języki:
- niskiego poziomu
ZaleŜne od typu komputera, duŜa pracochłonność
- wysokiego poziomu
NiezaleŜne od typu komputera, wykorzystują wyraŜenia języków naturalnych
EBieleninik
PWr II
3
NiezaleŜne od typu komputera, wykorzystują wyraŜenia języków naturalnych
Języki niskiego poziomu
• język maszynowy
• język asembler
Języki wysokiego poziomu
• FORTRAN, COBOL, ALGOL, PASCAL, C
• MODULA, ADA
EBieleninik
PWr II
4
• MODULA, ADA
• BASIC, VISUAL BASIC
• SIMULA, SMALLTALK
• C++, C#, JAVA
• PROLOG
Język maszynowy
Jest to język ściśle związany z typem komputera (procesora) i jest róŜny dla
róŜnych typów komputerów.
Instrukcje i dane są zapisywane w postaci
ciągów liczb szesnastkowych lub
binarnych.
Posługiwanie się tym językiem jest bardzo trudne i jest on stosowany niezwykle
rzadko
Językiem maszynowym posługiwano się w najwcześniejszym okresie uŜytko-
EBieleninik
PWr II
5
Językiem maszynowym posługiwano się w najwcześniejszym okresie uŜytko-
wania komputerów.
1010
0111
0000 0000 0001 1010
kod
rozkazu
nr
rejestru
adres pamięci
Język asembler
Jest to
język symboliczny
, w którym instrukcje mają postać nazwy symbolicznej.
Jednej instrukcji symbolicznej odpowiada jedna instrukcja maszynowa.
Programy asemblerowe są bardziej zrozumiałe dla człowieka niŜ maszynowe.
Języki asemblerowe takŜe są róŜne dla róŜnych typów komputerów, ale mają
pewne cechy wspólne.
EBieleninik
PWr II
6
Język asembler
MOV
Z,0
// przesłanie 0 do Z
MOV
U,X
// przesłanie X do U
k2
ADD
Z,Y
// dodanie Y do Z
DEC
U
// odjęcie 1
JNZ
k2
// skok do k2 gdy U<>0
Przykład
EBieleninik
PWr II
7
1. z := 0
u := x
2. Powtarzaj
z := z+y
u := u-1
AŜ u = 0
Języki wysokiego poziomu
Podstawowe cechy:
• niezaleŜność od konkretnych typów komputerów
• pojedyncze instrukcje opisują złoŜone czynności
• oferują szereg ułatwień w pisaniu programów
EBieleninik
PWr II
8
• języki proceduralne
- FORTRAN
- ALGOL
- BASIC
- PASCAL (starsze wersje)
- C
• języki obiektowe
- C++
- VISUAL BASIC
Podział języków wysokiego poziomu
EBieleninik
PWr II
9
- VISUAL BASIC
- JAVA
- ADA
- PASCAL
- SMALLTALK
- LISP
• języki programowania logicznego
- PROLOG
• języki symulacyjne
- SIMULA
- SIMSCRIPT
• języki skryptowe (do pisania stron www)
- PHP
- JavaScript
Podział języków wysokiego poziomu
EBieleninik
PWr II
10
- JavaScript
- ASP
• języki bazodanowe (zapytań)
- SQL
- MySQL
Translatory
Program
w języku A
TRANSLATOR
Program
w języku B
Translator
to program narzędziowy słuŜący do tłumaczenia programów z jednego
języka programowania na inny.
W szczególności program, aby był wykonywalny, musi być przetłumaczony na
język maszynowy.
EBieleninik
PWr II
11
Program
ź
ródłowy
KOMPILATOR
Program
wynikowy
Kompilator
- program tłumaczący z języka wysokiego poziomu (źródłowy) na
Kompilator
EBieleninik
PWr II
12
Kompilator
- program tłumaczący z języka wysokiego poziomu (źródłowy) na
język maszynowy (wynikowy).
Program źródłowy
- program w języku wysokiego poziomu, zrozumiałym przez
człowieka
Program wynikowy
- program w języku maszynowym, wykonywany przez
komputer.
JeŜeli w czasie translacji programu jest on jednocześnie wykonywany, to taki
translator nazywa się
interpreterem.
Program
ź
ródłowy
INTERPRETER
Wykonywanie
kolejnych instrukcji
Interpreter
EBieleninik
PWr II
13
translator nazywa się
interpreterem.
Językiem wejściowym interpretera moŜe być język asembler albo język wysokie-
go poziomu.
Proces uruchamiania programu
Wprowadzenie programu
do komputera
Są błędy ?
Uruchomienie
Poprawa błędów
Kompilacja
T
N
EBieleninik
PWr II
14
Są błędy ?
Uruchomienie
Testowanie
Są błędy ?
Poprawa błędów
Poprawa błędów
T
N
T
N
Proces uruchamiania programu
Program.
pas
Kompilacja
Program.
exe
Po skompilowaniu, program wynikowy staje się samodzielnym „bytem”
i moŜe być przenoszony na inne komputery i wielokrotnie wykonywany dla
róŜnych danych wejściowych.
EBieleninik
PWr II
15
Język programowania - definicje
•
Symbol - najmniejszy element języka
•
Alfabet - zbiór wszystkich symboli danego języka
•
Słowa kluczowe – zbiór słów języka
•
Syntaktyka (składnia) – określa reguły tworzenia poprawnych wyraŜeń języka
•
Semantyka – określa znaczenie poprawnych składniowo wyraŜeń.
Elementy języków programowania
• Dane róŜnych typów
• WyraŜenia (arytmetyczne, logiczne, relacyjne)
• Instrukcje
EBieleninik
PWr II
17
Dane w językach programowania
Dane dzielą się na
zmienne i stałe.
Ich znaczenie jest takie samo jak w matematyce.
Muszą posiadać nazwę i moŜna im przypisywać wartości.
Nazwa
jest ciągiem znaków. Przykłady nazw:
x, Y, alfa, wsp_korelacji, wynik23
EBieleninik
PWr II
18
Stałe nie zmieniają wartości, którą nadaje się im w jednym miejscu programu.
Zmienne mogą zmieniać wartość w trakcie wykonywania programu.
Zmienne i stałe mogą być
róŜnych typów
.
Dane w językach programowania
Typ określa rodzaj i zakres wartości, które mogą przyjmować zmienne i stałe.
Typy zmiennych i stałych muszą być podane w deklaracjach.
Deklaracje muszą poprzedzać uŜycie zmiennych i stałych w programie.
EBieleninik
PWr II
19
Dane mogą być typu
prostego
lub
złoŜonego.
Dane w językach programowania
Pascal – typy proste
Nazwa
Liczba bajtów Zakres wartości
Uwagi
ShortInt
1
-128..127
Krótki całkowity
Integer
2
-32 768..32 767
Całkowity
LongInt
-2 147 483 648..
Długi całkowity
Real
6
-2.9E-39..1.7E38
Rzeczywisty
EBieleninik
PWr II
20
Double
8
5.0E-324..1.1E308
Podwójny rzeczywisty
Char
1
Znakowy
Boolean
1
True/False
Logiczny
Dane w językach programowania
Pascal – typy złoŜone (składają się z typów prostych)
1) Typ łańcuchowy (napisowy)
x: string[15];
1
0
o
w a
l
s
k
K
i
2
15
8
EBieleninik
PWr II
21
Dane w językach programowania
1) Typ tablicowy
tab = array[1..20] of Integer;
x[3]
2
1
3
20
x: tab
7
T = array[1..8,1..10] of real;
EBieleninik
PWr II
22
2
1
7
10
y: T
y[3,6]
1
1
2
3
3
8
Dane w językach programowania
1) Typ rekordowy
adres = record
kod:
string[6];
miejscowosc: string[25];
ulica:
string[30];
numer:
Byte;
mieszkanie:
Byte
end;
EBieleninik
PWr II
23
end;
20
W r o c ł a w
K a r k o n o s k a
3
55-555
mój_adres: adres
WyraŜenia arytmetyczne
Elementy składowe wyraŜeń arytmetycznych:
• stałe, zmienne (typu całkowitego lub rzeczywistego)
• operatory arytmetyczne
* - mnoŜenie
/ - dzielenie
+ - dodawanie
EBieleninik
PWr II
24
+ - dodawanie
-
- odejmowanie (i znak ujemny)
div - dzielenie całkowitoliczbowe
mod – reszta z dzielenia całkowitoliczbowego
a+b*c-d
(a+b)*(c-d) 13 DIV 4
13 MOD 4
Elementy składowe wyraŜeń logicznych:
• stałe, zmienne (typu Boolean)
• operatory logiczne
WyraŜenia logiczne
NOT - negacja
AND - iloczyn logiczny
OR - suma logiczna
EBieleninik
PWr II
25
OR - suma logiczna
Przykłady:
a := true;
b := false;
c := a OR b AND c;
WyraŜenia relacyjne
Operatory relacji:
= - równe
<> - róŜne
< - mniejsze
> - większe
<= - mniejsze lub równe
EBieleninik
PWr II
26
<= - mniejsze lub równe
>= - większe lub równe
(a < b) OR (a>d)
delta >= 0
a<>0
Języki programowania
Instrukcje - Pascal
1.
Instrukcja przypisania
zmienna
:=
wyraŜenie;
a := 10;
b := 5;
c := a + b;
:=
operator przypisania
EBieleninik
PWr II
27
c := a + b;
Języki programowania
2. Podejmowanie decyzji w programie
if <warunek> then
instrukcja1
else
instrukcja2;
if <warunek> then
instrukcja1;
EBieleninik
PWr II
28
if delta>=0 then
Begin
x1 := (-b – SQRT(delta))/(2*a);
x2 := (-b + SQRT(delta))/(2*a);
Writeln(x1, x2);
End
else
Writeln(„Delta ujemna”);
Języki programowania
3. Organizacja obliczeń cyklicznych
while <warunek> do
Instrukcja;
3.1 Instrukcja Dopóki
3.2 Instrukcja Powtarzaj
k :=1;
x := 0;
while k < 6 do
begin
x := x + k;
k := k + 1;
end;
EBieleninik
PWr II
29
3.2 Instrukcja Powtarzaj
repeat
Instrukcja1;
Instrukcja2;
..................
until <warunek>;
k :=1;
x := 1;
repeat
x := x * k;
k := k + 1;
until k >= 6;
Języki programowania
3.3 Instrukcja Dla
for zm := wp to wk do
Instrukcja;
for zm := wp to wk do
begin
Instrukcja1;
suma := 0;
n := 10;
EBieleninik
PWr II
30
Instrukcja1;
Instrukcja2;
..................
end;
n := 10;
for i := 1 to 10 do
suma := suma + i;
Języki programowania
4. Instrukcje wejścia/wyjścia
4.1 Czytanie danych
read (lista_argumentów);
read (a,b);
writeln (‘a = ‘, a);
writeln (‘b = ‘, b);
readln (lista_argumentów);
EBieleninik
PWr II
31
4.2 Wyprowadzanie wyników
write (lista_argumentów);
writeln (‘b = ‘, b);
writeln (lista_argumentów);
Języki programowania - podprogramy
Podprogramy
Podprogram
to wyróŜniona część programu komunikująca się z pozostałą w
ś
ciśle określony sposób.
Do komunikacji są wykorzystywane parametry, w definicji programu nazywane
parametrami formalnymi
, a w wywołaniu
parametrami aktualnymi.
Podprogram moŜe być wielokrotnie wywoływany z części głównej programu
lub z innego podprogramu.
EBieleninik
PWr II
32
lub z innego podprogramu.
Wywoływanie podprogramu polega na podaniu jego nazwy oraz w nawiasach
parametrów.
pd :=
sqrt
(delta);
Języki programowania - podprogramy
Dlaczego stosuje się podprogramy ?
1. Program napisany z podziałem na podprogramy jest bardziej czytelny i zrozumiały
2. Pewne fragmenty programu, które się powtarzają lub realizują ściśle określone
operacje, powinny być wyodrębnione i zapisane w postaci jednego podprogramu.
3. Podczas uruchamiania programu moŜna testować poszczególne podprogramy
oddzielnie, a następnie uruchomić cały program.
EBieleninik
PWr II
33
oddzielnie, a następnie uruchomić cały program.
Języki programowania - biblioteki
Dla poszczególnych języków programowania opracowano bogate biblioteki
podprogramów, zazwyczaj pogrupowanych tematycznie.
Przykładowe biblioteki:
• biblioteki obliczeń numerycznych
• biblioteki podprogramów graficznych
• biblioteki obliczeń statystycznych
EBieleninik
PWr II
34
• biblioteki obliczeń statystycznych
• biblioteki do przetwarzania tekstów
• biblioteki obliczeń ekonomicznych
Przykładowe funkcje standardowe w Pascalu:
• SIN(x), COS(x), SQRT(x), LOG(x), ABS(x), ........
Program Oblicz_silnie;
Var
n, i, silnia: Integer;
Begin
Writeln(‘ Podaj wartosc n ‘);
Readln (n);
silnia :=1;
for i := 2 to n do
Przykłady programów
EBieleninik
PWr II
35
for i := 2 to n do
silnia := silnia*i;
Writeln(‘silnia = ‘, silnia);
End.
Program MaxMin;
Var
max, min : Real;
a : array[1..20] of Real;
i, n: Integer;
Begin
................... czytanie danych
max := a[1]; min := a[1];
Przykłady programów
Program wyznacza liczbę
maksymalną i minimalną
w tablicy n liczb.
EBieleninik
PWr II
36
max := a[1]; min := a[1];
for i :=1 to n do
begin
if a[i] > max then max := a[i];
if a[i] < min then min := a[i];
end;
Writeln (max, min);
End.
Program SumaLiczb;
Var
a, suma: Real;
Begin
suma := 0;
Readln(a);
while (a <> 0) do
Przykłady programów
Program oblicza sumę liczb
czytanych z klawiatury.
EBieleninik
PWr II
37
while (a <> 0) do
Begin
suma := suma + a;
Readln(a);
End;
Writeln(suma);
End.
Program RownanieKwadratowe;
Var
a,b,c,delta,x1,x2,x: Real;
Begin
Writeln(‘Podaj wspolczynniki a, b, c ‘);
Readln (a,b,c);
if (a = 0) then
if (b = 0) then Writeln(‘Zle dane’)
else Begin
x := -c/b;
Writeln(x);
End;
PWr II
38
End;
else Begin
delta := b*b – 4*a*c;
if (delta >= 0) then
Begin
x1 := (-b - SQRT(delta))/(2*a);
x2 := (-b + SQRT(delta))/(2*a);
Writeln(x1,x2);
End
else Writeln(‘Delta ujemna’);
End
End.
EBieleninik
K O N I E C
EBieleninik
PWr II
39