praktika-cpp-2PO07/main.cpp

127 lines
3.2 KiB
C++
Raw Normal View History

2024-03-02 18:17:55 +02:00
#include <cstdlib>
#include <iostream>
#include <Math.h>
#include <Windows.h>
using namespace std;
const int n = 20; //<2F><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float a,b;
float X[n], Y[n]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SetColor(int text, int background)
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void startApp() {
system("CLS");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SetColor(2,0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cout << "---------------------------------" << endl;
cout << "- Author: Victor aNNiMON Melnik -" << endl;
cout << "---------------------------------" << endl;
SetColor(15,0);//<2F><><EFBFBD><EFBFBD><EFBFBD>
}
//<2F><><EFBFBD><EFBFBD> a <20> b
void enterAandB() {
cout << endl << "Enter a: ";
cin >> a;
cout << "Enter b: ";
cin >> b;
if(a>b) {
float tmp = a;
a = b;
b = tmp;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> X
void calculateX(bool view) {
if(view) cout << "Calculating "<<n<<" values of array X"<<endl;
SetColor(15,0);//<2F><><EFBFBD><EFBFBD><EFBFBD>
for(int i=0; i<n; i++) {
X[i]=0.1*sqrt(12*i)+log10(i+7);
if(view) cout<<i<<": "<<X[i]<<endl;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Y
void calculateY(bool view) {
if(view) cout << "Calculating "<<n<<" values of array Y"<<endl;
SetColor(15,0);//<2F><><EFBFBD><EFBFBD><EFBFBD>
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;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void process() {
char m = ' ';//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool viewX=false,viewY=false;
SetColor(2,0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cout << endl << "Choose one of parameters:" << endl;
SetColor(14,0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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);//<2F><><EFBFBD><EFBFBD><EFBFBD>
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);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
calculateX(viewX);
SetColor(2,0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
calculateY(viewY);
}
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void getAnswer(float a, float b) {
int num = 0;
SetColor(14,0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
int main()
{
startApp();
enterAandB();
process();
getAnswer(a,b);
system("PAUSE");
return 0;
}