Лекция Паскаль 3 – Атрибуты, переменные, присваивание и стандартные методы


Тема: Атрибуты, переменные, присваивание и стандартные методы.

Цель: Познакомиться с типами данных, описанием переменных и собственными типами данных, научиться использовать результаты подсчетов для изменения свойств видеокомпонентов для получения визуальных эффектов от реализации заданного алгоритма.

1. Понятие переменной и константы. Понятие идентификатора. Атрибуты форм и элементов управления в программе.

Понятие переменной и константы.

Идея обозначать промежуточные и конечные результаты подсчетов буквами, а затем использовать их в качестве переменных возникла в умах математиков еще в древние времена. Очевидно, что в первых языках программирования, которые в основном использовались для ускорения формульных вычислений, механизм переменных и констант был полностью заимствован (в дальнейшем развит) по математике.

Как и в других языках программирования, в языке Pascal (и в ее последовательницы Delphi) данные делятся на константы и переменные. В программе они определяются идентификаторами (именами), по которым к ним можно обращаться для получения текущих значений и вводить их в состав арифметических, логических или строчных выражений.

Константами называются элементы данных, значения которых установлены в описательной части программы и в дальнейшем не изменяются.

Например, если в программе используется значение количества учеников в классе, то лучше всего его задать константой. При определении среднего балла успеваемости учащихся класса это количество не меняет своего значения. Если в класс прибудет один ученик, достаточно увеличить константу на единицу, и все расчеты будут происходить с новым числовым значением. Это значительно проще, чем просматривать всю программу, изменяя количество, заданную числом, на новое значение.

Константы описываются в специальном разделе, который начинается с зарезервированного слова const, по такому формату:

Const

<Идентификатор> = <значение константы>; Например:

Тип пользовательских констант распознается компилятором без предварительного

описания.

В Pascal есть ряд констант, к значениям которых можно обращаться без предварительного определения, например, Pi. Их называют зарезервированными константами.

Переменными называются величины, которые могут менять свое значение в процессе выполнения программы. Каждая переменная, как и константа, принадлежит к определенному типу данных.

Читать  Тема 1 Паскаль: Формализация и алгоритмизация вычислительных процессов

Тип данных должен быть известным компилятору до начала трансляции выражений и операторов с использованием этих переменных.Кроме того, по

известным типом данных компилятор выделяет под переменные в оперативной памяти необходимо место — разное количество байтов для различных типов данных.

Переменные описываются в специальном разделе, который начинается с зарезервированного слова var, за таким форматом:

Var

<Идентификатор>: <тип>; Например:

Кроме констант и переменных, существуют так называемые типизированные константы, значение

которых могут изменяться в ходе выполнения программы. Для них слово «константа» лишь указывает на то, что данные этого типа описываются в разделе const, а слово

«Типизированная» — на то, что этот тип данных должен сказываться, как в переменных.

Формат описания типизированных констант может быть реализован в одном из следующих вариантов:

Const

Или: Var<Идентификатор>: <тип> = <значение>;

<Идентификатор>: <тип> = <значение>;

Например:

В процессе программирования типизированную константу можно использовать как

переменную с заранее определенным значением, но для этого нужно выполнить одно настройки в интерфейсе Delphi. Заходим через главное меню в пункт Project — Options. В закладке Compiler для действий с типизированными константами нужно поставить галочку в строке Assignable typed constants:

Понятие идентификатора.

Для обозначения переменных и постоянных величин, различных процедур и функций используются идентификаторы — имена, которые устанавливают соответствие между объектом и некоторым набором символов (латинских букв, знаков подчеркивания и цифр; цифра не может быть первым символом идентификатора).

Возможности программиста при выборе имен для своих переменных достаточно широки. Нельзя только использовать в качестве идентификаторов зарезервированные слова, которые компилятор воспринимает как базовые директивы или операторы программы (например, нельзя назвать переменную словам begin или end) не желательно использовать также и стандартные идентификаторы.

Стандартные идентификаторы введены авторами языка программирования для обозначения типов данных, процедур или функций, например: integer, sin, read, writeln тому подобное.

Читать  Теоретические основы программирования на языке PASCAL, составление алгоритмов

Идентификаторы пользователя вводятся программистом для обозначения констант, переменных, процедур или функций пользователя в программе. При этом идентификаторы должны быть уникальными: в каждом программном блоке один и тот же идентификатор не может быть использован для обозначения более чем одной переменной, константы, функции или процедуры. Дублирование идентификаторов вызывает ошибку на этапе компиляции программы.

В идентификатор на языке программирования Delphi не могут входить пробелы, специальные символы и буквы любой алфавитов, кроме английского (латинского).

Правильно подобранные идентификаторы значительно облегчают чтение и понимание программы, а также уменьшают вероятность появления ошибок при внесении в нее изменений.

Атрибуты форм и элементов управления в программе.

При визуальном проектировании форм программист выносит на поле формы необходимы ему видеокомпоненты. Делается это простым перетаскиванием необходимого видеокомпонентов с инструментальной линейки на форму. Вид видеокомпонентов можно менять, изменяя его свойства через инспектор объектов. Свойства форм и видеокомпонентов (или, как еще говорят, их атрибуты), по сути, являются переменными и в таком качестве они могут быть использованы в программе. Их основное отличие от переменных пользователя — неразрывную связь с объектом, которому они принадлежат, и разработан авторами Delphi метод, который определяет, что изменится в поведении объекта при изменении атрибута.

Например, на форме размещены два компонента — надпись (label) и таймер (timer).Запишем обработчик события формы OnMouseDown (этот фрагмент программы будет выполняться при нажатии левой кнопки мыши в то время, когда она находится над формой):

В приведенной процедуре выполняются четыре операции присваивания. И если изменение свойств компонентов timer1 и label1 очевидны (начинают быстрее происходить события таймера, меняется надпись на кнопке), то изменение значений переменных ни к каким видимым последствиям не приводит. В этом и заключается отличие переменных от свойств видеокомпонентов. Переменные применяются только для расчетов и требуют написания процедур для их вывода или использования в программе (для изменения графического изображения, мультипликации и т.д.). Для свойств же видеокомпонентов режим их использования предусмотрен собственно в самой среде Delphi. Достаточно изменить эти свойства, чтобы получить видимый результат.

Читать  Лекция Паскаль 6 – Условные операторы, логика в Паскаль

2. Типы данных. оператор присваивания.типы данных.

Описание типа данных указывает компилятору на то, как хранить и обрабатывать информацию в программе, какие процедуры и функции могут быть применены для данного типа.

В Delphi в объявлении переменной необходимо указывать ее тип. Типы данных подразделяются на стандартные и создаваемые пользователем. Стандартные типы уже определены в языке программирования, а переменную такого типа можно сказать, просто указав имя этого типа. Создаваемые типы программисту приходится конструировать самостоятельно в соответствии с назначением программы.

Типы данных, определяемые пользователем, задаются:

В разделе описания типов программы.

В модуле (unit), в разделе interface или implementation.

Во внешнем модуле, который подключается (unit).

внутри процедур.

внутри функций.

Объявления типов действуют в пределах того блока, в котором они размещены. Вне этим блоком ссылаться на эти типы нельзя. Внутри же они заменяют (перекрывают) внешние типы с теми же именами. Объявлены типы данных можно применять в пределах области их видимости.

Объявления типов является для компилятора правилам, он должен «запомнить» на тот случай, если встретит в программе ссылки на тот или иной тип. Само по себе объявление типа не приносит в программу никаких изменений. Тип переменной ограничивает ее значение и те операции, которые можно выполнять с этими значениями.

Объявления типов и переменных схематично можно представить следующим образом:

type1 = type_definition1; // каждом новом типа присваивается имя, затем он

// определяется через уже существующие типы.

type2 = type_definition2; // В одном разделе type можно сказать несколько

// типов. Наиболее простое определение типа состоит из имени типа,

// объявленного ранее

type3 = type1;

Новые переменные объявляются в var:

Var

Var1: type_definitions;

// Каждой новой переменной присваивается сначала имя, а затем — тип.

Читать  Составление и отладка алгоритмов ветвления в Паскаль

Var2, var3: type_definition4; Var4: type1;

В одном разделе var можно объявлять несколько переменных. Им можно присваивать один и тот же тип. При этом тип может быть сконструирован заранее или же построен непосредственно в var.

К основным типам данных относятся:

Просты.

Строчные — для сохранения последовательности символов.

Структурированы.

Указатели — для ссылок на переменные заданных типов.

Процедурные — для обращения к процедурам и функциям как к переменных.

Вариантные — для сохранения в одной переменной данных различных типов.

Как правило, идентификаторы типов (выделенные для названия переменные) используются только определения новых типов или объявления переменных. Допускается использование имени типа как функции для преобразования типов.

Многие из определенных типов имеют очень сложные структуру и могут занимать в памяти много места. При этом элементы таких типов созданы скорее всего для представления значений в определенном логическом порядке, чем для того, чтобы уменьшить место, которое выделяется в памяти.

Структура типов в Delphi:

Simple (простые):

    • Ordinal (порядковые типы)
    • Integer (целый)
    • Character (литеральни типы)
    • Boolean (логический)
    • Enumerated (перечисляемые)
    • Subrange (диапазон)
    • Real (действительный)
    • Tdatetime (дата — время)

Structured (структурированные, сложены):

    • Array (массив)
    • String (строчный тип)
    • List и stringlist (списки)
    • Set (множества)
    • Record (записи)
    • File (файловые типы)
    • Textfile (текстовые файлы)
    • Class (классы)
    • Class reference (ссылка на классы)
    • Interface (интерфейсы)
    • Pointer (указатели)
    • Variant (варианты)
    • Procedural (процедурный)
    • Type identifier

В этот перечень не включены типы поддерживаемых в Delphi, но есть для этого языка «внешними», заимствованными из других программ и приложений. Например, тип bitmap, предназначенный для хранения рисунков, а также типы, связанные с датой и временем DateTime. Многие типы данных (TTable, TQuery и т.д.) введен для поддержки баз данных. Вообще, типов данных очень много, и с каждой новой версией Delphi их количество растет. Знать все типы данных для программирования в этой среде совсем не обязательно. Нужно только хорошо ориентироваться только в основных типах.

Читать  Лекция Паскаль 10 – Массивы, Объявления одномерного массива, Индексация элементов

Оператор присваивания.

Присваивания — механизм в программирования, который позволяет изменять значения переменных или свойств объектов путем замены старых значений новыми. Общий синтаксис операции присваивания:

<Выражение слева> = <выражение дело>;

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

Выражение дело должен обозначать величину, будет присвоена объекта данных. Это может быть переменная, типизированная константа, значение свойства объекта или допустимый выражение (арифметический, логический, строчный) на их основе.

В качестве оператора присваивания в Delphi выступает знак «=». По внешнему виду он напоминает математический знак «=», что может привести к ошибочному выводу, якобы оператор присваивания является его точная копия. В таком случае запись х = х + 1 с математической точки зрения является полной бессмыслицей; однако в программирования это широко применяемый оператор х = х + 1.

Существенным отличием оператора присваивания является то, что справа от знака присваивания находится «старый» значения переменной х, над которым будет выполнена определенная последовательность действий. Результат этих действий (результат выполнения математических операций) необходимо занести в ту же ячейку х. Например, если в программе до этого оператора в переменной х сохранялось значение 5, то после выполнения оператора в ней будет значение 6.

3. Теоретические вопросы для самоконтроля.

1. Дайте определение понятию «константа».              В чем заключается особенность ее использования?

2. Что представляют собой переменные? Приведите примеры их описания.

3. Дайте определение понятию «Идентификатор».

4. Чем отличаются стандартные и пользовательские идентификаторы?

5. В чем заключается отличие переменных от свойств объектов?

6. Типы данных — назначение и место их описания.

7. Перечислите типы данных, которые относятся к простым типов.

8. Перечислите типы данных, которые относятся к структурированным (составленных) типов.

9. Для чего предназначена операция присваивания?

[Всего голосов: 3    Средний: 5/5]