Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика часть 1.pdf
Скачиваний:
16
Добавлен:
02.05.2015
Размер:
489.96 Кб
Скачать

Строка

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

n

t

x

 

 

 

7

 

 

 

0.8

 

 

 

 

8

вывод 1.5, 0.8, +

 

 

 

 

 

 

9

выход из Р

 

 

 

 

 

 

 

 

возврат в prim4

 

 

 

 

 

 

15

вывод 1, 0.8, +

 

 

 

 

 

 

16

Выход из Prim4

 

 

 

 

 

 

Результат: 1.5

0.8 +

 

 

 

 

 

 

 

1

0.8 +

 

 

 

 

 

 

Замечание.

 

 

 

 

 

 

 

1В процедуре P параметры x и y являются параметрами значениями. Поэтому при вызове процедуры (строка 14) для этих параметров выделяются дополнительные ячейки памяти, куда копируются значения фактических параметров. По окончанию работы процедуры эта память освобождается и, говорят что, параметры x и y разрушаются. В таблице трассировки это отражено вводом дополнительных столбцов n, x и y при вызове процедуры (выделяется дополнительная память) и их отсутствие после строки 9 (память освобождается, локальные переменные n, x и y исчезают).

2Во второй строке программы описываются глобальные переменные n, t, x. В процедуре Р параметры x, y, n являются локальными. Так как локальные переменные n, x имеют те же имена, что и глобальные переменные, то последние не доступны во время работы процедуры Р, что отражено в таблице трассировки соответствующей штриховкой.

3Глобальная переменная x является переменной символьного типа (char) и ей может быть присвоен любой символ. Операции с символьными переменными и константами ограничены только их сравнением. Символы в программе должны быть заключены в

апострофы. Если символ является апострофом, то в программе он записывается четыремя апострофами.

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

1Program Parameters;

2Var a,b:integer;

3Function add1(x:integer;var y:integer):integer;

4Begin

5X:=x+1;

6Y:=y+1;

7Add1:=x+y;

8Writeln(x,y)

9End;

10Begin

11A:=0; b:=0;

12Writeln(add1(a,b),a,b)

13End.

Строка

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

A

B

 

 

10

Вход в Parameters

?

?

 

 

11

 

0

0

 

 

12

Вызов add1

 

 

 

 

 

 

 

(y)

x

Add1

4

Вход в add1

 

 

0

?

5

 

 

 

1

 

6

 

 

1

 

 

7

 

 

 

 

2

8

Вывод: 1 1

 

 

 

 

9

Выход из add1

 

(b)

 

 

12

Вывод: 2 0 1

 

 

 

 

13

Выход из Parameters

 

 

 

 

Результат: 1 1 0 1

38