Файл: Звіт до лабораторної роботи #2 if-else, switch-case.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.08.2024
Просмотров: 7
Скачиваний: 0
Звіт до лабораторної роботи №2
Тема: Лінійне програмування.
Мета: Ознайомитися Технологією створення програмних продуктів та освіжити в пам’яті оператори if-else, switch-case.
Склад групи:
-
Матвієнко Богдан
-
Максименко Роман
-
Могила Андрій
-
Прилєпа Олександр
-
Шастун Владислав
Завдання: :
-
Дано три дійсні числа. Звести в квадрат ті з них, значення яких позитивні, і в четверту ступінь — негативні.
-
Дані дійсні числа х і в, не рівні один одному. Менше з цих двох чисел замінити половиною їх суми, а більше — їх подвоєним добутком.
-
Послуги телефонної мережі оплачуються за наступним правилом: за розмови до А хвилин в місяць — B крб., а розмови понад встановлену норму оплачуються з розрахунку C крб. за хвилину. Написати програму, що обчислює плату за користування телефоном для введеного часу розмов за місяць.
2.
-
Написати програму, яка по заданих трьох числах визначає, чи є сума яких-небудь двох з них позитивною.
-
Відомо, що з чотирьох чисел a1, а2, a3 і а4 одне відмінне від трьох інших, рівних між собою; привласнити номер цього числа змінної n.
-
Скласти програму, яка перевіряла б, чи не наводить підсумовування двох цілих чисел А і В до переповнювання (тобто до результату більшому чим 32 767). Якщо буде переповнювання, то повідомити про це, інакше вивести суму цих чисел.
3.
Дано дійсне число h. З'ясувати, чи має рівняння ax2 + bx + с = 0 дійсний корінь, якщо
Знайти дійсне коріння або повідомити про їх відсутність.
4.
Обчислити значення функції:
Приклади роботи з програмою:
Код програми:
#include <vcl.h>
#pragma hdrstop
#include "math.h"
#include "vetvlenie.h"
float func(float);
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Memo3->Clear();Memo4->Clear();
Label1->Hide();Label2->Hide();Label3->Hide();Label4->Hide();Label5->Hide();Label7->Hide();Label8->Hide();Label9->Hide();
Edit1->Hide();Edit2->Hide();Edit3->Hide();Edit4->Hide();Memo1->Hide();Button2->Hide();Button4->Hide();
Label10->Hide();Label11->Hide();Label16->Hide();Label17->Hide();Label18->Hide();;Label7->Hide();Label8->Hide();Label12->Hide();Label19->Hide();
Edit5->Hide();Edit6->Hide();Edit7->Hide();Edit8->Hide();Memo2->Hide();Button4->Hide();Memo3->Hide();Memo4->Hide();
Label22->Hide();Label21->Hide();Label20->Hide(); Button4->Hide();Button5->Hide();Button7->Hide();Button9->Hide(); Button10->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
float x,y,z;
int m;
Memo1->Show(); Label5->Show(); Button9->Show();
switch(RadioGroup1->ItemIndex){
case 0: if(((Edit1->Text).Length()==0) || ((Edit2->Text).Length()==0) || ((Edit3->Text).Length()==0)) ShowMessage("Ошибка! Вы заполнили не все поля!");
else {x=StrToFloat(Edit1->Text); y=StrToFloat(Edit2->Text); z=StrToFloat(Edit3->Text);
Memo1->Lines->Add("x="+FloatToStrF(func(x),ffFixed,8,3)+","); Memo1->Lines->Add("y="+FloatToStrF(func(y),ffFixed,8,3)+",");Memo1->Lines->Add("z="+FloatToStrF(func(z),ffFixed,8,3)+"."); } break;
case 1: if(((Edit1->Text).Length()==0) || ((Edit2->Text).Length()==0)) ShowMessage("Ошибка! Вы заполнили не все поля!");
else {x=StrToFloat(Edit1->Text); y=StrToFloat(Edit2->Text); if(x==y) ShowMessage("Ошибка! Числа не должны быть равными!");
else if(x<y) {Memo1->Lines->Add("x="+FloatToStrF((x+y)/2,ffFixed,8,3)+","); Memo1->Lines->Add("y="+FloatToStrF(2*y*x,ffFixed,8,3)+".");}
else {Memo1->Lines->Add("x="+FloatToStrF(2*y*x,ffFixed,8,3)+","); Memo1->Lines->Add("y="+FloatToStrF((x+y)/2,ffFixed,8,3)+".");}
} break;
case 2: if((Edit4->Text).Length()==0) ShowMessage("Ошибка! Вы заполнили не все поля!");
else {m=StrToInt(Edit4->Text); if(m<100) Memo1->Lines->Add("Стоимость звонков: "+IntToStr(15*m)+" гривен");
else Memo1->Lines->Add("Стоимость звонков: "+IntToStr(25*m)+" гривен");
} break;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Button2->Show();Button4->Show(); Memo1->Clear();;Label5->Hide(); Memo1->Hide();
switch(RadioGroup1->ItemIndex){
case 0:Label1->Show();Label2->Show();Label3->Show();Label7->Show();
Edit1->Show();Edit2->Show();Edit3->Show();Edit4->Hide();
Label4->Hide();Label5->Hide();Label8->Hide();Label9->Hide();
break;
case 1:Label1->Show();Label2->Show();;Label8->Show();
Edit1->Show();Edit2->Show();Edit3->Hide();Edit4->Hide();
Label3->Hide(); Label4->Hide();Label5->Hide();Label7->Hide();Label7->Hide();Label9->Hide();
break;
case 2:Label4->Show();;Label9->Show();
Edit4->Show();Edit1->Hide();Edit2->Hide();Edit3->Hide();
Label1->Hide();Label2->Hide();Label3->Hide();Label7->Hide();Label8->Hide();
break;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Button3->Show();Button4->Show(); Memo2->Clear();Label5->Hide();
switch(RadioGroup2->ItemIndex){
case 0:Label10->Show();Label20->Show();Label11->Show();Label12->Show();Label7->Show();
Button3->Show();Button4->Show(); Memo2->Clear();Edit5->Show();Edit6->Show();Edit7->Show();Edit8->Hide();
Label19->Hide();Label21->Hide();Label22->Hide();
break;
case 1:Label1->Show();Label2->Show();;Label8->Show();
Edit5->Show();Edit6->Show();Edit7->Show();Edit8->Show();
Label16->Show(); Label17->Show();Label21->Show();Label18->Show();Label19->Show();
Label20->Hide();Label22->Hide();
break;
case 2:Label11->Show();
Edit5->Show();Edit6->Show();Edit7->Hide();Edit8->Hide();
Label10->Show();Label11->Show();Label3->Hide();Label7->Hide();Label8->Hide();
Label19->Hide();Label12->Hide();Label18->Hide();Label16->Hide();Label17->Hide();;Label7->Hide();Label8->Hide();Label9->Hide();
Label22->Show();Label21->Hide();Label20->Hide();
break;
}
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
float func(float a)
{
if (a>0)
return pow(a,2);
else
return pow(a,4);
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Memo2->Show();
Button5->Show();
switch(RadioGroup2->ItemIndex){
case 0:
Memo2->Show();
int a,b,c,s1,s2,s3;
a = StrToFloat(Edit5->Text);
b = StrToFloat(Edit6->Text);
c = StrToFloat(Edit7->Text);
s1=a+b;
s2=b+c;
s3=a+c;
Memo2->Clear();
if (s1>0)
Memo2->Lines->Add("Сума чисел А і В - позитивна");
if (s2>0)
Memo2->Lines->Add("Сума чисел B і C - позитивна");
if (s3>0)
Memo2->Lines->Add("Сума чисел А і C - позитивна");
if (s1<=0 && s2<=0 && s3<=0)
Memo2->Text=("Положительной суммы чисел нет!");
break;
case 1:
Memo2->Show();
float a1,a2,a3,a4;
a1=StrToFloat(Edit5->Text);
a2=StrToFloat(Edit6->Text);
a3=StrToFloat(Edit7->Text);
a4=StrToFloat(Edit8->Text);
if((Edit5->Text).Length()==0 ||(Edit6->Text).Length()==0 ||(Edit7->Text).Length()==0
||(Edit8->Text).Length()==0 )
ShowMessage("Ошибка! Вы заполнили не все поля!");
else{
if ((a1==a2) && (a2==a3) && (a3==a4)){
ShowMessage("Ошибка! Одно из полей должно быть не равным трём другим!");
Memo2->Hide();
Memo2->Clear();}
else if ((a1==a2) && (a2==a3))
Memo2->Lines->Add("Разняться a4= "+ FloatToStrF(a4,ffFixed,8,0));
else if ( ((a1=a2) && (a3=!a4)) || ((a2=a3) && (a1=!a4)) || ((a3=a4) && (a1=!a2)) ){
ShowMessage("Ошибка! Три поля должны быть одинаковыми!!");
Memo2->Hide();
Memo2->Clear();}
else if ((a1==a2) && (a2==a4))
Memo2->Lines->Add("Разняться a3= "+ FloatToStrF(a3,ffFixed,8,0));
else if ((a1==a3) && (a3==a4))
Memo2->Lines->Add("Разняться a2= "+ FloatToStrF(a2,ffFixed,8,0));
else if ((a2==a3) && (a3==a4))
Memo2->Lines->Add("Разняться a1= "+ FloatToStrF(a1,ffFixed,8,0));
}
break;
case 2: Memo2->Show();
try
{
a=StrToFloat(Edit5->Text);
b=StrToFloat(Edit6->Text);
}
catch(EConvertError &e)
{
ShowMessage("Введены некоректные данные!");
return;
}
c=a+b;
if ((c)>=32767) { Memo2->Lines->Add("Переполнение"); }
else
{Memo2->Lines->Add("Ответ="+FloatToStrF(c,ffFixed,5,2));} break;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
float h,a,b,c,x1,x2,d;
Button7->Show();
Memo3->Show();
if((Edit9->Text).Length()==0)
{ShowMessage("Ошибка! Вы заполнили не все поля!"); Edit9->SetFocus();}
else
{h=StrToFloat(Edit9->Text);
a=sqrt((fabs(sin(8*h))+17)/pow((1-sin(4*h)*cos(h*h+18)),2));
b=1-sqrt(3/(3+fabs(tan(a*h*h)-sin(a*h))));
c=a*h*h*sin(b*h)+b*h*h*cos(a*h);
d=(pow(b,2)-(4*a*c));
if(d<0)
Memo3->Lines->Add("Уровнение не имеет решения!");
else
{
if(d==0)
{x1=-b/(2*a);
if (x1-floor(x1)!=0)
Memo3->Lines->Add("x1="+FloatToStrF(x1,ffFixed,8,3));
else
Memo3->Lines->Add("Корень не действительный!");}
else
{x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
if((x1-floor(x1)!=0)&&(x2-floor(x2)!=0))
{Memo3->Lines->Add("x1="+FloatToStrF(x1,ffFixed,8,3));
Memo3->Lines->Add("x2="+FloatToStrF(x2,ffFixed,8,3));}
else
Memo3->Lines->Add("Корни не действительны!");}
}}}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if (((Key>='0') && (Key<='9')) || (Key==VK_BACK) || (Key==',') || (Key=='-'))
return;
if (Key==VK_RETURN)
Button1->SetFocus();
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
double F, x;
Button10->Show();
Memo4->Show();
x=StrToFloat(Edit10->Text);
Memo4->Clear();
switch(RadioGroup4->ItemIndex)
{
if((Edit10->Text).Length()==0)
{ShowMessage("Ошибка! Вы заполнили не все поля!"); Edit10->SetFocus();}
case 0:{ if (x<3.2)
F=x*x*x*x+9;
else F=54*x*x*x*x/(-5*x*x*+7);
Memo4->Lines->Add("Формула1= "+FloatToStrF(F,ffFixed,3,4)); } break;
case 1: { if (x>3)
F=1.2*x*x-3*x-9;
else F=12.1/(2*x*x+1);
Memo4->Lines->Add("Формула2= "+FloatToStrF(F,ffFixed,3,4)); } break;
case 2: { if (x<=3)
F=x*x+3*x+9;
else F=sin(x)/(x*x-9);
Memo4->Lines->Add("Формула3= "+FloatToStrF(F,ffFixed,3,4)); } break;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit4KeyPress(TObject *Sender, char &Key)
{
if (((Key>='0') && (Key<='9')) || (Key==VK_BACK) || (Key==',') || (Key=='-'))
return;
if (Key==VK_RETURN)
Button1->SetFocus();
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit3KeyPress(TObject *Sender, char &Key)
{
if (((Key>='0') && (Key<='9')) || (Key==VK_BACK) || (Key==',') || (Key=='-'))
return;
if (Key==VK_RETURN)
Button1->SetFocus();
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit2KeyPress(TObject *Sender, char &Key)
{
if (((Key>='0') && (Key<='9')) || (Key==VK_BACK) || (Key==',') || (Key=='-'))
return;
if (Key==VK_RETURN)
Button1->SetFocus();
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit5KeyPress(TObject *Sender, char &Key)
{
if (((Key>='0') && (Key<='9')) || (Key==VK_BACK) || (Key==',') || (Key=='-'))
return;
if (Key==VK_RETURN)
Button3->SetFocus();
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit6KeyPress(TObject *Sender, char &Key)
{
if (((Key>='0') && (Key<='9')) || (Key==VK_BACK) || (Key==',') || (Key=='-'))
return;
if (Key==VK_RETURN)
Button3->SetFocus();
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit7KeyPress(TObject *Sender, char &Key)
{
if (((Key>='0') && (Key<='9')) || (Key==VK_BACK) || (Key==',') || (Key=='-'))
return;
if (Key==VK_RETURN)
Button3->SetFocus();
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit8KeyPress(TObject *Sender, char &Key)
{
if (((Key>='0') && (Key<='9')) || (Key==VK_BACK) || (Key==',') || (Key=='-'))
return;
if (Key==VK_RETURN)
Button3->SetFocus();
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit9KeyPress(TObject *Sender, char &Key)
{
if (((Key>='0') && (Key<='9')) || (Key==VK_BACK) || (Key==',') || (Key=='-'))
return;
if (Key==VK_RETURN)
Button6->SetFocus();
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit10KeyPress(TObject *Sender, char &Key)
{
if (((Key>='0') && (Key<='9')) || (Key==VK_BACK) || (Key==',') || (Key=='-'))
return;
if (Key==VK_RETURN)
Button8->SetFocus();
Key=0;
}
//---------------------------------------------------------------------------