- •Тема 1. Технология программирования. Основные понятия и подходы
- •1.1 Технология программирования и основные этапы ее развития
- •1.1 Проблемы разработки сложных программных систем (пс)
- •1.2 Блочно-иерархический подход к созданию сложных систем (сс)
- •1.4 Жизненный цикл и этапы разработки программного обеспечения
- •1.5 Оценка качества процессов создания программного обеспечения
- •Тема 2. Основы теории программирования
- •2.1 Понятие технологичности программного обеспечения
- •Диалоговые программы
- •2.2 Модули и их свойства
- •2.3 Основные понятия программирования. Средства описания структурных алгоритмов
- •Описание алгоритма с помощью естественного языка
- •Описание алгоритма с помощью блок-схемы
- •Описание алгоритма с помощью алгоритмических языков
- •2.4 Стиль оформления программы
- •Тема 3. Программирование на языке высокого уровня Pascal
- •3.1 Введение
- •3.2 Основные понятия языка Pascal
- •3.3 Операторы ввода-вывода данных
- •Простые типы данных
- •Структурированные типы данных
- •Работа с текстовыми файлами
- •Другие типы данных
- •3.5 Выражения, операнды, операции
- •Порядок вычисления выражений
- •3.5 Выражения, операнды, операции
- •Порядок вычисления выражений
- •3.6 Операторы языка Простые операторы
- •Структурные операторы
- •Работа с массивами
- •3.6 Подпрограммы
- •Процедуры
- •Функции
- •Рекурсивные подпрограммы
- •Параметры и аргументы
- •Стандартные процедуры и функции
- •3.7 Списки: основные виды и способы реализации
- •Вопросы для экзамена по курсу «Технология программирования»
- •1. Технология программирования и основные этапы ее развития
- •Задания для студентов заочной формы обучения по курсу «Технология программирования (ТеПр)»
- •Вопросы для экзамена по курсу «Технология программирования»
- •1. Технология программирования и основные этапы ее развития
Другие типы данных
Указатели: указатель представляет собой переменную, значением которой является адрес начала размещения некоторых данных в основной памяти. Иными словами, указатель содержит ссылку на соответствующий объект. Указатели могут ссылаться на данные любого типа. Переменные типа «указатель» являются, т.е. их значения определяются во время выполнения программы.
Различают указатели типизированные и нетипизированные. Типизированный указатель может ссылаться на данные определенного типа, который задается при объявлении указателя или описании типа указателя. При этом используется символ ^ перед именем типа адресуемых данных. Формат описания типа для типизированного указателя:
Type <тип указателя> = ^<тип адресуемых данных>;
Нетипизированный указатель имеет тип Pointer и может ссылаться на данные любого типа.
Пример. Объявление переменных-указателей.
Var p1: Pointer ; p2: ^ integer ;
Переменная p2 может адресовать данные типа integer , а переменная p1 – данные любого типа.
С помощью указателя можно получить доступ к значению адресуемых данных. Для этого используетсяразыменовывание указателя — справа от имени указателя приписывается символ ^.
Указателю можно присвоить значение Nil, тогда данный указатель ни на что не будет указывать. Для определения адреса объекта, к которому можно обратиться с помощью указателя, используется адресная операция @, записываемая перед именем этого объекта.
Пример. Var p: ^integer; n, k: integer;
. . .
p :=@ n ;
n :=100; k := p ^+10;
После выполнения оператора присваивания с @ n в правой части указатель p ссылается на целочисленную переменную n и позволяет обращаться к ней с помощью конструкции p^. После выполнения трех приведенных операторов значение переменной k будет равно 110 .
В модулях System и SysUtils имеется много типов указателей, которые можно применять без их предварительного описания. Модуль System используется компилятором автоматически, а имя модуля SysUtils вносится средой Delphi в список подключаемых модулей раздела uses для каждой формы.
Процедурные типы: данные процедурного типа позволяют интерпретировать процедуры и функции как обычные значения, которые, например, можно присваивать переменным или передавать в качестве параметров. Пример с организацией подпрограммы для вычисления интеграла, в котором подынтегральная функция вычисляется в результате работы другой подпрограммы-функции.
Описание данных процедурного типа похоже на заголовок процедуры или функции, в котором отсутствует имя подпрограммы. Разрешается использовать методы (подпрограммы, объявленные в классах), при описании которых указываются слова of object .
Вариантные типы: вариантные типы применяются для представления значений, которые могут интерпретироваться различными способами. Переменная вариантного типа может содержать значения различных типов и обычно используется в случаях, когда тип ее значения при компиляции не известен или может изменяться в процессе выполнения программы.
Для описания переменной вариантного типа используется слово variant. Этой переменной можно присваивать значения целочисленных (кроме int 64 ), вещественных, символьных, строковых и логических типов. Все эти типы считаются совместимыми с типом variant и при необходимости преобразования типов выполняются автоматически.
Пример . Var v1, v2: variant;
k: integer; x: real;
. . .
k:=10; v1:=k;
x :=23.17; v 2:= x ; v 1:= x +0.5;
