Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная работа №1.Основы алгоритмизации и программирования.Вариант №3..doc
Скачиваний:
78
Добавлен:
01.04.2014
Размер:
158.72 Кб
Скачать

ЗАДАНИЕ 1

Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.

При x = 3.7410-2, y = –0.825, z = 0.16102 v = 1.0553.

Текст программы:

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

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include <math.h>

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

#pragma package(smart_init)

#pragma resource "*.dfm"

double v,x,y,z,a1,a2,a3,a4;

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

x=StrToFloat(Edit1->Text);

y=StrToFloat(Edit2->Text);

z=StrToFloat(Edit3->Text);

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Memo1->Lines->Clear();

Memo1->Lines->Add("Задача 1");

a1=1+pow(sin(x+y),2);

a2=fabs(x-(2*y)/(1+pow(x,2)*pow(y,2)));

a3=pow(x,fabs(y));

a4=pow(cos(atan(1/z)),2);

v=(a1/a2)*a3+a4;

Memo1->Lines->Add(FloatToStrF(v,ffFixed,10,4));

}

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

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Memo1->Lines->Add("Задача 1");

}

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

Результат работы программы:

Ответ: При x = 3.7410-2, y = –0.825, z = 0.16102 v=0,0592.

ЗАДАНИЕ 2

Вычислить значение y в зависимости от выбранной функции φ(x), аргумент которой определяется из поставленного условия. Возможные значения функции φ(x): 2x, x2, х/3 (в оконном приложениии выбор выполнить с помощью компоненты RadioGroup). Предусмотреть вывод сообщений, показывающих, при каком условии и с какой функцией производились вычисления у.

, где

Текст программы:

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

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include <math.h>

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

#pragma package(smart_init)

#pragma resource "*.dfm"

double x,y,f,z,a,b;

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

Void __fastcall tForm1::Button1Click(tObject *Sender)

{

a=StrToFloat(Edit1->Text);

b=StrToFloat(Edit2->Text);

z=StrToFloat(Edit3->Text);

Memo1->Lines->Clear();

Memo1->Lines->Add("Задача №2");

if (z<1){ x=z; Memo1->Lines->Add("z<1");}

else /*if (z>=1)*/

{x=sqrt(pow(z,3)); Memo1->Lines->Add("z>=1");}

switch(RadioGroup1->ItemIndex){

case 0: f=2*x;

Memo1->Lines->Add("f(2*x)= "+FloatToStrF(f,ffFixed,8,6));

break;

case 1: f=pow(x,2);

Memo1->Lines->Add("f(x^2)= "+FloatToStrF(f,ffFixed,8,6));

break;

case 2: f=x/3;

Memo1->Lines->Add("f(x/3)= "+FloatToStrF(f,ffFixed,8,6));

break;

}

y=-M_PI*f+a*pow(cos(pow(x,3)),2)+b*pow(sin(pow(x,2)),3);

Memo1->Lines->Add("y="+FloatToStr(y));

}

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

Void __fastcall tForm1::FormCreate(tObject *Sender)

{

Memo1->Lines->Clear();

Edit1->Text="0";

Edit2->Text="0";

Edit3->Text="0";

Memo1->Lines->Add("Задача №2");

Form1->Caption=("Задача №2");

}

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

Результат работы программы:

Ответ: Вычислили значение у в зависимости от выбранной функции (например, х2), аргумент которой определяется из поставленного условия (в данном случае z>=1).

ЗАДАНИЕ 3

Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x) – S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух–четырех позициях после десятичной точки.

Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания.

Текст программы:

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

#include <vcl.h>

#pragma hdrstop

#include <math.h>

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

double a,b,h,s,y=1,x,r,z;

int k,t,n;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TForm1::Button2Click(TObject *Sender)

{

a=StrToFloat(Edit1->Text);

b=StrToFloat(Edit2->Text);

h=StrToFloat(Edit3->Text);

n=StrToInt(Edit4->Text);

Memo1->Lines->Add(" S Y Z ");

for (x=a;x<b;x+=h)

{

r=1;t=0;s=0;

for (k=0;k<n;k++)

{

if (k==0) t=1;

else t=t*k;

r=(cos((k*M_PI)/4)/t)*pow(x,k);

s=s+r;

}

y=exp(x*cos(M_PI/4))*cos(x*sin(M_PI/4));

z=fabs(y-s);

Memo1->Lines->Add(" "+FloatToStrF(s,ffFixed,6,6)+" "+ FloatToStrF(y,ffFixed,6,6)+" "+FloatToStrF(z,ffFixed,6,15));

}

}

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