Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Блок-схема алгоритма программы



Нет
Нет
dis< 0
Да
Да
НАЧАЛО
Ввести a, d, c
Dis=b2-4*a*c
а=0
Уравнение не имеет действительных корней
Уравнение линейное
X1=-b-sqrt(dis)/(2*a)
X1=-b+sqrt(dis)/(2*a)
x1, x2 Решение квадратного уравнения вида уравнения вида а*x^2+b+x+c=0
КОНЕЦ


Текст программы:

program quadrur;

 

Uses Crt;

var

a, b, c: real;

 

procedure Entering;

begin

Write ('Введите значение a: ');

ReadLn (a);

Write ('Введите значение b: ');

ReadLn (b);

Write ('Введите значение c: ');

ReadLn (c);

end; {procedure Entering}

 

function Dis: real;

begin

dis: = b*b-4*a*c;

end; {function Dis}

 

function Valid: boolean;

begin

Valid: = true;

if a = 0 then

begin

Writeln ('Уравнение линейное');

Valid: = false;

end

else if Dis < 0 then

begin

Writeln ('Уравнение не имеет действительных корней');

Valid: = false;

end;

end; {function Valid}

 

function Results: real;

begin

WriteLn ('x1 = ', (-b-SQRT(dis))/(2*a): 3: 6);

WriteLn ('x2 = ', (-b+SQRT(dis))/(2*a): 3: 6);

end; {function Results}

 

begin

ClrScr;

Write ('Решение квадратного уравнения');

WriteLn (' вида ax^2+bx+c=0');

WriteLn;

Entering;

if Valid = true then

Results;

ReadKey;

end.

Варианты заданий

Общее задание изложено в примере (п. 1).

Программу разработать в ИСР C+++ Builder в консольном режиме.

№ варианта Формулировка задачи
1. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти среднее арифметическое элементов каждого из четных столбцов этой матрицы.
2. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти среднее арифметическое элементов каждого из нечетных столбцов этой матрицы.
3. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти среднее арифметическое элементов каждой из строк этой матрицы.
4. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти среднее арифметическое элементов каждой из четных строк этой матрицы.
5. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти среднее арифметическое элементов каждой из нечетных строк этой матрицы.
6. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти среднее арифметическое из всех отрицательных элементов этой матрицы.
7. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Найти среднее арифметическое из всех положительных элементов этой матрицы.
8. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти характеристику каждой ее строки (сумму положительных четных элементов в каждой строке).
9. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Найти характеристику каждого ее столбца (сумму модулей отрицательных нечетных элементов в каждом столбце).
10. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Найти сумму и произведение всех ее положительных элементов.
11. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти сумму и произведение всех ее отрицательных элементов.
12. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти сумму всех ее положительных и произведение всех ее отрицательных элементов.
13. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти сумму всех ее элементов и заменить ею все диагональные элементы этой матрицы.
14. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти произведение всех ее элементов и заменить им все диагональные элементы этой матрицы.
15. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти минимальное из чисел, встречающееся в данной матрице более одного раза.
16. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти максимальное из чисел, встречающееся в данной матрице более одного раза.
17. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти сумму наибольших элементов каждой строки матрицы и их координаты.
18. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти произведение наибольших элементов каждой строки матрицы и их координаты.
19. Задана квадратная матрица A размером NxN (N< =10), состоящая из действительных элементов. Найти сумму наибольших элементов каждого столбца матрицы и их координаты.
20. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Найти, сколько положительных элементов содержит данная матрица в каждой строке.
21. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Найти, сколько отрицательных элементов содержит данная матрица в каждом столбце.
22. Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент.
23. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее.
24. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Сформировать вектор из суммы элементов строк и найти их среднее арифметическое.
25. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Сформировать вектор из произведения элементов столбцов и найти их среднее арифметическое.
26. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Сформировать вектор из наименьших значений элементов строк и найти их среднее арифметическое.
27. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Сформировать вектор из разностей наибольших и наименьших значений элементов строк.
28. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Найти сумму элементов строки, в которой расположен наименьший элемент.
29. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Найти сумму элементов столбца, в котором расположен наименьший элемент.
30. Задана квадратная матрица A размером NxN (N< =10), состоящая из целых чисел. Поменять местами строку, содержащую максимальный элемент, со строкой, содержащей минимальный элемент.

 

Контрольные вопросы

1. Что такое спецификация программы?

2. Что в себя включает постановка задачи?

3. Что в себя включает анализ требований и определение спецификаций?

4. Какова основная задача проектирования программного продукта?

5. Что такое спецификация переменных?

 


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

Тема: «Тестирование. Разработка тестовых примеров».

Цель работы: научиться тестировать программный модуль на основе тестовых наборов.

Время выполнения: подготовка – 5 мин; выполнение – 75 мин.; проверка – 10 мин; всего – 90 мин.

 

Теоретическая часть

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

1. Методы стратегии ‘белого ящика’

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

1.1. Метод покрытия операторов

Целью этого метода тестирования является выполнение каждого оператора программы хотя бы один раз.

Пример:

Рисунок 1.1 Рисунок 1.2

В этой программе можно выполнить каждый оператор, записав один единственный тест, который реализовал бы путь ace. Т.е., если бы на входе было: А=2, В=0, Х=3, каждый оператор выполнился бы один раз. Но этот критерий на самом деле хуже, чем он кажется на первый взгляд. Пусть в первом условии вместо “and”®“or” и во втором, вместо “x> 1”®“x< 1” (блок-схема правильной программы приведена на рисунке 1.1, а неправильной - на рисунке 2.2). Результаты тестирования приведены в таблице 1.1. Обратите внимание: ожидаемый результат определяется по алгоритму на рисунке 1.1, а фактический - по алгоритму рисунка 1.2, поскольку определяется чувствительность метода тестирования к ошибкам программирования. Как видно из этой таблицы, ни одна из внесенных в алгоритм ошибок не будет обнаружена.

Таблица 1.1 - Результат тестирования методом покрытия операторов

Тест Ожидаемый результат Фактический результат Результат тестирования
A=2, B=0, X=3 X=2, 5 X=2, 5 неуспешно

1.2. Метод покрытия решений (покрытия переходов)

Более сильный метод тестирования известен как покрытие решений (покрытие переходов). Согласно данному методу каждое направление перехода должно быть реализовано, по крайней мере, один раз.

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

Для программы приведенной на рисунке 1.2 покрытие решений может быть выполнено двумя тестами, покрывающими пути {ace, abd}, либо {aсd, abe}. Пути {aсd, abe} покроим, выбрав следующие исходные данные: {A=3, B=0, X=3} и {A=2, B=1, X=1} (результаты тестирования - в таблице 1.2).

Таблица 1.2 - Результат тестирования методом покрытия решений

Тест Ожидаемый результат Фактический результат Результат тестирования
A=3, B=0, X=3 X=1 X=1 неуспешно
А=2, В=1, Х=1 Х=2 Х=1, 5 успешно

1.3 Метод покрытия условий

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

В предыдущем примере имеем четыре условия: {A> 1, B=0}, {A=2, X> 1}. Следовательно, требуется достаточное число тестов, такое, чтобы реализовать ситуации, где A> 1, A£ 1, B=0 и B¹ 0 в точке а и A=2, A¹ 2, X> 1 и X£ 1 в точке В. Тесты, удовлетворяющие критерию покрытия условий и соответствующие им пути:

а) A=2, B=0, X=4 ace

б) A=1, B=1, X=0 abd

Таблица 1.3 - Результаты тестирования методом покрытия условий

Тест Ожидаемый результат Фактический результат Результат тестирования
A=2, B=0, X=4 X=3 X=3 неуспешно
A=1, B=1, X=0 X=0 X=1 успешно

 

1.4 Критерий решений (условий)

Критерий покрытия решений/условий требует такого достаточного набора тестов, чтобы все возможные результаты каждого условия в решении выполнялись, по крайней мере, один раз, все результаты каждого решения выполнялись, по крайней мере, один раз и, кроме того, каждой точке входа передавалось управление, по крайней мере, один раз.

Два теста метода покрытия условий

а) A=2, B=0, X=4 ace

б) A=1, B=1, X=0 abd
отвечают и критерию покрытия решений/условий. Это является следствием того, что одни условия приведенных решений скрывают другие условия в этих решениях. Так, если условие А> 1 будет ложным, транслятор может не проверять условия В=0, поскольку при любом результате условия В=0, результат решения ((А> 1)& (В=0)) примет значение ложь. Следовательно, недостатком критерия покрытия решений/условий является невозможность его применения для выполнения всех результатов всех условий.

Другая реализация рассматриваемого примера приведена на рисунке 1.4. Многоусловные решения исходной программы разбиты на отдельные решения и переходы. Наиболее полное покрытие тестами в этом случае выполняется так, чтобы выполнялись все возможные результаты каждого простого решения. Для этого нужно покрыть пути HILP (тест А=2, В=0, Х=4), HIMKT (тест А=3, В=1, Х=0), HJKT (тест А=0, В=0, Х=0), HJKR (тест А=0, В=0, Х=2)..

Протестировав алгоритм на рисунке 2.3, нетрудно убедиться в том, что критерии покрытия условий и критерии покрытия решений/условий недостаточно чувствительны к ошибкам в логических выражениях.

Рисунок 1.4

1.5 Метод комбинаторного покрытия условий

Критерием, который решает эти и некоторые другие проблемы, является комбинаторное покрытие условий. Он требует создания такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз. Набор тестов, удовлетворяющих критерию комбинаторного покрытия условий, удовлетворяет также и критериям покрытия решений, покрытия условий и покрытия решений/условий.

По этому критерию в рассматриваемом примере должны быть покрыты тестами следующие восемь комбинаций:

а) A> 1, B=0;

б)A> 1, B¹ 0;

в) A£ 1, B=0;

г) А£ 1, B¹ 0;

д) A=2, X> 1;

е) A=2, X£ 1;

ж) А¹ 2, X> 1;

з) А¹ 2, X£ 1;

Для того чтобы протестировать эти комбинации, необязательно использовать все 8 тестов. Фактически они могут быть покрыты четырьмя тестами:

- A=2, B=0, X=4 {покрывает а, д};

- A=2, B=1, X=1 {покрывает б, е};

- A=0, 5, B=0, X=2 {покрывает в, ж};

- A=1, B=0, X=1 {покрывает г, з}.

Таблица 2.4 - Результаты тестирования методом комбинаторного покрытия условий

Тест Ожидаемый результат Фактический результат Результат тестирования
A=2, B=0, X=4 X=3 X=3 неуспешно
A=2, B=1, X=1 X=2 X=1, 5 успешно
A=0, 5 B=0, X=2 X=3 X=4 успешно
A=1, B=0, X=1 X=1 X=1 неуспешно

Порядок выполнения практической работы

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

2. Провести тестирование программы и представить результаты в виде таблицы (Таблицы 1.1-1.4)

3. Оформить отчет по лабораторной работе.

 

Контрольные вопросы

1. Что такое тестирование ПС?

2. Чем тестирование отличается от отладки ПС?

3. Для чего проводится функциональное тестирование?

4. Каковы правила тестирования программы «как черного ящика»?

5. Как проводится тестирования программы по принципу «белого ящика»?

6. Какие методы используются при тестировании программы по принципу «белого ящика»?

 


 

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

Тема: «Отладка программ в ИСР C++ Builder».

Цель работы: Научиться отлаживать программы средствами ИСР C++ Builder.

Время выполнения: подготовка – 5 мин; выполнение – 75 мин.; проверка – 10 мин; всего – 90 мин.

Теоретические часть

Выполните щелчок мышью на вертикальной полоске серого цвета идущей по левому краю окна редактора кода. На ней появится кружок красного цвета (рис. 1). Это и есть точка останова. Она находится в начале выделенной красным цветом строки программы.


Рис. 1. Установка точки останова

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

Пошаговое выполнение программы. Для этого следует нажать кнопку Step Over на панели управления или клавишу клавиатуры F8. Программа будет выполняться построчно. Функции пользователя будут выполняться целиком. Для построчного выполнения внутреннего кода функций пользователя следует нажать кнопку Trace Into на панели управления или клавишу клавиатуры F7. Тогда пошаговое выполнение будет включать и строки функций;

Продолжение выполнения программы до конца.

Для этого следует нажать кнопку запуска программы (зеленый треугольник) или клавишу F9 (до строки с курсором F4 );

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

Во время прерывания программы в точке останова можно просматривать содержимое переменных и изменять их значение. Просмотр удобно выполнять, останавливая курсор мыши над соответствующей переменной в тексте программы. Изменить переменную можно в окне диалога, запускаемом через меню Run> Evaluate/Modify ( Ctrl+F7 ).

Задание

Отладьте с помощью средств отладки ИСР C++ Builder» программу, написанную по своему варианту, из практической работы 1.

Контрольные вопросы

1. В чем заключается суть отладки пограммно продукта?

2. Как выполняется пошаговая отладка программного модуля в С++ Builder?

3. Как для отладки подключить и строки функций?

4. Что можно посмотреть во время прерывания программы в точке останова?

5. Как можно посмотреть значение переменной при отладке?

6. Как можно изменить значение переменной при отладке?

 


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

Тема: «Создание простого приложения».

Цель работы: получить первые навыки по созданию Windows-приложения в ИСР C++ Builder.

Время выполнения: подготовка – 5 мин; выполнение – 75 мин.; проверка – 10 мин; всего – 90 мин.

Описание практической работы

Задание 1

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

1. Перенесите на пустую формукнопку типа TButton состраницы Standard палитры компонентов. Для этого выделите пиктограмму кнопки и затем щелкните курсором мыши в нужном вам месте формы.

2. Аналогичным образом перенесите на форму с той же страницы Standard палитры компонентов метку Label. В этой метке в процессе выполнения приложения будет появляться текст при нажатии пользователем кнопки.

3. Уменьшите до разумных размеров окно формы, так как в вашем первом приложении никаких других компонентов не будет.

4. Выделите на форме компонент Buttonl. Перейдите в Инспектор Объектов и измените ее свойство Caption (надпись), которое по умолчанию равно Buttonl на «Пуск».

5. Укажите метке Label1, что надписи на ней надо делать жирным шрифтом. Для этого выделите метку, в окне Инспектора Объектов раскройте двойным щелчком свойство Font (шрифт), затем также двойным щелчком раскройте подсвойство Style (стиль) и установите в true свойство fsBold (жирный).

6. Удалите текст в свойстве Caption метки Labell, чтобы он не высвечивался, пока пользователь не нажмет кнопку приложения. Теперь вам осталось только написать оператор, который заносил бы в свойство Caption метки Labell нужный вам текст в нужный момент. Этот момент определяется щелчком пользователя на кнопке. При щелчке в кнопке генерируется событие OnClick. Следовательно, обработчик этого события вы и должны написать.

7. Выделите кнопку Buttonl на форме, перейдите в Инспектор Объектов, откройте в нем страницу событий (Events), найдите событие кнопки OnClick (оно первое сверху) и сделайте двойной щелчок в окне справа от имени этого события. Это стандартный способ задания обработчиков любых событий. Но перейти в обработчик события OnClick (только этого события) можно и иначе: достаточно сделать двойной щелчок на компоненте Buttonl на форме. В обоих случаях вы окажетесь в окне Редактора увидите текст:

void fastcall TForml:: Button1Click(TObject *Sender)

{

 

}

Заголовок этой функции складывается из имени класса вашей формы (TForml), имени компонента (Buttonl) и имени события без префикса On (Click).

8. Если хотите, можете закрыть окно Исследователя Классов, встроенное в окно Редактора Кода, так как оно пока вам не нужно и будет только мешать. Закрыть это дополнительное окно можно, щелкнув на кнопке в его правом верхнем углу.

9. Напишите в обработчике оператор задания надписи метки Labell. Этот оператор может иметь вид:

Labell-> Caption = " Это мое первое приложение! ";

Таким образом, полностью ваш обработчик события должен иметь вид:

void fastcall TForml:: ButtonlClick(TObject *Sender)

{

Labell-> Caption = " Это мое первое приложение! ";

}

10. Сохраните созданное приложение.

Сохранение лучше всего выполнять с использованием пункта File/Save All.

Далее вам будет предложено сохранить форму (формы) с именем по умолчанию Unit1 (Unit2, и т.д.), а затем проект с именем Project1. Имена, предлагаемые по умолчанию можно изменять по своему усмотрению, но никогда форма и проект не должны быть названы одинаково.

11. Нажмите клавишу F9, для запуска программы на выполнение.

Задание 2

Создать приложение, вид которого представлен на рис.1.

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

Рис. 1 Вид приложения

Задание 3

Создайте приложение, которое по кнопке меняет цвет формы, цвет шрифта и сам шрифт в компоненте Labele.

Контрольные вопросы

1. Как запустить Borland С++ Builder?

2. Как открыть новый проект (Windows-приложение)?

3. Как выбрать компонент и поместить его на форму?

4. Как запустить приложение на компиляцию?

5. Создайте приложение, которое по кнопке меняет цвет формы, цвет шрифта и сам шрифт в компоненте Labele.


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

Тема: «Настройка свойств формы».

Цель работы: познакомиться со свойствами компонента TForm в ИСР С++ Builder.

Время выполнения: подготовка – 5 мин; выполнение – 75 мин.; проверка – 10 мин; всего – 90 мин.

Теоретическая часть

Чтобы начать разработку нового приложения (так принято называть прикладные программы), надо запустить C++ Builder или, если C++ Builder уже запущен, в меню File выбрать команду New › Application.

Работа над новым проектом (так в C++ Builder называется разрабатываемое приложение) начинается с создания стартовой формы – главного окна программы.

Стартовая форма создается путем изменения значений свойств формы Form 1 (настройки формы) и добавления к форме необходимых компонентов (полей ввода, полей вывода текстовой информации, командных кнопок).

Основные свойства формы, которые определяют ее вид и поведение во время работы программы, приведены в табл.1.

Таблица 1. Свойства формы (объекта Form)

Свойство Описание
Name Имя формы. В программе имя формы используется для управления формой и доступа к компонентам формы
Caption Текст заголовка
Width Ширина формы
Height Высота формы
Top Расстояние от верхней границы формы до верхней границы экрана
Left Расстояние от левой границы формы до левой границы экрана
Borderlcons Кнопки управления окном. Значение свойства определяет, какие кнопки управления окном будут доступны пользователю во время работы программы. Значение свойства задается путем присвоения значений уточняющим свойствам biSystemMenu, biMinimaze, biMaximazeи biHelp. Свойство biSystemMenuопределяет доступность кнопки Свернуть и кнопки системного меню, biMinimaze– кнопки Свернуть, biMaximaze– кнопки Развернуть, biHelp – кнопки вывода справочной информации
Position Положение окна в момент первого его появления на экране: poDesktopCenter — в центре рабочего стола; poCenterScreen — в центре экрана; poOwnerFormCenter — в центре родительского окна; poDesigned — положение окна определяют значения свойств Topи Left
Color Цвет фона. Цвет можно задать, указав название цвета или привязку к текущей цветовой схеме операционной системы. Во втором случае цвет определяется текущей цветовой схемой, выбранным компонентом привязки и меняется при изменении цветовой схемы операционной системы
Font Шрифт. Шрифт, используемый " по умолчанию" компонентами, находящимися на поверхности формы. Изменение свойства Font формы приводит к автоматическому изменению свойства Fontкомпонента, располагающегося на поверхности формы. То есть компоненты наследуют свойствоFont от формы (имеется возможность запретить наследование)
AlphaBlend Если установлено true, то форму можно сделать прозрачной.
AlphaBlendValue Определяет степень прозрачности, 255 - не прозрачная, чем меньше цифра, тем она прозрачней. AlphaBlend должно быть установлено в true.
AutoSize Если установлено true, форма сама подгоняет свои размеры под расположенные на неё компоненты.
BorderIcons Свойство, содержащее несколько подсвойств. Позволяет управлять кнопками приложения в правом верхнем углу. biSystemMenu - Отключает все кнопки и запрещает вызов меню по комбинации клавишAlt+ Space (Пробел) biMinimize - Кнопка сворачивания приложения biMaximize - Кнопка растягивания приложения во весь экран biHelp - Кнопка "? " справки (подсказки)
BorderStyle Определяет вид границы приложения. bsDialog - Запрещено растягивание за углы и нет кнопок " Свернуть" и " Закрыть". bsNone - Нет никаких границ, форму нельзя перетаскивать. Такое используется для создания заставок приложений. bsSingle - Запрещено растягивание за углы. bsSizeable - Можно растягивать форму за края и все кнопки доступны. bsSizeToolWin - Упрощенный вид формы с возможностью растягивания за края и наличием только кнопки " Закрыть". bsToolWindow - Упрощенный вид формы без возможности растягивания за края без кнопок " Свернуть" и " Закрыть".
BorderWidth Толщина границ формы
ClientHeight Ширина формы без учета границ
ClientWidth Высота формы без учета границ
FormStyle Стиль формы, по умолчанию fsNormal. Если установить fsStayOnTop, то эта форма будет поверх других окон. Это удобно использовать, если форма отвечает за ввод логина с паролем или это окно настроек.
Icons Значок, который отображается в верхнем левом углу формы. Можно загрузить в формате ico.
Menu Выбор основного MainMenu из выпадающего списка (если у вас больше одного)
Position Позиция формы относительно экрана. По умолчанию poDesigned. Наиболее полезные варианты - poDesktopCenter и poScreenCenter - размещение формы по центру рабочего стола и экрана соответственно.
WindowState Определяет состояние формы, wsNormal - остается заданного размера, wsMaximized - растягивается во весь экран, wsMinimized - в свернутом состоянии.

Для изменения значений свойств объектов, в том числе и формы, используется вкладка Properties (Свойства) диалогового окна Object Inspector. В левой колонке этой вкладки перечислены свойства выбранного объекта, в правой – указаны значения свойств.

Некоторые свойства представлены совокупностью значений других (уточняющих) свойств. Например, свойство BorderIcons определяет, какие кнопки управления окном будут доступны во время работы программы. Значения этого свойства определяется совокупностью значений свойств MSystemMenu, biMinimize, biMaximize и biHelp, каждое из которых, в свою очередь, определяет наличие соответствующей командной кнопки в заголовке окна во время работы программы. Перед именами сложных свойств стоит значок " +", в результате щелчка на котором раскрывается список уточняющих свойств (рис. 2.4), значения которых можно задать обычным образом (ввести в поле или выбрать в списке допустимых значений).

Форма – это обычное окно. Поэтому размер формы можно изменить точно так же, как размер любого окна Windows, т. е. путем перетаскивания границы. По окончании перемещения границы значения свойств Height и width автоматически изменятся. Они будут соответствовать установленному размеру формы.

Положение диалогового окна на экране после запуска программы соответствует положению формы во время разработки, которое определяется значением свойств Tор (отступ от верхней границы экрана) и Left (отступ от левой границы экрана). Значения этих свойств также можно задать путем перемещения формы при помощи мыши.

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

В результате выбора некоторых свойств (щелчка кнопкой мыши на свойстве), рядом со значением свойства появляется командная кнопка с тремя точками. Это значит, что задать значение свойства можно в дополнительном диалоговом окне, которое появится в результате щелчка на этой кнопке. Например, значение сложного свойства Font можно задать в окне Object Inspector путем ввода значений уточняющих свойств, а можно воспользоваться стандартным диалоговым окном Шрифт, которое появится в результате щелчка на кнопке с тремя точками.

Включаем форму через меню File-New-Form и управляем отображением/скрытием формы через ее свойство Visible или с помощью стандартных методов Show() и Hide() класса TControl.

Когда динамических форм в приложении становится много, может оказаться целесообазней не добавлять их все в проект, а создавать программно по мере необходимости, ведь TForm – обычный класс, а значит, имеет конструктор:

TForm *f=new TForm(this);

f− > Caption=”Новая форма”;

f− > Show();

Когда форма стала ненужна, можно удалить её обычным образом:

delete f;

 

Задание 1

Измените свойства формы из лабораторной работы №2 (Задание 1) в соответствии с таблицей 1

Таблица 1. Значения свойств формы

Свойство Значение Комментарий
Caption Заголовок формы  
Height  
Width  
BorderStyle bsSingle Тонкая граница не позволяет изменить размер окна во время работы программы путем захвата и перемещения границы
BorderIcons.biMinimize False В заголовке окна нет кнопки Свернуть
BorderIcons.biMaximize False В заголовке окна нет кнопки Развернуть
Position poDesktopCenter В момент запуска программы окно появится в центре рабочего
Font.Name Tahoma  
Font.Size  

 

Задание 2

1. Создайте свой значок для формы.

Для этого в свойствах формы надо выбрать свойство Icon.

2. Измените цвет формы, сделав его бордовым.

3. Сделайте форму прозрачной.

Для этого

− свойство AlphaBlend установите в True;

− в свойстве AlphaBlendValue установите 127.

Контрольные вопросы

  1. Какие свойства компонента Form определяют её местоположение на экране?
  2. Каким методом опрееляется открытие формы?
  3. Как форму сделать невидимой?
  4. Какое свойство компонента Form определяет наличие или отсутствие стандартных кнопок в заголовке формы?
  5. Какое свойство определяет состояние формы?
  6. Каким свойством определяется положение окна в момент первого его появления на экране?

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

Тема: «Обработка исключительных ситуаций в приложениях».

Цель работы: научиться обрабатывать исключительные ситуации в приложниях.

Время выполнения: подготовка – 5 мин; выполнение – 165 мин.; проверка – 10

мин; всего – 180 мин.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-08; Просмотров: 1041; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.126 с.)
Главная | Случайная страница | Обратная связь