
Добавил:
Yanus
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лекции Шафеевой / Секретные файлы Шафеевой)) / V1_07K / DELPHI / LR2DEL
.TXT Разработала: Залевская Е.А., гр.Ив-218
ЛАБОРАТОРНАЯ РАБОТА №2
СТИЛЬ ОКОН ПРИЛОЖЕНИЯ. ПРОГРАММИРОВАНИЕ
РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ. УСЛОВНЫЕ ОПЕРАТОРЫ.
Цель работы: научиться задавать стиль окон приложения, ознакомиться со структурой операторов if и case.
СТИЛЬ ОКОН ПРИЛОЖЕНИЯ
Основным элементом любого приложения является форма - контейнер, в котором размещаются другие визуальные и невизуальные компоненты. С точки зрения пользователя форма - это окно, в котором он работает с приложением. Каждой новой форме, вводимой в приложение, соответствует свой модуль (unit), описывающий эту форму как класс и включающий, если необходимо, какие-то дополнительные константы, переменные, функции и процедуры.
К внешнему виду окон в Windows предъявляются определенные требования. К счастью, Delphi автоматически обеспечивает стандартный для Windows вид окон вашего приложения. Но вам надо продумать и указать, какие кнопки в полосе системного меню должны быть доступны в том или ином окне, должно ли окно допускать изменение пользователем его размеров, каким должен быть заголовок окна. Все эти характеристики окон обеспечиваются установкой и управлением свойствами формы.
Свойство BorderStyle определяет общий вид окна и операции с ним, которые разрешается выполнять пользователю. Это свойство может принимать следующие значения:
-------------------------------------------------------------------------------------------------
bsSizeable Обычный вид окна Windows с полосой заголовка, с возможностью для пользо-
вателя изменять размеры окна с помощью кнопок в полосе заголовка или с помощью мыши, потянув за какой-либо край окна. Это значение BorderStyle задается по умолчанию
bsDialog Неизменяемое по размерам окно. Типичное окно диалогов
bsSingle Окно, размер которого пользователь не может изменить, потянув курсором мыши край окна, но может менять кнопками в полосе заголовка
bsToolWindow То же, что bsSingle, но с полосой заголовка меньшего размера
bsSizeToolWin То же, что bsSizeable, но с полосой заголовка меньшего размера и с отсутствием в ней кнопок изменения размера
bsNone Без полосы заголовка. Окно не только не допускает изменения размера, но и не позволяет переместить его по экрану
-------------------------------------------------------------------------------------------------
Свойство BorderIcons определяет набор кнопок, которые имеются в полосе заголовка. Множество кнопок задается элементами:
-------------------------------------------------------------------------------------------------
bySistemMenu кнопка системного меню (для Windows 95/98 и NT это кнопка с крестиком, закрывающая окно)
byMinimize кнопка Свернуть, сворачивает окно до пиктограммы
byMaximize кнопка Развернуть, разворачивает окно на весь экран
byHelp кнопка справки
-------------------------------------------------------------------------------------------------
Следует отметить, что не все кнопки могут появляться при любых значениях BorderStyle.
Свойство формы WindowState определяет вид, в котором окно первоначально предъявляется пользователю при выполнении приложения. Оно может принимать значения:
-------------------------------------------------------------------------------------------------
wsNormal нормальный вид окна (используется по умочанию)
wsMinimized окно свернуто
wsMaximized окно развернуто на весь экран
-------------------------------------------------------------------------------------------------
Если свойство WindowState имеет значение wsNormal или пользователь, манипулируя кнопками в полосе заголовка окна, привел окно в это состояние, то положение окна при запуске приложения определяется свойством Position, которое может принимать значения:
-------------------------------------------------------------------------------------------------
poDesigned Первоначальные размеры и положение окна во время выполнения те же, что во время проектирования. Это значение принимается по умолчанию, но обычно его следует изменить.
poScreenCenter Окно располагается в центре экрана. Размер окна тот, который был спроектирован.
poDefault Местоположение и размер окна определяет Windows, учитывая размер и разрешение экрана. При последовательных показах окна его положение сдвигается немного вниз и вправо
poDefaulPosOnly Местоположение окна определяет Windows. При последовательных показах окна его положение сдвигается немного вниз и вправо. Размер окна - спро-
ектированный.
poDefaultSizeOnly Размер окна определяет Windows, учитывая размер и разрешение экрана. Положение окна - спроектированное
-------------------------------------------------------------------------------------------------
Если выбранное значение свойства Position предусматривает выбор размера самим Windows по умол-
чанию, то на этот выбор влияют свойства PixelsPerInch и Scaled. По умолчанию первое из них задается равным количеству пикселей на дюйм в системе, второе установлено в false. Если задать другое число пикселей на дюйм, то свойство Scaled автоматически становится равным true. В этом случае при запуске приложения размер формы будет изменяться в соответствии с пересчетом заданного числа пикселей на дюйм к реальному числу пикселей на дюйм в системе.
Свойство AutoScroll определяет, будут ли на форме в процессе выполнения появляться автоматически полосы прокрутки в случае, если при выбранном пользователем размере окна не все компоненты помещаются в нем. Если значение AutoScroll равно true, то будут. В противном случае при уменьшении размера окна пользователь теряет доступ к компонентам, не поместившемся в его поле
Свойство Icon задает пиктограмму формы. По умолчанию используеися стандартная пиктограмма Delphi. Нажав в Инспекторе Объектов кнопку с тремя точками в строке сврйства Icon, вы попадаете в окно Редактора Изображений. Щелкнув в нем на кнопке Load, вы можете выбрать любой файл с изображением пиктограммы. С Delphi поставляется некоторое число пиктограмм, расположенных в каталоге Images\Icons.
Одно из основных свойств формы - FormStyle, которое может принимать значения:
-------------------------------------------------------------------------------------------------
fsNormal Окно обычного приложения. Это значение принимается по умолчанию.
fsMDIForm Родительская форма приложения MDI, т.е. приложения с дочерними окнами, используемого при работе с несколькими документами одновременно
fsMDIChild Дочерняя форма приложения MDI
fsStayOnTop Окно, остающееся всегда поверх остальных окон Windows
-------------------------------------------------------------------------------------------------
В ряде случаев полезно предоставить пользователю самому решать, сделать ли данное окно располагающимся всегда поверх остальных, или нет. Такую возможность легко предоставить пользователю. Введите в меню вашего окна раздел Поверх остальных и в обработчик щелчка на этом разделе вставьте операторы
MStayOnTop.Checked:=not MStayOnTop.Checked;
if MStayOnTop.Checked
then Form1.FormStyle:=fsStayOnTop
else Form1.FormStyle:=fsNormal;
В этом коде подразумевается, что объект раздела меню, о котором идет речь, назван MStayOnYop. Тогда при выборе пользователем этого раздела меню в нем появится индикатор, а окно приобретет статус расположенного всегда поверх остальных. При повторном выборе этого раздела индикатор исчезнет и окно приобретет обычный статус.
УСЛОВНЫЕ ОПЕРАТОРЫ
1. Условный оператор выбора if
Оператор if предназначен для выполнения тех или иных действий в зависимости от истинности или ложности некоторого условия. Условие задается выражением, имеющим результат булева типа.
Оператор имеет две формы: if...then и if...then...else. Форма if...then имеет вид:
if <условие> then <оператор>;
Если условие возвращает true, то указанный в конструкции if оператор выполняется. В противном случае управление сразу передается оператору, следующему за конструкцией if. Например, в результате выполнения операторов
C:=A;
if B>A then C:=B;
переменная С станет равна максимальному из чисел А и В, поскольку оператор С:=В будет выполнен только при В>А.
Форма конструкции if...then...else имеет вид:
if <условие> then <оператор1> else <оператор2>;
Если условие возвращает true, то выполняется первый из указанных операторов, в противном случае выполняется второй оператор. В конце первого оператора перед ключевым словом else точка с запятой не ставится.
В качестве и первого, и второго оператора могут использоваться и составные операторы:
if J=0
then begin
ShowMessage('Деление на нуль');
Result:=0;
end
else Result:=I/J;
При вложенных конструкциях if могут возникать неоднозначности в понимании того, к какой из вложенных конструкций if относится элемент else. Компилятор всегда считает, что else относится к последней из конструкций if, в которой не было раздела else.
Например, конструкцию
if <условие1> then if <условие2> then <оператор1>
else <оператор2>;
компилятор прочитает как
if <условие1>
then begin
if <условие2> then <оператор1> else <оператор2>
end;
Если же вы хотите отнести else к первому if, это надо записать в явном виде с помощью операторных скобок begin...end:
if <условие1>
then begin
if <условие2> then <оператор1>
end
else <оператор2>;
2. Условный оператор множественного выбора case
Оператор case позволяет провести анализ значения некоторого выражения и в зависимости от его значения выполнять те или иные действия. В общем случае формат записи оператора case следующий:
case <выражение> of
<список выражений 1>: <оператор 1>;
...
<список выражений n>: <оператор n>;
else <оператор>
end;
В этой конструкции выражение должно иметь порядковый тип. Поэтому, например, нельзя использовать выражения, возвращающие действительные числа или строки.
Списки значений могут содержать одно или несколько разделенных запятыми возможных значений константных выражений. После списка ставится двоеточие, а затем пишется оператор (может писаться составной оператор), который должен выполняться, если выражение приняло одно из перечисленных в списке значений. После выполнения этого оператора работа структуры case завершается и управление передается следующему за этой конструкцией оператору. Операторы всех последующих разделов не выполняются.
Если значение выражения не соответствует ни одному из перечисленных во всех списках, то выполняется оператор, следующий после ключевого слова else. Впрочем, раздел else не обязательно должен включаться в структуру case. В этом случае, если в списках не нашлось соответствующего значения выражения, то ни один оператор не будет выполнен.
Списки могут содержать константы и константные выражения, которые совместимы по типу с объявленным выражением и которые компилятор может вычислить заранее, до выполнения программы. До-
пустимо использование ограниченных типов. Недопустимо использование переменных и многих функций. В списках не допускается повторение одних и тех же значений, поскольку в этом случае выбор был бы неоднозначным.
Пример:
case I of
1..5: Caption:='Low';
6..9: Caption:='High';
0,10..99: Caption:='Out of range';
else
Caption:='';
end;
Задачи:
1. Задать три действительных числа. Выбрать из них те, которые принадлежат интервалу [1,3]. Если среди введенных чисел есть отрицательное вывести на экран дополнительное сообщение.
2. Задать три числа a, b, c. Определить могут ли быть они сторонами треугольника, могут ли быть сторонами треугольника их квадраты.
3. Задать 4 числа. Определить минимальное и максимальное среди них. Вывести на экран исходные числа, минимальное и его номер по порядку ввода, максимальное и его номер.
4. Ввести числа: a, b, c, d. Определить сколько можно построить треугольников, если введенные числа считать их сторонами.
5. Ввести числа: a, b, c, d. Определить можно ли построить четырехугольник, если a, b, c, d считать его сторонами.
6. Найти действительные и мнимые корни квадратного уравнения ax^2+bx+c=0. Коэффициенты ввести с клавиатуры в окнах Edit. Если оба корня равны, выдать на экран дополнительное сообщение.
7. Ввести десятичное число. Определить является оно четным или нечетным.
8. Определить какую сумму получит вкладчик при взносе Х рублей. Проценты по вкладу не начисляются, если срок хранения вклада не превысил одного месяца. При хранении вклада больше года начисляется 34% в год, больше года - 28% годовых, больше месяца - 2% в месяц.
9. Даны действительные числа Х1, Х2, Х3, У1, У2, У3. Принадлежит ли начало координат треугольнику с вершинами (Х1,У1), (Х2,У2), (Х3,У3)?
10. Даны действительные положительные числа a, b, c, d. Выяснить, можно ли прямоугольник со сторонами a, b уместить внутри прямоугольника со сторонами c, d так, чтобы каждая из сторон одного прямоугольника была параллельна или перпендикулярна каждой стороне второго прямоу-
гольника.
11. Даны действительные положительные числа a, b, с, x, y. Выяснить, пройдет ли кирпич с ребрами a,b,c в прямоугольное отверстие со сторонами x и y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно
каждой из сторон отверстия.
12. Даны произвольные числа a,b и c. Если нельзя построить треугольник с такими длинами сторон, то выдать об этом сообщение, иначе определить равносторонний это треугольник, равнобедренный или какой-либо иной.
13. Дана непустая последовательность чисел, за которой следует 0 (это признак конца последовательности). Определить сколько среди них отрицательных.
14. Дана непустая последовательность положительных чисел, за которой следует 0 (это признак конца последовательности). Вычислить среднее геометрическое этих чисел.
15. Вычислить наибольший общий делитель натуральных чисел a и b, не используя операторы цикла.
16. Дано натуральное число N (N<=500). Определить число цифр в числе N.
17. Дано натуральное число N (N<=99). Выяснить верно ли, что квадрат N равен кубу суммы цифр числа n.
18. Дано натуральное число N (N<=9999). Является ли это число полиндромом (перевертышем) учетом четырех цифр, как например, числа 3333, 4224, 0770?
19. Ввести число N (N<=9999). Проверить, различны ли цифры в нем.
20. Даны целые числа M,N (0<M<=12, 0<=N<60), указывающие момент времени: "M часов, N минут". Определить наименьшее время (число полных минут), когда часовая и минутная стрелки на циферблате совпадут.
21. Определить является ли год с порядковым номером У високосным (год високосный, если его номер кратен четырем, однако из кратных 100 високосными являются лишь кратные 400).
22. Даны три числа a, b, c. Определить могут ли быть они сторонами прямоугольного треугольника.
Порядок выполнения лабораторной работы:
1. Ознакомиться с материалом статьи "Стиль окон приложения", поэкспериментировать с формами из предыдущих лабораторных работ.
2. Прочитать теоретический материал о программировании разветвленных алгоритмов.
3. Создать приложение для своего варианта задания, применив для его оформления знания, получен- ные из первой статьи (см. Primer2).
Замечание: Для основного окна приложения наиболее подходящий стиль - BorderStyle=bsSingle с исключением из числа доступных кнопок кнопки Развернуть (BorderIcons.byMaximize=false)
ЛАБОРАТОРНАЯ РАБОТА №2
СТИЛЬ ОКОН ПРИЛОЖЕНИЯ. ПРОГРАММИРОВАНИЕ
РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ. УСЛОВНЫЕ ОПЕРАТОРЫ.
Цель работы: научиться задавать стиль окон приложения, ознакомиться со структурой операторов if и case.
СТИЛЬ ОКОН ПРИЛОЖЕНИЯ
Основным элементом любого приложения является форма - контейнер, в котором размещаются другие визуальные и невизуальные компоненты. С точки зрения пользователя форма - это окно, в котором он работает с приложением. Каждой новой форме, вводимой в приложение, соответствует свой модуль (unit), описывающий эту форму как класс и включающий, если необходимо, какие-то дополнительные константы, переменные, функции и процедуры.
К внешнему виду окон в Windows предъявляются определенные требования. К счастью, Delphi автоматически обеспечивает стандартный для Windows вид окон вашего приложения. Но вам надо продумать и указать, какие кнопки в полосе системного меню должны быть доступны в том или ином окне, должно ли окно допускать изменение пользователем его размеров, каким должен быть заголовок окна. Все эти характеристики окон обеспечиваются установкой и управлением свойствами формы.
Свойство BorderStyle определяет общий вид окна и операции с ним, которые разрешается выполнять пользователю. Это свойство может принимать следующие значения:
-------------------------------------------------------------------------------------------------
bsSizeable Обычный вид окна Windows с полосой заголовка, с возможностью для пользо-
вателя изменять размеры окна с помощью кнопок в полосе заголовка или с помощью мыши, потянув за какой-либо край окна. Это значение BorderStyle задается по умолчанию
bsDialog Неизменяемое по размерам окно. Типичное окно диалогов
bsSingle Окно, размер которого пользователь не может изменить, потянув курсором мыши край окна, но может менять кнопками в полосе заголовка
bsToolWindow То же, что bsSingle, но с полосой заголовка меньшего размера
bsSizeToolWin То же, что bsSizeable, но с полосой заголовка меньшего размера и с отсутствием в ней кнопок изменения размера
bsNone Без полосы заголовка. Окно не только не допускает изменения размера, но и не позволяет переместить его по экрану
-------------------------------------------------------------------------------------------------
Свойство BorderIcons определяет набор кнопок, которые имеются в полосе заголовка. Множество кнопок задается элементами:
-------------------------------------------------------------------------------------------------
bySistemMenu кнопка системного меню (для Windows 95/98 и NT это кнопка с крестиком, закрывающая окно)
byMinimize кнопка Свернуть, сворачивает окно до пиктограммы
byMaximize кнопка Развернуть, разворачивает окно на весь экран
byHelp кнопка справки
-------------------------------------------------------------------------------------------------
Следует отметить, что не все кнопки могут появляться при любых значениях BorderStyle.
Свойство формы WindowState определяет вид, в котором окно первоначально предъявляется пользователю при выполнении приложения. Оно может принимать значения:
-------------------------------------------------------------------------------------------------
wsNormal нормальный вид окна (используется по умочанию)
wsMinimized окно свернуто
wsMaximized окно развернуто на весь экран
-------------------------------------------------------------------------------------------------
Если свойство WindowState имеет значение wsNormal или пользователь, манипулируя кнопками в полосе заголовка окна, привел окно в это состояние, то положение окна при запуске приложения определяется свойством Position, которое может принимать значения:
-------------------------------------------------------------------------------------------------
poDesigned Первоначальные размеры и положение окна во время выполнения те же, что во время проектирования. Это значение принимается по умолчанию, но обычно его следует изменить.
poScreenCenter Окно располагается в центре экрана. Размер окна тот, который был спроектирован.
poDefault Местоположение и размер окна определяет Windows, учитывая размер и разрешение экрана. При последовательных показах окна его положение сдвигается немного вниз и вправо
poDefaulPosOnly Местоположение окна определяет Windows. При последовательных показах окна его положение сдвигается немного вниз и вправо. Размер окна - спро-
ектированный.
poDefaultSizeOnly Размер окна определяет Windows, учитывая размер и разрешение экрана. Положение окна - спроектированное
-------------------------------------------------------------------------------------------------
Если выбранное значение свойства Position предусматривает выбор размера самим Windows по умол-
чанию, то на этот выбор влияют свойства PixelsPerInch и Scaled. По умолчанию первое из них задается равным количеству пикселей на дюйм в системе, второе установлено в false. Если задать другое число пикселей на дюйм, то свойство Scaled автоматически становится равным true. В этом случае при запуске приложения размер формы будет изменяться в соответствии с пересчетом заданного числа пикселей на дюйм к реальному числу пикселей на дюйм в системе.
Свойство AutoScroll определяет, будут ли на форме в процессе выполнения появляться автоматически полосы прокрутки в случае, если при выбранном пользователем размере окна не все компоненты помещаются в нем. Если значение AutoScroll равно true, то будут. В противном случае при уменьшении размера окна пользователь теряет доступ к компонентам, не поместившемся в его поле
Свойство Icon задает пиктограмму формы. По умолчанию используеися стандартная пиктограмма Delphi. Нажав в Инспекторе Объектов кнопку с тремя точками в строке сврйства Icon, вы попадаете в окно Редактора Изображений. Щелкнув в нем на кнопке Load, вы можете выбрать любой файл с изображением пиктограммы. С Delphi поставляется некоторое число пиктограмм, расположенных в каталоге Images\Icons.
Одно из основных свойств формы - FormStyle, которое может принимать значения:
-------------------------------------------------------------------------------------------------
fsNormal Окно обычного приложения. Это значение принимается по умолчанию.
fsMDIForm Родительская форма приложения MDI, т.е. приложения с дочерними окнами, используемого при работе с несколькими документами одновременно
fsMDIChild Дочерняя форма приложения MDI
fsStayOnTop Окно, остающееся всегда поверх остальных окон Windows
-------------------------------------------------------------------------------------------------
В ряде случаев полезно предоставить пользователю самому решать, сделать ли данное окно располагающимся всегда поверх остальных, или нет. Такую возможность легко предоставить пользователю. Введите в меню вашего окна раздел Поверх остальных и в обработчик щелчка на этом разделе вставьте операторы
MStayOnTop.Checked:=not MStayOnTop.Checked;
if MStayOnTop.Checked
then Form1.FormStyle:=fsStayOnTop
else Form1.FormStyle:=fsNormal;
В этом коде подразумевается, что объект раздела меню, о котором идет речь, назван MStayOnYop. Тогда при выборе пользователем этого раздела меню в нем появится индикатор, а окно приобретет статус расположенного всегда поверх остальных. При повторном выборе этого раздела индикатор исчезнет и окно приобретет обычный статус.
УСЛОВНЫЕ ОПЕРАТОРЫ
1. Условный оператор выбора if
Оператор if предназначен для выполнения тех или иных действий в зависимости от истинности или ложности некоторого условия. Условие задается выражением, имеющим результат булева типа.
Оператор имеет две формы: if...then и if...then...else. Форма if...then имеет вид:
if <условие> then <оператор>;
Если условие возвращает true, то указанный в конструкции if оператор выполняется. В противном случае управление сразу передается оператору, следующему за конструкцией if. Например, в результате выполнения операторов
C:=A;
if B>A then C:=B;
переменная С станет равна максимальному из чисел А и В, поскольку оператор С:=В будет выполнен только при В>А.
Форма конструкции if...then...else имеет вид:
if <условие> then <оператор1> else <оператор2>;
Если условие возвращает true, то выполняется первый из указанных операторов, в противном случае выполняется второй оператор. В конце первого оператора перед ключевым словом else точка с запятой не ставится.
В качестве и первого, и второго оператора могут использоваться и составные операторы:
if J=0
then begin
ShowMessage('Деление на нуль');
Result:=0;
end
else Result:=I/J;
При вложенных конструкциях if могут возникать неоднозначности в понимании того, к какой из вложенных конструкций if относится элемент else. Компилятор всегда считает, что else относится к последней из конструкций if, в которой не было раздела else.
Например, конструкцию
if <условие1> then if <условие2> then <оператор1>
else <оператор2>;
компилятор прочитает как
if <условие1>
then begin
if <условие2> then <оператор1> else <оператор2>
end;
Если же вы хотите отнести else к первому if, это надо записать в явном виде с помощью операторных скобок begin...end:
if <условие1>
then begin
if <условие2> then <оператор1>
end
else <оператор2>;
2. Условный оператор множественного выбора case
Оператор case позволяет провести анализ значения некоторого выражения и в зависимости от его значения выполнять те или иные действия. В общем случае формат записи оператора case следующий:
case <выражение> of
<список выражений 1>: <оператор 1>;
...
<список выражений n>: <оператор n>;
else <оператор>
end;
В этой конструкции выражение должно иметь порядковый тип. Поэтому, например, нельзя использовать выражения, возвращающие действительные числа или строки.
Списки значений могут содержать одно или несколько разделенных запятыми возможных значений константных выражений. После списка ставится двоеточие, а затем пишется оператор (может писаться составной оператор), который должен выполняться, если выражение приняло одно из перечисленных в списке значений. После выполнения этого оператора работа структуры case завершается и управление передается следующему за этой конструкцией оператору. Операторы всех последующих разделов не выполняются.
Если значение выражения не соответствует ни одному из перечисленных во всех списках, то выполняется оператор, следующий после ключевого слова else. Впрочем, раздел else не обязательно должен включаться в структуру case. В этом случае, если в списках не нашлось соответствующего значения выражения, то ни один оператор не будет выполнен.
Списки могут содержать константы и константные выражения, которые совместимы по типу с объявленным выражением и которые компилятор может вычислить заранее, до выполнения программы. До-
пустимо использование ограниченных типов. Недопустимо использование переменных и многих функций. В списках не допускается повторение одних и тех же значений, поскольку в этом случае выбор был бы неоднозначным.
Пример:
case I of
1..5: Caption:='Low';
6..9: Caption:='High';
0,10..99: Caption:='Out of range';
else
Caption:='';
end;
Задачи:
1. Задать три действительных числа. Выбрать из них те, которые принадлежат интервалу [1,3]. Если среди введенных чисел есть отрицательное вывести на экран дополнительное сообщение.
2. Задать три числа a, b, c. Определить могут ли быть они сторонами треугольника, могут ли быть сторонами треугольника их квадраты.
3. Задать 4 числа. Определить минимальное и максимальное среди них. Вывести на экран исходные числа, минимальное и его номер по порядку ввода, максимальное и его номер.
4. Ввести числа: a, b, c, d. Определить сколько можно построить треугольников, если введенные числа считать их сторонами.
5. Ввести числа: a, b, c, d. Определить можно ли построить четырехугольник, если a, b, c, d считать его сторонами.
6. Найти действительные и мнимые корни квадратного уравнения ax^2+bx+c=0. Коэффициенты ввести с клавиатуры в окнах Edit. Если оба корня равны, выдать на экран дополнительное сообщение.
7. Ввести десятичное число. Определить является оно четным или нечетным.
8. Определить какую сумму получит вкладчик при взносе Х рублей. Проценты по вкладу не начисляются, если срок хранения вклада не превысил одного месяца. При хранении вклада больше года начисляется 34% в год, больше года - 28% годовых, больше месяца - 2% в месяц.
9. Даны действительные числа Х1, Х2, Х3, У1, У2, У3. Принадлежит ли начало координат треугольнику с вершинами (Х1,У1), (Х2,У2), (Х3,У3)?
10. Даны действительные положительные числа a, b, c, d. Выяснить, можно ли прямоугольник со сторонами a, b уместить внутри прямоугольника со сторонами c, d так, чтобы каждая из сторон одного прямоугольника была параллельна или перпендикулярна каждой стороне второго прямоу-
гольника.
11. Даны действительные положительные числа a, b, с, x, y. Выяснить, пройдет ли кирпич с ребрами a,b,c в прямоугольное отверстие со сторонами x и y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно
каждой из сторон отверстия.
12. Даны произвольные числа a,b и c. Если нельзя построить треугольник с такими длинами сторон, то выдать об этом сообщение, иначе определить равносторонний это треугольник, равнобедренный или какой-либо иной.
13. Дана непустая последовательность чисел, за которой следует 0 (это признак конца последовательности). Определить сколько среди них отрицательных.
14. Дана непустая последовательность положительных чисел, за которой следует 0 (это признак конца последовательности). Вычислить среднее геометрическое этих чисел.
15. Вычислить наибольший общий делитель натуральных чисел a и b, не используя операторы цикла.
16. Дано натуральное число N (N<=500). Определить число цифр в числе N.
17. Дано натуральное число N (N<=99). Выяснить верно ли, что квадрат N равен кубу суммы цифр числа n.
18. Дано натуральное число N (N<=9999). Является ли это число полиндромом (перевертышем) учетом четырех цифр, как например, числа 3333, 4224, 0770?
19. Ввести число N (N<=9999). Проверить, различны ли цифры в нем.
20. Даны целые числа M,N (0<M<=12, 0<=N<60), указывающие момент времени: "M часов, N минут". Определить наименьшее время (число полных минут), когда часовая и минутная стрелки на циферблате совпадут.
21. Определить является ли год с порядковым номером У високосным (год високосный, если его номер кратен четырем, однако из кратных 100 високосными являются лишь кратные 400).
22. Даны три числа a, b, c. Определить могут ли быть они сторонами прямоугольного треугольника.
Порядок выполнения лабораторной работы:
1. Ознакомиться с материалом статьи "Стиль окон приложения", поэкспериментировать с формами из предыдущих лабораторных работ.
2. Прочитать теоретический материал о программировании разветвленных алгоритмов.
3. Создать приложение для своего варианта задания, применив для его оформления знания, получен- ные из первой статьи (см. Primer2).
Замечание: Для основного окна приложения наиболее подходящий стиль - BorderStyle=bsSingle с исключением из числа доступных кнопок кнопки Развернуть (BorderIcons.byMaximize=false)
Соседние файлы в папке DELPHI