Программирование на Delphi

Тема 10. Программирование с Использованием объектов и классов

Печать E-mail
Лабораторные
Автор Administrator   
29/06/2008 г.

Тема 10. Программирование с Использованием объектов и классов

Цель лабораторной работы: Изучить особенности объектно-ориентированного программирования (ООП). Написать и отладить программу с использованием классов.

10.1. Понятие объекта и класса

Основным понятием ООП является объект, который в Delphi представляет собой переменную структурированного типа, описываемого с помощью ключевого слова Class. Подобно обыкновенной записи типа Record, переменная типа Class под одним именем объединяет как данные различных типов (поля), так и процедуры и функции обработки этих данных (методы). Такое объединение данных и процедур их обработки, называется инкапсуляция.

В Delphi типы объектов называются классами, а сами объекты являются динамическими переменными (символ « ^ » не используется).

10.2. Наследственность и полиморфизм

Свойство наследственности заключается в том, что любой класс может быть порожден от другого класса с наследованием всех свойств. Если класс B порожден от класса A, то класс А называют – «класс-родитель», а B – «класс-потомок». Порожденный класс автоматически наследует поля и методы своего родителя. Прародителем всех классов в Delphi является класс TObject.

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

Подробнее...
 

Тема 9. Программирование с отображением графической информации

Печать E-mail
Лабораторные
Автор Administrator   
29/06/2008 г.

Тема 9. Программирование с отображением графической информации

Цель лабораторной работы: изучить возможности построения изображений с использованием класса TСanvas и графиков с помощью компонента TСhart.

9.1. Как рисуются изображения

Нарисовать картинку в среде Delphi можно на многих компонентах (например на форме, на TPaintBox), однако наиболее удобно использовать компонент TImage (страница Additional). Нарисованную в Image1 картинку можно перенести в отчет, используя процедуру ClipBoard.Assign(Image1.Picture) (модуль Clipbrd). Для рисования используют класс TСanvas, который является свойством многих компонентов, и представляет собой прямоугольный холст в виде матрицы из пикселей и набор инструментов для рисования на нем. Каждый пиксел имеет координтау (x, y), где x – порядковый номер пиксела, начиная от левой границы холста, а y – порядковый номер пиксела, начиная от верхней границы холста. Левый верхний угол холста имеет координату (0, 0), а правый (Image1.Width, Image1.Height).

Основные свойства класса TCanvas:

Property Pen : TPen; – карандаш (имеет цвет и толщину),

Property Brush : TBrush; – кисть (имеет цвет),

Property Font : TFont; – шрифт.

Некоторые методы класса TCanvas:

Pгосеdure Еlliрsе(Х1, Y1, Х2, Y2: Integer) – чертит эллипс в охватывающем прямоугольнике (X1, Y1), (Х2, Y2) и заполняет внутреннее пространство эллипса текущей кистью.

Pгосedure LineТо (X, У: Integer) – чертит линию от текущего положения пера до точки (X. У).

Procedure МоvеТо(Х, У: Integer) – перемещает карандаш в положение  (X, У) без вычерчивания линий.

Pгосedure Роlуgоn (Роints: аrrау оf ТРоint) – вычерчивает карандашом многоугольник по точкам, заданным в массиве Роints. Например:                     Canvas.Polygon([Point(x1, y1), Point(x2, y2), Point(x3, y3]);. Конечная точка соединяется с начальной и многоугольник заполняется кистью. Для вычерчивания без заполнения используйте метод Роlуline.

Pгосedure Rectangle (X1, У1, Х2, У2: Integer) – вычерчивает и заполняет прямоугольник (X1, У1), (Х2, У2). Для вычерчивания без заполнения используйте FrameRect или РоlуLine.

Procedure ТехtОut (Х, У: Integer; const Техt: String) – выводит текстовую строку Техt так, чтобы левый верхний угол прямоугольника, охватывающего текст, располагался в точке (X, У).

Подробнее...
 

Тема 8. Программирование с использованием Записей и файлов

Печать E-mail
Лабораторные
Автор Administrator   
29/06/2008 г.

Тема 8. Программирование с использованием  Записей и файлов

Цель лабораторной работы: изучить правила работы с компонентами TOpenDialog и TSaveDialog. Изучить правила работы с типом запись. Написать программу с использованием файлов.

8.1. Определение типа запись

Запись – это структура данных, объединяющая элементы одного или различных типов, называемые полями. Записи удобны для создания структурированных баз данных с разнотипными элементами, например:

Type        TStudent = record                        // Объявление типа

               Fio:string[30];                        // Поле Ф.И.О.

               Group:integer;                        // Поле номера студ. группы

               Ocn:array[1..3] of integer;        // Поле массива оценок

                               end;

Var         Student: TStudent;        // Объявление переменной типа запись

Доступ к каждому полю осуществляется указанием имени записи и поля, разделенных точкой, например:

       Student.Fio:= ’Иванов А.И.’;  // Внесение данных в поля записи

       Student.Group:=720603;

Для сокращения текста доступ к полям осуществляется также при помощи оператора with:

       With Student do begin

                Fio:= ’Иванов А.И.’;

               Group:=720603;

                                          end;

Подробнее...
 

Тема 7. CИСТЕМЫ СЧИСЛЕНИЯ

Печать E-mail
Лабораторные
Автор Administrator   
29/06/2008 г.

Тема 7. CИСТЕМЫ СЧИСЛЕНИЯ.

Программирование с использованием множеств и строк.

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

7.1. Системы счисления

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

где – цифры, p – основание системы счисления. Количество цифр равно p. Для записи цифр в общем случае может быть использован любой набор p символов. Обычно для используют символы 0…9, для добавляют буквы латинского алфавита A, B, C, D, E, F которые в десятичной системе представляют числами 10, 11, 12, 13, 14, 15. Например

В компьютерной технике обычно используются системы с основанием равным степени двойки: двоичная, восьмеричная и шестнадцатеричная. Имеются процессоры, реализующие троичную систему счисления. Для удобства пользователей ввод – вывод и операции над числами в компьютере производят в десятичной системе счисления.

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

При переводе целой части, она делится на основание новой системы счисления, остаток представляет очередную цифру , а частное снова делится на основание. Процесс повторяется до тех пор, пока частное не станет равным нулю. Заметим, что цифры получаются в порядке, обратном порядку их следования в записи числа.

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

Подробнее...
 

Тема 6. Программирование с использованием подпрограмм и модулей

Печать E-mail
Лабораторные
Автор Administrator   
29/06/2008 г.

Тема 6. Программирование с использованием подпрограмм и модулей

Цель лабораторной работы: изучить возможности DELPHI для написания подпрограмм и создания модулей. Составить и отладить программу, использующую внешний модуль UNIT с подпрограммой.

6.1. Использование подпрограмм

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

Подпрограммы подразделяются на процедуры и функции.

Процедура имеет следующую структуру:

Procedure <имя процедуры> ([список имен формальных параметров с

      указанием их типов]);

       Const  [описание используемых констант];

       Type    [описание используемых типов];

       Var      [описание используемых переменных];

         Begin        

               …                // Операторы

End;

Вызов процедуры:  <имя процедуры> ([список имен формальных параметров без указания их типов]);

В отличие от процедур функции могут использоваться в выражениях в качестве операнда, поэтому они имеют следующую структуру:

Function <имя функции> ([список имен формальных параметров

с указанием их типов]): <тип результата>;

  Const [описание используемых констант];

   Type [описание используемых типов];

   Var [описание используемых переменных];

      Begin

       …                        // Операторы

Result:= … ;// Присвоение результата вычислений переменной Result

// или <имя функции>:= … ;

End;                        // Конец  функции

Подробнее...
 

ТЕМА 5. Указатели и их использование при работе с динамическими массивами

Печать E-mail
Лабораторные
Автор Administrator   
29/06/2008 г.

ТЕМА 5. Указатели и их использование при работе с динамическими массивами

Цель лабораторной работы: изучить способы работы с динамическими массивами данных.

5.1. Динамическое распределение памяти

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

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

       Type

Pukaz=^<тип переменной>;

Pint = ^integer;

               TMas = array[1..4] of integer

               PMas = ^TMas;

       Var  

               Uk : Pukaz;

               a, b : PInt;          // Типизированные указатели

               p, q : pointer;     // Нетипизируемые указатели

               U : Pmas;                // Указатель на одномерный массив

               C : array[1..2,1..2] of integer; // Обычный двумерный массив

       begin

       ...

               U:=Addr(C);   // Указателю U присваивается

  // адрес статической переменной C

               a:=p;            // Адрес указателя p комируется в указатель a

               p:=Nil;          // Очистка адреса

       ...

Каждая переменная типа указатель (a, b, p, q, u) занимает 4 байта памяти, и сожержит адрес первого байта некоторого участка оперативной памяти, данные на котором интерпретируются в соответствии с объявленным типом. С помощью указателя (адреса) реализуется доступ к данным, расположенным в ячейке с этим адресом, например u^[2]:=3. Более того, появляется возможность интерпретации данных разного пипа, например одномерного массива, как двумерного:

               ...

               c[1,2]:=5;  с[2,1]:=8;

     u:=@c;   // Указателю u присваивается адрес С (@ эквивалентно Addr); 

               Write(u[2],u[3]);       // Распечатается 5 и 8

               ...

Подробнее...
 

Тема 4. Обработка исключительных ситуаций

Печать E-mail
Лабораторные
Автор Administrator   
29/06/2008 г.

Тема 4. Обработка исключительных ситуаций.

Программирование с использованием массивов

Цель лабораторной работы: изучить свойства компонента TStringGrid. Написать программу с использованием массивов.

4.1. Обработка исключительных ситуаций

Под исключительной ситуацией понимается некое ошибочное состояние, возникающее при выполнении программы и требующее выполнения определённых действий для продолжения работы или корректного ее завершения. Стандартный обработчик (метод TApplication.HandleException), вызываемый по умолчанию, информирует пользователя о возникновении ошибки и завершает выполнение программы. Для защиты от завершения в языке Object Pascal используется оператор try, который перехватывает исключительную ситуацию и дает возможность разработчику предусмотреть определенные действия при ее возникновении.

Конструкция блока try… finally:

try

               <операторы, выполнение которых может привести

к возникновению исключительной ситуации>

       finally

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

от возникновения исключительной ситуации>

end;

При возникновении исключительной ситуации в одном из операторов управление сразу передается первому оператору блока finally.

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

Конструкция блока try…except:

try

               <операторы, выполнение которых может привести

к возникновению исключительной ситуации>

       except

<операторы, выполняемые только в случае

возникновения исключительной ситуации>

end;

Подробнее...
 
<< [Первая] < [Предыдущая] 1 2 3 4 5 6 [Следующая] > [Последняя] >>

Результаты 1 - 7 из 38