Практические работы в среде визуального программирования Lazarus
Практические работы в среде визуального программирования Lazarus
Список вопросов, рассмотренных в работе
Работа № 2
· использование компонент Label и Button на странице палитры компонентов Standard,
· обработка события OnClick - нажатие кнопки.
Работа № 3
· использование строки ввода Edit (вкладка палитры компонентов Standard),
· обработка события OnKeyPress- нажатия клавиши.
Работа № 4
· использование компоненты ListBox (список) (вкладка палитры компонентов Standard),
· использование встроенного редактора для ввода информации,
· алгоритм выбора (оператор Case).
Работа № 5
· использование комбинированного списка ComboBox (представляющие собой объединение строки ввода и компонента ListBox),
· компонента - выключатель CheckBox,
· функции MessageDlg.
Работа № 6
· использование типов переменных - целочисленного и действительного (integer и real);
· преобразование строковых данных в числовые и числовые в строковые с помощью функций StrToInt; StrToFloat, IntToStr FloatToStr ; Format();
· обработка исключительных ситуаций с помощью оператора
Try – except – end;
· использование процедуры ShowMessage для вывода сообщения в отдельном окне.
Работа № 7
· полос прокрутки ScrollBar для ввода данных,
· компонента Panel,
· функций преобразования значений цветовых составляющих – TColorRef.
Работа № 8
· взаимодействие двух списков ListBox на основе свойств Items и ItemIndex,
· создание многострочных надписей в компоненте Label.
Работа № 9
· группа переключателей RadioGroup на странице палитры компонентов Standard,
· оператор вывода сообщений ShowMessage.
Работа № 10
· использование в проекте нескольких форм и организация вызова этих форм,
· использование шаблона формы Tabbed pages из окна New Items вкладки Forms,
· компонента MainMenu (главное меню формы),
· компонента Memo (многострочный текстовый редактор),
· компонента Image (графический объект) со страницы палитры компонентов Additional,
· компонента PageControl (набор панелей с закладками).
Практическая работа №2
Разработка ПЕРВОГО ПРОЕКТА
Постановка задачи, №2
Создать программу, выполняющую следующие действия.
![]() | После запуска программы, щелкнув мышью на кнопке Приветствие появляется сообщение "Первые успехи!". Для выхода из программы необходимо щелкнуть мышью на Выход. |
Новым в этой работе является: · использование компонент Label и Button на странице палитры компонентов Standard, · обработка события OnClick - нажатие кнопки. |
Задание для самостоятельного выполнения
Задание | Подсказка | |
Сделать шрифт выводимой реплики "Первые успехи!" отличным от стандартного по виду, цвету и размеру. | В Object Inspector дважды щелкнуть справа от названия свойства Font. | |
Заменить вид кнопки Выход на более привлекательный. | Для замены кнопки надо удалить существующую, а другую найти в палитре компонентов на вкладке Additional. Она самая левая, называется BitBtn. Затем изменить ее вид с помощью свойства Kind. | |
Сделать так, чтобы после нажатия кнопки Приветствие на экране появлялось сообщение "Первые и не последние!". | Изменить значение свойств Caption метки Label1 при реакции кнопки Button1 на событие OnClick. | |
Запустить исполняемый файл Pr1.exe не в среде Lazarus, а в Windows. | Запустить исполняемый файл Pr1.exe не в среде Lazarus, а в Windows. |
Практическая работа №3
Разработка проекта ДИАЛОГ
Постановка задачи
Создать программу, выполняющую следующие действия.
![]() | Создать программу, выполняющую следующие действия. После запуска программы пользователь вводит свое имя, например, Александр, в прямоугольник с мигающим текстовым курсором и нажимает клавишу Enter. Появляется вопрос: "Александр, ты любишь читать?". Если пользователь нажмет на клавишу Да, то должна появиться реплика: "Молодец!", если он нажмет на клавишу Нет, то появится реплика: "Почему же? Надо читать". |
Для выхода из программы необходимо щелкнуть мышью на кнопке Выход.
Новым в этой программе является: · использование строки ввода Edit (вкладка палитры компонентов Standard), · обработка события OnKeyPress- нажатия клавиши. |
Задание для самостоятельного выполнения, №3
Задание | Подсказка | |
Сделать кнопки Да и Нет доступными только после ввода имени и нажатия клавиши Enter. | Значение свойства Enabled кнопок Да и Нет установить равными False, а в процедуру Edit1KeyPressed включить, код: Button1.Enabled:=true; Button2.Enabled := true; | |
Удалить текст компонентов Edit1, Label2, Label3 для обеспечения возможности повторить диалог. | Разместить на форме еще одну кнопку BitBtn. Установить значение bkRetry свойства Kind, и значение &Повторить свойства Caption. Ввести программно по нажатию кнопки Повторить пустые строки вместо надписей и имен кнопок: Label2.Caption:=''; Label3.Caption:=''; Edit1.Text := ''; | |
Сделать так, чтобы при повторении диалога строка ввода была бы снова активной. | Ввести команду: Form1.ActiveControl := Edit1 |
Практическая работа №4
Постановка задачи
Создать программу, выполняющую следующие действия.
![]() | После запуска программы пользователь выбирает с помощью мышки или стрелок название цвета и нажимает клавишу Enter. На экране появляется название цвета на русском языке и код в формате RGB. Программа заканчивает свою работу по нажатию клавиши Выход. |
Новыми в этой работе являются: · использование компоненты ListBox (список) (вкладка палитры компонентов Standard), · использование встроенного редактора для ввода информации, · алгоритм выбора (оператор Case). |
Задание для самостоятельного выполнения, №4
Задание | Подсказка | |
Изменить шрифты, цвет экрана и букв. | Возможно, придется в коде программы подкорректировать количество пробелов между названием цвета и его кодом. | |
Сделать так, чтобы при установке курсора мыши в поле ListBox1, появлялась подсказка о том, что надо сделать. | Воспользуйтесь свойствами Hint (текст сообщения), Showhint (показывать ли сообщение) объекта ListBox1. | |
Внести изменения в программу, чтобы для надписей цвета и формата RGB использовались два отдельных объекта Label. | ||
Внесите изменения в программу для того, чтобы исходные данные о таблице цветов задавались в массиве. |
Практическая работа №5
Разработка проекта СЛОВАРЬ
Постановка задачи
Разработать программу для составления словаря новых терминов.
![]() | Должна иметься возможность внесения в словарь изменений, дополнений или сокращения его. При выборе термина на контрольной панели должны появляться его номер и общее количество слов в словаре. |
Новыми в этой работе является: · использование комбинированного списка ComboBox (представляющие собой объединение строки ввода и компонента ListBox), · компонента - выключатель CheckBox, · функции MessageDlg. Все эти компоненты находятся на вкладке палитры компонентов Standard. |
Задание для самостоятельного выполнения, №5
Задание | Подсказка | |
Предусмотреть возможность добавления терминов в список не только при щелчке на кнопке Добавить, но и при нажатии клавиши Enter. | Для компоненты ComboBox1 в обработчик события onKeyPress вставить код: if Key = #13 then ... | |
Добавить две метки и вывести на них общее количество терминов в списке и номер выбранного термина. | Для объекта ComboBox1 в обработчик события Change вставить код, присваивающий заголовку панели значение ComboBox1.Items.Count, а в обработчик события Click- код, присваивающий заголовку другой панели значение ComboBox1.ItemIndex+1, имея ввиду, что первый термин имеет индекс 0, второй - 1 и т.д. | |
Обеспечить сохранение всех изменений словаря при закрытии формы. | Для объекта Form в обработчик события CloseQuerry вставить код, сохраняющий измененный список в файле Glostext.txt. | |
Отсортировать список. | Свойству Sorted объекта ComboBox1 присвоить значение True. |
Практическая работа №6
Разработка проекта ВАШ ВЕС
Постановка задачи
Пусть оптимальный вес человека определяется как рост минус 100. Если фактический вес человека меньше оптимального, то будем считать его худым, если больше, то полным.
![]() | Создать программу, с помощью которой можно выполнить: Введя свой рост и фактический вес, и нажав кнопку Расчет, учащийся может определить, худой ты или полный и на сколько надо поправиться или похудеть. |
Новым в этой работе являются: · использование типов переменных - целочисленного и действительного (integer и real); · преобразование строковых данных в числовые и числовые в строковые с помощью функций StrToInt; StrToFloat, IntToStr FloatToStr ; Format(); · обработка исключительных ситуаций с помощью оператора Try – except – end; · использование процедуры ShowMessage для вывода сообщения в отдельном окне. |
Задание для самостоятельного выполнения, №6
Задание | Подсказка | |
Для форматирования и преобразования действительных чисел вместо функции FloatToStr() применить функцию Format(‘ %f ’,[пeременная]). Например, Format(‘%f ‘, [Delta]) | ||
Для форматирования и преобразования применить эту же функцию в таком виде Format(‘Строка %f’,[пeременная]). Например, Format(‘Вам надо похудеть %f',[Delta]) . | ||
Усовершенствовать проект: сделать к программе заголовок; сделать шрифт выводимой реплики отличным от стандартного по виду, цвету и размеру; вставить кнопку выхода из программы; предусмотреть возможность повторного запуска программы (см. проект Диалог). | ||
Сделайте так, чтобы в начале программы или после повторного запуска объекты Label2 и Edit2 были не видны и появлялись бы на экране только после того, как будет введен вес. | Свойству Visible нужно присвоить False. |
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 снова активизируется редактор, в котором обнаружен ошибочный текст.
Внесите необходимые изменения для обработки исключительных ситуаций, возникающих при вводе чисел.
Примечание
При работе в среде Lazarus эксперименты с исключениями плохо прослеживаются, так как при каждом исключении среда перехватывает управление программой. Для отмены этого необходимо в команде Tools/Debugger Options/Language Exceptions убрать флаг у опции Stop on Lazarus Exceptions.
6. Измените алгоритм расчета с учетом Индекса массы тела.
Вес – X,
Рост – Y.
Индекс массы тела – A, где A = X / Y2 (кг/м2)
Результат определяется по таблице:
Значение индекса | Результат (сообщение, которое надо вывести) | |
A < 18 | Большой недовес | |
18 <= A < 20 | Маловато и небезопасно, можно получить истощение | |
20 <= A <= 25 | Идеально | |
26 <=A <=30 | Легкий недобор | |
30 < A | Срочно нужно худеть |
Практическая работа №7
Постановка задачи
![]() | Создать программу, с помощью которой пользователь мог бы увидеть в зависимости от значений насыщенности красного, зеленого и синего результирующий цвет. |
Новым в этой работе являются: · полос прокрутки ScrollBar для ввода данных, · компонента Panel, · функций преобразования значений цветовых составляющих – TColorRef. |
Задание для самостоятельного выполнения, №7
Задание | Подсказка | |
Поместить на форму кнопку выхода из программы. | ||
Предусмотреть, чтобы при запуске программы были установлены начальные цвета панелей в зависимости от исходных значений ползунков. | Поместить в событие при создании формы (OnCreate для Form1) обработку значений позиции ScrollBar1, ScrollBar2 и ScrollBar3. | |
Внесите изменения так, чтобы выводились на экран значение кода цвета ни только в десятичной системе счисления, но и в шестнадцатеричной системе счисления. | Добавить объект Label4. Поместить в событие по изменению полосы прокрутки ScrollBar (RedBar) дополнительную строку, изменяющую свойство нового компонента Label4: Label4.Caption:=Format('0x%x', [RedBar.Position]); Или можно воспользоваться функцией IntToHex. |
Практическая работа №8
Постановка задачи
Создать программу, выполняющую следующие действия.
![]() | После запуска программы появляется изображение аналогичное рисунку. Пользователь, перемещаясь с помощью клавиш-стрелок по левому списку "Физических величин", выбирает любое слово, нажав клавишу Enter. |
Затем пользователь переходит в правый список "Названий физических величин" и выбирает соответствующее название ранее выбранной физической величины.
Если выбрано правильное название величины, то под словом “ОЦЕНКА” появляется одобрительная реплика: Правильно, если выбрано неправильное слово, то - Ошибка. Снова можно выбрать физическую величину и найти ей правильное название до тех пор, пока не будет найдено соответствие всех
физических величин и их названий.
Новым в этой работе является: · взаимодействие двух списков ListBox на основе свойств Items и ItemIndex, · создание многострочных надписей в компоненте Label. |
Задание для самостоятельного выполнения, №8
Задание | Подсказка | |
Списки ListBox1 и ListBox2 сделать поочередно доступными после нажатия клавиши Enter. | В Object Inspector свойству Enabled компонента ListBox2 придать значение False, а в процедуру KeyPressed, относящуюся к ListBox1, включить строки: ListBox2.Enabled := True; ListBox1.Enabled := False; Form1.ActiveControl := ListBox2; | |
Выполнить проект так, чтобы при правильном выборе названия физической величины слово в левом списке исчезало. | В процедуру KeyPressed, относящуюся к ListBox2, там, где обрабатывается правильный ответ, включить: ListBox1.Items.Delete(Num1); ListBox1.Items.Insert(Num1, ‘’); | |
Расширить количество физических величин до 10. Внести необходимые изменения в программу. |
Практическая работа №9
Постановка задачи
Создать программу, выполняющую следующие действия.
После запуска программы появляется изображение аналогичное рисунку 16. Пользователь по своему усмотрению выбирает один из переключателей в группе. В зависимости от правильности ответов появляется одно из сообщений "Плохо", "Удовлетворительно", "Хорошо", "Отлично".
Новым в этой работе являются: · группа переключателей RadioGroup на странице палитры компонентов Standard, · оператор вывода сообщений ShowMessage. |
Задание для самостоятельного выполнения, №9
Задание | Подсказка | |
Для контроля правильности работы программы вывести на панель набранную пользователем сумму баллов. | Заголовку соответствующей панели (или метки) присвоить значение IntToStr(sum). | |
Запустите программу и убедитесь, что верная сумма баллов получается лишь при последовательном выборе переключателей сначала из RadioGroup1, затем из RadioGroup2 и т.д. Если порядок нарушен, то результат может быть неверным. Чтобы этого не случилось, вставьте дополнительную кнопку и сделайте подсчет баллов только после ее нажатия | ||
Сделайте возможным повторный запуск программы. | ||
Для наглядности вывести результат разным цветом. | В оператор Case при выводе результата задать свойству Font.Color выбранный цвет. Например: Panel1.Font.Color:=clRed; | |
Усовершенствуйте программу, введя в раздел описания массив констант с номерами правильных ответов, а в программе только сравнивайте индекс переключателя со значением константы. |
Практическая работа №10
Постановка задачи
Создать проект, состоящий из нескольких форм: титульной формы, формы меню, формы помощи и формы непосредственно теста.
В зависимости от правильности ответов на тест, который состоит из нескольких разделов (в свою очередь в разделе может быть несколько вопросов), подсчитывается результат и выставляется оценка по каждому разделу.
Новыми в этой программе являются: · использование в проекте нескольких форм и организация вызова этих форм, · использование шаблона формы Tabbed pages из окна New Items вкладки Forms, · компонента MainMenu (главное меню формы), · компонента Memo (многострочный текстовый редактор), · компонента Image (графический объект) со страницы палитры компонентов Additional, · компонента PageControl (набор панелей с закладками). |
Задание для самостоятельного выполнения, №10
Задание | |
Создайте тестирующую программу по истории, литературе, математике или какому-либо другому предмету. | |
Дополните программу разделом "Содержание изучаемой темы". | |
Внесите изменения в программу так, чтобы в начале запрашивалось Имя тестируемого, которое выводилось бы на экран при выдаче результата прохождения теста. | |
Для наглядности вывести результат разным цветом. | |
Усовершенствуйте программу, введя в раздел описания массив констант с номерами правильных ответов, а в программе только сравнивайте индекс переключателя со значением константы. |
Практические работы в среде визуального программирования Lazarus