Переменные delphi

Delphi 7. Занятие 1_3.

Знакомимся с переменными. Общие понятия

Не существует программ без переменных. Переменные — это те места в программе, где хранятся данные. Например, для программы «калькулятор» данными будут вводимые числа и полученный результат.

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

Переменные в Delphi.

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

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

У главной формы есть одна особенность, которой нет у других форм. Если мы запустили программу на выполнение, то закрыв главную форму, мы закрываем всю программу. Ни одна дополнительная форма этим свойством не обладает.

Где искать текст программы.

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

Главной форме принадлежит модуль Unit1, форме Form2 принадлежит модуль Unit2 и так далее.

То есть именно в модуле и находится текст программы.

Рассмотрим устройство модуля более внимательно.

общий вид модуля и место, где расположены переменные delphi

Например, секция переменных может выглядеть так:

Переменные delphi

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

В данном занятии познакомимся с ключевыми словами var и implementation.

Ключевое слово var (от английского variable — переменная ) начинает секцию переменных.

Ключевое слово implementation (что в переводе означает «реализация» ) начинает секцию, где будет размещён текст программы.

Итак, мы с вами выяснили, где в модуле хранятся переменные delphi .

Понятие «тип» переменной.

Мы в нашей жизни не задумываемся о типе информации, поступающей в данный момент на наши органы чувств.

Но компьютеру это не всё равно. Он должен четко знать, информацию какого типа будет обрабатывать в следующий момент.

Другими словами, программа должна знать тип используемой переменной.

Есть два подхода к решению этого вопроса, имеющие свои плюсы и минусы.

Первый подход — определение типа переменной по контексту. Например, мы ввели цифры. Тогда программа будет пытаться работать с числовым типом данных. Если мы ввели буквы, то они будут восприняты как символьные данные и т. д.

У этого подхода есть существенный минус — программа может неправильно понять программиста и ошибочно определить не тот тип данных. Эти ошибки трудно распознать и на их устранение уходит масса времени.

Второй подход — жёстко указать тип переменных. В этом случае переменные называются типизированными. Именно такие переменные используется в delphi.

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

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

Типы char, string, integer, double.

Редкая программа обходится без обработки символьных данных — букв и специальных символов типа звёздочки и так далее.

Существуют таблицы символов, в которых каждому символу присвоен свой порядковый номер.

Если для хранения символа выделяется один байт, то в нём могут быть записаны числа от 0 до 255, то есть можно закодировать таблицу из 256 символов. В современных таблицах Unicod номер символа кодируется двумя байтами, поэтому можно закодировать 65536 символов.

Тип данных, отведённый для хранения отдельного символа, называется char (от английского character — символ, буква).

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

На первый взгляд отдельный символ и целая строка отличаются только своей длиной.

Однако работа с отдельными символами отличается от работы со строками. Это вызвано тем, что к группе символов обращаются по-иному, чем к отдельному символу.

Для хранения строк используется примерно тот же механизм, что и для хранения команд. То есть в переменной хранится адрес первого символа строки и длина строки (количество символов).

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

Вместо этого в конце строки ставят символ нуля #0. При чтении из переменной строки программа читает один байт за другим, пока не наткнётся на символ нуля. Такие строки называются «нуль терминальными». В delphi им соответствует тип string (строковый тип).

В силу различий представления символов и строк они по-разному обрабатываются программой.

Дальше рассмотрим типы переменных для хранения чисел.

Используя числа в повседневной жизни, мы не разделяем их, например, на целые и десятичные. Но программе не всё равно, какого типа число хранится в переменной.

Ей чётко надо знать, будет ли это целое значение, десятичное или, например, число в экспоненциальной форме (если кто помнит из математики).

Пока рассмотрим целые и десятичные числа. Десятичные числа в delphi называют вещественными.

Для использования целых чисел применяют тип Integer. Переменные этого типа могут хранить значения не более 21472147483647 (как с плюсом, так ис минусом). В подавляющем большинстве задач этого более чем достаточно.

Вещественные числа имеют тип Double. Величина десятичного числа может быть достаточно большой. Но в способе хранения десятичных чисел есть одна особенность.

Особенности хранения десятичных чисел.

Поясним это на примере. Пусть имеется десятичное число 12345.67. Из математики известно, что это же число можно записать в другом виде, а именно 1.234567 х 104 .

Так вот, тип double позволяет работать с числами не более 1.7 х 10308 . На первый взгляд кажется, что это огромное число, которое годится на все случаи жизни. Но не всё так просто. Снова поясним это на примере.

Пусть у нас имеется число 123 456 789 123 456 х 10293 (что эквивалентно записи этого числа в виде 1,23 456 789 123 456 х 10308 ).

А как программа воспримет число 123 456 789 123 456 7 х 10292 ? Мы увеличили число слева на один разряд, а степень уменьшили на единицу.

Таким образом, общая разрядность числа не изменилась, но величина числа стала больше, так как в шестнадцатом разряде вместо нуля теперь цифра «7».

Программа не воспримет такое изменение. Она отбросит все цифры, идущие правее 15-го разряда и одновременно увеличит степень числа десять.

Точность числа уменьшится и вновь станет 123 456 789 123 456 х 10293. То есть точность десятичных чисел тоже ограничена. Но и её вполне хватает для подавляющего большинства задач.

Заключение.

В этом занятии мы познакомились со строительными кирпичиками программы — переменными. Узнали, что переменные delphi чётко разделяются программой по типам.

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

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

Рассмотрели секцию переменных var.

В дальнейшем используем эти знания во второй демонстрационной программе.

Глоссарий.

  1. Данные.
  2. Переменные.
  3. Тип переменной.
  4. Главная форма.
  5. Программный модуль.
  6. Ключевые слова.
  7. Секция переменных и секция реализации.
  8. Тип данных «целый«, «вещественный» (десятичный), «символ«, «строка«.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *