2.3.1. Приклад написання програми консольного застосування
Текст програми може мати вигляд
//---------------------------------------------------------------------------
#include <vcl.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
double x, y, z, u, ma;
int kod;
puts("Input x, y, z");
scanf("%lf%lf%lf",&x, &y, &z);
puts("Function U(x) :\n 0 - cos(x)\n 1 - sin(x)\n 2 - tan(x)");
scanf("%d", &kod);
switch(kod){
case 0: u=cos(x); printf("\n\tCos(x)= %8.6lf", u); break;
case 1: u=sin(x); printf("\n\Sin(x)= %8.6lf", u); break;
case 2: u=tan(x); printf("\n\Tg(x)= %8.6lf", u); break;
}
puts("\nMax ABS - 1, Else - Max");
scanf("%d", &kod);
if (kod == 1){
u = fabs(u);
y = fabs(y);
z = fabs(z);
}
if (u>y) ma=u;
else ma=y;
if (z>ma) ma=z;
if (kod==1) printf("Max ABS = %8.6lf", ma);
else printf("Max = %8.6lf", ma);
puts("\nPress any key ... ");
getch();
return 0;
}
Результати виконання програми :
Індивідуальні завдання
Обчислити значення y залежно від вибраної функції від (x), аргумент якої визначається з поставленої умови. Можливі значення функції від (x) : 2x, x2, х/3 (у віконному додатку вибір виконати за допомогою компоненти RadioGroup). Передбачити виведення повідомлень, що показують, за якої умови і з якою функцією проводилися обчислення у.
-
, де
-
, де
-
, де
-
, де
-
, де
-
, де
-
, де
-
, де
-
, де
-
, де
-
, де
-
, де
-
, де
-
, де
-
, де
-
, де
Структура звіту
/ Проверка состояния CheckBox1
if (CheckBox1 -> Checked){
if (x<0)
y=5*pow(x,3)-(8/pow(x,2))+(4*sqrt(x)+1/x);
Edit6 ->Text=("y= "+FloatToStrF(y, ffFixed, 8,2));
// Проверка состояния CheckBox2
if (CheckBox2 -> Checked){
if (x>=0)
y=pow(5*pow(x,4)-2*x-1,(1/3)+(8/pow((x-5),2)));
Edit6 ->Text=("y= "+FloatToStrF(y, ffFixed, 8,2));//x-это число,
//ffFixed - Это формат. Универсальное программирование фиксированая точка,
//3,5 - 2 цифры после 8 до.
}}
#include <vcl.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)
{
int z;
double x, y, n, m, k, u;
Edit1 ->Clear();
Edit3 ->Clear();
Memo1 ->Clear();
Edit4 ->Clear();
Edit5 ->Clear();
x = StrToFloat(Edit1->Text);
k = StrToFloat(Edit3->Text);
m = StrToFloat(Edit4->Text);
z = StrToFloat(Edit5->Text);
Memo1 ->Lines ->Add("\tЛабораторна робота 2");
RadioGroup1 ->ItemIndex = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int z;
double x, y, n, m, k, u;
x=StrToFloat(Edit1 ->Text);
// Проверка нажатия кнопки и выбор соответствующей функции
switch(RadioGroup1 ->ItemIndex){
case 0: u=(2*x);
Memo1 ->Lines ->Add("2*x= "+FloatToStrF(u, ffFixed, 8,2));
Edit6 ->Text=("y= "+FloatToStrF(y, ffFixed, 8,2));
break;
case 1: u=pow(x,2);
Memo1 ->Lines ->Add("pow(x,2)= "+FloatToStrF(u, ffFixed, 8,2));
Edit6 ->Text=("y= "+FloatToStrF(y, ffFixed, 8,2));
break;
case 2: u=(x/3);
Memo1 ->Lines ->Add("x/3= "+FloatToStrF(u, ffFixed, 8,2));
Edit6 ->Text=("y= "+FloatToStrF(y, ffFixed, 8,2));
break;
}
// Вычисление y=
if(z>1) x = z;
else x = z*z+1;
y = sin(n*x)+cos(k*x)+log(m*x);
Edit6 ->Text=("y= "+FloatToStrF(y, ffFixed, 8,5));
Memo1 ->Lines ->Add("Y= "+FloatToStrF(y, ffFixed, 8,5));
}
//---------------------------------------------------------------------------
-
Назва роботи.
-
Тема роботи.
-
Мета роботи.
-
Перелік використних компонентів.
-
Властивості використаних компонентів та події, що вони забезпечують. (Доцільно оформити у вигляді таблиці.)
-
Скрін-шот працюючого додатку.
-
Програмний код додатку.
-
Відповіді на контрольні питання до роботи.
Контрольні питання
//---------------------------------------------------------------------------
#include <vcl.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)
//int ;
{ double x, y, k, m,z;
x = StrToFloat(Edit1->Text);
k = StrToFloat(Edit3->Text);
m = StrToFloat(Edit2->Text);
z = StrToFloat(Edit4->Text);
Memo1 ->Clear();
Memo1 ->Lines ->Add("\t\tЛабораторна робота 3");
RadioGroup1 ->ItemIndex = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int z;
double x, y, n, m, k, u;
x=StrToFloat(Edit1 ->Text);
// Перев³рка номера натиснуто¿ кнопки ³ виб³р в³дпов³дно¿ функц³¿
switch(RadioGroup1 ->ItemIndex){
case 0: u=(2*x);
Memo1 ->Lines ->Add("2*x= "+FloatToStrF(u, ffFixed, 8,2));
Edit5 ->Text=("y= "+FloatToStrF(y, ffFixed, 8,2));
break;
case 1: u=pow(x,2);
Memo1 ->Lines ->Add("pow(x,2)= "+FloatToStrF(u, ffFixed, 8,2));
Edit5 ->Text=("y= "+FloatToStrF(y, ffFixed, 8,2));
break;
case 2: u=(x/3);
Memo1 ->Lines ->Add("x/3= "+FloatToStrF(u, ffFixed, 8,2));
Edit5 ->Text=("y= "+FloatToStrF(y, ffFixed, 8,2));
break;
}
// Y
if(z>1) x = z;
else x = z*z+1;
y = sin(n*x)+cos(k*x)+log(m*x);
Edit5 ->Text=("y= "+FloatToStrF(y, ffFixed, 8,5));
Memo1 ->Lines ->Add("Y= "+FloatToStrF(y, ffFixed, 8,5));
}