127 lines
3.2 KiB
C++
127 lines
3.2 KiB
C++
#include <cstdlib>
|
|
#include <iostream>
|
|
#include <Math.h>
|
|
#include <Windows.h>
|
|
|
|
using namespace std;
|
|
|
|
const int n = 20; //Êîë-âî ýëåìåíòîâ ìàññèâà
|
|
float a,b;
|
|
float X[n], Y[n]; //Ìàññèâû
|
|
|
|
//Óñòàíîâêà öâåòà â êîíñîëè
|
|
void SetColor(int text, int background)
|
|
{
|
|
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
|
|
}
|
|
|
|
//Ïðèâåòñòâèå ïîëüçîâàòåëÿ
|
|
void startApp() {
|
|
system("CLS");//î÷èñòêà ýêðàíà
|
|
SetColor(2,0);//çåëåíûé
|
|
cout << "---------------------------------" << endl;
|
|
cout << "- Author: Victor aNNiMON Melnik -" << endl;
|
|
cout << "---------------------------------" << endl;
|
|
SetColor(15,0);//áåëûé
|
|
}
|
|
|
|
//Ââîä a è b
|
|
void enterAandB() {
|
|
cout << endl << "Enter a: ";
|
|
cin >> a;
|
|
cout << "Enter b: ";
|
|
cin >> b;
|
|
if(a>b) {
|
|
float tmp = a;
|
|
a = b;
|
|
b = tmp;
|
|
}
|
|
}
|
|
|
|
//Ðàñ÷åò ìàññèâà X
|
|
void calculateX(bool view) {
|
|
if(view) cout << "Calculating "<<n<<" values of array X"<<endl;
|
|
SetColor(15,0);//áåëûé
|
|
for(int i=0; i<n; i++) {
|
|
X[i]=0.1*sqrt(12*i)+log10(i+7);
|
|
if(view) cout<<i<<": "<<X[i]<<endl;
|
|
}
|
|
}
|
|
|
|
//Ðàñ÷åò ìàññèâà Y
|
|
void calculateY(bool view) {
|
|
if(view) cout << "Calculating "<<n<<" values of array Y"<<endl;
|
|
SetColor(15,0);//áåëûé
|
|
for(int i=0; i<n; i++) {
|
|
if(X[i]>1) Y[i]=pow(X[i],4)+((2*(X[i]*X[i])+3)/(M_PI*X[i]))*sin(X[i])+0.47;
|
|
else Y[i]=X[i]*sin(pow(X[i],1/3))+((2*log(fabs(X[i])+1)+1)/(1+2*(cos(X[i]-M_PI/6)*
|
|
cos(X[i]-M_PI/6))));
|
|
if(view) cout<<i<<": "<<Y[i]<<endl;
|
|
}
|
|
}
|
|
|
|
//Óñòàíîâêà ïàðàìåòðîâ âûâîäà è ðàñ÷åò ìàññèâîâ
|
|
void process() {
|
|
char m = ' ';//ïàðàìåòðû âûâîäà
|
|
bool viewX=false,viewY=false;
|
|
SetColor(2,0);//çåëåíûé
|
|
cout << endl << "Choose one of parameters:" << endl;
|
|
SetColor(14,0);//æåëòûé
|
|
cout << "\t 0 - Not view X and Y arrays" << endl;
|
|
cout << "\t 1 - View X array" << endl;
|
|
cout << "\t 2 - View Y array" << endl;
|
|
cout << "\t 3 - View X and Y arrays" << endl;
|
|
SetColor(15,0);//áåëûé
|
|
while((m<'0') || (m>'3')) {
|
|
cin >> m;
|
|
}
|
|
switch(m) {
|
|
case '0':
|
|
viewX=viewY=false;
|
|
break;
|
|
case '1':
|
|
viewX=true;
|
|
viewY=false;
|
|
break;
|
|
case '2':
|
|
viewX=false;
|
|
viewY=true;
|
|
break;
|
|
case '3':
|
|
viewX=viewY=true;
|
|
break;
|
|
}
|
|
SetColor(2,0);//çåëåíûé
|
|
calculateX(viewX);
|
|
SetColor(2,0);//çåëåíûé
|
|
calculateY(viewY);
|
|
}
|
|
|
|
// Âûâîä îòâåòà
|
|
void getAnswer(float a, float b) {
|
|
int num = 0;
|
|
SetColor(14,0);//æåëòûé
|
|
for(int i=0; i<n; i++) {
|
|
if((Y[i]>=a) && (Y[i]<=b)) {
|
|
cout << i << ", ";
|
|
num++;
|
|
}
|
|
}
|
|
if(num>0) {
|
|
cout << " are belong to ["<<a<<","<<b<<"]"<<endl;
|
|
}
|
|
cout << "Number of elements: "<<num<<endl;
|
|
}
|
|
|
|
//Ãëàâíûé ìåòîä
|
|
int main()
|
|
{
|
|
startApp();
|
|
enterAandB();
|
|
process();
|
|
getAnswer(a,b);
|
|
system("PAUSE");
|
|
return 0;
|
|
}
|