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.
PR
P O
R GRA
R M
A
=
A
= L
A G
L ORY
R T
Y M
T
+ S
+ T
S R
T U
R K
U TU
T R
U Y
R
Y DA
D N
A Y
N C
Y H
C
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.
EBieleninik
PWr II
1
EBieleninik
PWr II
2
Języki niskiego poziomu
Język programowania – język używany do pisania programów realizowanych przez komputer.
• język maszynowy
• język asembler
Rozróżnia się języki:
- niskiego poziomu
Języki wysokiego poziomu
Zależne od typu komputera, duża pracochłonność
• FORTRAN, COBOL, ALGOL, PASCAL, C
- wys
w okiego poziomu
om
• MO
M DULA
L , A
DA
Niezależne od typu komputera, wykorzystują wyrażenia języków
• BASIC, VISUAL BASIC
naturalnych
• SIMULA, SMALLTALK
• C++, C#, JAVA
• PROLOG
EBieleninik
PWr II
3
EBieleninik
PWr II
4
Język asembler
Jest to język ściśle związany z typem komputera (procesora) i jest różny dla Jest to język symboliczny, w którym instrukcje mają postać nazwy symbolicznej.
różnych typów komputerów.
Jednej instrukcji symbolicznej odpowiada jedna instrukcja maszynowa.
Instrukcje i dane są zapisywane w postaci ciągów liczb szesnastkowych lub Programy asemblerowe są bardziej zrozumiałe dla człowieka niż maszynowe.
binarnych.
Posługiwanie się tym językiem jest bardzo trudne i jest on stosowany niezwykle Języki asemblerowe także są różne dla różnych typów komputerów, ale mają rzadko
pewne cechy wspólne.
Jęz
ę y
z k
y ie
i m
e
m m
a
m s
a zy
z n
y owym
y
m posłu
ł giw
i an
a o s
ię
i
ę w
naj
a wcz
c e
z ś
e nie
i j
e s
j zy
z m
y
m o
kres
e ie
i
e u
ży
ż t
y k
t o-
wania komputerów.
1010 0111 0000 0000 0001 1010
kod
nr
adres pamięci
rozkazu
rejestru
EBieleninik
PWr II
5
EBieleninik
PWr II
6
Język asembler
Języki wysokiego poziomu
Przykład
MOV
Z,0
// przesłanie 0 do Z
MOV
U,X
// przesłanie X do U
Podstawowe cechy:
k2
ADD
Z,Y
// dodanie Y do Z
DEC
U
// odjęcie 1
• niezależność od konkretnych typów komputerów JNZ
k2
// skok do k2 gdy U<>0
• pojedyncze instrukcje opisują złożone czynności
• ofe
of rują s
zereg uł
g atwi
w eń
ń w
pi
w
saniu pr
u ogramów
m
1. z := 0
u := x
2. Powtarzaj
z := z+y
u := u-1
Aż u = 0
EBieleninik
PWr II
7
EBieleninik
PWr II
8
Podział języków wysokiego poziomu Podział języków wysokiego poziomu
• języki proceduralne
• języki programowania logicznego
- FORTRAN
- PROLOG
- ALGOL
• języki symulacyjne
- BASIC
- SIMULA
- PASCAL (starsze wersje)
- SIMSCRIPT
- C
• języki skryptowe (do pisania stron www)
• języki obiektowe
- PHP
- C++
- Jav
a aS
a cr
c ip
i t
- ASP
- VISUAL BASIC
- JAVA
• języki bazodanowe (zapytań)
- ADA
- SQL
- MySQL
- PASCAL
- SMALLTALK
- LISP
EBieleninik
PWr II
9
EBieleninik
PWr II
10
Translatory
Kompilator
Program
Program
Program
Program
TRANSLATOR
KOMPILATOR
w języku A
w języku B
źródłowy
wynikowy
Komp
m il
i a
l to
t r
o - program
a
m t
ł
t u
ł ma
m c
a z
c ą
z c
ą y
c
y z
z j
ęz
ę y
z k
y a
a w
ys
y okie
i g
e o p
ozi
z o
i mu
m (
źr
ź ódło
ł wy)
y
) n
a
a
Translator to program narzędziowy służący do tłumaczenia programów z jednego język maszynowy (wynikowy).
języka programowania na inny.
Program źródłowy - program w języku wysokiego poziomu, zrozumiałym przez W szczególności program, aby był wykonywalny, musi być przetłumaczony na człowieka
język maszynowy.
Program wynikowy - program w języku maszynowym, wykonywany przez komputer.
EBieleninik
PWr II
11
EBieleninik
PWr II
12
Proces uruchamiania programu Interpreter
Wprowadzenie programu
do komputera
Program
Wykonywanie
INTERPRETER
źródłowy
kolejnych instrukcji
Kompilacja
N
T
Są błędy ?
Jeżeli w czasie translacji programu jest on jednocześnie wykonywany, to taki tr
t an
a sla
l t
a o
t r
r n
az
a y
z w
y a
a s
ię
i
ę i
n
i ter
e p
r re
r t
e er
e e
r m
e .
m
Ur
U uchomi
hom enie
Poprawa błędów
e
Językiem wejściowym interpretera może być język asembler albo język wysokie-N
T
go poziomu.
Są błędy ?
Testowanie
Poprawa błędów
N
T
Są błędy ?
Poprawa błędów
EBieleninik
PWr II
13
EBieleninik
PWr II
14
Proces uruchamiania programu
Język programowania - definicje
Program.pas
Kompilacja
Program.exe
•
Symbol - najmniejszy element języka
•
Alfabet - zbiór wszystkich symboli danego języka
•
Słowa kluczowe – zbiór słów języka
Po skompilowaniu, program wynikowy staje się samodzielnym „bytem”
•
Syntaktyka (składnia) – określa reguły tworzenia poprawnych wyrażeń języka i może być przenoszony na inne komputery i wielokrotnie wykonywany dla różnych danych wejściowych.
•
Semantyka – określa znaczenie poprawnych składniowo wyrażeń.
EBieleninik
PWr II
15
Elementy języków programowania 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.
• Dane różnych typów
Nazwa jest ciągiem znaków. Przykłady nazw:
• Wyrażenia (arytmetyczne, logiczne, relacyjne) x, Y, alfa, delta2, wsp_korelacji, liczbaOsob
• Instrukcje
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.
EBieleninik
PWr II
17
EBieleninik
PWr II
18
Dane w językach programowania
Dane w językach programowania
Pascal – typy proste
Typ określa rodzaj i zakres wartości, które mogą przyjmować zmienne i stałe.
Nazwa
Liczba bajtów
Zakres wartości
Uwagi
ShortInt
1
-128..127
Krótki całkowity
Typy zmiennych i stałych muszą być podane w deklaracjach.
Integer
2
-32 768..32 767
Całkowity
LongInt
-2 147 483 648..
Długi całkowity
Deklaracje muszą poprzedzać użycie zmiennych i stałych w programie.
Real
6
-2.9E-39..1.7E38
Rzeczywisty
Double
8
5.0E-324..1.1E308
Podwójny rzeczywisty
Char
1
Znakowy
Dane mogą być typu prostego lub złożonego.
Boolean
1
True/False
Logiczny
EBieleninik
PWr II
19
EBieleninik
PWr II
20
Dane w językach programowania Dane w językach programowania
2) Typ tablicowy
tab = array[1..20] of Integer;
Pascal – typy złożone (składają się z typów prostych) x: tab
7
1) Typ łańcuchowy (napisowy)
1
2
3
20
x[3]
x: string[15];
K
o
w
a
l
s
k
i
1
2
15
T = array[1..8,1..10] of real;
tablica 1-wymiarowa
y: T
1
y[3,6]
2
Jest wykorzystywany do pamiętania tekstów.
3
7
tablica 2-wymiarowa
8
1
2
3
10
EBieleninik
PWr II
21
EBieleninik
PWr II
22
Dane w językach programowania
Wyrażenia arytmetyczne
3) Typ rekordowy
mój_adres: adres
Elementy składowe wyrażeń arytmetycznych:
adres = record
• stałe, zmienne (typu całkowitego lub rzeczywistego) kod:
string[6];
55-555
• operatory arytmetyczne
miejscowosc: string[25];
W r o c ł a w
ulica:
string[30];
K a r k o n o s k a
*
- mnożenie
numer:
Byte;
20
/
- dzielenie
mieszkanie:
Byte
en
e d;
3
+
- dodaw
a an
a ie
i
-
- odejmowanie (i znak ujemny)
Wykorzystywany do pamiętania danych tekstowych i liczbowych.
div - dzielenie całkowitoliczbowe
mod – reszta z dzielenia całkowitoliczbowego a+b*c-d
(a+b)*(c-d) 13 DIV 4 13 MOD 4
EBieleninik
PWr II
23
EBieleninik
PWr II
24
Wyrażenia relacyjne
Elementy składowe wyrażeń logicznych:
Operatory relacji:
• stałe, zmienne (typu Boolean)
= - równe
• operatory logiczne
< > - różne
NOT - negacja
<
- mniejsze
AND - iloczyn logiczny
>
- wię
i k
ę sze
z
OR
- suma
m
a lo
l gic
i z
c n
z a
<=
- mniejsze lub równe
Przykłady:
>=
- większe lub równe
a := true;
(a < b) OR (a>d)
delta >= 0
a< >0
b := false;
c := a OR b AND c;
EBieleninik
PWr II
25
EBieleninik
PWr II
26
Języki programowania
Języki programowania
2. Podejmowanie decyzji w programie
Instrukcje - Pascal
if <warunek> then
if <warunek> then
1.
Instrukcja przypisania
instrukcja1
instrukcja1;
zmienna := wyrażenie;
else
a := 10;
instrukcja2;
b := 5;
:= operator przypisania
c
c :
=
= a
+
+ b;
if
f de
lta>=0 t
0 hen
Begin
x1 := (-b – SQRT(delta))/(2*a);
x2 := (-b + SQRT(delta))/(2*a);
Writeln(x1, x2);
End
else
Writeln(„Delta ujemna”);
EBieleninik
PWr II
27
EBieleninik
PWr II
28
Języki programowania Języki programowania
3. Organizacja obliczeń cyklicznych k :=1;
3.3 Instrukcja Dla
3.1 Instrukcja Dopóki
x := 0;
while k < 6 do
for zm := wp to wk do
while <warunek> do
begin
Instrukcja;
x := x + k;
Instrukcja;
k := k + 1;
end;
for zm := wp to wk do
begin
suma := 0;
n :
=
:
= 1
0;
3.2 I
nstr
t ukcj
c a
j
a P
o
P wt
w a
t rzaj
obli
l c
i z
c a
z
a s
umę
m
ę 1 +
+ 2
+
+ …+
…+ 5
j
Instrukcja1;
for i := 1 to 10 do
k :=1;
Instrukcja2;
suma := suma + i;
repeat
x := 1;
..................
Instrukcja1;
repeat
end;
Instrukcja2;
x := x * k;
oblicza sumę: 1 + 2 + … + 10
k := k + 1;
..................
until k >= 6;
until <warunek>;
oblicza iloczyn 1 *2 *3 *…*5
EBieleninik
PWr II
29
EBieleninik
PWr II
30
Języki programowania
Języki programowania - podprogramy 4. Instrukcje wejścia/wyjścia Podprogramy
4.1 Czytanie danych
Podprogram to wyróżniona część programu komunikująca się z pozostałą w read (lista_argumentów);
ściśle określony sposób.
Do komunikacji są wykorzystywane parametry, w definicji programu nazywane readln (lista_argumentów);
parametrami formalnymi, a w wywołaniu parametrami aktualnymi.
read (a,b);
writeln (‘a = ‘, a);
Podprogram może być wielokrotnie wywoływany z części głównej programu lu
l b z
z in
i neg
e o p
odprog
o ra
r m
a u
m .
writ
i e
t l
e n
l (
‘b =
= ‘
, b
);
4.2 Wyprowadzanie wyników
Wywoływanie podprogramu polega na podaniu jego nazwy oraz w nawiasach write (lista_argumentów);
parametrów.
writeln (lista_argumentów);
pd := sqrt(delta);
EBieleninik
PWr II
31
EBieleninik
PWr II
32
Języki programowania - podprogramy Języki programowania - biblioteki
Dlaczego stosuje się podprogramy ?
Dla poszczególnych języków programowania opracowano bogate biblioteki podprogramów, zazwyczaj pogrupowanych tematycznie.
1. Program napisany z podziałem na podprogramy jest bardziej czytelny i zrozumiały Przykładowe biblioteki:
2. Pewne fragmenty programu, które się powtarzają lub realizują ściśle określone
• biblioteki obliczeń numerycznych
operacje, powinny być wyodrębnione i zapisane w postaci jednego podprogramu.
• biblioteki podprogramów graficznych
3. Podczas uruchamiania programu można testować poszczególne podprogramy
• bib
i li
l o
i te
t k
e i
i o
bli
l c
i z
c e
z ń
e s
ta
t t
a y
t s
y ty
t c
y z
c n
z yc
y h
c
oddzi
z e
i l
e n
l ie
i ,
e a
a n
as
a tę
t p
ę nie
i
e u
ruch
c omi
m ć
i
ć c
a
c ł
a y
ł
y program
a .
m
• biblioteki do przetwarzania tekstów
• biblioteki obliczeń ekonomicznych
Przykładowe funkcje standardowe w Pascalu:
• SIN(x), COS(x), SQRT(x), LOG(x), ABS(x), ........
EBieleninik
PWr II
33
EBieleninik
PWr II
34
Przykłady programów
Przykłady programów
Program MaxMin;
Program Oblicz_silnie;
Var
Program wyznacza liczbę
Var
max, min : Real;
maksymalną i minimalną
n, i, silnia: Integer;
a : array[1..20] of Real;
w tablicy n liczb.
Begin
i, n: Integer;
Writeln(‘ Podaj wartosc n ‘);
Begin
Readln (n);
................... czytanie danych
sil
i n
l ia
i :
=1
= ;
ma
m x :
=
= a
[1];
mi
m n
i :
=
= a
[1];
for i := 2 to n do
for i :=1 to n do
silnia := silnia*i;
begin
Writeln(‘silnia = ‘, silnia);
if a[i] > max then max := a[i];
End.
if a[i] < min then min := a[i];
end;
Writeln (max, min);
End.
EBieleninik
PWr II
35
EBieleninik
PWr II
36
Program RownanieKwadratowe;
Var
a,b,c,delta,x1,x2,x: Real;
Begin
Writeln(‘Podaj wspolczynniki a, b, c ‘);
Program SumaLiczb;
Program oblicza sumę liczb
Readln (a,b,c);
Var
if (a = 0) then
czytanych z klawiatury.
a, suma: Real;
if (b = 0) then Writeln(‘Zle dane’)
Begin
else Begin
suma := 0;
x := -c/b;
Readln(a);
Writeln(x);
En
E d
n ;
d
wh
w il
i e
l
e (
a <
>
<
> 0
) d
o
else Begin
Begin
delta := b*b – 4*a*c;
suma := suma + a;
if (delta >= 0) then
Readln(a);
Begin
End;
x1 := (-b - SQRT(delta))/(2*a);
Writeln(suma);
x2 := (-b + SQRT(delta))/(2*a);
End.
Writeln(x1,x2);
End
else Writeln(‘Delta ujemna’);
End
EBieleninik
PWr II
37
E
E n
Bid
e .
leninik
PWr II
38
K O N I E C
EBieleninik
PWr II
39