Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Трассировка программ с процедурами

.pdf
Скачиваний:
53
Добавлен:
02.05.2015
Размер:
491.14 Кб
Скачать

Пример трассировки программ с функцией

1PROGRAM Sampl4(Input, Output);

2VAR a, b, c: integer;

3FUNCTION MidXY(x, y: integer): integer;

4BEGIN

5x := x + 2;

6y := y + 5;

7MidXY := (x + y) DIV 2

8END;

9BEGIN

10READ(a, b);

11c := MidXY(a, b);

12WRITE(a, ' ', b, ' ', c)

13END.

 

 

Таблица трассировки

 

 

Входные данные: 2

3

 

 

 

 

Строка

Ход выполнения

a

b

c

 

 

 

9

Вход в Sampl4

 

?

?

?

 

10

 

 

2

3

 

 

11

Вызов MidXY

 

 

 

x

y

4

Вход в MidXY

 

 

 

2

3

5

 

 

 

 

4

 

6

 

 

 

 

 

8

7

 

 

 

 

 

 

8

Выход из MidXY

 

 

 

 

 

11

Возврат в Sampl4

 

 

 

6

 

13

Вывод a, b, c (2

3 6)

 

 

 

 

14

Выход из Sampl4

 

 

 

 

 

Результат: 2 3 6

MidXY

6

11

1PROGRAM Samplx(Input, Output);

2VAR a, b, c, x1, x2, D: real;

3PROCEDURE RKU(a, b, c: real; VAR y1, y2, D: real);

4BEGIN

5D := SQR(b) – 4 *a * c;

6IF D >= 0 THEN

7BEGIN

8y1 := (–b – SQRT(D)) / (2 * a);

9y2 := (–b + SQRT(D)) / (2 * a)

10END

11END;

12BEGIN

13READ(a, b, c);

14RKU(a, b, c, x1, x2, D);

15IF D >= 0 THEN

16WRITE(‘x1 = ’, x1, ‘ x2= ‘, x2)

17ELSE

18WRITE(‘Корней нет’)

19END.

12