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
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 no
od typu komputera, du a pracochłonno
• FORTRAN, COBOL, ALGOL, PASCAL, C
- wysokiego poziomu
Niezale ne od typu komputera, wykorzystuj wyra enia j zyków naturalnych
• MODULA, ADA
• BASIC, VISUAL BASIC
• 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 zykiem maszynowym posługiwano si w najwcze niejszym okresie u ytko-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 zyk asembler
Przykład
Program napisany w j zyku symbolicznym nie jest zrozumiały przez komputer i MOV
Z,0
// przesłanie 0 do Z
musi by przetłumaczony na program w j zyku maszynowym.
MOV
U,X
// przesłanie X do U
k2
ADD
Z,Y
// dodanie Y do Z
Proces tłumaczenia jest wykonywany przez program tłumacz cy nazywany tak e DEC
U
// odj cie 1
asemblerem.
JNZ
k2
// skok do k2 gdy U<>0
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 J zyki wysokiego poziomu
• j zyki proceduralne
Podstawowe cechy:
- FORTRAN
- ALGOL
• niezale no
od konkretnych typów komputerów
- BASIC
• pojedyncze instrukcje opisuj zło one czynno ci
- PASCAL (starsze wersje)
- C
• oferuj szereg ułatwie w pisaniu programów
• j zyki obiektowe
- C++
- VISUAL BASIC
- JAVA
- ADA
- PASCAL
- SMALLTALK
- LISP
EBieleninik
PWr II
9
EBieleninik
PWr II
10
Podział j zyków wysokiego poziomu
Translatory
• j zyki programowania logicznego
Program
Program
TRANSLATOR
- PROLOG
w j zyku A
w j zyku B
• j zyki symulacyjne
- SIMULA
Translator to program narz dziowy słu cy do tłumaczenia programów z jednego
- SIMSCRIPT
j zyka programowania na inny.
• j zyki skryptowe (do pisania stron www)
W szczególno ci program, aby był wykonywalny, musi by przetłumaczony na
- PHP
j zyk maszynowy.
- JavaScript
- ASP
• j zyki bazodanowe (zapyta )
- SQL
- MySQL
EBieleninik
PWr II
11
EBieleninik
PWr II
12
Kompilator
Program
Wykonywanie
INTERPRETER
ródłowy
kolejnych instrukcji
Program
Program
KOMPILATOR
ródłowy
wynikowy
Je eli w czasie translacji programu jest on jednocze nie wykonywany, to taki Kompilator - program tłumacz cy z j zyka wysokiego poziomu ( ródłowy) na translator nazywa si interpreterem.
j zyk maszynowy (wynikowy).
J zykiem wej ciowym interpretera mo e by j zyk asembler albo j zyk wysokie-Program ródłowy - program w j zyku wysokiego poziomu, zrozumiałym przez go poziomu.
człowieka
Program wynikowy - program w j zyku maszynowym, wykonywany przez komputer.
EBieleninik
PWr II
13
EBieleninik
PWr II
14
Proces uruchamiania programu
Proces uruchamiania programu
Wprowadzenie programu
do komputera
Program.pas
Kompilacja
Kompilacja
Program.exe
N
T
S bł dy ?
Po skompilowaniu, program wynikowy staje si samodzielnym „bytem”
i mo e by przenoszony na inne komputery i wielokrotnie wykonywany dla Uruchomienie
Poprawa bł dów
ró nych danych wej ciowych.
N
T
S bł dy ?
Testowanie
Poprawa bł dów
N
T
S bł dy ?
Poprawa bł dów
EBieleninik
PWr II
15
EBieleninik
PWr II
16
Elementy j zyków programowania Dane w j zykach programowania
• Dane ró nych typów
Dane dziel si na zmienne i stałe.
• Wyra enia (arytmetyczne, logiczne, relacyjne) Ich znaczenie jest takie samo jak w matematyce.
• Instrukcje
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
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
Pascal – typy zło one (składaj si z typów prostych) 1) Typ tablicowy
x = array[1..20] of Integer;
1) Typ ła cuchowy (napisowy)
X
7
x: string[15];
8
K o
w a
l
s
k
i
1
2
3
20
0
1
2
15
X[3]
T = array[1..8,1..10] of real;
T 1
T[3,6]
2
1
3
7
8
1
2
3
10
EBieleninik
PWr II
21
EBieleninik
PWr II
22
Dane w j zykach programowania
Wyra enia arytmetyczne
1) Typ rekordowy
Elementy składowe wyra e arytmetycznych:
adres = record
• stałe, zmienne (typu całkowitego lub rzeczywistego) 55-555
kod:
string[6];
• 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
3
+ - dodawanie
end;
-
- 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
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 ksze
OR - suma logiczna
<= - mniejsze lub równe
>= - wi ksze lub równe
Przykłady:
(a < b) OR (a>d)
delta >= 0
a<>0
a := true;
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
1.
Instrukcja przypisania
if <warunek> then
if <warunek> then
instrukcja1
instrukcja1;
zmienna := wyra enie;
else
a := 10;
instrukcja2;
b := 5;
:= operator przypisania
c := a + b;
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”);
EBieleninik
PWr II
27
EBieleninik
PWr II
28
J zyki programowania
3. Organizacja oblicze cyklicznych
3.3 Instrukcja Dla
3.1 Instrukcja Dopóki
k :=1;
for zm := wp to wk do
x := 0;
while <warunek> do
while k < 6 do
Instrukcja;
Instrukcja;
begin
x := x + k;
for zm := wp to wk do
k := k + 1;
begin
suma := 0;
end;
n := 10
3.2 Instrukcja Powtarzaj
Instrukcja1;
for i := 1 to 10 do
Instrukcja2;
suma := suma + i;
repeat
k :=1;
..................
Instrukcja1;
x := 1;
end;
Instrukcja2;
repeat
..................
x := x * k;
until <warunek>;
k := k + 1;
until k >= 6;
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 writeln (‘b = ‘, b);
lub z innego podprogramu.
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);
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
• biblioteki oblicze statystycznych
oddzielnie, a nast pnie uruchomi cały program.
• 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);
silnia :=1;
................... czytanie danych
for i := 2 to n do
max := a[1]; min := a[1];
silnia := silnia*i;
for i :=1 to n do
Writeln(‘silnia = ‘, silnia);
begin
End.
if a[i] > max then max := a[i];
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: 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);
End;
while (a <> 0) do
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
el. eninik
PWr II
38
K O N I E C
EBieleninik
PWr II
39