Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Язык Delphi: Циклы. Операторы циклов. Статические массивы.

Читайте также:
  1. Блок-схемы, изображающие условные операторы
  2. лекция. Түйіндес операторлар. Өз-өзіне түйіндес операторлар. Ортогонал проектрлеу операторы
  3. Сложность булевых функций. Аффинные и неаффинные операторы
  4. Туроператоры и турагенты
  5. Туроператоры и турагенты на международном рынке

Алгоритмы решения многих задач являются циклическими, т. е. для достижения результата определенная последовательность действий должна быть выполнена несколько раз. Например, программа контроля знаний выводит вопрос, принимает ответ, добавляет оценку за ответ к сумме баллов, затем повторяет это действие еще и еще раз, и так до тех пор, пока испытуемый не ответит на все вопросы. Другой пример. Для того чтобы найти фамилию человека в списке, надо проверить первую фамилию списка, затем вторую, третью и т. д. до тех пор, пока не будет найдена нужная фамилия или не будет достигнут конец списка. Алгоритм, в котором есть последовательность операций (группа инструкций), которая должна быть выполнена несколько раз, называется циклическим, а сама последовательность операций именуется циклом. В программе цикл может быть реализован при помощи инструкций for,while и repeat.Инструкция for используется в том случае, если некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем число повторений заранее известно. В общем виде инструкция for записывается следующим образом: for счетчик:= нач_знач to кон_знач do begin // здесь инструкции, которые надо выполнить несколько раз end. где, счетчик — переменная-счетчик числа повторений инструкций цикла; нач_знач-- выражение, определяющее начальное значение счетчика циклов; кон_знач — выражение, определяющее конечное значение счетчика циклов. Инструкция (цикл) while используется в том случае, если некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем необходимое число повторений во время разработки программы неизвестно и может быть определено только во время работы программы. Типичными примерами использования цикла while являются вычисления с заданной точностью, поиск в массиве или в файле. В общем виде инструкция while записывается следующим образом: while условие do begin // здесь инструкции, которые надо выполнить несколько раз end, где условие — выражение логического типа, определяющее условие выполнения инструкций цикла. Инструкция repeat, как и инструкция while, используется в программе в том случае, если необходимо выполнить повторные вычисления (организовать цикл), но число повторений во время разработки программы неизвестно и может быть определено только во время работы программы, т. е. определяется ходом вычислений. В общем виде инструкция repeat записывается следующим образом: repeat // инструкции unti1 условие, где условие — выражение логического типа, определяющее условие завершения цикла. Массив — это структура данных, представляющая собой набор переменных одинакового типа, имеющих общее имя. Массивы удобно использовать для хранения однородной по своей природе информации, например, таблиц и списков. Массив, как и любая переменная программы, перед использованием должен быть объявлен в разделе объявления переменных. В общем виде инструкция объявления массива выглядит следующим образом: Имя: array [нижний_индекс..верхний_индекс] of тип. где, имя — имя массива; array — зарезервированное слово языка Delphi, обозначающее, что объявляемое имя является именем массива; нижний_индекс и верхний_и«декс — целые константы, определяющие диапазон изменения индекса элементов массива и, неявно, количество элементов (размер) массива; тип — тип элементов массива. Типичными операциями при работе с массивами являются: вывод массива; ввод массива; поиск максимального или минимального элемента массива; поиск заданного элемента массива; сортировка массива.

№26. Язык Delphi: Процедуры и функции, создаваемые пользователем. Их описание и вызов. Параметры. Входные и выходные параметры; формальные и фактические параметры. Передача параметров по значению и по ссылке. Локальные и глобальные идентификаторы.

Функция — это подпрограмма, т. е. последовательность инструкций, имеющая имя. Процесс перехода к инструкциям функции называется вызовом функции или обращением к функции. Процесс перехода от инструкций функции к инструкциям программы, вызвавшей функцию, называется возвратом из функции. В общем виде инструкция обращения к функции выглядит так: Переменная: = Функция (Параметры); где: переменная — имя переменной, которой надо присвоить значение, вычисляемое функцией; Функция — имя функции, значение которой надо присвоить переменной; Параметры — список формальных параметров, которые применяются для вычисления значения функции. В качестве параметров обычно используют переменные или константы. Следует обратить внимание на то, что: каждая функция возвращает значение определенного типа, поэтому тип переменной, которой присваивается значение функции, должен соответствовать типу функции; тип и количество параметров для каждой конкретной функции строго определены. Процедура — это разновидность подпрограммы. Обычно подпрограмма реализуется как процедура в двух случаях: когда подпрограмма не возвращает в основную программу никаких данных. Например, вычерчивает график в диалоговом окне; когда подпрограмма возвращает в вызвавшую ее программу больше чем одно значение. Например, подпрограмма, которая решает квадратное уравнение, должна вернуть в вызвавшую ее программу два дробных числа — корни уравнения. В общем виде объявление процедуры выглядит так: procedure Имя (var параметр1: тип1;... var параметрК: типК); var // здесь объявление локальных переменных begin // здесь инструкции процедуры end; где: procedure — зарезервированное слово языка Delphi, обозначающее, что далее следует объявление процедуры; имя — имя процедуры, которое используется для вызова процедуры; параметр K — формальный параметр, переменная, которая используется в инструкциях процедуры. Слово var перед именем параметра не является обязательным. Однако если оно стоит, то это означает, что в инструкции вызова процедуры фактическим параметром обязательно должна быть переменная. Описание параметровподпрограмм происходит в их заголовках после имени и имеет след. вид: procedure <имя> <параметр 1>: <тип параметра 1>; …При передаче по значению параметр рассматривается как локальная переменная, значение к-ой устанавливается при вызове подпрограммы, мож. б. использовано и изменено подпрограммой, но не мож. повлиять на вызывающий фрагмент. Второй механизм передачи параметров – по ссылке- подразумевает возможность изменения подпрограммой данных вызывающего фрагмента программ. Для этого в качестве параметра вызывающий фрагмент долж. использовать переменную, адрес к-ой буд. Передан в подпрограмму через стек.

№27. Язык Delphi: Классы и объекты (экземпляры классов). Базовый класс TObject. Описание класса и объявление объекта, примеры. Разделы описания класса (спецификаторы видимости): private, protected, public, published.

Классом наз. описание некоторой стр-ры программы, обладающей набором внутренних переменных – св-в, и ф-ций, имеющих доступ к св-вам – методов. Процесс объединения переменных и методов, в рез-те к-оого и получается класс, наз. инкапсуляцией. Класс - это всего лишь описание, аналоговое описание типа данных и недоступное для прямого использования в программе. Для получения доступа к св-вам и методам класса необ-мо создать экземпляр класса, назыв-ый объектом. Описание классов разделено на 2 части – интерфейсную (здесь располагается заголовок класса, в к-ом указывается название класса, также описания св-в и заголовков методов) и описательную (располагается программный код методов, заголовки к-ых указаны в интерфейсной части описания класса). Методы класса: особенность состоит в том, что для их вызова нет необходимости создавать объект, мож. использ-ть их как обычные подпрограммы. Для описания таких методов испольт-ся ключевое слово class перед заголовком метода. Класс TObject инкапсулирует осн-ые м-ды и св-ва, связанные с общим поведением объектов. К ним относятся такие как создание, инициализация и разрушение объектов; поддержка идентификации их принадлежности к классу во время выполнения программы и многие др., связанные с интеграцией объектов, созданных в Delphi, в среду выполнения программы, т.е.в ОС. Объекты как представители класса объявляются в программе в разделе var, например: var student: TPerson; professor: TPerson;В Delphi объект — это динамическая структура. Переменная-объект содержит не данные, а ссылку на данные объекта. Поэтому программист должен позаботиться о выделении памяти для этих данных. Выделение памяти осуществляется при помощи специального метода класса — конструктора, которому обычно присваивают имя Create (создать). Для того чтобы подчеркнуть особую роль и поведение конструктора, в описании класса вместо слова procedure используется слово constructor. Помимо объявления элементов класса (полей, методов, свойств) описание класса, как правило, содержит директивы protected (защищенный) и private (закрытый), которые устанавливают степень видимости элементов класса в программе. Элементы класса, объявленные в секции protected, доступны только в порожденных от него классах. Область видимости элементов класса этой секции не ограничивается модулем, в котором находится описание класса. Обычно в секцию protected помещают описание методов класса. Элементы класса, объявленные в секции private, видимы только внутри модуля. Эти элементы не доступны за пределами модуля, даже в производных классах. Обычно в секцию private помещают описание полей класса, а методы, обеспечивающие доступ к этим полям, помещают в секцию protected.

№28. Язык Delphi: Поля класса. Описание и изменение полей класса. Свойства: описание и методы доступа к соответствующему полю. Инкапсуляция. Наследование полей и методов класса.

Процесс объединения переменных и методов, в рез-те к-ого и получается класс, наз. инкапсуляцией. Класс - это всего лишь описание, аналоговое описание типа данных и недоступное для прямого использования в программе. Методы класса: особенность состоит в том, что для их вызова нет необходимости создавать объект, мож. использ-ть их как обычные подпрограммы. Для описания таких методов испольт-ся ключевое слово class перед заголовком метода. Для разграничения доступа к св-вам и методам экземпляров классов м/у различными частями программы предусмотрены модификаторами. Модификатор доступа в Delphi относится не к конкр. св-ву или м-ду класса, а ко всем элементам класса, описание к-ых располагается после указания модиф-ра. Один из осн-ых механизмов объектно-ориентированного прогр-ия – наследование – построение нового класса на основе ранее описанного класса. Полученные в рез-те наследования классы наз. классами - наследниками, а классы, на основе к-ых они построены – классами - родителями. При наследовании дочерний класс приобретает все св-ва и м-ды родительского класса и имеет доступ к любому его элементу, за искл-ем описанных с областью видимости private. Класс — это сложная структура, включающая, помимо описания данных, описание процедур и функций, которые могут быть выполнены над представителем класса — объектом. Пример объявления простого класса:TPerson = class private fname: string[15]; faddress: string[35]; public procedure Show; end. Данные класса называются полями, процедуры и функции — методами. В приведенном примере TPerson — это имя класса, fname и faddress - имена полей, show — имя метода. Согласно принятому в Delphi соглашению, имена полей должны начинаться с буквы f (от слова field — поле). Под инкапсуляцией понимается скрытие полей объекта с целью обеспечения доступа к ним только посредством методов класса.В языке Delphi ограничение доступа к полям объекта реализуется при помощи свойств объекта. Свойство объекта характеризуется полем, сохраняющим значение свойства, и двумя методами, обеспечивающими доступ к полю свойства. Метод установки значения свойства называется методом записи свойства (write), а метод получения значения свойства — методом чтения свойства (read). Наследование. Концепция объектно-ориентированного прогр-я предполагает возможность определять новые классы посредством добавления полей, свойств и методов к уже существующим классам. Такой механизм получения новых классов называется порождением. При этом новый, порожденный класс (потомок) наследует свойства и методы своего базового, родительского класса. В объявлении класса-потомка указывается класс родителя. Например, класс TEmployee (сотрудник) может быть порожден от рассмотренного выше класса TPerson путем добавления поля FDepartment (отдел). Объявление класса TEmplioyee в этом случае может выглядеть так: TEmployee = class (TPerson) FDepartment: integer; // номер отдела constructor Create(Name:TName; Dep:integer); end;

№29. Язык Delphi: Методы класса. Конструкторы и деструкторы. Полиморфизм. Статические и виртуальные методы. Перекрытие и переопределение методов. Абстрактные методы и классы.

Часто встречается ситуация, когда один или нес-ко м-дов дочернего класса должны работать не так, как в родительском классе. В качестве примера мож. привести класс TGeomFigure, представляющий собой абстрактную геометр. фигуру, и имеющий м-д Draw для ее рисования. Наследниками этого класса могли быть классы TCircle для работы с окружностями, TLine для работы с линиями. Механизм переопределения: указать его заголовок в интерфейсной части описания дочернего класса без описания имени, списка параметров и возвращаемого значения; указать после заголовка метода ключевое слово override; реализовать метод в описательной части объекта по обычным правилам.Чтобы метод мог быть переопределен в дочерних классах, он долж. быть помечен ключевыми словами virtual или dynamic в интерфейсной части класса-родителя. Ключ-е слово virtual указывает на то, что метод должен быть занесен в так наз-мую таблицу виртуальных методов, а ключ-е слово dynamic на то, что метод долж. б. найден по имени в дереве родительских объектов. Разница м/у использ-ем virtual и dynamic закл. в направлении оптимизации компиляторов вызовов переопределяемых методов. Для создания экземпляра класса необх. вызвать специализированный статический метод этогог класса, наз-ый к онструктором. Констр. Наследуется автоматически всеми классами от коренного класса TObject и выполняет 2 важных ф-ции: выделяет память под стр-ры данных: заполняет порядковые св-ва объекта нулевыми значениями; устанавливает нулевые ссылки для св-в- указателей; возвращает ссылку на объект, к-ую мож. сохранить в переменной для доступа к св-вам и методам объекта, также для его последующего разрушения. Объект занимает место в памяти, к-ая необх. Для хранения как св-в, так и доп. инф-ции, напр., таблицы вирт. методов. Для разрушения объекта и освобождения памяти, к-ая выделена для него в конструкторе, предназначен деструктор - специализированный метод, изначально определенный в класс TObject. При переопределении деструктора необ. указывать ключевое слово override, т.к. дестр-р явл. вирт. м-дом. Delphi поддерживает св-во полиморфизма объектов при наследовании, к-ое сост. в правильном выборе вирт. метода, вызываемого из переменной -ссылки на объект. Вне зависимости от того, на экземпляр какого класса указывает переменная- ссылка в соотв-ии со своим описанием, будет назван вирт. метод, описанный в классе. Использ-ие наследования и связанного с ним св-ва полиморфизма очень удобно при проектировании сложных систем, состоящих из групп классов, имеющих смысловое единство. Такие классы обычно имеют одного родителя, в к-ом прописываются заголовки методов, необходимых для поддержки функциональности ветви иерархии. Для того, чтобы не описывать «пустых» методов, увеличивая бесполезный размер исходного текста программ, в Delphi предусмотрен спец-ый модификатор методов abstact –ый. Описание методов, помеченного ключомabstact, в классе, где он описан, не требуется, но назвать его из экземпляра данного класса невозможно. При попытке произвести такой вызов, возникает ошибка времени вып-ия программы. Методы класса (процедуры и функции, объявление которых включено в описание класса) выполняют действия над объектами класса. Для того чтобы метод был выполнен, необходимо указать имя объекта и имя метода, отделив одно имя от другого точкой. Например, инструкция professor. Show; вызывает применение метода show к объекту professor. Фактически инструкция применения метода к объекту — это специфический способ записи инструкции вызова процедуры. Методы класса определяются в программе точно так же, как и обычные процедуры и функции, за исключением того, что имя процедуры или функции, являющейся методом, состоит из двух частей: имени класса, к которому принадлежит метод, и имени метода. Имя класса от имени метода отделяется точкой. Полиморфизм — это возможность использовать одинаковые имена для методов, входящих в различные классы.

№30. Различные подходы к проектированию и разработке программ. Модульное программирование. Событийное программирование. Динамически связываемые библиотеки (DLL). Интерфейс программирования приложений (API).

По умолчанию построение программного продукта производится таким образом, что все фрагменты кода находятся в одном исполняемом exe-файле. Однако программа мож. вып-ть в кадж. момент вр. разл. задачи, и некоторая часть подпрограмм, загруженных в память при старте приложения, не буд. Использоваться. С др. ст., несколько приложений мог. исп-ть одинаковые фрагменты кода. соот-но, при построении программных продуктов с полным включением в исполняемый файл всех подпрограмм, один и тот же набор подпрограмм буд.храниться в 2х разных файлах. Для оптимизации программ с т. зр. описанных проблем применяются динамически компонуемые биб-ки. DLL-Dynamic Link Library. DLL-биб-ки явл-ся программными модулями, аналогичными по своей стр-ре исполняемой программе, и мог. содержать подпрограммы, также разл. ресурсы, напр. изображения. При построении приложения, ф-ции, входящие в состав DLL, не заносятся в exe-файле, а доступ к ним обеспечивается на этапе вып-ия программы через подключение DLL-биб. И получение ссылки на необх. подпрограмму. Все это действия выполняются с пом. cпец. API-ф-ций.

 

№31. Под моделированием понимается процесс построения, изучения и применения моделей. Гл. особен. модел-ия в том, что это метод опосредованного познания с помощью объектов-заместителей. Модель – это такой материальный или мысленно представляемый объект, к-ый в процессе исследования замещает объект-оригинал таким образом, что непосредственное изучение модели дает новые знания об объекте-оригинале. Выбор харак-ик объекта-оригинала и вз/связей м/у ними, к-ые при этом сохраняются и войдут в модель, определяется целями модел-ия. Часто такой процесс абстрагирования от несущественных параметров объекта наз. формализацией (это построение теории к-либо области знания в таком виде, к-ый допускает использование точных методов исследования; это отображение результатов мышления в точных понятиях). Модели: натурные и абстрактные (вербальные[текстовые], математические[ класс знаковых моделей, использующих те или иные мат. соотнош. и методы: напр., мат. соотнош., мат. модель зезды предст. собой сложную систему уравнений, описывающих физ. процессы], информационные [машина Тьюринга ]). Этапы и цели мат. модел-ия. (понимание; управление; прогнозирование): исходный объект; определение целей модел-ия; формализация; поиск мат. описания; мат. модель; выбор метода исследования; разработка алгоритма и программы для ЭВМ; тестирование программы; расчеты на ЭВМ; анализ рез-ов; конец работы.

 


Дата добавления: 2015-12-01; просмотров: 43 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.009 сек.)