КАТЕГОРИИ: Архитектура-(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; Просмотров: 441; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |