Разработка проекта "ДИАЛОГ"

Автор работы: Пользователь скрыл имя, 29 Мая 2013 в 12:25, практическая работа

Краткое описание

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

Вложенные файлы: 1 файл

Практикум Delphi Бурмистров.doc

— 617.50 Кб (Скачать файл)

 

 Пояснения.  
Комбинированные списки бывают 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 / Y(кг/м2) 
 
Результат определяется по таблице:

 

Значение индекса

Результат  
(сообщение, которое надо вывести)

1

A < 18

Большой недовес

2

18 <= A < 20

Маловато и  небезопасно, можно получить истощение

3

20 <= A <= 25

Идеально

4

26 <=A <=30

Легкий недобор

5

30 < A

Срочно нужно  худеть


 

 

 

 

Практическая работа №5

Разработка проекта  ЦВЕТА В ФОРМАТЕ RGB

Постановка задачи

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


План разработки программы, №5

1. Открыть новый  проект.  
 
2. Разместить в форме экземпляры компонентов в соответствии с рисунком .  
 
 
 
3. Полоса прокрутки ScrollBar может быть горизонтальной (по умолчанию) или вертикальной. Это определяется свойством Kind. В нашем случае используется вертикальная полоса прокрутки.

4. Сохранить  код программы и проект под  именами, например, Unit6.pas и Pr6.dpr.

5. Выполнить  следующие действия:

 

 

Выделенный объект

Вкладка окна 
Object Inspector

Имя свойства/ 
Имя события

Значение/Действие

ScrollBar1

Properties

Name

Установка имени  полосы прокрутки "RedBar", под которым  компонент будет известен программе.

Max

255 
максимальный диапазон целых значений  – количество градаций компонент RGB

Position

122 
начальное значение


 

 Аналогично задайте значения для ScrollBar2 и ScrollBar3, присвоив им имена GreenBar и BlueBar.

6. Для всех  компонентов формы свойству Caption дайте значение ' '.

7. Выполнить  следующие действия:

Выделенный объект

Вкладка окна 
Object Inspector

Имя свойства/ 
Имя события

Значение/Действие

RedBar 
(см. п.5 -ScrollBar1)

Events

OnChange

Panel1.Color:= 
TColorRef(RGB(RedBar.Position,0,0)); 
Label1.Caption:=IntToStr(RedBar.Position); 
Panel4.Color:= TcolorRef(RGB (RedBar.Position, GreenBar.Position, BlueBar.Position));


Аналогично задайте  значения для ScrollBar2 и ScrollBar3, проследите за правильность записи параметров в функции RGB и IntToStr. 
 
Пояснения. 
В зависимости от передвижения ползунка ScrollBar1, будет меняться цвет Panel1, выводиться числовое значение кода на месте Label и меняться цвет Panel4. 
 
8. Сохранить проект окончательно, запустить и протестировать его.

Задание для  самостоятельного выполнения, №5

 

Задание

Подсказка

1

Поместить на форму  кнопку выхода из программы. 

 

2

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

Поместить в  событие при создании формы (OnCreate для Form1) обработку значений позиции ScrollBar1, ScrollBar2 и ScrollBar3.

3

Внесите изменения  так, чтобы выводились на экран значение кода цвета ни только в десятичной системе счисления, но и в шестнадцатеричной системе счисления.

Добавить объект Label4. Поместить в событие по изменению полосы прокрутки ScrollBar (RedBar) дополнительную строку, изменяющую свойство нового компонента Label4:

Label4.Caption:=Format('0x%x', [RedBar.Position]);

Для перевода значений в шестнадцатиричную систему  счисления можно воспользоваться  функцией IntToHex. Описание этой  функции можно найти в Help.


 

Практическая работа №6

Разработка проекта  ТЕСТ ПО ФИЗИКЕ

Постановка задачи

Создать программу, выполняющую следующие действия.

После запуска  программы появляется изображение  аналогичное рисунку. Пользователь, перемещаясь с помощью клавиш-стрелок по левому списку "Физических величин", выбирает любое слово, нажав клавишу Enter.


Затем пользователь переходит в правый список "Названий физических величин" и выбирает соответствующее  название ранее выбранной физической величины.

Информация о работе Разработка проекта "ДИАЛОГ"