pas czesc 4b id 349723 Nieznany

background image

1

PS/TP

TI

TI

TI

TI----PS

PS

PS

PS----4B

4B

4B

4B

Elementy zaawansowanego

programowania w Pascalu

background image

2

PS/TP

PROGRAMOWANIE STRUKTURALNE

Lokalizacja i usuwanie usterek

w programie za pomoc

ą

debuggera

background image

3

PS/TP

PROGRAMOWANIE STRUKTURALNE

Ś

rodowiska Turbo Pascal 6.0/7.x oraz Free Pascal Compiler posiadaj

ą

wbudowany program debugger.

Debugger pozwala na umiejscawianie i usuwanie usterek w programach.

Z umiejscawianiem i usuwaniem usterek zwi

ą

zane s

ą

dwie opcje głównego menu

( Free Pascal Compiler ) Run i Debug:

Run









Step over(F8) (wykonywanie krokowe programu)

Run









Trace into(F7) (wykonywanie krokowe programu)

Run









Go to Cursor(F4) (skocz do miejsca programu, zaznaczonego kursorem)

Debug









Add Watch (dodanie zmiennej do okna

ś

ledzenia)

Debug









Watchs (otworzenie okna

ś

ledzenia zmiennych)

Debug









Breakpoint (dodanie punktu zatrzymania)

background image

4

PS/TP

PROGRAMOWANIE STRUKTURALNE

Przykładowy program (z bł

ę

dem) do demonstracji wykorzystania debuggera:

program testowy;

uses crt;

const size = 20;
var nr : integer;

tab : array[1..size] of real;
dzielnik, iloraz, suma_ilorazow : real;

BEGIN

clrscr;
randomize;
suma_ilorazow := 0.0;
writeln('Program testowy');

{ustaw warto

ś

ci tablicy}

for nr := 1 to size do tab[nr] := random(200);

background image

5

PS/TP

PROGRAMOWANIE STRUKTURALNE

{wy

ś

wietl tablic

ę

}

writeln;
for nr := 1 to size do writeln(tab[nr],' ');
{obliczenia}
writeln;
for nr := 1 to size do

begin
dzielnik := random(20)-1;
iloraz := tab[nr] / dzielnik;
suma_ilorazow := suma_ilorazow + iloraz;
end;

{wynik}
writeln;
writeln('suma ilorazow: ',iloraz);

writeln;
writeln('Naci

ś

nij dowolny klawisz aby kontynuowa

ć

');

readkey;

END.

background image

6

PS/TP

PROGRAMOWANIE STRUKTURALNE

Przykładowe zrzuty ekranowe po pojawieniu si

ę

ę

du wykonania:

background image

7

PS/TP

PROGRAMOWANIE STRUKTURALNE

background image

8

PS/TP

PROGRAMOWANIE STRUKTURALNE

Za pomoc

ą

debuggera b

ę

dziemy

ś

ledzi

ć

(krok po kroku) zawarto

ś

ci zmiennych:

VAR
nr : integer;
tab : array[1..size] of real;
dzielnik,
iloraz,
suma_ilorazow
: real;

Za pomoc

ą

debuggera wstaw do okna zmienne:

nr, tab, dzielnik, iloraz, suma_ilorazow

Ustaw kursor pod zmienn

ą

nr

background image

9

PS/TP

PROGRAMOWANIE STRUKTURALNE

Wybierz opcj

ę

Debug









Add Watch

Pojawi si

ę

okno Edit Watch

background image

10

PS/TP

PROGRAMOWANIE STRUKTURALNE

W polu Expression to watch znajduje si

ę

nazwa zmiennej nr

Kliknij OK

background image

11

PS/TP

PROGRAMOWANIE STRUKTURALNE

Dodaj do okna Watches nast

ę

pne zmienne

tab, dzielnik, iloraz, suma_ilorazow

background image

12

PS/TP

PROGRAMOWANIE STRUKTURALNE

Teraz mo

ż

emy przyst

ą

pi

ć

do krokowego

ś

ledzenia wykonywania programu.

Uruchom program za pomoc

ą

opcji F8 (Run









Step over)

Klawisz F8 – słu

ż

y do wykonywania krok po kroku (linia po linii) programu.

Klawisz F8 – krok 1

background image

13

PS/TP

PROGRAMOWANIE STRUKTURALNE

Klawisz F8 – krok 2.

Klawisz F8 – krok 3.

Klawisz F8 – krok 4.

Klawisz F8 – krok 5.

Klawisz F8 – krok 6.

background image

14

PS/TP

PROGRAMOWANIE STRUKTURALNE

Klawisz F8 – krok 7.

Klawisz F8 – krok 8.

Klawisz F8 – krok 9.

Klawisz F8 – krok 10.

background image

15

PS/TP

PROGRAMOWANIE STRUKTURALNE

Klawisz F8 – krok 11.

background image

16

PS/TP

PROGRAMOWANIE STRUKTURALNE

Klawisz F8 – krok 12.

background image

17

PS/TP

PROGRAMOWANIE STRUKTURALNE

Klawisz F8 – krok 13.

background image

18

PS/TP

PROGRAMOWANIE STRUKTURALNE

Klawisz F8 – testujemy program a

ż

instrukcja random(20)-1

wyliczy warto

ść

0 ……..

background image

19

PS/TP

PROGRAMOWANIE STRUKTURALNE

Klawisz F8 – krok 14.

Zmienna dzielnik ma warto

ść

0,

dlatego dzielenie tab[nr] / dzielnik wywołało bł

ą

d!

background image

20

PS/TP

PROGRAMOWANIE STRUKTURALNE

Klawisz Ctrl+F2 – Program reset

Nale

ż

y zresetowa

ć

działanie programu i poprawi

ć

kod

ź

ródłowy:

Instrukcj

ę

dzielnik := random(20)-1;

Nale

ż

y zamieni

ć

na

repeat

dzielnik := random(20)-1;

until (dzielnik<>0.0);

background image

21

PS/TP

PROGRAMOWANIE STRUKTURALNE

Klawisz F8 – krok 15.

background image

22

PS/TP

PROGRAMOWANIE STRUKTURALNE

Ustanawianie punktów zatrzymania

background image

23

PS/TP

PROGRAMOWANIE STRUKTURALNE

Ustaw kursor w linii podejrzanej o bł

ą

d.

Debug









Breakpoint (dodanie punktu zatrzymania)

background image

24

PS/TP

PROGRAMOWANIE STRUKTURALNE

Uruchom program (Run









Run)

background image

25

PS/TP

PROGRAMOWANIE STRUKTURALNE

Program zatrzymał si

ę

w linii zaznaczonej jako

Breakpoint

Teraz mo

ż

na krokowo wykona

ć

dalsze linie programu

(F8)

i sprawdza

ć

co si

ę

dzieje

background image

26

PS/TP

PROGRAMOWANIE STRUKTURALNE

Rodzaje b

Rodzaje b

Rodzaje b

Rodzaje b

ł

ęd

d

d

ó

ó

ów

w

w

w

background image

27

PS/TP

PROGRAMOWANIE STRUKTURALNE

Wyró

ż

niamy trzy rodzaje bł

ę

dów:



ę

dy syntaktyczne

, zwi

ą

zane ze składni

ą

danego j

ę

zyka

(s

ą

wykrywane przez kompilator)



ę

dy semantyczne

, wyst

ę

puj

ą

ce podczas wykonywania programu

i zwi

ą

zane z prób

ą

wykonania niedozwolonej operacji (np. dzielenie przez zero

lub otwieranie nie istniej

ą

cego zbioru),



ę

dy logiczne

, powstałe na wskutek bł

ę

dnego zaprogramowania algorytmu.


Wyszukiwarka

Podobne podstrony:
Czesc ogolna id 128706 Nieznany
or wyklad 4b id 339029 Nieznany
czesc ia id 127263 Nieznany
czesc iva id 127272 Nieznany
Pas zieleni Uklad1 id 349729 Nieznany
G1 PW D Czesc opisowa 1 id 1853 Nieznany
czesc iiia id 127268 Nieznany
kpp 15 4b id 249449 Nieznany
Czesc VI id 127283 Nieznany
czesc iia id 127266 Nieznany
CZESC DRUGA id 127211 Nieznany
Czesc ogolna id 128706 Nieznany
or wyklad 4b id 339029 Nieznany
CCNA4 lab 1 1 4b pl id 109120 Nieznany
II czesc id 209842 Nieznany
Czesc 1 id 128659 Nieznany
4B (s25) id 39241 Nieznany (2)
naklejk czesc 2 id 313324 Nieznany

więcej podobnych podstron