Код программы на эвм
*** Содержание файла 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