ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.09.2024
Просмотров: 6
Скачиваний: 0
Лабораторна робота № 3
Тема: Реалізація алгоритмів, що розгалужуються.
Мета: вивчити операції порівняння, логічні операції, оператори передачі управління if, switch, break, навчитися користуватися простими компонентами організації перемикань (СheckBox, RadioGroup). Написати і відлагодити програму з розгалуженнями.
Перелік використних компонентів.
RadioGroup |
|
||||||||||
|
|
Властивості Align, Constraints, Cursor, Enabled, Font, Height, Hint, ShowHint, Left, ParentColor, ParentFont, ParentShowHint, Name, PopupMenu, Top, Transparent, Visible, Width і деякі інші є загальними для багатьох компонентов.тся загальними для багатьох компонентів .
Завдання
Обчислити значення y залежно від вибраної функції від (x), аргумент якої визначається з поставленої умови. Можливі значення функції від (x) : 2x, x2, х/3 (у віконному додатку вибір виконати за допомогою компоненти RadioGroup). Передбачити виведення повідомлень, що показують, за якої умови і з якою функцією проводилися обчислення у.
13.1 , де
Скріншоти працюючого об’єктного додатку
|
|
|
|
Програмний код
#include <vcl.h>
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#pragma hdrstop
#include "Unit1.h"
#include "math.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Memo1 ->Clear();
Memo2 ->Clear();
Edit1 ->Text;
Edit2 ->Text;
Edit3 ->Text;
Edit4 ->Text;
Edit7 ->Text;
Memo1 ->Lines ->Add("\tЛабораторная работа №3");
RadioGroup1 ->ItemIndex = 0;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double y,x,m,k,z,u,n;
x=StrToFloat(Edit1 ->Text);
n=StrToFloat(Edit2 ->Text);
m=StrToFloat(Edit3 ->Text);
k=StrToFloat(Edit4 ->Text);
z=StrToFloat(Edit5 ->Text);
// Проверка нажатия кнопки и выбора соответственного действия по условию
switch (RadioGroup1 ->ItemIndex)
{
case 0: u=(2*x);
Memo1 ->Lines ->Add("2*x= "+FloatToStrF(u, ffFixed, 8,2));
break;
case 1: u=pow(x,2);
Memo1 ->Lines ->Add("pow(x,2)= "+FloatToStrF(u, ffFixed, 8,2));
break;
case 2: u=(x/3);
Memo1 ->Lines ->Add("x/3= "+FloatToStrF(u, ffFixed, 8,2));
break;
default: printf("EROR!"); exit(1);
}
//---------------------------------------------------------------------------
// Подсчёт у, по условию задачи
Memo2 ->Lines ->Add("\tВнимание!");
if (z>1) {x=z;
y = sin(u*n)+cos(x*k)+log(x*m);
Memo2 ->Lines ->Add("Вы выбрали z>1 из этого следует, что по условию задачи x=z");
}
else {x=pow(z,2)+1;
y = sin(u*n)+cos(u*k)+log(u*m);
Memo2 ->Lines ->Add("Вы выбрали z<=1 из этого из этого следует, что по условию задачи x=z^2+1");}
Memo1 ->Lines ->Add("y=sin("+FloatToStrF(u, ffFixed, 8,2)+
"*"+FloatToStrF(n, ffFixed, 2,2)+")+" + "cos("+FloatToStrF(x, ffFixed, 8,2)+
"*"+FloatToStrF(k, ffFixed, 8,2)+")+" + "ln("+FloatToStrF(x, ffFixed, 8,2)+
"*"+FloatToStrF(m, ffFixed, 8,2)+"="+FloatToStrF(y, ffFixed, 8,3));
Memo1 ->Lines ->Add("y= "+FloatToStrF(y, ffFixed, 8,1));
Edit7 ->Text=(FloatToStrF(y, ffFixed, 8,6));
}
13.2
Скріншоти працюючого об’єктного додатку
Програмний код
#include <vcl.h>
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#pragma hdrstop
#include "Unit1.h"
#include "math.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Memo1 ->Clear();
Edit1 ->Text;
Memo1 ->Lines ->Add("\t\tЛабораторная работа ¹3.2");
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double y,x;
x=StrToFloat(Edit1 ->Text);
//---------------------------------------------------------------------------
// Подсч¸т y, по условию задачи)
if (CheckBox1 ->Checked)
{x=-x; }
if(x==5 || x==0)
goto b;
else
if (x<0)
y=5*(pow(x,3))-(8/pow(x,2))+4*pow(x,(0.5))+(1/x);
if (x>0)
y=pow((5*pow(x,4)-2*x-1),(1.0/3))+(8/pow((x-5),2));
Memo1 ->Lines ->Add("Ïðè õ= "+FloatToStrF(x, ffFixed, 8,2));
Memo1 ->Lines ->Add("y= "+FloatToStrF(y, ffFixed, 8,2));
goto a;
b: ShowMessage("Введите другое число") ;
a: Edit1 ->SetFocus();}
Висновок: на лабораторній роботі я вивчив операції порівняння, логічні операції, оператори передачі управління if, switch, break, навчився користуватися простими компонентами організації перемикань (СheckBox, RadioGroup). Написав і відлагодив програму з розгалуженнями.