| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Статьи:: Delphi :: Delphi 7 начинающему :: Глава 2. Управляющие структуры языка Delphi :: Инструкция if
Инструкция if
Инструкция
if Инструкция if позволяет
выбрать один из двух возможных вариантов развития программы. Выбор осуществляется
в зависимости от выполнения условия. В общем виде инструкция
if записывается так: if
условие then begin // здесь инструкции, которые надо выполнить, // если условие истинно. end else begin //
здесь инструкции, которые надо выполнить, // если условие ложно. end; Обратите внимание,
что перед else (после end) точка с запятой не ставится. Выполняется инструкция
if следующим образом: 1. Вычисляется значение
условия (условие — выражение логического типа, значение которого может быть
равно True или False). 2. Если условие истинно
(значение выражения условие равно True), то выполняются инструкции, следующие
за словом then (между begin и end). На этом выполнение операции if заканчивается,
то есть инструкции, следующие за else, не будут выполнены. Если условие ложно
(значение выражения условие равно False), то выполняются инструкции, следующие
за словом else (между begin и end). На рис. 2.2 представлен
алгоритм, соответствующий инструкции if-tnen-else.
Рис. 2.2.
Алгоритм, реализуемый инструкцией if-then-else Например, если переменная
t обозначает тип соединения сопротивлений в электрической цепи (t=1 соответствует
последовательному соединению, t=2 — параллельному), a r1 и r2 — величины сопротивлений,
то приведенная ниже инструкция if осуществляет выбор формулы, по которой будет
выполнен расчет. if
t=l then begin z:=r1+r2; end else begin z:=(r1+r2)/(r1*r2); end; Если в инструкции if
между begin и end находится только одна инструкция, то слова begin и end можно
не писать. Например, инструкцию if otv=3
then begin prav:=prav+1 ; end else begin ShowMessage('Ошибка!'); end; можно
переписать так: if
otv=3 then prav:=prav+l else ShowMessage('Ошибка!')
; Если какое-либо действие
должно быть выполнено только при выполнении определенного условия и пропущено,
если это условие не выполняется, то инструкция if может быть записана так: if
условие then begin
{ инструкции, которые надо выполнить, если условие выполняется, истинно } end На
рис. 2.3 представлен алгоритм, соответствующий инструкции if-then.
Рис. 2.3. Алгоритм,
реализуемый инструкцией if-then Например, инструкция if
n=m then
c:=c+l; увеличивает значение
переменной с только в том случае, если значения переменных n и m равны. В качестве примера
использования инструкции if рассмотрим программу вычисления стоимости междугородного
телефонного разговора. Как известно, стоимость
междугородного разговора по телефону в выходные дни ниже, чем в обычные. Программа,
текст которой приведен в листинге 2.1, запрашивает длительность разговора и
день недели, а затем вычисляет стоимость разговора. Если день недели — суббота
или воскресенье, то стоимость уменьшается на величину скидки. Цена минуты разговора
и величина скидки задаются в тексте программы как константы. Вид диалогового
окна программы приведен на рис. 2.4. Для ввода исходных
данных (длительность разговора, номер дня недели) используются поля редактирования,
для вывода результата и пояснительного текста — поля меток. В табл. 2.3 перечислены
компоненты и указано их назначение, а в табл. 2.4 приведены значения свойств
этих компонентов.
Рис. 2.4.
Диалоговое окно программы Стоимость разговора Примечание
Таблица 2.3.
Компоненты формы приложения Стоимость разговора
Примечание
Таблица 2.4.
Значения свойств компонентов
Программа производит
вычисления в результате щелчка на командной кнопке Вычислить. При этом
возникает событие onclick, которое обрабатывается процедурой TForm1.Button1Click. Листинг 2.1.
Вычисление стоимости телефонного разговора unit
Phone_u; interface Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls; type TForm1
= class(TForm) Editl:
TEdit; // поле ввода длительности разговора Edit2:
TEdit; // поле ввода номера дня недели Button1:
TButton; // кнопка Вычислить Label1:
TLabel; Label2:
TLabel; Label3:
TLabel; procedure
ButtonlClick(Sender: TObject); private /
Private declarations } public
{ Public declarations } end; var Form1:
TForm1; implementation ($R
*.DFM} procedure TForm1.Button1Click(Sender: TObject); const PAY =0.15; // цена одной минуты разговора 0.15 рубля DISCOUNT = 0.2; // скидка 20 процентов var Time:Real; // длительность разговора Day:integer; // день недели Summa:real; // стоимость разговора begin // получить исходные данные Time:=StrToFloat(Editl.Text)
; Day:=StrToInt(Edit2.Text); //
Вычислить стоимость разговора Summa:=
PAY*Time; //
Если день суббота или воскресенье, то уменьшить
// стоимость на величину скидки if
(Day = 6) OR (Day = 7) then
Surama:=Summa*(1 - DISCOUNT); //
вывод результата вычисления label3.caption:='K оплате ' +
FloatToStr(Summa) + 'руб.'; end; end. Часто в программе необходимо
реализовать выбор более чем из двух вариантов. Например, известно, что для каждого
человека существует оптимальное значение веса, которое может быть вычислено
по формуле: Рост(см)-
100. Реальный вес может
отличаться от оптимального: вес может быть меньше оптимального, равняться ему
или превышать оптимальное значение. Следующая программа,
диалоговое окно которой приведено на рис. 2.5, запрашивает вес и рост, вычисляет
оптимальное значение, сравнивает его с реальным весом и выводит соответствующее
сообщение.
Рис. 2.5.
Окно программы Контроль веса Алгоритм программы
Контроль веса изображен на рис. 2.6. Как и в предыдущей
программе, вычисления выполняются при щелчке на кнопке Вычислить (ее
имя Buttoni). В листинге 2.2 приведен текст программы.
Рис. 2.6.
Алгоритм программы Контроль веса Листинг 2.2.Контроль
веса unit
wtest_; interface uses Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edit1:
TEdit; // поле ввода веса Edit2: TEdit; // поле ввода роста Button1:
TButton; // кнопка Вычислить Label3: TLabel; // поле вывода сообщения —результата работы //
программы procedure ButtonlClick(Sender: TObject); private { Private declarations } public {
Public declarations } end; var Form1:
TForm1; implementation ($R
*.DFM} procedure TForml.ButtonlClick(Sender: TObject); var w:real; { вес } h:real; { рост } opt:real; { оптимальный вес } d:real; { отклонение от оптимального веса } begin w:=StrToFloat(Editl.text); h:=StrToInt(Edit2.Text); opt:=h-100; if
w=opt then Label3.caption:='Bu в хорошей форме!' else if
w < opt then begin d:=opt-w; Labels.caption:='Вам
надо поправиться, на ' + FloatToStr(d)+ 'кг.'; end else begin d:=w-opt; Labels.caption:='Haдo
немного похудеть, на ' + FloatTostr(d)+ ' кг.'; end; end; end. В приведенном примере
множественный выбор реализован при помощи двух инструкций if, одна из которых "вложена" в другую. HTML 5: пять вещей вызывающих особый интер....
HTML 5 — это грядущее обновление гипертекстового языка разметки, основного способа создания контента для размещения его во всемирной паутине. Разработка HTML остановилась в 1999 году, на версии HTML 4.01 и с тех пор web-содержимое изменилось так, что текущие спецификации HTML перестали соответствовать сегодняшним требованиям. HTML 5 нацелен на то, чтобы увеличить функциональную совместимость HTML и соответствовать растущим требованиям разнообразного и смешанного web-контента. HTML 5 так же нацелен на устранение недостатков четвертой версии. В этой статье мы взглянем на 5 новых интересных вещей в HTML 5.
Подробнее... |
Рубрика: Html
| Добавлено: 22.12.2008
asp.net: ListView с разных сторон.
Элемент управления ListView был представлен в .Net Framework 3.5 как замена устаревшему GridView. Новый элемент имеет более расширенный функционал, чем его предшественник, но в тоже время лишен некоторых внутренних механизмов, что впрочем целиком следствие из расширенной универсальности ListView. Среди отличий ListView и GridView можно назвать и гибкую настройку разметки, что позволяет выводить данные не только в табличном виде, но и вообще в любом каком пожелает программист. Благодаря шаблонам ItemTemplate, EditItemTemplate, InsertItemTeplate можно настроить внешний вид при любом из состояний ListView: редактировании или выборе элемента.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Создание кросс-таб отчета в Stimulsoft Rep....
Компания Стимулсофт предоставляет для разработчиков мощный набор инструментов для создания отчетов для Microsoft Visual Studio .Net 2005 и 2008; эти инструменты доступны как для Windows Forms, так и для Web Forms. Это генератор отчетов Stimulsoft Reports.Net. Генератор отчетов Stimulsoft Reports.Net имеет ряд особенностей: простая работа с дизайнером отчетов, полная поддержка экспорта в PDF, Word, Excel и многие другие форматы. Crystal Report и Microsoft Reporting Service – очень хорошие программные продукты для повседневной работы, но, если Вам необходимо создать отчеты с поддержкой кросс-табов, drill down, Ajax, штрих-кодов и возможностью подключения одновременно более одного источника данных, то Stimulsoft Reports.Net поможет Вам сэкономить массу времени. Также, данный генератор отчетов позволяет пользователям создавать свои собственные отчеты любой сложности. И все эти особенности делают Stimulsoft Reports.Net хорошим выбором в сфере программных продуктов для Business Intelligence.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|