background image

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

background image

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

background image

• 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.

background image

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ń.

background image

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

background image

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

background image

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”);

background image

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);

background image

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.

background image

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