Эскорт-услуги в Москве от Queens Palace


GOUSPO студенческий портал!

форум, учебники, лекции, и многое другое

Практикум Delphi

Практикум Delphi

Практическая работа №1
Разработка проекта ДИАЛОГ
Постановка задачи
Создать программу, выполняющую следующие действия.
 Создать программу, выполняющую следующие действия.
После запуска программы пользователь вводит свое имя, например, Александр, в прямоугольник с мигающим текстовым курсором и нажимает клавишу Enter.
Появляется вопрос: Александр, ты любишь читать?. Если пользователь нажмет на клавишу Да, то должна появиться реплика: Молодец!, если он нажмет на клавишу Нет, то появится реплика: Почему же? Надо читать.

План разработки программы, №1
1. Открыть новый проект.
2. Разместить на форме экземпляры компонентов в соответствии с рисунком.

3. Сохранить код программы и проект под именами, например, Unit2.pas и Pr2.dpr.
4. Запустить программу, затем закрыть окно проекта, щелкнув на кнопке  Выход.
5. Выполнить следующие действия:

Выделенный объект Вкладка окна
Object Inspector Имя свойства/
Имя события Значение/Действие
Form1 Properties Caption Диалог
BitBtn1
Properties Caption &Выход
Kind bkClose
Label1 Properties Caption Введи свое имя и нажми Enter
Edit1 Events  OnKeyPress If key=#13 then
begin
Label2.Caption:=Edit1.Text +
, ты любишь читать?’;
end;
Button1 Properties Caption Да

Events OnClick Label3.Caption:=‘Молодец!’;
Button2 Properties Caption  Нет

Events OnClick Label3.Caption:=‘Почему же? Надо читать.’;
Label2 Properties Caption Удалить название объекта
Label3 Properties Caption Удалить название объекта

6. Сохранить проект окончательно, запустить и протестировать его.
Задание для самостоятельного выполнения, №1
Задание Подсказка
1 Сделать кнопки Да и Нет доступными только после ввода имени и нажатия клавиши Enter. Значение свойства Enabled кнопок Да и Нет установить равными False, а в процедуруEdit1KeyPressed включить, код:
Button1.Enabled := true;
Button2.Enabled := true;
2 Удалить имена  компонентов Edit1, Label2, Label3 для обеспечения возможности повторить диалог.  Разместить на форме еще одну кнопку BitBtn. Установить значение bkRetry свойства Kind, и значение
&Повторить свойства Caption.
Ввести программно по нажатию кнопки Повторить пустые строки вместо надписей и имен кнопок:
Label2.Caption := ;
Label3.Caption := ;
Edit1.Text := ;
3 Ввести дополнительную кнопку Повторить, которая позволяет повторно выполнить задание.  Сделать так, чтобы при повторении диалога строка ввода была бы снова активной. Ввести команду:
Form1.ActiveControl := Edit1.

Практическая работа №2
Разработка проекта СПРАВОЧНИК
Постановка задачи
Создать программу, выполняющую следующие действия.
 После запуска программы пользователь выбирает с помощью мышки или стрелок название цвета и нажимает клавишу Enter. На экране появляется название цвета на русском языке и код в формате RGB. Программа заканчивает свою работу по нажатию клавиши Выход.

План разработки программы, №2
1. Открыть новый проект.

2. Разместить на форме экземпляры компонентов в соответствии с рисунком.

3. Сохранить код программы и проект под именами, например, Unit3.pas и Pr3.dpr.
4. Запустить программу, затем закрыть окно проекта, щелкнув на кнопке  Выход.
5. Выполнить следующие действия:

Выделенный объект Вкладка окна
Object Inspector Имя свойства/
Имя события Значение/Действие
Form1 Properties Caption Справочник
BitBtn1
Properties Caption &Выход
Kind bkClose
Label1 Properties Caption Справочник записи цвета в формате RGB
Label2 Properties Caption Цвет в формате RGB
Label3 Properties Caption Удалить название объекта

6. Выделить объект ListBox1, найти свойство Items, щелкнуть на кнопке с тремя точками, расположенными справа от него. В появившемся окне встроенного редактора  ввести названия цветов, каждый на новой строке.

7. Сохранить набранный текст под именем Color.txt. Для этого нажмите правую клавишу мыши и выберите режим Save. Для выхода из встроенного редактора щелкните на кнопке OK.
8. Выполнить следующие действия:
Выделенный объект Вкладка окна
Object Inspector Имя свойства/
Имя события Значение/Действие
ListBox1 Events OnKeyPress if key=#13 then
Case Listbox1.ItemIndex of
0: Label3.Caption:=черный 000000;
1: Label3.Caption:=белый FFFFFF;
2: Label3.Caption:=красный FF0000 ;
3: Label3.Caption:=зеленый 00FF00;
4: Label3.Caption:=бирюзовый 00FFFF;
5: Label3.Caption:=синий 0000FF ;
6: Label3.Caption:=фиолетовый FF00FF;
7: Label3.Caption:=желтый FFFF00;
8: Label3.Caption:=коричневый 996633 ;
9: Label3.Caption:=оранжевый FF8000 ;
10: Label3.Caption:=лиловый 8000FF ;
end;

9. Сохранить проект окончательно, запустить и протестировать его.
Задание для самостоятельного выполнения, №2
Задание Подсказка
1 Изменить шрифты, цвет экрана и букв. Возможно, придется в коде программы подкорректировать количество пробелов между названием цвета и его кодом.
2 Сделать так, чтобы при установке курсора мыши в поле ListBox1, появлялась подсказка о том, что надо сделать. Воспользуйтесь свойствами Hint (текст сообщения), Showhint (показывать ли сообщение) объекта ListBox1.
3 Внести изменения в программу, чтобы для надписей цвета и формата RGB использовались два отдельных объекта Label.
4 Внесите изменения в программу для того, чтобы исходные данные о таблице цветов задавались в массиве.
5 Сделать так, чтобы выбор цвета в окне ListBox1 осуществлялся ни только по нажатию клавиши Enter, но и при щелчке  мыши. Для компоненты ListBox1 в обработчике события OnClick вставить те же действия, которые описаны в п.8 Плана разработки.

Практическая работа №3
Разработка проекта СЛОВАРЬ
Постановка задачи
Разработать программу для составления словаря новых терминов.
  Должна иметься возможность внесения в словарь изменений, дополнений или сокращения его. На форме должны отображаться текущий номер записи и общее количество записей в словаре.

План разработки программы, №3
1. Открыть новый проект.

2. Разместить на форме экземпляры компонентов в соответствии с рисунком.

3. Сохранить код программы и проект под именами, например, Unit4.pas и Pr4.dpr.
4. Запустить программу, затем закрыть окно проекта, щелкнув на кнопке  Выход.
5. Выполнить следующие действия:
Выделенный объект Вкладка окна
Object Inspector Имя свойства/
Имя события Значение/Действие
Form1 Properties Caption Словарь
BitBtn1 Properties Caption &Выход
Kind bkClose
ComboBox1 Properties Text Вставка пробела
Item Открытие двойным щелчком списка String list editor. Ввод нескольких терминов, сохранение их в файле Glostext.txt, предварительно убедившись, что выбрана нужная папка (см. практическую работу №4 п.7).

6. Запустить программу, щелкнуть на стрелке компонента ComboBox1, выбрать из открывшегося списка любой термин, а затем убедиться, что текст, набираемый в строке ввода, в список не вносится. После этого закрыть проект кнопкой Выход.
7. Выполнить следующие действия:
Выделенный объект Вкладка окна
Object Inspector Имя свойства/
Имя события Значение/Действие
Button1 Properties Caption  Довавить
Events OnClick ComboBox1.Items.Add (ComboBox1.Text);
if ComboBox1.ItemIndex = -1 then ComboBox1.Text :=‘’;
Последний оператор очищает строку ввода после того, как текст из нее попадает в список.

8. Запустить программу и убедиться, что набранные в строке ввода слова после нажатия кнопки Добавить добавляются в список ComboBox1.
9. Выполнить следующие действия:
Выделенный объект Вкладка окна
Object Inspector Имя свойства/
Имя события Значение/Действие
Button2 Properties Caption  Удалить
Events OnClick If MessageDlg(Вы действительно хотите удалить запись?,
mtWarning, [mbYes, mbNo], 0) = mrYes then
ComboBox1.Items.Delete(ComboBox1.ItemIndex);

Пояснения.
Условие If MessageDlg  означает, что при нажатии кнопки Удалить появится диалоговое окно с вопросом Вы действительно хотите удалить запись? с двумя кнопками Yes и No. Предварительно выбранный термин будет удален из списка только при нажатии кнопки Yes.
MessageDlg является функцией с четырьмя аргументами:
1. Сообщение, которое нужно отобразить, в одинарных кавычках.
2. Тип диалогового окна константы: mtWarning, mtError, mtInformation, mtConformation, определяющие специальную пиктограмму и заголовок диалогового окна.
3. Список констант в квадратных скобках, определяющих присутствующие в окне кнопки. Возможные значения - mbYes, mbNo, mbCancel, mbHelp.
4. Число, с которым ассоциирована тема справки. Оно отлично от нуля, если в окне присутствует кнопка mbHelp, а программа имеет связанный с ней файл справки Windows.
Функция MessageDlg возвращает константу, определяющую нажатую пользователем кнопку.
10. Запустить программу, добавить в список и (или) удалить несколько строк, закрыть ее, а затем снова запустить. Заметим, что внесенные изменения не сохранились. Это связано с тем, что в ComboBox загружается первоначальный список.
11. Выполнить следующие действия:
Выделенный объект Вкладка окна
Object Inspector Имя свойства/
Имя события Значение/Действие
Button4 Properties Caption  Сохранить
Events OnClick ComboBox1.Items.SaveToFile (‘glostext.txt’);
Form1 Events OnCreate ComboBox1.Items.LoadFromFile (‘glostext.txt’);

Пояснения.
Теперь при создании формы в список ComboBox1 будет загружаться содержимое файла ‘Glostext.txt’, а измененный список запоминается в нем при нажатии кнопки Сохранить.
12. Выполнить следующие действия:
Выделенный объект Вкладка окна
Object Inspector Имя свойства/
Имя события Значение/Действие
Button3 Properties Caption Редактировать
ComboBox1 Events  OnClick num:= ComboBox1.ItemIndex;
Предварительно описать в разделе Var целочисленную переменную num.
Button3 Events  OnClick    ComboBox1.Items.Delete (num);
ComboBox1.Items.Add (ComboBox1.Text);
if ComboBox1.ItemIndex = -1 then ComboBox1.Text:=‘’;

Пояснения.
1. Для исправления ошибок, замеченных в строках списка, выделенную строку надо удалить из списка, а исправленную строку (т.е. содержимое строки ввода) добавить в список.
2. Новая переменная num необходима для сохранения номера выбранной строки. При внесении изменений выбранной строкой становится строка ввода, для которой ItemIndex = -1.
13. Для кнопок Добавить, Редактировать, Удалить для сохранения внесенных изменений необходимо добавить:
Вкладка окна
Object Inspector Имя свойства/
Имя события Значение/Действие
Events  OnClick ComboBox1.Items.SaveToFile (‘Glostext.txt’);

14. Запустить программу и убедиться, что если выбрать строку, исправив ее, а затем щелкнуть на кнопке Редактировать, то измененная строка попадет в конец списка.
15. Предусмотреть режим работы со списком, допускающий только чтение.
Выделенный объект Вкладка окна
Object Inspector Имя свойства/
Имя события Значение/Действие
CheckBox1 Properties Caption  Только чтение
Events OnClick if CheckBox1.Checked = False then ComboBox1.Style:= csDropDown else ComboBox1.Style:= csDropDownList;
Свойство Checked у выбранного выключателя имеет значение True, а в исходном состоянии значение False.

Пояснения.
Комбинированные списки бывают 3 типов:
простые (simple) список всегда открыт;
раскрывающиеся (drop down) список свернут;
неизменяемые (drop down list) список свернут и возможен только выбор элемента из списка.
16. В режиме Только чтение, сделать недоступной кнопку Добавить:
Выделенный объект Вкладка окна
Object Inspector Имя свойства/
Имя события Значение/Действие
CheckBox1 Events OnClick if CheckBox1.Checked = false then Button1.Enabled := true else
Button1.Enabled := false;

Аналогично сделать недоступными кнопки Редактировать, Удалить, Сохранить.

17. Сохранить проект окончательно, запустить и протестировать его.
Задание для самостоятельного выполнения, №3
Задание Подсказка
1 Предусмотреть возможность добавления терминов в список не только при щелчке на кнопке Добавить, но и при нажатии клавиши Enter.  Для компоненты ComboBox1 в обработчик события onKeyPress вставить код:
if Key = #13 then
2 Сделать так, чтобы при щелчке на кнопке Добавитьосуществлялся ввод пустой строки, а не копировалась запись, на которой стоит курсор.
3 Добавить две метки и вывести на них общее количество терминов в списке и номер выбранного термина.

Для объекта ComboBox1 в обработчик события Change вставить код, присваивающий заголовку панели значение ComboBox1.Items.Count, а в обработчик события Click - код, присваивающий заголовку другой панели значение ComboBox1.ItemIndex+1, имея ввиду, что первый термин имеет индекс 0, второй 1 и т.д.
4 Предусмотреть изменение значений общее количество и номер выбранного термина при выполнении операций Добавить иУдалить.
5 Обеспечить сохранение всех изменений словаря при закрытии формы. Для объекта Form в обработчик события CloseQuerry вставить код, сохраняющий измененный список в файле Glostext.txt.
6 Отсортировать список.  Свойству Sorted объекта ComboBox1 присвоить значение True.
7 Предусмотреть отображение на форме общего количества терминов в списке и номер выбранного термина, начиная с самого первого момента запуска программы. Для объекта Form в обработчик события Create вставить необходимый код (см. п.3).

Практическая работа №4
Разработка проекта ВАШ ВЕС
Постановка задачи
Пусть оптимальный вес человека определяется как рост минус 100. Если фактический вес человека меньше оптимального, то будем считать его худым, если больше, то полным.
 Создать программу, с помощью которой можно выполнить:
Введя свой рост и фактический вес, и нажав кнопку Расчет, учащийся может определить, худой ты или полный и на сколько надо поправиться или похудеть.

План разработки программы, №4
1. Открыть новый проект.

2. Разместить в форме экземпляры компонентов в соответствии с рисунком . В Edit1 будем вводить вес в кг, а в Edit2 – рост в см.

3. Сохранить код программы и проект под именами, например, Unit5.pas и Pr5.dpr.
4. Ввести в раздел VAR переменные для сохранения значений:
фактического веса (faktW),
оптимального веса (optW),
роста (Rost)
разницы между оптимальным весом и фактическим (Delta).
В начале будем считать, что все данные у нас целые числа:
VAR
factW, optW, Rost, Delta : integer;
5. Создать процедуру, реагирующую на щелчок по кнопке Button1, и заполнить ее следующим кодом:
Выделенный объект Вкладка окна
Object Inspector Имя свойства/
Имя события Значение/Действие
Button1 Events OnClick factW := StrToInt(Edit1.text);
Rost := StrToInt(Edit2.Text);
OptW :=Rost 100;
Delta := abs(factW OptW);
if OptW = factW then
Label3.caption := Ваш вес идеален!
else
if OptW > factW then
Label3.caption := Вам надо поправиться на +IntToStr(Delta)+ кг.
else
Label3.caption := Вам надо похудеть на +IntToStr(Delta)+ кг.

Пояснение
Функция StrToInt преобразует строку в целое число, функция IntToStr выполняет обратное действие – целое число преобразует в строку.

6. Усовершенствовать программу так, чтобы можно было бы вводить любые десятичные величины. Для этого необходимо использовать вещественный тип переменных Real:
VAR
factW, optW, Rost, Delta : real;
Преобразование действительных чисел в строковый тип и строковый тип в действительное число выполняется с помощью функций: FloatToStr и StrToFloat. Внесите соответствующие изменения в обработку события OnClick компонента Button1.
7. Сохранить проект окончательно, запустить и протестировать его.
Задание для самостоятельного выполнения, №4
Задание Подсказка
1 Для форматирования и преобразования действительных чисел вместо функции FloatToStr() применить функцию
Format(‘ %f ,[пeременная]).

Например, Format(‘%f ‘, [Delta])
2 Для форматирования и преобразования применить эту же функцию в таком виде
Format(‘Строка %f’,[пeременная]).

Например, Format(‘Вам надо похудеть %f,[Delta]) .
3 Усовершенствовать проект:
сделать к программе заголовок;
сделать шрифт выводимой реплики отличным от стандартного по виду, цвету и размеру;
вставить кнопку выхода из программы;
предусмотреть возможность повторного запуска программы (см. проект Диалог).
4 Сделайте так, чтобы в начале программы или после повторного запуска объекты Label2 и Edit2были не видны и появлялись бы на экране только после того, как будет введен вес. Свойству Visible нужно присвоить False.
5 Предусмотреть возможность повторного запуска задачи ввести кнопку Повторить.

5. В случае преобразования строкового типа в числовой тип может возникнуть ситуация появления ошибки, если введены недопустимые символы. Если функции StrToInt или StrToFloat обнаружат ошибку в записи числа, они инициируют так называемую исключительную ситуацию (исключений), которая обычно приводит к аварийному завершению работы программы.
Обработчик исключений строится в виде таких конструкций:
Try
<защищенный блок операторов>
except
<обработка исключений>
end;
Если при выполнении операторов из защищенного блока возникнет исключение, управление будет передано в блок операторов, располагающийся междуexcept и end, но если обработка пройдет без ошибок, блок исключений игнорируется и управление передается оператору, следующему за end.
Пример использования обработки исключений для процедуры Edit1KeyPressed может выглядеть так:
try
FactW:=StrToInt(Edit1.Text);
except
ShowMessage(Ошибочная запись числа: + Edit1.Text);
Edit1.SetFocus;
Exit;
end;
В результате выполнения
FactW:=StrToInt(Edit1.Text);
если возникнет исключительная ситуация, то на экране появится окно с текстовым сообщением и кнопкой ОК. После появления окна работа программы приостановится в ожидании реакции пользователя. При вызове стандартной процедуры Exit снова активизируется редактор, в котором обнаружен ошибочный текст.

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

Внимание!
При работе в среде Delphi эксперименты с исключениями плохо прослеживаются, так как при каждом исключении среда перехватывает управление программой. Для отмены этого необходимо в команде Tools/Debugger Options/Language Exceptions убрать флаг у опции Stop on Delphi Exceptions.
6. Предусмотрите невозможность ввода отрицательных значений веса и роста.
7. Измените алгоритм расчета с учетом Индекса массы тела.
Вес – X,
Рост – Y.
Индекс массы тела – A, где A = X / Y2 (кг/м2)

Результат определяется по таблице:
Значение индекса Результат
(сообщение, которое надо вывести)
1 A < 18  Большой недовес
2 18 <= A < 20 Маловато и небезопасно, можно получить истощение
3 20 <= A <= 25 Идеально
4 26 <=A <=30 Легкий недобор
5 30 < A Срочно нужно худеть

Скачать с картинками и таблицами: Практикум Delphi.