Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Описания программных элементов




Любая программа состоит из программных элементов и операторов управления этими элементами. К программным элементам относятся кон­станты, типы, переменные, процедуры, функции, объекты и некоторые дру­гие. К операторам управления относятся следующие операторы: присваи­вания, построения разветвлений в расчетах, построения циклических вычис­лений и др.

С помощью объявления в программу вводится какой-либо программ­ный элемент. Ему присваивается имя и, возможно, начальное значение. Ob­ject Pascal является строго типизированным языком. Это означает, что каж­дому программному элементу до первого применения необходимо задать его тип, чтобы сообщить компилятору, к какого вида сущностям относится объ­явленный программный элемент. Эта сущность определяет, какие операции можно применить и как эти операции должны интерпретироваться.

ПРОГРАММНЫЕ ЭЛЕМЕНТЫ И АДРЕСА ПАМЯТИ

Каждый программный элемент занимает какую-либо область памяти. Компилятор неявно заменяет каждое имя определенным адресом в памяти. Иногда имя определяет не сам элемент, а "нечто в памяти". В этом случае имя представляет собой явно указываемый адрес размещения некоторого программного элемента. Такой программный элемент называется ссылкой, или указателем. Таким образом, имена могут представлять или программ­ные элементы или адреса размещения этих элементов.

ОБЛАСТИ ВИДИМОСТИ

Объявление вводит имя в области видимости, т. е. имя может исполь­зоваться только в определенной части программы. Для имени, описанного,


например, в процедуре кого-либо обработчика событий (такое имя часто называют локальным - Sender в примере 1), область видимости простира­ется только в блоке процедуры. Имя, описанное, например, в интерфейсной секции модуля (такое имя называют глобальным - TForm, Form1 в примере 1, имена в подключаемых модулях, например в Forms), имеет область види­мости, простирающуюся на весь модуль. Области видимости иногда задают с помощью ключевых слов Private, Public, Protected.

ПРАВИЛА ЗАПИСИ ИМЕН

Имя (идентификатор) состоит из последовательности букв и цифр. Первый символ должен быть буквой. Символ подчеркивания "__" считается буквой. Количество символов в имени может быть достаточно большим, но значимыми являются первые 63 символа. Буквы в верхнем и нижнем регист­ре неразличимы в имени, однако, для удобочитаемости программ следует использовать прописные и строчные буквы.

ВРЕМЯ ЖИЗНИ ИДЕНТИФИКАТОРОВ

Если программист не указал иного, то программный элемент, например локальный, создается, когда встречается его объявление, и уничтожается, когда его имя выходит из области видимости. Элементы с глобальными именами создаются и инициализируются автоматически при объявлении или с помощью инспектора объектов. Иногда они создаются не автоматически, а явно в программе (очень часто один раз) и "живут" до завершения програм­мы. Если элемент создан явно программистом, то при выходе из области видимости его явно необходимо уничтожить, иначе можно непроизводи­тельно занять всю память.

ИСПОЛЬЗОВАНИЕ ЛОКАЛЬНЫХ ПЕРЕМЕННЫХ В ПРИМЕРЕ 1

Рассмотрим другие варианты решения примера 1. Вначале исследуем понятие "локальных переменных", введенное выше. Использование ло­кальных переменных, в данном случае, повышает "'наглядность" программ­ного кода. Для реализации этой идеи достаточно изменить один обработчик -нажатие на кнопку Button1 (рис. 13):

procedure TForm1.Button1Click(Sender: TObject); {объявление локальных переменных)

var а,Ь,s:integer; begin

а:=StrToInt(Edit1.Text);

Ь:=StrToInt(Edit2.Text);

s:=a+b;

 


Edit3.Text:=IntToStr(s); end;

ИСПОЛЬЗОВАНИЕ ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ В ПРИМЕРЕ 1

Как можно заметить из сравнения двух приведенных выше вариантов решения примера 1, применение локальных переменных привело к неболь­шому изменениию программного кода. Еще один вариант решения можно получить, используя глобальные переменные. Их применение изменяет структуру приложения - добавляются новые обработчики событий.

 

Глобальные переменные (var a,b,s:integer;) объявляются в интер­фейсной секции модуля Unit1 (пример 1). Значения глобальным переменным а и Ь присваиваются на уровне работы соответствующих компонентов, в данном случае Edit1 и Edit2. Это означает, что при выходе, например, из элемента Edit1 (при потере фокуса элементом Edit1) необходимо присвоить значение соответствующей числовой переменной. Такое присваивание мож­но выполнить с помощью обработчика OnExit Таким образом, структурно приложение дополняется двумя обработчиками Edit1 Exit и Edit2Exit. Ниже представлены программные коды этих обработчиков:

 

procedure TForm1.EdxtlExit(Sender: TObject); TObject);
begin  
a:=StrToInt(Edit1.Text);  
end;  
procedure TForm1.Edit2Exit(Sender: TObject); TObject);
begin  
b:=StrToInt(Edit2.Text);  
end;.  

Соответственно в обработчике Buttoniciick необходимо убрать строчки вычисления значений переменных а и Ь. Учитывая еще, что пере­менная s объявлена глобально, перепишем код рассматриваемого обработ­чика событий:

procedure TForm1.Button1Click(Sender: TObject); begin s:=a+b;

Edit3.Text:=IntToStr(s); end;




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


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


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



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




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