Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Область дії змінної. Персистенція




Лабораторна робота 4

Завдання до лабораторної роботи 3

Виконати й описати результати у звіті для прикладів 3, 4

Створити свій користувальницький тип і програму, що його використовує.

 

 

Область дії (видимості) змінної має 3 рівні:

1. Рівень процедури

2. Рівень модуля

3. Рівень проекту.

Змінні рівня процедури описуються в тілі процедури з ключовим словом dim і розпізнаються тільки в цій процедурі, тому що втрачають своє значення після інструкції end sub.

Приклад 1

public sub pr1 ()

dim B1 as integer

B1 = 5555

msgbox (“b1 = “ & b1)

'вікно повідомлення про значення локальної змінної b1

proc2

end sub

public sub proc2 ()

msgbox b1

end sub

Запустіть процедуру pr1 і опишіть результати. Запустіть proc2 і поясніть результати її виконання.

Змінні рівня модуля описуються з ключовим словом dim в області опису модуля, тобто до опису процедур і функцій і доступні будь-якій процедурі модуля.

Доповнимо попередній приклад:

Приклад 2

dim B2 as string

public sub pr_1 ()

dim B1 as integer

B1 = 5555

msgbox “b1=” & b1

B2 = “Іди”

msgbox “b2=” & b2

proc_2 'процедура pr_1 викликає proc_2

end sub

public sub proc_2 ()

msgbox b1

msgbox b2

end sub

Запустіть процедуру pr_1 і опишіть результати і всі діалогові вікна, що з'явилися.

Змінні рівня модуля, оголошені за допомогою ключового слова Public, доступні для всіх процедур і модулів проекту й називаються відкритими. Усі змінні рівня проекту зручно описувати в окремому стандартному модулі.

 

Приклад 3

Опишемо B3 як змінну рівня проекту в модулі1, у процедурі p1 модуля1 привласнимо їй значення, а в процедурі 3 модулі 2 виведемо її значення.

Модуль 1

public dim B3 as string 'В3 – змінна рівня проекту

dim B2 as string ‘В2 - змінна рівня модуля

public sub p1 ()

dim B1 as integer 'В1 - змінна рівня процедури

b1 = 5555

b2 = “ідучи- іди”

b3 = “рівень проекту”

p2 'виклик процедури р2

p3 'виклик процедури р3

msgbox (“b1 = “& b1& “b2 = “& b2 &“b3 = “& b3)

end sub

Модуль 1

public sub p2 ()

msgbox (“b2 = “& b2 &“b3 = “& b3)

end sub

Модуль 2

public sub p3 ()

msgbox (“b2 = “& b2)

msgbox (“b3 = “& b3)

end sub

Запустіть процедуру p1 і опишіть результати.

Усі процедури і функції мають рівень дії проекту.

Якщо змінні на рівні процедури описуються ключовим словом static замість dim, то значення змінної зберігається й після виходу з даної процедури, але до завершення виконання коду.

Приклад 4

sub pr4 ()

pr5

pr5

end sub

sub pr5 ()

static v as string

dim v1 as string

if v=”” then

v=”v – статична змінна”

v1=”v1 – нестатична змінна”

end if

msgbox v

msgbox v1

end sub

V зберігається як статична змінна, тому в процедурі pr4 v виводиться двічі, а v1 – один раз.

Статичні процедури і функції

Процедури і функції можуть бути описані як статичні, при цьому всі змінні цих процедур і функцій стають статичними.

Приклад 5

sub proc6 ()

proc7

proc7

end sub

static sub proc7 ()

dim a as string

if a = “” then

a = “ще не доведено, що а - статична”

else

а = “а - статична змінна”

end if

msgbox a

end sub

Змінна а описується і встановлюється в процедурі proc7. Процедура proc6 двічі викликає процедуру proc7 і обидва рази виводить поточне значення змінної а у вікні повідомлень, демонструючи при другому виклику, що а – це дійсно статична змінна. При першому виклику proc7 умова оператора if істинно й змінній а привласнюється значення. При другому виклику proc7 умова оператора if – хибно (тому що після end sub процедури proc7 а зберегла своє значення) і змінна а знову ініціалізується.




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 409; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.