Главная страница «Первого сентября»Главная страница журнала «Информатика»Содержание №15/2008


Материалы к уроку

Задания для выполнения в среде Borland Delphi

Изменение значений свойств компонентов и формы

1.1. В центре формы расположите 4 кнопки, сохранив исходные надписи на них (см. рис. 1.1).

Рис. 1.1

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

1.2. В центре формы расположите 4 кнопки, сохранив исходные надписи на них (см. рис. 1.1). Разработайте проект, в котором при щелчке на той или иной кнопке она будет перемещаться в соответствующем направлении на некоторую величину.

1.3. В центре формы расположите 4 кнопки, сохранив исходные надписи на них (см. рис. 1.1). Разработайте проект, в котором при щелчке на той или иной кнопке цвет формы будет меняться.

1.4. В центре формы расположите 4 кнопки, сохранив исходные надписи на них (см. рис. 1.1). Разработайте проект, в котором при щелчке на той или иной кнопке форма будет смещаться в соответствующем направлении на некоторую величину.

1.5. В центре формы расположите 4 кнопки, сохранив исходные надписи на них (см. рис. 1.1). Разработайте проект, в котором при щелчке на той или иной кнопке размер формы будет увеличиваться влево, вправо, вниз или вверх на некоторую величину.

1.6. В центре формы расположите 4 кнопки (см. рис. 1.2). Разработайте проект, в котором при щелчке на той или иной кнопке она переместится в соответствую-
щий угол формы (ЛВ — левый верхний, ПВ — правый верхний, ЛВ — левый нижний, ПН — правый нижний).

Рис. 1.2

1.7. В центре формы расположите 4 кнопки (см. рис. 1.3). Разработайте проект, в котором при щелчке на той или иной кнопке форма переместится в соответствующий угол экрана (ЛВ — левый верхний, ПВ — правый верхний, ЛВ — левый нижний, ПН — правый нижний).

Рис. 1.3

1.8. Разработайте проект, в котором по щелчку на той или иной из двух кнопок:

а) компонент Label становится невидимым или видимым;

б) третья кнопка становится неактивной или активной;

в) компонент Memo становится невидимым или видимым;

г) компонент Edit становится неактивным или активным.

1.9. Разработайте проект, в котором цвет компонента Panel меняется путем задания интенсивности красного цвета с помощью окна ввода (см. рис. 1.4).

Рис. 1.4

1.10. Разработайте проект, в котором при щелчке на кнопках происходит увеличение или уменьшение размера шрифта надписи (см. рис. 1.5). Исходный размер принять равным 12 пт, шаг изменения — 8 пт. При достижении размера шрифта 52 пт кнопка с надписью Увеличить должна быть отключена (см. рис. 1.6), а при уменьшении размера шрифта до 8 пт должна быть отключена вторая кнопка, при этом активизирована первая.

Рис. 1.5

Рис. 1.6

2. Простейшие расчеты

2.1. Разработайте проект для расчета:

а) среднего арифметического и среднего геометрического двух заданных чисел (среднее геометрическое двух чисел равно квадратному корню из их произведения);

б) площади круга и длины окружности по заданному радиусу;

в) длины гипотенузы и площади прямоугольного треугольника по известным катетам;

г) площади поверхности и объема цилиндра по заданным размерам радиуса и высоты цилиндра;

д) пройденного пути, по заданным значениям начальной скорости, ускорения и продолжительности движения;

е) объема и полной поверхности куба с заданной длиной его ребра.

Ввод исходных данных и вывод результатов должны проводиться с помощью компонентов Edit.

Варианты проектов — вывод ответов должен выполняться с помощью процедуры ShowMessage.

2.2. Разработайте проект, в котором происходит перевод значения величины из одной единицы измерения в другую. Например, для перевода массы в граммах в массу в фунтах форма должна иметь вид, показанный на рис. 2.1.

Рис. 2.1

Для вывода значения в новых единицах измерения используйте компонент Memo или Edit.

Варианты проектов

1. Перевод расстояния в сантиметрах в расстояние в дюймах. Один дюйм равен 2,54 см.

2. Перевод количества теплоты в калориях в количество теплоты в джоулях. Одна калория равна 4,19 Дж.

3. Перевод расстояния в километрах в расстояние в милях. 5 миль соответствуют 8 км.

4. Перевод атмосферного давления в миллиметрах ртутного столба в давление в паскалях. Один миллиметр ртутного столба соответствует 133 Па.

2.3. Разработайте проект, в котором происходит перевод значения величины из одной единицы измерения в другую. Результат должен представляться в виде, показанном на рис. 2.2 (для перевода массы в граммах в массу в фунтах).

Рис. 2.2

Для вывода значения в новых единицах измерения используйте компонент Memo или Edit.

Варианты проектов

1. Перевод расстояния в сантиметрах в расстояние в дюймах. Один дюйм равен 2,54 см.

2. Перевод количества теплоты в калориях в количество теплоты в джоулях. Одна калория равна 4,19 Дж.

3. Перевод расстояния в километрах в расстояние в милях. 5 миль соответствуют 8 км.

4. Перевод атмосферного давления в миллиметрах ртутного столба в давление в паскалях. Один миллиметр ртутного столба соответствует 133 Па.

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

.

Рис. 2.3

Рис. 2.4

Варианты проектов

1. Перевод расстояния в сантиметрах в расстояние в дюймах. Один дюйм равен 2,54 см.

2. Перевод количества теплоты в калориях в количество теплоты в джоулях. Одна калория равна 4,19 Дж.

3. Перевод расстояния в километрах в расстояние в милях. 5 миль соответствуют 8 км.

4. Перевод атмосферного давления в миллиметрах ртутного столба в давление в паскалях. Один миллиметр ртутного столба соответствует 133 Па.

2.5. Разработайте проект для расчета:

— длины гипотенузы и площади прямоугольного треугольника по известным катетам. Если полученная площадь будет больше 50, то размер шрифта формы должен быть изменен на 20 пт;

— площади поверхности и объема цилиндра по заданным размерам радиуса и высоты цилиндра. Если полученная площадь будет меньше 30, то стиль шрифта формы должен быть изменен на курсив;

— объема и полной поверхности куба с заданной длиной его ребра. Если полученный объем будет больше 40, то цвет шрифта формы должен быть изменен на красный;

— пройденного пути, если заданы начальная скорость, ускорение и продолжительность движения. Если полученный результат будет меньше 30, то размер шрифта результатов расчета должен быть изменен на 18 пт.

Ввод исходных данных и вывод результатов должны проводиться с помощью компонентов Edit.

2.6. Разработайте проект для расчета катета прямоугольного треугольника по известным размерам второго катета и гипотенузы данного треугольника. Величина известного катета должна задаваться с помощью компонента Edit, а гипотенузы — с использованием окна ввода. Если заданное значение катета будет больше значения гипотенузы, используйте функцию MessageDlg для вывода соответствующего сообщения.

2.7. Разработайте проект для решения линейных уравнений вида ax + b = 0 (при a 0). При вводе исходных данных форма должна иметь вид, показанный на рис.2.5.

Рис. 2.5

Результат должен выводиться в виде, представленном на рис. 2.6.

Рис. 2.6

В случае, когда делается попытка расчета при незаданном значении коэффициента а, должно выводиться соответствующее сообщение (см. рис. 2.7).

Рис. 2.7

2.8. Разработайте проект для решения квадратных уравнений вида ax2 + bx + c = 0 (при a 0). При вводе исходных данных форма должна иметь вид, показанный на рис. 2.8.

Рис. 2.8

Результат должен выводиться в виде, представленном на рис. 2.9. В случае отсутствия корней должно выводиться соответствующее сообщение (см. рис. 2.10).

Рис. 2.9

Рис. 2.10

Вариант проекта: при вводе значения a = 0 должно выводиться соответствующее сообщение.

2.9. Разработайте проект, в котором выводится ответ на вопрос:

а) поместится ли круг в квадрате, если известны площади круга и квадрата;

б) поместится ли квадрат в круге, если известны площади круга и квадрата;

в) пройдет ли шкаф с заданными размерами в дверь?

3. Использование компонентов СheckBox, ListBox, RadioButton, ComboBox и ScrollBar

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

Рис. 3.1

Примечания

1. Стиль шрифта задается значением свойства Memo1.Font.Style и представляет собой значение типа “множество”, цвет символов — значением свойства Memo1.Font.Color.

2. Константа, соответствующая курсивному начертанию шрифта редактора Memo, имеет имя fsItalic, соответствующая красному цвету символов — clRed, черному цвету — clBlack. Стиль шрифта по умолчанию представляет собой “пустое” множество ([]).

3.2. Разработайте проект для перерасчета массы в граммах в массу в фунтах, пудах, унциях, драхмах или гранах
(1 фунт = 454 г, 1 пуд = 16?380 г, 1 унция = 28,35 г, 1 драхма = 1,772 г, 1 гран = 0,0648 г). Выбор новой единицы измерения должен проводиться с помощью компонента ListBox, ввод исходных данных и вывод результата — с помощью компонента Edit:

Рис. 3.2

Указания по выполнению

1. Если значение массы в граммах не введено, должно выводиться соответствующее сообщение.

2. Предусмотрите вывод результатов с двумя знаками после запятой.

3.3. Разработайте проект для перерасчета значения расстояния в сантиметрах в значения в дюймах, футах, ярдах и милях (1 дюйм = 2,54 см, 1 фут = 0,3048 м,
1 ярд = 91,44 см, 1 миля = 1,609 км). Выбор новой единицы измерения должен проводиться с помощью компонента ListBox, ввод исходных данных — с помощью компонента Edit, вывод результата — с помощью компонента Memo (каждое значение — на новую строчку).

3.4. Разработайте проект, в котором вид фигуры в компоненте Shape (окружность, квадрат, прямоугольник или эллипс) выбирается с помощью компонента ListBox.

3.5. Разработайте проект, в котором происходит изменение цвета фигуры (Shape) с помощью компонента ListBox.

3.6. Разработайте проект, в котором над двумя заданными числами выполняется одно из двух действий — сложение или умножение (см. рис. 3.3).

Рис. 3.3

3.7. Разработайте проект, в котором вид фигуры в компоненте Shape (окружность, квадрат, прямоугольник или эллипс) выбирается с помощью компонентов RadioButton (см. рис. 3.4).

3.8. Разработайте проект, в котором цвет символов в компоненте Memo меняется с помощью компонента RadioButton.

3.9. Разработайте проект, в котором происходит выбор фамилии из списка с использованием компонента ComboBox (см. рис. 3.5 и 3.6).

Рис. 3.4

Рис. 3.5

Рис. 3.6

3.10. Выполните задания 3.2–3.5 с использованием компонента ComboBox.

3.11. Разработайте проект, в котором вид фигуры в компоненте Shape (круг, квадрат, прямоугольник или эллипс) выбирается с помощью компонента ComboBox.

3.12. Разработайте проект, в котором происходит изменение стиля закраски фигуры (Shape) с помощью компонента ComboBox.

3.13. Разработайте проект, в котором показываются максимальное и минимальное значения компонента ScrollBar, а также значение, соответствующее текущему положению ползунка (см. рис. 3.7 и 3.8).

Рис. 3.7

Рис. 3.8

3.14. Разработайте проект, в котором цвет компонента Panel меняется путем задания интенсивности каждого из трех базовых цветов с помощью полос прокрутки. Установленная интенсивность каждого цвета должна выводиться на компонентах Label.

4. Использование компонента Timer (Таймер) 2

4.1. Создайте изображение стилизованного лица из компонентов Shape и запрограммируйте моргание (опускание и подъем “век”) при щелчках на кнопке (см. рис. 4.1).

Рис. 4.1

Указания по выполнению

1. Для создания простейших геометрических фигур на форме можно использовать компонент Shape (панель компонентов Additional). Вид фигуры задается свойством Shape, которое может принимать значения, соответствующие различным фигурам (квадрат, прямоугольник, эллипс и др.). Для задания цвета и способа заливки используется свойство Brush, свойство Pen отвечает за цвет контура, свойства Left, Top, Width и Height имеют такие же значения, как и у других компонентов.

2. Моргание можно имитировать, увеличивая и уменьшая высоту век.

4.2. Измените проект, созданный для решения предыдущей задачи, так, чтобы изменялось изображение рта, появлялись уши при нажатии на соответствующие компоненты.

Указание по выполнению

Запрограммировать нужно процедуру обработки события MouseDown для того или иного компонента.

4.3. Разработайте проект, в котором происходит горизонтальное перемещение “шарика” (закрашенной окружности) при щелчке на кнопке (см. рис. 4.2). Окружность должна двигаться по компоненту Panel вправо и при достижении его правой границы должна появляться у левой границы и вновь двигаться вправо.

Рис. 4.2

4.4. Разработайте проект, в котором происходит вертикальное перемещение “шарика” (закрашенной окружности) при щелчке на кнопке (см. рис. 4.3). Окружность должна двигаться по компоненту Panel вниз и при достижении его нижней границы должна появляться у верхней границы и вновь двигаться вниз.

Примечание. При размещении компонента Shape на компоненте Panel значения свойств, определяющих положение фигуры, измеряются относительно границ панели.

4.5. Создайте изображение стилизованного лица из компонентов Shape и запрограммируйте автоматическое моргание (опускание и подъем “век”), используя компонент Timer (Таймер) (см. рис. 4.4).

Рис. 4.3

Рис. 4.4

Указания по выполнению

1. Компонент Timer размещен на панели компонентов System. Он является невизуальным, т.е. не виден во время выполнения приложения, поэтому его можно помещать в любое место формы. Когда этот компонент включен (значение свойства Enabled равно True), действия, запрограммированные в процедуре TForm1.Timer1Timer, будут автоматически повторяться через определенные промежутки времени (свойство Interval, значение устанавливается в миллисекундах).

2. По щелчку на кнопке с надписью Пуск таймер следует активизировать, задав также значение свойства Interval.

3. В процедуре TForm1.Timer1Timer необходимо предусмотреть постепенное увеличение размеров “век”, а при превышении некоторого размера они должны принимать исходные значения.

4.6. Измените проект, созданный для решения предыдущей задачи, так, чтобы автоматически изменялось изображение рта.

4.7. Разработайте проект, в котором:

а) происходит непрерывное горизонтальное перемещение “шарика” на компоненте Panel. При касании “шариком” правой или левой границ панели он должен двигаться в противоположном направлении;

б) происходит непрерывное вертикальное перемещение “шарика” на компоненте Panel. При касании “шариком” нижней или верхней границ панели он должен двигаться в противоположном направлении.

Указания по выполнению

1. Используйте компонент Timer.

2. Изменение положения фигуры можно обеспечить изменением значения свойств Left и/или Top на некоторую величину. Начальное значение этой величины задается вместе с активизацией таймера. При касании “шариком” границ панели знак значения этой величины должен меняться на противоположный. Для этого указанная величина должна быть описана как переменная уровня модуля.

3. Предусмотрите кнопку, по щелчку на которой движение прекратится.

Вариант проекта

Вид движущегося объекта должен выбираться в зависимости от числа, вводимого в компонент Edit. Пусть 1 обозначает окружность, 2 — квадрат, 3 — прямоугольник, 4 – эллипс.

Указания по выполнению

1. Значения свойства Shape компонента с таким же именем, соответствующие перечисленным фигурам, узнайте самостоятельно, проанализировав Obiect Inspector (Инспектор объектов).

2. После ввода номера фигуры компонент Edit должен исчезать, после остановки движения — вновь появляться на форме.

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

Указания по выполнению

1. Начальная форма фигуры должна задаваться при открытии формы (в процедуре TForm1.FormCreate). Так же должен активизироваться компонент Timer.

2. Значения свойства Shape компонента с таким же именем, соответствующие перечисленным фигурам, узнайте самостоятельно, проанализировав Obiect Inspector (Инспектор объектов).

5. Графика

5.1. Разработайте проект, в котором при щелчке на кнопке с надписью Нарисовать появляется изображение, показанное на рис. 5.1.

Рис. 5.2

5.2. Разработайте проект “Лягушка с вращающимися глазами”, в котором при нажатии на кнопку с надписью Пуск глаза начинают “светиться” (см. рис. 5.2). Это можно сымитировать путем многократного рисования линии от центра “глаза” до окружности (координаты конечной точки рассчитываются с использованием косинуса и синуса угла поворота). Цвет должен выбираться случайным образом.

Рис. 5.2

5.3. Разработайте проект, в котором имитируется движение секундной стрелки часов.

Указания по выполнению

Для создания паузы между двумя положениями “стрелки” используйте процедуру Sleep. Значение ее параметра подберите экспериментально.

6. Использование меню

6.1. Разработайте проект, в котором в главном меню отражены названия времен года, а в выпадающих меню — названия соответствующих месяцев каждого времени года (см. рис. 6.1).

Рис. 6.1

При выборе того или иного месяца должно выводиться количество дней в этом месяце (для февраля — в невисокосном году).

Вариант задания. При выборе того или иного месяца в компонент Memo должен выводиться некоторый текст, связанный, по вашему мнению, с данным месяцем.

6.2. Разработайте проект, в котором:

— дается определение простого числа;

— определяется, является ли некоторое натуральное число простым или нет;

— выводятся все простые числа в заданном интервале (см. рис. 6.2–6.4).

Проверяемое число и границы интервала проверяемых чисел должны задаваться с помощью функции InputBox.

Рис. 6.2

Рис. 6.3

Рис. 6.4

6.3. Разработайте проект, в котором:

— дается определение совершенного числа;

— определяется, является ли некоторое натуральное число совершенным или нет;

— выводятся все совершенные числа в заданном интервале.

Проверяемое число и границы интервала проверяемых чисел должны задаваться с помощью функции InputBox.

Примечание. Совершенным называется число, равное сумме всех своих делителей (например, таким является число 6: 6 = 1 + 2 + 3).

6.4. Разработайте проект, в котором характер выравнивания текста надписи устанавливается с помощью контекстного меню (см. рис. 6.5 и 6.6).

Рис. 6.5

Рис. 6.6

Указания по выполнению

1. Значение свойства AutoSise надписи установите в False. Это даст возможность изменять характер выравнивания текста.

2. Свойство компонентов, отвечающее за выравнивание текста, — Alignment — может принимать значения taCenter, taLeftJustify, taRightJustify.

6.5. Разработайте проект, в котором начертание символов компонента Memo (полужирное, курсивное, с подчеркиванием) можно выбрать с помощью контекстного меню.

Примечание. Стиль шрифта задается значением свойства Memo1.Font.Style и представляет собой значение типа “множество”. Константа, соответствующая курсивному начертанию, имеет имя fsItalic, полужирному — fsBold, с подчеркиванием — fsUnderline. Стиль шрифта по умолчанию представляет собой “пустое” множество ([]).

6.6. Разработайте проект, в котором для полосы прокрутки с помощью контекстного меню можно узнать максимальное и минимальное значения, а также значение, соответствующее текущему положению ползунка (см. рис. 6.7 и 6.8).

Указания по выполнению

Минимальное и максимальное значения компонента ScroollBar установите отличающимися от принятых по умолчанию.

Рис. 6.7

Рис. 6.8

7. Организация диалогов

7.1. Создайте проект, в котором в компонент Memo можно загрузить текст из некоторого файла, сохранить набранный текст в некотором файле, переименовать файл с имеющимся текстом и создать новый (“пустой”) файл (см. рис. 7.1–7.3).

Рис. 7.1

Рис. 7.2

Рис. 7.3

7.2. Создайте проект, в котором в компоненте Memo можно менять цвет, размер и начертание символов (см. рис. 7.4–7.5).

Рис. 7.4

Рис. 7.5


1 При изменении названий некоторых компонентов и свойств компонентов задания могут быть использованы и при изучении языка Visual Basic. — Прим. ред.

2 Перед заданиями с использованием компонента Timer приведены более простые “подготовительные” задания.

Н.. А.. Медведькова,
учитель информатики гимназии №40, г. Калининград

TopList