![]()
|
|||
Label4->Caption = ; ⇐ ПредыдущаяСтр 4 из 4 Label4->Caption = ""; }
Пример выполнения:
Задача №4 Сопротивление: Блок-схема: Текст программы: // щелчок на кнопке Вычислить void fastcallTForml::ButtonlClick(TObject *Sender) { floatrl,r2,r; rl = StrToFloat(Editl->Text); r2 = StrToFloat(Edit2->Text); /* Переключатели RadioButtonl и RadioButton2 зависимые, поэтому о типе соединения можно судить по состоянию одного из них */ ±£ ( RadioButtonl->Checked ) { // выбран переключатель "последовательно" г = rl + г2; ela* / / выбран переключатель "параллельно" // при вычислении сопротивления возможно // исключение EInvalidOp t r y { г = ( r l * r2) / (rl + r 2 ) ; } catch( EInvalidOp &e) { ShowMessage("Необходимо задать величину" "сопротивлений"); return; Label4->Caption = FloatToStrF(r, ffGeneral, 6,2) + " Ом"; } II щелчок на переключателе "последовательно" void fastcall TForml::RadioButtonlClick(TObject *Sender) { Label4->Caption = ""; // щелчок на переключателе "параллельно" void fastcall TForml::RadioButton2Click(TObject *Sender) { Label4->Caption = ""; } Пример выполнения:
Задача № 5 Кафе: Блок-Схема:
Текст программы: floatsurnm; // сумма заказа // конструктор формы fastcallTForml::TForml(TComponent* Owner) : TForm(Owner) // сделать недоступным переключатель "соус" CheckBox2->Enabled = false; // щелчок на переключателе "Биг-Мак" void fastcallTFoml: :CheckBoxlClick(TObject *Sender) { if( CheckBoxl->Checked ) { /* переключатель был сброшен, пользователь установил его */ summ += 54; // сделать доступным переключатель "соус" CheckBox2->Enabled = true; } else { /* переключатель был установлен, пользователь сбросил его */ summ -= 54; // сбросить и сделать недоступным переключатель "соус" if(CheckBox2->Checked) CheckBox2->Checked = false; CheckBox2->Enabled = false; // отобразить измененную сумму в поле Labell->Caption = FloatToStrF(summ,ffCurrency,6,2); // щелчок на переключателе "соус" void faetcallTForml::CheckBox2Click(TObject *Sender) if( CheckBox2->Checked) summ +=10.5; •la* summ -= 10.5; Labell->Caption = FloatToStrFtsumm,ffCurrency,6,2); // щелчок на переключателе "картошка" void faetcallTForml::CheckBox3Click(TObject *Sender) if( CheckBox3->Checked) summ += 18.5; •la* summ -= 18.5; Labell->Caption = FloatToStrF(summ,ffCurrency,6,2); // щелчок на переключателе "Кока-Кола" void faetcallTForml::CheckBox4Click(TObject *Sender) { if( CheckBox4->Checked) sum += 14; summ -= 14; Labell->Caption = FloatToStrF(summ,ffCurrency,6,2) // щелчок на кнопке OK void fastcallTForml::ButtonlClick(TObject *Sender) { if( (CheckBoxl->Checked)&& (CheckBox2->Checked)&& (CheckBox3->Checked)&&(CheckBox4->Checked) ) /* пользователь заказам полный набор предоставить скидку 5% */ summ = summ * 0.95; ShowMessage("Вам предоставляется скидка 5%.\п" "Сумма заказа: " + FloatToStrF(summ, ffCurrency, 6,2) + " руб."); } else if( (CheckBoxl->Checked)|| (CheckBox3->Checked)|| (CheckBox4->Checked)) ShowMessage("Сумма заказа: " + FloatToStrF(summ,ffGeneral,6,2)+ " руб."); elseShowMessage("Вы ничего не заказали"); } Пример выполнения:
Задача № 6 Электроэнергия: Блок-схема: Текст программы: // конструктор формы fastcall TForml::TForml(TComponent* Owner) : TForm(Owner) { / * задать, что событие KeyPress для компонентов Edit2 и Edit3 обрабатывает функция EditKeyPress */ Edit2->0nKeyPress = EditKeyPress; Edit3->0nKeyPress = EditKeyPress; / * чтобы процедура обработки события KeyPress могла определить, в каком поле пользователь нажал клавишу, запишем в свойство Tag каждого компонента Edit целую константу */ Editl->Tag = 1; Edit2->Tag = 2; 26 Часть 1. Примеры и задачи Edit3->Tag = 3; // нажатие клавиши в поле редактирования void fastcall TForml::EditKeyPress(TObjееt *Sender, char &Key) TEdit * Edit; // компонент Edit Edit = (TEdit*)Sender; /* теперь ed - это компонент Edit, в поле которого пользователь нажал клавишу */ /* Реакция компонентов на нажатие всех клавиш, за исключением <Enter> одинаковая. */ if ( Key == VK_RETURN) // нажате клавиша <Enter> switch (Edit->Tag) { case 1 : /* клавиша нажата в поле Editl переместить курсор в поле Edit3 */ Edit2->SetFocus() ; break; case 2 : /* клавиша нажата в поле Edit2 переместить курсор в поле Edit3 */ Edit3->SetFocus() ; break; case 3 /* клавиша нажата в поле Edit3 сделать активной кнопку Вычислить */ Buttonl->SetFocusО ; break; } return; if ( (( Key >= '0') && ( Key <= •9' ) (Key == VK_BACK)) // цифра или <>Backspace> return; if ((Key == ',') || (Key == '.')) { Key = DeciinalSeparator; if ( (Edit->Text).Pos(DecimalSeparator) != 0 Key = 0; return; i f ( Key == VK_BACK ) r e t u r n ; // остальные символы запрещены Key = 0; // щелчок на кнопке Вычислить void fastcall TForml::ButtonlClick(TObject *Sender) { float prior, curr; // предыдущее и текущее показания // счетчика float tariff; // тариф - цена 1 кВт/час float summ; // сумма к оплате prior = StrToFloat(Editl->Text); curr = StrToFloat(Edit2->Text); tariff = StrToFloat(Edit3->Text); // проверить исходные данные if ( curr < prior) MessageDlg("Текущее значение показания счетчика не" " может быть меньше предыдущего.", mtWarning, TMsgDlgButtons() « mbOK,0); return; } summ = (curr - prior) * tariff; Label4->Caption = "Сумма к оплате: " + FloatToStrF(summ, ffCurrency, 6,2) } Пример выполнения:
|
|||
|