- •СОДЕРЖАНИЕ
- •1.1. Интегрированная среда разработчика DELPHI
- •1.2. Структура программ DELPHI
- •1.3. Пример написания программы
- •1.3.1. Настройка формы
- •1.3.2. Изменение заголовка формы
- •1.3.3. Размещение строки ввода (TEdit)
- •1.3.4. Размещение надписей (TLabel)
- •1.3.5. Размещение многострочного окна вывода (TMemo)
- •1.3.8. Запуск и работа с программой
- •1.4. Индивидуальные задания
- •2.1. Обработка событий
- •2.2. Операторы if и case языка Паскаль
- •2.3. Кнопки-переключатели в Delphi
- •2.4. Пример написания программы
- •2.4.1. Coздание формы
- •2.4.2. Работа с компонентом TСheckBox
- •2.4.3. Работа с компонентом TRadioGroup
- •2.5. Выполнение индивидуального задания
- •3.1. Средства отладки программ в DELPHI
- •3.2. Операторы организации циклов repeat, whyle, for языка Pascal
- •3.3. Пример написания программы
- •3.4. Выполнение индивидуального задания
- •4.1. Обработка исключительных ситуаций
- •4.2. Использование функций ShowMessage и MessageDlg
- •4.3. Работа с массивами
- •4.4. Компонент TStringGrid
- •4.5. Пример написания программы
- •4.5.1. Настройка компонента TStringGrid
- •4.6. Выполнение индивидуального задания
- •5.1. Динамическое распределение памяти
- •5.2. Организация динамических массивов
- •5.3. Компонент TBitBtn
- •5.4. Пример написания программы
- •5.5. Выполнение индивидуального задания
- •6.1. Использование подпрограмм
- •6.2. Использование модулей
- •6.3. Пример написания программы
- •6.3.1. Создание модуля
- •6.3.2. Подключение модуля
- •6.4. Выполнение индивидуального задания
- •7.1. Системы счисления
- •7.2. Тип множество
- •7.2.1. Операции над множествами
- •7.2.2. Примеры работы с множествами
- •7.3. Типы данных для работы со строками и основные операции
- •7.4. Некоторые процедуры и функции обработки строк
- •7.5. Пример написания программы
- •8.1. Определение типа «запись»
- •8.2. Работа с файлами
- •8.3. Подпрограммы работы с файлами
- •8.4. Компоненты TOpenDialog и TSaveDialog
- •8.5. Пример написания программы
- •8.5.1. Настройка компонентов TOpenDialog и TSaveDialog
- •8.5.2. Работа с программой
- •8.6. Выполнение индивидуального задания
- •9.1. Как рисуются изображения
- •9.2. Как строится график с помощью компонента TChart
- •9.3. Пример написания программы
- •9.3.1. Работа с компонентом TPageControl
- •9.3.2. Работа с компонентом TChart
- •9.4. Выполнение индивидуального задания
- •10.1. Понятие объекта и класса
- •10.2. Наследственность и полиморфизм
- •10.3. Создание, уничтожение и операция присваивания объектов
- •10.5. Свойства
- •10.6. Пример написания программы
- •10.7. Выполнение индивидуального задания
- •ЛИТЕРАТУРА
________________________________________________________________________________
…
for i:=1 to M do FreeMem(a[i],N*sizeof(integer)); FreeMem(a,4*M);
5.3. Компонент TBitBtn
Компонент TBitBtn расположен на странице Additonal палитры компонентов и представляет собой разновидность стандартной кнопки TButton. Его отличи- тельная особенность – наличие растрового изображения на поверхности кноп- ки, которое определяется свойством Clyph. Кроме того, имеется свойство Kind, которое задает одну из 11 стандартных разновидностей кнопок. Кнопка bkClose закрывает главное окно и завершает работу программы.
5.4. Пример написания программы
Задание: дан массив, состоящий из семи цифр. Упорядочить элементы массива по возрастанию. Панель диалога приведена на рис. 5.1.
Рис. 5.1
Текст программы приведен на листинге 5.1.
Листинг 5.1
unit Unit5; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Grids;
type
TForm1 = class(TForm) StringGrid1: TStringGrid; StringGrid2: TStringGrid; Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure FormCreate(Sender: TObject);
37
PDF created with pdfFactory Pro trial version www.pdffactory.com
Основы алгоритмизации и программирования в среде Delphi
procedure BitBtn1Click(Sender: TObject); private
{Private declarations } public
{Public declarations } end;
const N=7;
Type
TMas = array[1..1] of integer; PMas = ^TMas;
var
Form1: TForm1; a : PMas;
i,j,t : integer; implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin
Randomize; for i:=1 to N do
StringGrid1.Cells[i-1,0]:=IntToStr(Random(100)); end;
procedure TForm1.BitBtn1Click(Sender: TObject); begin
GetMem(a,N*sizeof(integer));
for i:=1 to N do a[i]:=StrToInt(StringGrid1.Cells[i-1,0]);
for i:=1 to N-1 do for j:=i+1 to N do
if a[i]>a[j] then begin t:=a[i]; a[i]:=a[j]; a[j]:=t;
end; for i:=1 to N do
StringGrid2.Cells[i-1,0]:=IntToStr(a[i]); FreeMem(a,N*sizeof(integer));
end; end.
PDF created with pdfFactory Pro trial version www.pdffactory.com
________________________________________________________________________________
5.4. Выполнение индивидуального задания
Выполните задачу из подразд. 4.6, используя двухмерный динамический массив.
По указанию преподавателя выберите вариант задачи. Нарисуйте схему ал- горитма. Выделение памяти под массив организовать динамически. Организуй- те ввод данных из StringGrid1. Вывод организовать в зависимости от варианта в
StringGrid2 или в Edit1.
1.Дан массив, состоящий из символов. Расположить его элементы в обрат- ном порядке.
2.Дан массив, состоящий из символов. Преобразовать его по следующему правилу: сначала должны находиться цифры, а затем все остальные символы,
сохраняя при этом взаимное расположение символов в каждой из этих двух групп.
3.Дан массив, состоящий из символов. Вывести на экран цифру, наиболее часто встречающуюся в этом массиве.
4.Дан массив, состоящий из символов. Определить количество различных элементов массива (т.е. повторяющиеся элементы считать один раз).
5.Дан массив, состоящий из символов. Элементы массива циклически сдви- нуть на k позиций влево.
6.Дан массив, состоящий из символов. Элементы массива циклически сдви- нуть на n позиций вправо.
7.Дан массив, состоящий из чисел. Преобразовать массив по следующему правилу: все отрицательные числа массива перенести в начало, а все остальные
–в конец, сохраняя исходное взаимное расположение как среди отрицательных, так и среди положительных элементов.
8.Элементы каждого из массивов X и Y упорядочены по возрастанию. Объе- динить элементы этих двух массивов в один массив Z так, чтобы они снова ока- зались упорядоченными по возрастанию.
9.Дан массив, состоящий из символов. Определить, симметричен ли он, т.е. читается ли он одинаково слева направо и справа налево.
10.Дано два массива. Найти наименьшее среди тех элементов первого мас- сива, которые не входят во второй массив.
11.Определить количество инверсий в этом массиве X (т.е. таких пар эле- ментов, в которых большее число находится слева от меньшего: xi>xj при i<j).
12.Дан массив из строчных латинских букв. Вывести на экран в алфавитном порядке все буквы, которые входят в этот текст по одному разу.
13.Дан массив, состоящий из символов. Удалить из него повторные вхожде- ния каждого символа.
14.Дан массив, состоящий из цифр. Удалить из него все четные числа.
15.Дан массив, состоящий из цифр. Удалить из него все отрицательные числа.
39
PDF created with pdfFactory Pro trial version www.pdffactory.com
Основы алгоритмизации и программирования в среде Delphi
ТЕМА 6. ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ПОДПРОГРАММ И МОДУЛЕЙ
Цель лабораторной работы: изучить возможности DELPHI для написания подпрограмм и создания модулей. Составить и отладить программу, исполь- зующую внешний модуль UNIT с подпрограммой.
6.1. Использование подпрограмм
Подпрограмма – это определенным образом оформленная группа операто- ров, которая может быть вызвана по имени любое количество раз из любой точки основной программы.
Подпрограммы подразделяются на процедуры и функции. Процедура имеет следующую структуру:
Procedure <имя процедуры> ([список имен формальных параметров с
указанием их типов]); Const [описание используемых констант]; Type [описание используемых типов];
Var [описание используемых переменных];
Begin
…// Операторы
End;
Вызов процедуры: <имя процедуры> ([список имен формальных парамет- ров без указания их типов]);
В отличие от процедур функции могут использоваться в выражениях в каче- стве операнда, поэтому они имеют следующую структуру:
Function <имя функции> ([список имен формальных параметров
с указанием их типов]): <тип результата>; Const [описание используемых констант];
Type [описание используемых типов];
Var [описание используемых переменных];
Begin |
|
… |
// Операторы |
Result:= … ;// Присвоение результата вычислений переменной Result
// или <имя функции>:= … ;
End; // Конец функции
Вызов функции: y:=<имя функции > ([список имен формальных параметров без указания их типов]);
Процедуры и функции могут быть использованы в качестве формальных па- раметров подпрограмм. Для этого определяется тип:
Type <имя> = function ([список формальных параметров]):<тип рез-тата>;
или
PDF created with pdfFactory Pro trial version www.pdffactory.com