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

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 maszynowy

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

Interpreter

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

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 logiczne

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

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

Przykłady programów

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