- •Методические указания по выполнению лабораторно-практических работ
- •1 Решим простейший пример: найти сумму трех чисел.
- •Программирование циклических алгоритмов. Циклы «до» и «пока»
- •Лабораторная работа №10
- •Оператор параметрического цикла for
- •Работа с массивами
- •Оператор варианта
- •Работа со строками в объектно-ориентированном программировании. Оператор цикла с параметрами
- •Лабораторная работа №7
- •Процедуры и функции
- •Практические задания
- •Лабораторная работа №8
- •1. Программа, которая определяет, есть ли одинаковые числа в трехзначном числе.
- •2. В одномерном массиве вывести на экран четные числа и нечетные числа.
- •3. Из введенной последовательности символов, признаком конца которой является '0', сформировать множество заглавных и строчных латинских букв.
- •Множественный тип
- •Практические задания
- •Лабораторная работа №9
- •Label Edit Button Memo
- •Лабораторная работа №10
- •Лабораторная работа №11
- •Implementation
- •Лабораторная работа №12
- •Лабораторная работа №13
- •Лабораторная работа №14
- •Implementation
- •Практическая работа Случайный выбор из списка
- •Практическая работа «Тест»
- •Типы бд в Delphi
- •1. Создание каталога
- •2. Создание псевдонима
- •3. Создание таблицы
- •4. Разработка приложения, работающего с бд
- •Создание каталога и псевдонима
- •Создание таблицы
- •Создание формы
- •Вставка изображений в бд
- •Заключение
Практические задания
Организовать символьные файлы g и f состоящие из n и m символов соответственно. Определить и вывести на экран множество символов входящих одновременно в файлы g и f.
Из множества целых чисел 1..20 выделить: множество чисел, делящихся на 6 без остатка; множество чисел делящихся на 2 или на 3 без остатка. Вывести содержимое этих множеств на экран.
Ввести строку символов, состоящую из латинских букв цифр и пробелов. Осуществить проверку правильности введённых символов.
Подсчитать общее количество знаков +, -, *, входящих в строку S.
Посчитать количество больших и количество малых латинских букв в строке S.
Дан текст из цифр и строчных латинских букв без знаков препинания. Определить, каких букв – гласных (a, e, i, o, u) или согласных больше в этом тексте.
Лабораторная работа №9
Тема: Решение задачи и создание и уничтожение объектов с помощью конструкторов и деструкторов.
Цель: Научить как создавать объекты и пользоваться ими.
Задание. Создать приложение для формирования стека, который заполняется путем ввода целых положительных чисел с клавиатуры. Как только будет введено первое отрицательное число, содержимое стека выводится на панель интерфейса, а память, занимаемая его элементами, освобождается.
Разместим на форме компоненты Label, Edit, Button, BitBtn,Memo.
Label Edit Button Memo
Рис.11.2. Размещение компонентов на форме
11.4.3. Создание процедуры обработки событий FormCreate и BitBtn1Click
Двойным нажатием клавиши «мыши» на Форме и кнопке Buttonсоздайте соответствующие процедуры обработки событий. Пользуясь текстом модуляUnStek, наберите операторы этих процедур.
Текст модуля UnStek
unitUnStek;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Button1: TButton;
BitBtn1: TBitBtn;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
pSt=^zap;
zap=record
inf: integer;
adr: pSt
end;
var// объявление глобальных переменных
pVer,// указатель вершины стека
pTek:pSt;// текуший указатель
elSt:integer;// элемент стека
procedureTForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
Edit1.Text:='';
pVer:=nil;// инициализировать указатель вершины
elSt:=0;// инициализировать элемент стека
end;
procedureTForm1.Button1Click(Sender: TObject);
begin
New(pTek); // выделить память
elSt:=StrToInt(Edit1.Text);
pTek^.inf:=elSt;// в информационную часть стека занести elSt
pTek^.adr:=pVer;// в адресную часть занести указатель на вершину
pVer:=pTek;// указатель вершины должен указывать на
// последний элемент
ifelSt>=0then // если элемент стека неотрицательный, тогда …
begin
Edit1.Text:='';// очистить окно редактора Edit1
Edit1.SetFocus;// передать фокус ввода редактору Edit1
end
else
begin
Memo1.Lines.Add('Элементы стека:'); // вывод заголовка
repeat
Memo1.Lines.Add(#9+IntToStr(pTek^.inf)); // вывод элементов
pVer:=pTek^.adr;
Dispose(pTek); // освободить память
pTek:=pVer;
until pTek=nil;
end;
end;end.
Контрольные вопросы:
Для чего используется компонент Label, Edit, Button?
Для чего используется компонент BitBtn?
Для чего используетсяMemo?