Практические работы в среде визуального программирования 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