Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Семестровая-Функции Бесселя.docx
Скачиваний:
8
Добавлен:
20.09.2019
Размер:
643.93 Кб
Скачать

Код программы на эвм

*** Содержание файла Unit1.cpp ***

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

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

Im[0] = Image1;

Im[1] = Image2;

Im[2] = Image3;

Im[3] = Image4;

Im[4] = Image5;

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

int A, B, C, i=0;

A=ComboBox1->ItemIndex;

B=ComboBox2->ItemIndex;

C=ComboBox3->ItemIndex;

switch(A)

{

case 0:

if(B==0)

{

if(C==0)i=0;

else i=1;

}

else

{

if(C==0)i=2;

else i=3;

}

break;

case 1:

if(B==0)

{

if(C==0)i=4;

else i=5;

}

else

{

if(C==0)i=6;

else i=7;

}

break;

case 2:

if(B==0)

{

if(C==0)i=8;

else i=9;

}

else

{

if(C==0)i=10;

else i=11;

}

break;

}

Graphik G(Ui[i]);

G.postroenie(Im[0]);

G4=G3;

G3=G2;

G2=G1;

G1=G;

G4.postroenie(Im[4]);

G3.postroenie(Im[3]);

G2.postroenie(Im[2]);

G1.postroenie(Im[1]);

}

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

void __fastcall TForm1::ComboBox1Change(TObject *Sender)

{

ComboBox2->Items->Clear();

switch(ComboBox1->ItemIndex)

{

case 0:

ComboBox2->Items->Add("Первого рода J");

ComboBox2->Items->Add("Второго рода Y");

break;

case 1:

ComboBox2->Items->Add("exp(-x)I");

ComboBox2->Items->Add("exp(x)K");

break;

case 2:

ComboBox2->Items->Add("ber");

ComboBox2->Items->Add("bei");

break;

}

ComboBox2->ItemIndex=0;

}

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

void __fastcall TForm1::Button2Click(TObject *Sender)

{

ShowMessage("Семестровая работа Самородова Евгения\n ПМб-102, 2012г");

}

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

*** Содержание файла Unit1.h ***

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

#ifndef Unit1H

#define Unit1H

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

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ExtCtrls.hpp>

#include <stdio.h>

#include <math.h>

#include <iostream.h>

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

class TForm1 : public TForm

{

__published: // IDE-managed Components

TImage *Image1;

TImage *Image2;

TImage *Image3;

TImage *Image4;

TComboBox *ComboBox1;

TComboBox *ComboBox2;

TImage *Image5;

TButton *Button1;

TButton *Button2;

TComboBox *ComboBox3;

void __fastcall Button1Click(TObject *Sender);

void __fastcall ComboBox1Change(TObject *Sender);

void __fastcall Button2Click(TObject *Sender);

private: // User declarations

public: // User declarations

TImage * Im[5];

__fastcall TForm1(TComponent* Owner);

};

class Graphik

{

private:

float H;

int N;

float * M;

float Max;

float Min;

public:

Graphik(char *str)

{

FILE * F;

F = fopen(str,"r");

if(F!=NULL)

{

fscanf(F,"%f",&H);

fscanf(F,"%d",&N);

M = new float[N];

fscanf(F,"%f",&M[0]);

Max=M[0];

Min=M[0];

int i;

for(i=1;i<N;i++)

{

fscanf(F,"%f",&M[i]);

if(M[i]>Max)Max=M[i];

if(M[i]<Min)Min=M[i];

}

}

else

{

ShowMessage("Отсутствует важный файл для работы программы!");

N=0;H=0;

}

fclose(F);

}

Graphik(Graphik & G)

{

H=G.H;

N=G.N;

Max=G.Max;

Min=G.Min;

M = new float[N];

int i;

for(i=0;i<N;i++)

{

M[i]=G.M[i];

}

}

~Graphik(void)

{

delete[]M;

N=0;H=0;

}

void postroenie(TImage *I)

{

//Прорисовка графика G на I

int X = I->Width;

int Y = I->Height;

char str[10];

float Wg, Hg, E, O, S;

E = 2*X/Y;

I->Canvas->Rectangle(E,E,X-E,Y-E);

Wg=N*H;

Hg=Max-Min;

if(Max>=0)

{

if(Min>=0)O=Hg;

else O=Max;

}

else O=0;

float Ky = ((float)Y-2*E)/Hg, Kx = ((float)X-2*E-15)/Wg;

I->Canvas->MoveTo(E+15,O*Ky);

I->Canvas->LineTo(X-E,O*Ky);

I->Canvas->MoveTo(E+15,E);

I->Canvas->LineTo(E+15,Y-E);

I->Canvas->Font->Height=15;

I->Canvas->TextOutA(E+5,O*Ky-10,"0");

sprintf(str,"%.2f",Max);

I->Canvas->TextOutA(E+5,E+5,str);

sprintf(str,"%.2f",Min);

I->Canvas->TextOutA(E+5,Y-E-20,str);

sprintf(str,"%.2f",N*H);

I->Canvas->TextOutA((int)(E+(float)N*H*Kx-20),O*Ky-10,str);

int i=0;

I->Canvas->MoveTo((int)E+15,(int)((O-M[0])*Ky+E));

do{

i++;

I->Canvas->LineTo((int)(E+15+(float)i*H*Kx),(int)((O-M[i])*Ky+E));

}while(i<N-1);

}

};

char Ui[12][10] = {"imJ0.txt","imJ1.txt","imY0.txt",

"imY1.txt","imI0.txt","imI1.txt","imK0.txt",

"ber0.txt","ber1.txt","bei0.txt","bei1.txt"};

Graphik G1("000.txt"),G2("000.txt"),G3("000.txt"),G4("000.txt");

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

extern PACKAGE TForm1 *Form1;

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

#endif