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.

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 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ę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 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ę

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

Przykłady programów

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