Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Примеры. Пример 2.1.Вычислить стоимость междугородного телефонного разговора в зависимости от длительности разговора и дня недели






Пример 2.1. Вычислить стоимость междугородного телефонного разговора в зависимости от длительности разговора и дня недели. Как известно, стоимость междугородного разговора по телефону в выходные дни ниже, чем в обычные на 20%.

Решение задачи: 1. Необходимо составить алгоритм решения задачи и подготовить форму. На форме установить 4 компоненты Label, две - Edit, две -Button и ComboBox. В табл. 8 приведены значения свойств этих компонентов. Наибольший интерес представляют свойства Items и Itemindex компоненты ComboBox1. Свойство items содержит элементы списка. Свойство itemindex задает номер выбранного элемента списка. Если ни один из элементов не выбран, то значение свойства равно минус единице.

Список может быть сформирован во время создания формы или во время работы программы.

2. Компонент ComboBox - позволяет выбрать из выпадающего списка. Если обратить внимание на постановку задачи, то в зависимости от дня недели изменяется оплата разговора, поэтому удобно выбирать день недели из списка. Для формирования списка во время создания формы надо в окне Object Inspector выбрать свойство Items и щелкнуть на кнопке запуска редактора списка строк . В открывшемся диалоговом окне String List Editor (рис. 8) нужно ввести список, набирая каждый элемент списка в отдельной строке. После ввода очередного элемента списка для перехода к новой строке необходимо нажать клавишу < Enter>. После ввода последнего элемента клавишу < Enter> нажимать не надо. Завершив ввод списка, следует щелкнуть на кнопке ОК.

Рисунок 8. Редактор списка

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

4. Щелкнув на компоненте Button1 дважды, в функции описания событий объявляем переменные y, s, t вещественными. Наряду с этим, для инициализации значений s, t, введенных в поле Edit1 и Edit2, использовать функцию преобразования типов.

float s, t, y;

s=StrToFloat(Edit1-> Text);

t=StrToFloat(Edit2-> Text);

5. Учитывая постановку задачи, условные операторы запишем в следующем виде:

if (ComboBox1-> Text==" понедельник") y=s*t;

if (ComboBox1-> Text==" вторник") y=s*t;

if (ComboBox1-> Text==" среда") y=s*t;

if (ComboBox1-> Text==" четверг") y=s*t;

if (ComboBox1-> Text==" пятница") y=s*t;

if (ComboBox1-> Text==" суббота") y=(s*t-(s*t)/5);

if (ComboBox1-> Text==" воскресенье") y=(s*t-(s*t)/5);

6. Результаты вычислений выводим в компоненту Label4 (рис. 9):

Label4-> Caption= ”Всего: ”+ FloatToStrF(y, ffGeneral, 7, 4) + “ тенге”;

Таблица 8.

Компонент Назначение Свойство Caption
Edit1 Для ввода стоимости 1 минуты разговора  
Edit2 Для ввода длительности разговора в минутах  
Label1, Label2, Label3 Для вывода пояснительного текста о назначении полей ввода Оплата за телефонный разговор s t
Label4 Для вывода результата вычисления — стоимости разговора  
Button1 Для активизации процедуры вычисления стоимости разговора Вычислить
Button2 Для активизации выхода Выход
ComboBox1 Для вывода списка дней недели  

Пример 2.2 Условие задачи: составить программу вычисления функции z для значения х в диапазоне [0, 5]

.

Решение задачи: I способ. Здесь используем условный оператор < іf (логическое_выражение) Операторлар 1; else Операторлар 2 >; и компонентыForm, Label, Edit, Memo, Button.

if (x< =1) z=sin(x); else

if ((x> 1) & & (x< 2)) z=cos(x); else

if (x> =2) z=cos(x)/2;

Результаты вычислений приведены на рис. 10.

II-способ Здесь мывоспользуемся компонентом ListBox и оператором выбора

< switch (выражение_выбора)

{

сase значение_1: {оператор1; break; }

сase значение_2: {оператор2; break; }

default: оператор }>.

Отличие от предыдущего способа присутствие на форме компоненты ListBox1. компонента ListBox1 отборажает списки строк ипозволяет пользователю выбрать в них нужную строку. В компоненте имеется свойство MultiSelect, разрешающее пользователю множественный выбор в списке. Если MultiSelect =false, то пользователь может выбрать только один элемент списка. В этом случае можно узнать индекс выбранной строки из свойства ItemIndex, доступного только во время выполнения. В данном примере значение z зависит от значения х (отрывок программы):

switch (ListBox1-> ItemIndex)

{

case 0: {z=sin(x); break; }

case 1: {z=cos(x); break; }

case 2: { z=cos(x)/2; break; }

}

Начальное значение ItemIndex невозможно задать во время проектирования.По умлочанию ItemIndex =-1. Это означает, что ни один элемент списка не выбран.Номерация выбранного индекса начинается с 0. Результаты вычислений приведены на рис. 11.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.