Файл: Звіт до лабораторної роботи #2 if-else, switch-case.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.08.2024

Просмотров: 7

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Звіт до лабораторної роботи №2

Тема: Лінійне програмування.

Мета: Ознайомитися Технологією створення програмних продуктів та освіжити в пам’яті оператори if-else, switch-case.

Склад групи:

  • Матвієнко Богдан

  • Максименко Роман

  • Могила Андрій

  • Прилєпа Олександр

  • Шастун Владислав

Завдання: :

  1. Дано три дійсні числа. Звести в квадрат ті з них, значення яких позитивні, і в четверту ступінь — негативні.

  2. Дані дійсні числа х і в, не рівні один одному. Менше з цих двох чисел замінити половиною їх суми, а більше — їх подвоєним добутком.

  3. Послуги телефонної мережі оплачуються за наступним правилом: за розмови до А хвилин в місяць — B крб., а розмови понад встановлену норму оплачуються з розрахунку C крб. за хвилину. Написати програму, що обчислює плату за користування телефоном для введеного часу розмов за місяць.

2.

  1. Написати програму, яка по заданих трьох числах визначає, чи є сума яких-небудь двох з них позитивною.

  2. Відомо, що з чотирьох чисел a1, а2, a3 і а4 одне відмінне від трьох інших, рівних між собою; привласнити номер цього числа змінної n.

  3. Скласти програму, яка перевіряла б, чи не наводить підсумовування двох цілих чисел А і В до переповнювання (тобто до результату більшому чим 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;

}

//---------------------------------------------------------------------------