Практические работы «Основы программирования. Lazarus».
Практическая работа №9. Зачетная работа по программированию…..
Lazarus это бесплатный инструмент разработки с открытым кодом. Он представляет собой среду с графическим интерфейсом для быстрой разработки программ, аналогичную Delphi, и базируется на оригинальной кроссплатформенной библиотеке визуальных компонентов Lazarus Component Library, совместимых с Delphi. В состав входят и не визуальные компоненты. Такого набора достаточно для создания программ с графическим интерфейсом и приложений, работающих с базами данных и Интернетом.
В среде Lazarus используются собственный формат управления пакетами и свои файлы проектов.
Lazarus это стабильная богатая возможностями среда разработки для создания самостоятельных графических и консольных приложений. В настоящее время она работает на Linux, FreeBSD и Windows и предоставляет настраиваемый редактор кода и визуальную среду создания форм вместе с менеджером пакетов, отладчиком и графическим интерфейсом, полностью интегрированным с компилятором FreePascal.
Рассмотрим основные элементы среды разработки Lazarus. Среда Lazarus состоит из нескольких, вообще говоря, не связанных окон.
С помощью этого окна можно управлять процессом разработки приложения. В нем предусмотрены команды управления файлами, компиляцией, редактированием, окнами и т.д. Окно разбито на три функциональных блока: Главное меню. В нем расположены команды управления файлами, команды управления компиляцией и свойствами всего приложения, команды управления окнами и настройками среды и многое другое. Меню располагается в верхней части основного окна.
Панель инструментов . Панель инструментов предоставляет быстрый доступ к основным командам главного меню. Она расположена в левой части главного окна, под главным меню.
Палитра компонентов . Предоставляет доступ к основным компонентам среды разработки, например: поле ввода, надпись, меню, кнопка и т.п.
В верхней части окна показывается иерархия объектов, а снизу, расположены три вкладки: «Свойства», «События», «Избранное». Назначение инспектора объекта – это просмотр всех свойств и методов объектов. На вкладке «Свойства» перечисляются все свойства выбранного объекта. На вкладке «События» перечисляются все события для объекта. На вкладке «Избранное» избранные свойства и методы.
3. Редактор исходного кода Lazarus.
Именно в этом окне мы будем набирать тексты своих программ. Многие функции и возможности этого редактора совпадают с возможностями обычных текстовых редакторов, например Блокнота. Текст в редакторе можно выделять, копировать, вырезать, вставлять. Кроме того, в редакторе можно осуществлять поиск заданного фрагмента текста, выполнять вставку и замену. Но, конечно, этот редактор исходных текстов Lazarus обладает еще рядом дополнительных возможностей для комфортной работы применительно к разработке программ. Основное преимущество редактора заключается в том, что он обладает возможностями подсветки синтаксиса, причем не только Pascal, но и других языков, а также рядом других удобств. В частности, выделенный фрагмент текста можно сдвигать вправо или влево на количество позиций, указанных в настройках Окружение ->Параметры…->Редактор -> Общие -> Отступ блока, что очень удобно для форматирования с целью структурирования кода. Выделенный фрагмент можно закомментировать или раскомментировать, перевести в верхний или нижний регистр и т.д.
В этом окне выводятся сообщения компилятора, компоновщика и отладчика.
Практическая работа №1 «Первый проект».
Цель: создать программу, выполняющую следующие действия. После запуска программы по щелчку мышью на кнопке «Приветствие» появляется сообщение «Первые успехи!». Для выхода из программы необходимо щелкнуть мышью на кнопке «Выход».
2. Разместите на форме экземпляры компонентов: метку Label и две кнопки Button.
3. Выделите метку Label, перейдите в Object Inspector (инспектор объектов) на вкладку Properties (Свойства), найдите свойство Caption (заголовок) и очистите Label1.
4. Выделите кнопку Button2, перейдите в Object Inspector на вкладку Properties, найдите свойство Caption и измените Button2 на заголовок «Выход». Дважды щелкните по кнопке, чтобы перейти в окно редактора исходного кода для данного объекта. Оказавшись в коде программы, точнее, в заготовке процедуры TForm1.Button2Click, напишите лишь одну команду Close; (обязательно поставьте точку с запятой после «Close»!).
5. Сохраните код программы и проект (для каждой программы необходимо создавать отдельную папку!).
6. Запустите программу, затем закройте окно проекта, щелкнув на кнопке «Выход».
7. Выделите форму, в свойстве Caption окна Object Inspector замените слово Form1 на «Мой проект». Это и будет заголовком основного окна программы.
8. Выделите кнопку Button1, в свойстве Caption окна Object Inspector замените слово Button1 на название копки «Приветствие». При необходимости увеличьте длину кнопки.
9. Перейдите в окно редактора кода для кнопки Button1. Введите следующий код:
Label1.Caption:= ’Первые успехи!’;
Кавычки обязательно должны быть одиночными (на английской раскладке клавиша с буквой Э).
Эта команда присваивает метке Label1 заголовок «Первые успехи!».
10. Сохраните проект окончательно, запустите и протестируйте его.
Задание для самостоятельного выполнения.
1. Сделайте шрифт выводимой реплики «Первые успехи!» отличным от стандартного по виду, цвету и размеру.
Подсказка. В Object Inspector дважды щелкните на кнопку справа от названия свойства Font (шрифт), откроется окно выбора шрифта, его цвета и стиля.
2. Замените вид кнопки «Выход» на более привлекательный.
Подсказка. Для замены кнопки надо удалить существующую, а другую кнопку найдите в палитре компонентов на вкладке Additional. Она называется BitBtn. Затем измените ее вид с помощью свойства Kind.
3. Сделайте так, чтобы после нажатия кнопки «Приветствие» на экране появлялось сообщение «Первые и не последние!».
Подсказка. Измените значение свойства Caption метки Label1 при реакции кнопки Button1 на нажатие.
4. Запустите исполняемый файл не в среде Lazarus, а в Windows.
Подсказка. Выйдите из Lazarus в Windows. Используйте диспетчер программ или проводник Windows.
Практическая работа №2 «Угадай число».
Цель: создать программу, которая будет генерировать случайные числа от нуля до десяти и сверять их с введенными с клавиатуры.
2. Разместите на форме экземпляры компонентов: две метки Label , окно редактирования Edit , и две кнопки Button .
3. Выделите метку Label1, перейдите в Object Inspector на вкладку Properties, найдите свойство Caption и измените Label1 на заголовок «Введите Ваш ответ».
4. Очистите содержимое свойства Caption у метки Label2.
5. Выделите окно редактирования Edit , перейдите в Object Inspector на вкладку Properties, найдите свойство Text и очистите его содержимое.
6. Аналогичным образом у кнопки Button1 в свойстве Caption прописать «Сгенерировать», у Button2 в свойстве Caption прописать «Проверить».
7. Перейдите в окно редактора кода для кнопки Button1. Введите следующий код:
8. Перейдите в окно редактора кода для кнопки Button2. Введите следующий код:
if b>a then Label2.Caption:=’ Меньше ‘;
if b=a then Label2.Caption:=’ Угадал ‘;
9. В окне редактора исходного кода найдите оператор описания переменных var и пропишите переменные b, a, присвоив им целочисленный тип данных ( Integer ):
10. Выделите форму, в свойстве Caption окна Object Inspector замените слово Form 1 на «Угадай число».
11. Сохраните проект в новой папке, запустите и протестируйте его.
Задание для самостоятельного выполнения.
Используя генератор случайных чисел, напишите программу «Орел и решко», в которой при нажатии на кнопку в окне редактора Edit будет выдаваться «орел» или «решко».
Подсказка. Можно в генераторе сократить числовой интервал до 1 (0 и 1) и каждой цифре присвоить значение «орел» или «решко».
Практическая работа №3 «Светофор».
Цель: создать программу, в которой окружности поочередно будут менять цвета аналогично светофору.
2. Разместите на форме экземпляры компонентов: три фигуры Shape (вкладка Additional ) и объект Timer (вкладка System ).
3. Выделите фигуру Shape 1, перейдите в Object Inspector на вкладку Properties, найдите свойство Shape и выберете stCircle.
Квадрат станет окружностью. Аналогичным образом поступите и с двумя другими фигурами.
4. Выделите объект Timer, перейдите в Object Inspector на вкладку Properties, найдите свойство Interval и измените значение на 5.
Так Вы уменьшите интервал между сменой цветов в светофоре.
Так как смена цветов будет протекать циклически, используем оператор выбора case. Он обеспечивает структурированный эквивалент последовательности условных операторов той же самой переменной. Оператор case более изящен, более эффективен, и его проще обслуживать чем множество вложений if.
5. Перейдите в окно редактора кода для объекта Timer. Работать будем только с ним. Введите следующий код :
0: begin Shape1.Brush.Color:=clRed;
Здесь при помощи оператора выбора в начальный момент времени ( i =0) присваиваем значения цвета каждой фигуре.
6. Аналогично пропишем 1 и 2 моменты времени, заменяя цвета и закроем оператор выбора словом end;.
7. Необходимо, чтобы таймер автоматически отсчитывал моменты времени. Для этого используем процедуру inc . После закрытия case пропишем ниже:
8. Обнуляем таймер, чтобы после загорания зеленого цвета программа начинала с самого начала.
9. В окне редактора исходного кода найдите оператор описания переменных var и пропишите переменную i , присвоив ей целочисленный тип данных:
10. Выделите форму, в свойстве Caption окна Object Inspector замените слово Form1 на «Угадай число».
11. Сохраните проект в новой папке, запустите и протестируйте его.
Задание для самостоятельного выполнения.
Добавьте кнопку, по нажатию на которую можно будет переключать цвета в светофоре самостоятельно.
Подсказка. Для переключения используйте объект RadioGroup. По нажатию на кнопку Button таймер отключается и включается RadioGroup.
Практическая работа №4 «Побег картинки».
Цель: создать программу, в которой по нажатию на кнопки картинка начнет перемещаться, исчезать, появляться и менять свои размеры.
2. Разместите на форме экземпляры компонентов: 8 кнопок Button и объект Image (вкладка Additional ).
3. Переименуйте кнопки согласно картинке выше.
4. Выделите объект Image , перейдите в Object Inspector на вкладку Properties, найдите свойство Picture и загрузите картинку.
5. В свойстве Proportional измените значение на true . Так картинка сохранит пропорции и целиком поместится в объект Image .
6. Выделите объект Button , который подписан как «Вверх». Перейдите в окно редактора кода и пропишите следующий код:
Свойство Top отвечает за вертикальное перемещение картинки, 30 – шаг. Минус заставляет картинку перемещаться вверх.
Аналогичным образом повторите для кнопки «Вниз», используя то же свойство, но со знаком плюс.
7. Выделите объект Button , который подписан как «Влево». Перейдите в окно редактора кода и пропишите следующий код:
Image1.Left:= Image1.Left — 30;
Свойство Left отвечает за горизонтальное перемещение картинки. Минус заставляет картинку перемещаться влево.
Аналогичным образом повторите для кнопки «Вправо», используя то же свойство, но со знаком плюс.
8. Выделите объект Button , который подписан как «Уменьшить». Перейдите в окно редактора кода и пропишите следующий код:
Image1.Height:= Image1.Height — 30;
Image 1. Width := Image 1. Width — 30;
Свойство Height отвечает за высоту картинки. Свойство Width отвечает за ширину картинки. Минус заставляет картинку уменьшать исходные показатели.
Аналогичным образом повторите для кнопки «Увеличить», используя то же свойство, но со знаком плюс.
9. Выделите объект Button, который подписан как «Видимый». Перейдите в окно редактора кода и пропишите следующий код:
if Image1.Visible=true then Image1.Visible:=false else
Свойство Visible отвечает за видимость объекта на форме. При помощи функции if задаем условие, что при видимости картинки она исчезает и наоборот.
10. Пропишите код для кнопки закрытия формы.
11. Выделите форму, в свойстве Caption окна Object Inspector замените слово Form1 на «Картинка».
12. Сохраните проект в новой папке, запустите и протестируйте его.
Задание для самостоятельного выполнения.
1. Сделайте так, чтобы при нажатии на кнопку «Видимый» менялся текст согласно наличию или отсутствию картинки на форме.
Подсказка. Используйте в написании кода свойство Caption .
2. Добавьте кнопку «Движение по диагонали» и пропишите код для нее.
Подсказка. Используйте свойства перемещения по вертикали и по горизонтали вместе.