praktika-cpp-2PO07/main.cpp
2024-03-02 18:17:55 +02:00

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;
}