From 55aa8242913bf6d24e50e99b1469216dc10424d6 Mon Sep 17 00:00:00 2001 From: CuteDarKy <92202575+CuteDarKy@users.noreply.github.com> Date: Sat, 6 Nov 2021 09:36:39 +0300 Subject: [PATCH 01/24] Add files via upload --- 13.10_Task1.cpp | 31 +++++++++++++++++++++++ 13.10_Task2.cpp | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ 6.10_Task1.cpp | 25 +++++++++++++++++++ 3 files changed, 121 insertions(+) create mode 100644 13.10_Task1.cpp create mode 100644 13.10_Task2.cpp create mode 100644 6.10_Task1.cpp diff --git a/13.10_Task1.cpp b/13.10_Task1.cpp new file mode 100644 index 0000000..ed2ee38 --- /dev/null +++ b/13.10_Task1.cpp @@ -0,0 +1,31 @@ +#include +#include + +using namespace std; + +double modul(int x, int y, int z){ + double m=(pow((pow(x,2)+pow(y,2)+pow(z,2)), 1/2)); + return m; +} + +int main(){ +int x=1, y=5, z=3, leigth=0; +leigth=modul(x, y, z); +cout<<"1. Leigth of vector = "<>a; +cout<<"2nd number"<>b; +cout<<"Number of operation"<>num; +switch(num){ + case 1: + cout< +#include + +double S(int p, int n, double i, double m){ + double s = p*pow(1+((i/100)/(m/12)), m/(12*n)); + return s; +} + +using namespace std; + +int main(){ +double Summa, m, I = 0.15; +int P, n; +cout<<"Summa vklada:"<>P; +cout<<"Srok depozita:"<>n; +for(int m=0; m<=12; m++){ + if (m==1){ + Summa = S(P,n,I,1); + cout<<"For 12 months: "< +#include + +using namespace std; + + +int Deapazon(int b, int e){ + int s=0; + for(int i=b; i<=e; i++){ + if (i%2==0){ + s+= i; + } + } + return s; +} + +int main(){ +int begin, end, result; +cout<<"Diapazon: "<>begin; +cout<<"Ending: "; +cin>>end; +result = Deapazon(begin,end); +cout< Date: Sat, 6 Nov 2021 14:16:49 +0300 Subject: [PATCH 03/24] Add files via upload --- 23.10_Task5.cpp | 35 +++++++++++++++++++++++++++++++++++ 23.10_Task7.cpp | 34 ++++++++++++++++++++++++++++++++++ 23.10_Task8.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+) create mode 100644 23.10_Task5.cpp create mode 100644 23.10_Task7.cpp create mode 100644 23.10_Task8.cpp diff --git a/23.10_Task5.cpp b/23.10_Task5.cpp new file mode 100644 index 0000000..d871c81 --- /dev/null +++ b/23.10_Task5.cpp @@ -0,0 +1,35 @@ +#include +#include + +using namespace std; + +float Discriminant(int x, int y, int z){ + int f1, f2; + double D = pow(y,2) - 4*x*z; + if (D<0){ + cout<<"Korney net"; + } + if (D==0){ + f1 = (-y)/(2*x); + cout<<"F = "<0){ + f1 = (-y+sqrt(D))/(2*x); + f2 = (-y-sqrt(D))/(2*x); + cout<<"F1 = "<>heigth; +cout<<"Width: "; +cin>>width; +cout<<"symbol: "; +cin>>symbol; +Funk(heigth, width, symbol); + return 0; +} \ No newline at end of file diff --git a/23.10_Task8.cpp b/23.10_Task8.cpp new file mode 100644 index 0000000..98e46fa --- /dev/null +++ b/23.10_Task8.cpp @@ -0,0 +1,47 @@ +#include +#include +#include + +using namespace std; + + +int main(){ +srand(time(NULL)); //генерируем различные числа в различном диапозоне +int const ROW = 3; +int const COL = 5; +int masiv[ROW][COL]; +int masivMax[ROW]; +for(int i=0; imasiv[i][j]){ + min = masiv[i][j]; + } + } +} +int max; +for(int i=0; i Date: Sun, 28 Nov 2021 20:26:24 +0300 Subject: [PATCH 04/24] Add files via upload --- 9.11_Task2.cpp | 18 ++++++++++++++++++ 9.11_Task3.cpp | 31 +++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 9.11_Task2.cpp create mode 100644 9.11_Task3.cpp diff --git a/9.11_Task2.cpp b/9.11_Task2.cpp new file mode 100644 index 0000000..39ec096 --- /dev/null +++ b/9.11_Task2.cpp @@ -0,0 +1,18 @@ +#include +#include + +using namespace std; + +void f (float a, float b){ + cout< Date: Mon, 29 Nov 2021 10:39:37 +0300 Subject: [PATCH 05/24] Update 9.11_Task3.cpp --- 9.11_Task3.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/9.11_Task3.cpp b/9.11_Task3.cpp index 166cab7..b0f2380 100644 --- a/9.11_Task3.cpp +++ b/9.11_Task3.cpp @@ -8,19 +8,19 @@ using namespace std; int main(){ SetConsoleOutputCP(1251); -int n; -cout<<"n = "; -cin>>n; -double *M; - M = new double[n]; +int size; +cout<<"size = "; +cin>>size; +double *Array; + Array = new double[size]; srand(time(0)); int minimum = 200; int index = 0; -for(int i = 0; i Date: Mon, 29 Nov 2021 10:40:31 +0300 Subject: [PATCH 06/24] Add files via upload --- 9.11_Task4.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 9.11_Task4.cpp diff --git a/9.11_Task4.cpp b/9.11_Task4.cpp new file mode 100644 index 0000000..37f166a --- /dev/null +++ b/9.11_Task4.cpp @@ -0,0 +1,44 @@ +#include +#include +#include +#include + +using namespace std; + +void fillArray(double* Array, int size){ + srand(time(0)); + for(int i = 0; i>a>>b>>c; +float *vales_a = &a; +float *vales_b = &b; +float *vales_c = &c; +cout<<"Число a = "<<*vales_a< Date: Fri, 10 Dec 2021 17:23:53 +0300 Subject: [PATCH 08/24] Add files via upload --- 20.11_Task3.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 20.11_Task4.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 20.11_Task3.cpp create mode 100644 20.11_Task4.cpp diff --git a/20.11_Task3.cpp b/20.11_Task3.cpp new file mode 100644 index 0000000..a974279 --- /dev/null +++ b/20.11_Task3.cpp @@ -0,0 +1,39 @@ +#include +#include +#include + +using namespace std; + +float NOD(int x, int y){ + int ost = 0, result = 1; + if(x > y){ + ost = x % y; + result = x/y; + } + if(x <= y){ + ost = y % x; + result = y/x; + } + while(ost != 0){ + result = result / ost; + ost = result % ost; + } + if(x<=y){ + if (result>x) return result; + else return x; + } + else return y; +} + + +int main(){ +SetConsoleOutputCP(1251); +int x, y; +cout<<"x = "; +cin>>x; +cout<<"y = "; +cin>>y; +cout<<"NOD("< +#include +#include + +using namespace std; + +float NOD(int x, int y){ + int ost = 0, result = 1; + if(x > y){ + ost = x % y; + result = x/y; + } + if(x <= y){ + ost = y % x; + result = y/x; + } + while(ost != 0){ + result = result / ost; + ost = result % ost; + } + if(x<=y){ + if (result>x) return result; + else return x; + } + else return y; +} + +float NOK(int x, int y){ + return (x*y)/NOD(x,y); +} + +int main(){ +SetConsoleOutputCP(1251); +int x, y; +cout<<"x = "; +cin>>x; +cout<<"y = "; +cin>>y; +cout<>n; +while((n<0)||(n>325)){ + cout<<"Write correct number: "; + cin>>n; +} +algoritm(n); + + return 0; +} + diff --git a/27.11_Task1A.cpp b/27.11_Task1A.cpp new file mode 100644 index 0000000..9daf956 --- /dev/null +++ b/27.11_Task1A.cpp @@ -0,0 +1,39 @@ +#include +#include +#include + +using namespace std; + + +int main(){ +SetConsoleOutputCP(1251); +int rows,columns; +cout<<"Enter rows = "; +cin>>rows; +cout<<"Enter columns = "; +cin>>columns; +int **matrix = new int*[rows]; +for(int i=0; i>matrix[i][j]; + } +} +for(int i=0; i=0; j--){ + cout< +#include +#include + +using namespace std; + + +int main(){ +SetConsoleOutputCP(1251); +int temp = 0; +int lines = 0; +int column = 0; +cout << "Enter lines:= "; +cin >> lines; +cout << "Enter column:= "; +cin >> column; +int **matrix = new int*[lines]; +for(int i=0; i>matrix[i][j]; + } +} +for (int i = 0; i < lines; i++){ + for (int j = 0; j < column; j++){ + cout< Date: Thu, 16 Dec 2021 11:57:39 +0300 Subject: [PATCH 10/24] Add files via upload --- 27.11_Task2.cpp | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ 27.11_Task3.cpp | 26 ++++++++++++++++++++++ 27.11_Task4.cpp | 24 ++++++++++++++++++++ 27.11_Task5.cpp | 35 +++++++++++++++++++++++++++++ 4 files changed, 143 insertions(+) create mode 100644 27.11_Task2.cpp create mode 100644 27.11_Task3.cpp create mode 100644 27.11_Task4.cpp create mode 100644 27.11_Task5.cpp diff --git a/27.11_Task2.cpp b/27.11_Task2.cpp new file mode 100644 index 0000000..c8b69b8 --- /dev/null +++ b/27.11_Task2.cpp @@ -0,0 +1,58 @@ +#include +#include +#include +#include + +using namespace std; + +void Treugol1(int h, string s){ + for(int i=0; i0; i--){ + for(int j=0; j0; i--){ + for(int j=0; j0; i--){ + for(int j=0; j>height; +string symbol; +cout<<"Enter symbol: "; +cin>>symbol; +Treugol1(height, symbol); +Treugol2(height, symbol); +Treugol3(height, symbol); +Treugol4(height, symbol); + return 0; +} \ No newline at end of file diff --git a/27.11_Task3.cpp b/27.11_Task3.cpp new file mode 100644 index 0000000..41f747e --- /dev/null +++ b/27.11_Task3.cpp @@ -0,0 +1,26 @@ +#include +#include +#include + +using namespace std; + + +int main(){ +SetConsoleOutputCP(1251); +int number; +cout<<"Enter the number: "; +cin>>number; +int k=0; +while(number!=1){ + k++; + if(number%2==0){ + number /= 2; + } + else{ + number = (number*3+1)/2; + } + cout< +#include +#include + +using namespace std; + +long double factorial(int k){ + if(k<0) return 0; + if(k==0) return 1; + else return k*factorial(k-1); +} + +int main(){ +SetConsoleOutputCP(1251); +int number, summa=0; +cout<<"Enter the number: "; +cin>>number; +for(int k=1; k<=number; k++){ + summa += -1*k*((5-k)/factorial(k)); +} +cout<<"Summa = "< +#include +#include + +using namespace std; + +void funk(int n){ + int *array = new int[n+1]; + for(int i=0; i<=n; i++){ + array[i]=i; + } + for(int i=2; i*i<=n; i++){ + if(array[i]){ + for(int j=i*i; j<=n; j+=i){ + array[j]=0; + } + } + } + for(int i=2; i>number; +funk(number); + + return 0; +} \ No newline at end of file From 0de801e73750f0231c34d337f22d2b5b7af76d70 Mon Sep 17 00:00:00 2001 From: CuteDarKy <92202575+CuteDarKy@users.noreply.github.com> Date: Thu, 16 Dec 2021 17:45:12 +0300 Subject: [PATCH 11/24] Add files via upload --- 23.10_Task3.cpp | 30 ++++++++++++++++++++++++++++++ 23.10_Task6.cpp | 28 ++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 23.10_Task3.cpp create mode 100644 23.10_Task6.cpp diff --git a/23.10_Task3.cpp b/23.10_Task3.cpp new file mode 100644 index 0000000..794c92c --- /dev/null +++ b/23.10_Task3.cpp @@ -0,0 +1,30 @@ +#include +#include + +using namespace std; + + + +void Summa(int k){ + double s = 0; + for(float n=1; n<=k; n++){ + s += 2/((2*n+1)*(2*n+3)); + } + cout<<"Summa = "<>n; +while ((n<100000) || (n>999999)) { + cout<<"Number isn't correct"<>n; +} +funk(n); + + return 0; +} \ No newline at end of file From d8c757e77148a7c7c699a537707420a5d51838d8 Mon Sep 17 00:00:00 2001 From: CuteDarKy <92202575+CuteDarKy@users.noreply.github.com> Date: Fri, 24 Dec 2021 14:48:24 +0300 Subject: [PATCH 12/24] Add files via upload --- 11.12_Task2.cpp | 91 +++++++++++++++++++++++++ 11.12_Task3.cpp | 176 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 267 insertions(+) create mode 100644 11.12_Task2.cpp create mode 100644 11.12_Task3.cpp diff --git a/11.12_Task2.cpp b/11.12_Task2.cpp new file mode 100644 index 0000000..32cd442 --- /dev/null +++ b/11.12_Task2.cpp @@ -0,0 +1,91 @@ +#include +#include +#include +#include +#include + +using namespace std; +class Employee{ + private: + string FIO; + int years; + string position; + string homeAdd; + string number; + int hours; + int PriseOfWorkHour; + string checkString(string s){ //проверка верности ввода данных + if(s == ""){ + cout<<"It isn't correct. Enter again: "; + cin>>s; + } + return s; + } + int checkInt(int i){ //проверка верности ввода данных + if(i==0){ + cout<<"It isn't correct. Enter again: "; + cin>>i; + } + return i; + } + public: + Employee(string FIO, int years, string position, string homeAdd, string number, int hours, int PriseOfWorkHour){ //присваивание проверенных данных + this->FIO = checkString(FIO); + this->years = checkInt(years); + this->position =checkString(position); + this->homeAdd = checkString(homeAdd); + this->number = checkString(number); + this->hours = checkInt(hours); + this->PriseOfWorkHour = checkInt(PriseOfWorkHour); + } + void salary(){ //метод расчёта зарплаты + cout << "Salary of this employee: " << hours * PriseOfWorkHour << endl; + } + void premium(){ //метод расчёта премии + if ((years >= 1) && (years < 3)) { + cout << "Premium of this employee: " << (hours * PriseOfWorkHour * 3)/100 << endl; + } else if ((years >= 3) && (years < 6)) { + cout << "Premium of this employee: " << (hours * PriseOfWorkHour * 5)/100 << endl; + } else if ((years >= 6) && (years <= 9)) { + cout << "Premium of this employee: " << (hours * PriseOfWorkHour * 7)/100 << endl; + } else if (years >= 10) { + cout << "Premium of this employee: " << (hours * PriseOfWorkHour * 13)/100 << endl; + } + } + void showInfo(){ //вывод информации о сотруднике на экран + cout << "FIO: " << FIO << endl; + cout << "Experience: " << years << endl; + cout << "Position: " << position << endl; + cout << "Home adress: " << homeAdd << endl; + cout << "Number: " << number << endl; + cout << "Hours: " << hours << endl; + cout << "The cost of one hour of work: " << PriseOfWorkHour << endl; + cout << endl; + } + void record(){ //метод вывода данных в файл + ofstream file(FIO + ".txt"); + file << "FIO: " << FIO << endl; + file << "Experience: " << years << endl; + file << "Position: " << position << endl; + file << "Home adress: " << homeAdd << endl; + file << "Number: " << number << endl; + file << "Hours: " << hours << endl; + file << "The cost of one hour of work: " << PriseOfWorkHour << endl; + file.close(); + } +}; + +int main() +{ + Employee First("Xina John Bro", 1, "Delevoper", "Ivanovo, Shubinyh 32", "+71231231312", 100, 500); + Employee Second("", 0, "", "", "", 0, 0); + First.showInfo(); + Second.showInfo(); + First.salary(); + Second.salary(); + First.premium(); + Second.premium(); + First.record(); + Second.record(); + return 0; +} diff --git a/11.12_Task3.cpp b/11.12_Task3.cpp new file mode 100644 index 0000000..aafb0ed --- /dev/null +++ b/11.12_Task3.cpp @@ -0,0 +1,176 @@ +//Код взят у Бутусова Александра +#include +#include + +using namespace std; + +class Massive { + public: + int rows; + int columns; + int **Giga; //двумерный динамический массив + int **TrGiga; //транспонированная матрица (динамическая) + int **DopGiga; //дополнительный массив (двумерный динамический) + //a + Massive(int r, int c){ + rows = r; + columns = c; + Giga = new int* [rows]; //создаём динамический массив + for (int i = 0; i max){ //находим максимум среди нечётных чисел столбцов массива + max = First.Giga[j][i]; //запоминаем максимум из столбца + } + } + maxStolbNechet[i] = max; //записываем максимумы столбцов в одномерный массив + } + for (int i =0; i < First.columns; i++){ + if (maxStolbNechet[i] != -1000){ //проверяем наличие максимума + cout << maxStolbNechet[i] << " "; //выводим массив максимумов + } else { + cout << "Nothing! "; //если максимумы не найдены + } + } + cout << "}" << endl; + + //3 + cout << "Array of average value in each column = { "; + float *sredStolb = new float[First.columns]; //создаём одномрный массив + for (int i = 0; i < First.columns; i++){ + int sred = 0; + for (int j = 0; j < First.rows; j++){ + sred += First.Giga[j][i]; //складываем числа столбца + } + sredStolb[i] = sred/First.columns; //находим среднее столбца + } + for (int i =0; i < First.columns; i++){ + cout << sredStolb[i] << " "; //выводим массив средних значений по столбцам + } + cout << "}" << endl; + + delete sredStolb; //удаляем массив + delete sumNechet; //удаляем массив + delete maxStolbNechet; //удаляем массив + return 0; +} \ No newline at end of file From 59c750be1f1eb29fa20d666eb8c643a051843d09 Mon Sep 17 00:00:00 2001 From: CuteDarKy <92202575+CuteDarKy@users.noreply.github.com> Date: Fri, 24 Dec 2021 14:48:46 +0300 Subject: [PATCH 13/24] Add files via upload --- 11.12_Task1.cpp | 69 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 11.12_Task1.cpp diff --git a/11.12_Task1.cpp b/11.12_Task1.cpp new file mode 100644 index 0000000..ca7d533 --- /dev/null +++ b/11.12_Task1.cpp @@ -0,0 +1,69 @@ +#include +#include +#include +#include + +using namespace std; + +class Student{ + private: + string FIO; + int year; + int group; + int age; + string checkFIO(string FIO){ //проверка верности ввода данных + if(FIO == ""){ + cout<<"Name isn't correct. Enter the name: "; + cin>>FIO; + } + return FIO; + } + int checkYear(int year){ //проверка верности ввода данных + if((year<1)||(year>4)){ + cout<<"Course isn't correct. Enter the course: "; + cin>>year; + } + return year; + } + int checkGroup(int group){ //проверка верности ввода данных + if(group == 0){ + cout<<"Group isn't correct. Enter the group: "; + cin>>group; + } + return group; + } + int checkAge(int age){ //проверка верности ввода данных + if((age<17)||(age>60)){ + cout<<"Age isn't correct. Enter the age: "; + cin>>age; + } + return age; + } + public: + void show(); + void input(string FIO, int year,int group,int age); +}; + void Student::show(){ +cout << "FIO: " << FIO << "\nYear: " << year << "\nGroup: " << group << "\nAge: " << age << endl; //вывод данных студентов на экран +} +void Student::input(string FIO, int year,int group,int age){ + this->FIO = checkFIO(FIO); + this->year = checkYear(year); + this->group = checkGroup(group); + this->age = checkAge(age); +} + +int main(){ +SetConsoleOutputCP(1251); +Student First; +Student Second; +Student Third; +First.input("Kochneva Darina Alexseevna", 1, 42, 18); +Second.input("Bykov Peter Olegovich", 3, 185, 21); +Third.input("Ivanov Ivan Ivanovich", 4, 42, 24); +First.show(); +Second.show(); +Third.show(); + + return 0; +} \ No newline at end of file From df85e200c2f084f7ee91011cb48faa874881fa91 Mon Sep 17 00:00:00 2001 From: CuteDarKy <92202575+CuteDarKy@users.noreply.github.com> Date: Fri, 24 Dec 2021 16:08:45 +0300 Subject: [PATCH 14/24] Add files via upload --- 18.12_Task1.cpp | 91 +++++++++++++ 18.12_Task2.cpp | 343 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 434 insertions(+) create mode 100644 18.12_Task1.cpp create mode 100644 18.12_Task2.cpp diff --git a/18.12_Task1.cpp b/18.12_Task1.cpp new file mode 100644 index 0000000..9b31226 --- /dev/null +++ b/18.12_Task1.cpp @@ -0,0 +1,91 @@ +#include +#include + +using namespace std; + +class Pendulum{ + public: + double cyclicFreq = 0; + double oscPeriod = 0; + string type = ""; +}; + +class physical:public Pendulum{ + double massa; + double g; + double length; + double I; +public: + physical(double massa, double g, double length, double I){ + this->massa = massa; + this->g = g; + this->length = length; + this->I = I; + } + double cyclicFreq override { + return cyclicFreq = paw((massa*g*length)/I, 1/2);_ + } + double oscPeriod override{ + return oscPeriod = 2*3.14*paw(I/(massa*g*length), 1/2); + } + double type(){ + cout<<"Physical pendulum"<g = g; + this->length = length; + } + double cyclicFreq override { + return cyclicFreq = paw(g/length, 1/2);_ + } + double oscPeriod override{ + return oscPeriod = 2*3.14*paw(length/g, 1/2); + } + double type(){ + cout<<"Math pendulum"<massa = massa; + this->k = k; + } + double cyclicFreq override { + return cyclicFreq = paw(k/massa, 1/2);_ + } + double oscPeriod override{ + return oscPeriod = 2*3.14*paw(massa/k, 1/2); + } + double type(){ + cout<<"Spring pendulum"<> energy; + cout << "Enter the year of release: "; cin >> yearRealise; + cout << "Enter time of ownership in months: "; cin >> timeOwn; + cout << "Enter price in millions: "; cin >> price; + cout << "Enter 1 - Lando\nEnter 2 - Targa\nEnter 3 - PickUp" << endl; cin >> n; + yearDif = 2021 - yearRealise; + cout << endl; + } + // Вывод значений + void Show() override // переопределяем функцию + { + cout << "Full information of Passenger Car" << endl; + cout << "Energy of Passenger Car: " << energy << endl; + cout << "Year of production of a Passenger Car: " << yearRealise << endl; + cout << "Time of Passenger Car ownership: " << timeOwn*12 << endl; + cout << "Price of Passenger Car in millions: " << price << endl; + unique(); + cout << "Transport tax: " << getNalog() << endl; + cout << "Increasing Tax: " << increasing_tax << endl; + } +}; + +class Bus : public Transport // наследуем информацию из класса Transport +{ +private: + // приватные поля + float sum; + Abobus BusType; + + //Табличные значения + float getNalog() override // переопределяем функцию + { + if (energy <= 200) { + tax = 50; + } else { + tax = 40.3; + } + + sum = tax * energy * timeOwn; + return sum; + } + // функция для выбора типа автобуса + void unique() override // переопределяем функцию + { + BusType = (Abobus)n; + switch(BusType) + { + case City: + cout << "Bus Type is City" << endl; + break; + case InterCity: + cout << "Bus Type is InterCity" << endl; + break; + case Commuter: + cout << "Bus Type is Commuter" << endl; + break; + } + } +public: +// Ввод переменных + void setInfo() override // переопределяем функцию + { + cout << endl; + cout << "Enter energy: "; cin >> energy; + cout << "Enter the year of release: "; cin >> yearRealise; + cout << "Enter time of ownership in months: "; cin >> timeOwn; + cout << "Enter price in millions: "; cin >> price; + cout << "Enter 1 - City\nEnter 2 - InterCity\nEnter 3 - Commuter" << endl; cin >> n; + cout << endl; + } + // Вывод переменных + void Show() override // переопределяем функцию + { + cout << "Full information of Bus" << endl; + cout << "Energy of Bus: " << energy << endl; + cout << "Year of production of a Bus: " << yearRealise << endl; + cout << "Time of Bus ownership: " << timeOwn*12 << endl; + cout << "Price of Bus in millions: " << price << endl; + unique(); + cout << "Transport tax: " << getNalog() << endl; + } +}; + +class Bike : public Transport // наследуем информацию из класса Transport +{ +private: + float sum; + MotoBike BikeType; + +//Табличные значения + float getNalog() override // переопределяем функцию + { + if (energy <= 20) { + tax = 4.5; + } else if (energy > 20 && energy <= 35) { + tax = 11; + } else { + tax = 15; + } + + sum = tax * energy * timeOwn; + return sum; + } + // функция для выбора типа мотоцикла + void unique() override // переопределяем функцию + { + BikeType = (MotoBike)n; + switch(BikeType) + { + case Classic: + cout << "Bike Type is Classic" << endl; + break; + case Sport: + cout << "Bike Type is Sport" << endl; + break; + case Dragster: + cout << "Bike Type is Dragster" << endl; + break; + } + } +public: +// Ввод переменных + void setInfo() override // переопределяем функцию + { + cout << endl; + cout << "Enter energy: "; cin >> energy; + cout << "Enter the year of release: "; cin >> yearRealise; + cout << "Enter time of ownership in months: "; cin >> timeOwn; + cout << "Enter price in millions: "; cin >> price; + cout << "Enter 1 - Classic\nEnter 2 - Sport\nEnter 3 - Dragster" << endl; cin >> n; + cout << endl; + } + // вывод переменных + void Show() override // переопределяем функцию + { + cout << "Full information of Bike" << endl; + cout << "Energy of Bike: " << energy << endl; + cout << "Year of production of a Bike: " << yearRealise << endl; + cout << "Time of Bike ownership: " << timeOwn*12 << endl; + cout << "Price of Bike in millions: " << price << endl; + unique(); + cout << "Transport tax: " << getNalog() << endl; + } +}; + +class Avia : public Transport // наследуем информацию из класса Transport +{ +private: + // приватные поля + float sum; + Plane AviaType; + +// Табличные значения + float getNalog() override // переопределяем функцию + { + tax = 100; + sum = tax * energy * timeOwn; + return sum; + } +// функция для выбора типа самолёта + void unique() override // переопределяем функцию + { + AviaType = (Plane)n; + switch(AviaType) + { + case Civil: + cout << "Avia Type is Civil" << endl; + break; + case Military: + cout << "Avia Type is Military" << endl; + break; + case Business: + cout << "Avia Type is Business" << endl; + break; + } + } +public: +// Ввод переменных + void setInfo() override // переопределяем функцию + { + cout << endl; + cout << "Enter energy: "; cin >> energy; + cout << "Enter the year of release: "; cin >> yearRealise; + cout << "Enter time of ownership in months: "; cin >> timeOwn; + cout << "Enter price in millions: "; cin >> price; + cout << "Enter 1 - Civil\nEnter 2 - Military\nEnter 3 - Business" << endl; cin >> n; + cout << endl; + } + //Вывод переменных + void Show() override // переопределяем функцию + { + cout << "Full information of Avia" << endl; + cout << "Energy of Avia: " << energy << endl; + cout << "Year of production of a Avia: " << yearRealise << endl; + cout << "Time of Avia ownership: " << timeOwn*12 << endl; + cout << "Price of Avia in millions: " << price << endl; + unique(); + cout << "Transport tax: " << getNalog() << endl; + } +}; + +int main() +{ + // Создаём объекты класса и применяем к ним методы класса + Car Auidi; + Auidi.setInfo(); + Auidi.Show(); + + Bus bus; + bus.setInfo(); + bus.Show(); + + Bike bike; + bike.setInfo(); + bike.Show(); + + Avia avia; + avia.setInfo(); + avia.Show(); +} \ No newline at end of file From 086691714ca49cad87fcf8bb67f748f4197e969f Mon Sep 17 00:00:00 2001 From: CuteDarKy <92202575+CuteDarKy@users.noreply.github.com> Date: Sat, 25 Dec 2021 21:39:34 +0300 Subject: [PATCH 15/24] =?UTF-8?q?5*=201=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=B4=D1=80=D0=BE=D0=B1=D0=BD=D0=BE?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D0=BE=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 13.11_Task1.cpp | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 13.11_Task1.cpp diff --git a/13.11_Task1.cpp b/13.11_Task1.cpp new file mode 100644 index 0000000..0ecc1fc --- /dev/null +++ b/13.11_Task1.cpp @@ -0,0 +1,58 @@ +#include +#include +#include +#include +using namespace std; +int main() +{//первый этап + SetConsoleCP(1251); // задаем кодировку для вывода на экран + SetConsoleOutputCP(1251); // задаем кодировку для ввода данных + double a, b, h, x, otre1, otre2,c, fa, fc; //создаём переменные типа double потому что расчитываем на плавающую точку + + cout << "Введите диапозон от = "; //стандартный ввод данных: выводим русский запрос на консоль принимаем значение + cin >> a; // стандартный ввод данных: принимаем значение + cout << "Введите диапозон до = "; + cin >> b; + cout << "Введите шаг = "; + cin >> h; + cout << endl; + cout << "x" << "\t" << "y" < 0) && (f2 < 0)) || ((f1 < 0) && (f2 > 0)) ) && (t == 0)) //если знак поменялся, то + { + otre1 = x; //начало отрезка, в котором лежит ответ + otre2 = x+h; //конец отрезка, в котором лежит ответ + t +=1; //счётчик: сколько раз сменился знак (считаем шаги до нахождения корня) + } + + cout << x << "\t"<< f2 << endl; //выводим в таблицу значение х и y (f2). Интервал между x и y 8 знаков (/t) + } + cout< 0.0001) //пока открезок не будет <= необходимой точности (0.0001) выполняем цикл + { + c = (otre1+otre2)/2; //находим середину отрезка c=(a+b)/2 + fa = pow(otre1, 0.5) -2.2 / otre1; // считаем значение y для x = a + fc = pow(c, 0.5) - 2.2 / c; // считаем значение y для x = c + cout << setw(5) << otre1 << setw(15) << otre2 << setw(15) << c << setw(15) << otre2-otre1 << setw(15) << fa << setw(15) << fc << setw(15) << fa*fc << endl; //выводим полученные результаты таблицей + if (fa*fc < 0) //выбираем новый отрезок [a,b] в соответствии с условием + { + otre2 = c; // a(otre1) остаётся прежним, b(otre2) = полученному с + } else if (fa*fc > 0){ + otre1 = c; // a(otre1) = полученному с, b(otre2) остаётся прежним + } + t +=1; //считаем число прохождения цикла (во сколько шагов получен результат) + } + cout <<"Корень уравнения = " << c << endl; //выводим искомое значение корня (по условию оно расчитано в переменной с) + cout <<"Шаг = "<< t < Date: Sat, 25 Dec 2021 22:35:15 +0300 Subject: [PATCH 16/24] =?UTF-8?q?5*=202=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=B4=D1=80=D0=BE=D0=B1=D0=BD=D0=BE?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D0=BE=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 13.11_Task2.cpp | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 13.11_Task2.cpp diff --git a/13.11_Task2.cpp b/13.11_Task2.cpp new file mode 100644 index 0000000..9ec3e2f --- /dev/null +++ b/13.11_Task2.cpp @@ -0,0 +1,56 @@ +#include +#include +#include +using namespace std; + +int main() +{ + float x[8] = {3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8}; //создаём массив значений x. Берём тип float чтобы сохранить десятичные дроби + float y[8] = {2.527, 2.635, 2.655, 2.563, 2.361, 2.048, 1.638, 1.118}; //создаём массив значений y + int length = sizeof(x)/sizeof(x[0]); //создаём переменну "длина", хранящую число элементов массива X + double xi = 0; //сам X + double yi = 0; //сам Y + double xi2 = 0; //X^2 + double xiyi = 0; //X * Y + double xi3 = 0; //X^3 + double xi4 = 0; //X^4 + double xi2yi = 0; //X * Y^2 + double linQ = 0; // невязка + double quadroQ = 0; // + + cout << "xi" << "\t" << "yi" << "\t" << "xi2" << "\t" << "xi3" << "\t" << "xi4" << "\t" << "xiyi" << "\t" << "xi2yi" << endl; //выводим шапку для первой таблицы + for(int i = 0; i < length; i++) + { + xi += x[i]; //находим сумму всех значений X + yi += y[i]; //находим сумму всех значений Y + xi2 += x[i] * x[i]; //находим сумму квадратов всех значений X + xiyi += x[i] * y[i]; //находим сумму произведений всех наборов X*Y + xi2yi += x[i] * x[i] * y[i]; //находим сумму всех произведений (X^2 *Y) + xi3 += x[i] * x[i] * x[i]; //находим сумму кубов всех значений X + xi4 += x[i] * x[i] * x[i] * x[i]; //находим сумму X^4 всех значений X + + cout << x[i] << "\t" << y[i] << "\t" << x[i] * x[i] << "\t" << x[i] * x[i] * x[i] << "\t" << x[i] * x[i] * x[i] * x[i] << "\t" << x[i] * y[i] << "\t" << x[i] * x[i] * y[i] << endl; //заполняем таблицу + } + + cout << "Sum xi" << "\t" <<"Sum yi" << "\t" << "Sum xi2" << "\t" << "Sum xi3" << "\t" << "Sum xi4" << "\t" << "Sum xiyi" << "\t" << "Sum xi2yi" << endl; //выводим шапку для второй таблицы + cout << xi << "\t" << yi << "\t" << xi2 << "\t" << xi3 << "\t" << xi4 << "\t" << xiyi << "\t" << xi2yi << endl; // заполняем таблицу полученными в цикле результатами + + double linb = (xiyi * xi - xi2*yi) / (xi * xi - xi2 * length); //подбираем b для нахождения минимальной невязки + double lina = (yi - linb * length) / xi; //подбираем а для нахождения минимальной невязки, находим апроксимацию для линейной зависимости + double delta0 = (xi4 * xi2 * length + xi3 * xi * xi2 + xi2 * xi3 * xi - xi2 * xi2 * xi2 - xi4 * xi * xi - xi3 * xi3 * length); //находим определитель, чтобы решить систему методом Крамера + double delta1 = (xi2yi * xi2 * length + xi3 * xi * yi + xi2 * xiyi * xi - xi2 * xi2 * yi - xi2yi * xi * xi - xi3 * xiyi * length); //находим определитель для первой переменной + double delta2 = (xi4 * xiyi * length + xi2yi * xi * xi2 + xi2 * xi3 * yi - xi2 * xiyi * xi2 - xi4 * xi * yi - xi2yi * xi3 * length); //находим определитель для второй переменной + double delta3 = (xi4 * xi2 * yi + xi3 * xiyi * xi2 + xi2yi * xi3 * xi - xi2yi * xi2 * xi2 - xi4 * xiyi * xi - xi3 * xi3 * yi); //находим определитель для третей переменной + double quadroa = delta1 / delta0; //находим первую переменную квадратичной зависимости + double quadrob = delta2 / delta0; //находим вторую переменную квадратичной зависимости + double quadroc = delta3 / delta0; //находим третью переменную квадратичной зависимости + + for(int i = 0; i < length; i++) + { + linQ += pow((y[i] - (lina * x[i]) - linb), 2); //находим невязку для линейной зависимости + quadroQ += pow((y[i] - quadroa * x[i] * x[i] - quadrob * x[i] - quadroc),2); //находим невязку для квадратичной зависимости + } + + cout << "Approksimirovali eksperimental'nye dannye linejnoj zavisimost'yu y = " << lina << " " << "x + " << linb << " " << " c nevyazkoj Q = " << linQ << " " << " i kvadratichnoj zavisimost'yu y = " << quadroa << " " << "x2 + " << quadrob << " " << "x " << quadroc << " " << " c nevyazkoj Q = " << quadroQ << endl; + return 0; +} \ No newline at end of file From b6e98a7470b6c96d7f3dcf7f6ec9eddea1833e87 Mon Sep 17 00:00:00 2001 From: CuteDarKy <92202575+CuteDarKy@users.noreply.github.com> Date: Sat, 25 Dec 2021 22:42:35 +0300 Subject: [PATCH 17/24] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=D0=B0=20=D1=82=D0=B8=D0=BF=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D0=BE=D0=B9=20result?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 13.10_Task2.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/13.10_Task2.cpp b/13.10_Task2.cpp index 60b0ccd..f379b5a 100644 --- a/13.10_Task2.cpp +++ b/13.10_Task2.cpp @@ -15,7 +15,7 @@ int P(int a){ return result; } int S(int a, int b, int c){ - int result = ((a+b)*c)/2; + double result = ((a+b)*c)/2; return result; } double S(int a, int pi){ @@ -23,7 +23,7 @@ double S(int a, int pi){ return result; } int S(int a){ - int result = pow(a,2); + double result = pow(a,2); return result; } @@ -62,4 +62,4 @@ Square=S(side); cout<<"Perimetr = "<I = I; } double cyclicFreq override { - return cyclicFreq = paw((massa*g*length)/I, 1/2);_ + return cyclicFreq = pow((massa*g*length)/I, 1/2);_ } double oscPeriod override{ - return oscPeriod = 2*3.14*paw(I/(massa*g*length), 1/2); + return oscPeriod = 2*3.14*pow(I/(massa*g*length), 1/2); } - virtual double type(){ + void type(){ cout<<"Physical pendulum"<length = length; } double cyclicFreq override { - return cyclicFreq = paw(g/length, 1/2);_ + return cyclicFreq = pow(g/length, 1/2);_ } double oscPeriod override{ - return oscPeriod = 2*3.14*paw(length/g, 1/2); + return oscPeriod = 2*3.14*pow(length/g, 1/2); } double type(){ cout<<"Math pendulum"<k = k; } double cyclicFreq override { - return cyclicFreq = paw(k/massa, 1/2);_ + return cyclicFreq = pow(k/massa, 1/2);_ } double oscPeriod override{ - return oscPeriod = 2*3.14*paw(massa/k, 1/2); + return oscPeriod = 2*3.14*pow(massa/k, 1/2); } double type(){ cout<<"Spring pendulum"< Date: Sat, 25 Dec 2021 22:48:00 +0300 Subject: [PATCH 20/24] Update 23.10_Task7.cpp --- 23.10_Task7.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/23.10_Task7.cpp b/23.10_Task7.cpp index 75e6261..ec9a697 100644 --- a/23.10_Task7.cpp +++ b/23.10_Task7.cpp @@ -4,7 +4,7 @@ using namespace std; -float Funk(int h, int w, char s){ +void Funk(int h, int w, char s){ string M[h][w]; for(int i=0; i>symbol; Funk(heigth, width, symbol); return 0; -} \ No newline at end of file +} From 38cf2c5e81c497ba9f57c29ac40a869df7dc841b Mon Sep 17 00:00:00 2001 From: CuteDarKy <92202575+CuteDarKy@users.noreply.github.com> Date: Sat, 25 Dec 2021 22:48:50 +0300 Subject: [PATCH 21/24] Update 23.10_Task8.cpp --- 23.10_Task8.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/23.10_Task8.cpp b/23.10_Task8.cpp index 98e46fa..c3b60c5 100644 --- a/23.10_Task8.cpp +++ b/23.10_Task8.cpp @@ -18,7 +18,7 @@ for(int i=0; i Date: Sat, 25 Dec 2021 23:14:13 +0300 Subject: [PATCH 22/24] Delete 13.11_Task1.cpp --- 13.11_Task1.cpp | 58 ------------------------------------------------- 1 file changed, 58 deletions(-) delete mode 100644 13.11_Task1.cpp diff --git a/13.11_Task1.cpp b/13.11_Task1.cpp deleted file mode 100644 index 0ecc1fc..0000000 --- a/13.11_Task1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include -#include -#include -using namespace std; -int main() -{//первый этап - SetConsoleCP(1251); // задаем кодировку для вывода на экран - SetConsoleOutputCP(1251); // задаем кодировку для ввода данных - double a, b, h, x, otre1, otre2,c, fa, fc; //создаём переменные типа double потому что расчитываем на плавающую точку - - cout << "Введите диапозон от = "; //стандартный ввод данных: выводим русский запрос на консоль принимаем значение - cin >> a; // стандартный ввод данных: принимаем значение - cout << "Введите диапозон до = "; - cin >> b; - cout << "Введите шаг = "; - cin >> h; - cout << endl; - cout << "x" << "\t" << "y" < 0) && (f2 < 0)) || ((f1 < 0) && (f2 > 0)) ) && (t == 0)) //если знак поменялся, то - { - otre1 = x; //начало отрезка, в котором лежит ответ - otre2 = x+h; //конец отрезка, в котором лежит ответ - t +=1; //счётчик: сколько раз сменился знак (считаем шаги до нахождения корня) - } - - cout << x << "\t"<< f2 << endl; //выводим в таблицу значение х и y (f2). Интервал между x и y 8 знаков (/t) - } - cout< 0.0001) //пока открезок не будет <= необходимой точности (0.0001) выполняем цикл - { - c = (otre1+otre2)/2; //находим середину отрезка c=(a+b)/2 - fa = pow(otre1, 0.5) -2.2 / otre1; // считаем значение y для x = a - fc = pow(c, 0.5) - 2.2 / c; // считаем значение y для x = c - cout << setw(5) << otre1 << setw(15) << otre2 << setw(15) << c << setw(15) << otre2-otre1 << setw(15) << fa << setw(15) << fc << setw(15) << fa*fc << endl; //выводим полученные результаты таблицей - if (fa*fc < 0) //выбираем новый отрезок [a,b] в соответствии с условием - { - otre2 = c; // a(otre1) остаётся прежним, b(otre2) = полученному с - } else if (fa*fc > 0){ - otre1 = c; // a(otre1) = полученному с, b(otre2) остаётся прежним - } - t +=1; //считаем число прохождения цикла (во сколько шагов получен результат) - } - cout <<"Корень уравнения = " << c << endl; //выводим искомое значение корня (по условию оно расчитано в переменной с) - cout <<"Шаг = "<< t < Date: Sat, 25 Dec 2021 23:14:24 +0300 Subject: [PATCH 23/24] Delete 13.11_Task2.cpp --- 13.11_Task2.cpp | 56 ------------------------------------------------- 1 file changed, 56 deletions(-) delete mode 100644 13.11_Task2.cpp diff --git a/13.11_Task2.cpp b/13.11_Task2.cpp deleted file mode 100644 index 9ec3e2f..0000000 --- a/13.11_Task2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -#include -using namespace std; - -int main() -{ - float x[8] = {3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8}; //создаём массив значений x. Берём тип float чтобы сохранить десятичные дроби - float y[8] = {2.527, 2.635, 2.655, 2.563, 2.361, 2.048, 1.638, 1.118}; //создаём массив значений y - int length = sizeof(x)/sizeof(x[0]); //создаём переменну "длина", хранящую число элементов массива X - double xi = 0; //сам X - double yi = 0; //сам Y - double xi2 = 0; //X^2 - double xiyi = 0; //X * Y - double xi3 = 0; //X^3 - double xi4 = 0; //X^4 - double xi2yi = 0; //X * Y^2 - double linQ = 0; // невязка - double quadroQ = 0; // - - cout << "xi" << "\t" << "yi" << "\t" << "xi2" << "\t" << "xi3" << "\t" << "xi4" << "\t" << "xiyi" << "\t" << "xi2yi" << endl; //выводим шапку для первой таблицы - for(int i = 0; i < length; i++) - { - xi += x[i]; //находим сумму всех значений X - yi += y[i]; //находим сумму всех значений Y - xi2 += x[i] * x[i]; //находим сумму квадратов всех значений X - xiyi += x[i] * y[i]; //находим сумму произведений всех наборов X*Y - xi2yi += x[i] * x[i] * y[i]; //находим сумму всех произведений (X^2 *Y) - xi3 += x[i] * x[i] * x[i]; //находим сумму кубов всех значений X - xi4 += x[i] * x[i] * x[i] * x[i]; //находим сумму X^4 всех значений X - - cout << x[i] << "\t" << y[i] << "\t" << x[i] * x[i] << "\t" << x[i] * x[i] * x[i] << "\t" << x[i] * x[i] * x[i] * x[i] << "\t" << x[i] * y[i] << "\t" << x[i] * x[i] * y[i] << endl; //заполняем таблицу - } - - cout << "Sum xi" << "\t" <<"Sum yi" << "\t" << "Sum xi2" << "\t" << "Sum xi3" << "\t" << "Sum xi4" << "\t" << "Sum xiyi" << "\t" << "Sum xi2yi" << endl; //выводим шапку для второй таблицы - cout << xi << "\t" << yi << "\t" << xi2 << "\t" << xi3 << "\t" << xi4 << "\t" << xiyi << "\t" << xi2yi << endl; // заполняем таблицу полученными в цикле результатами - - double linb = (xiyi * xi - xi2*yi) / (xi * xi - xi2 * length); //подбираем b для нахождения минимальной невязки - double lina = (yi - linb * length) / xi; //подбираем а для нахождения минимальной невязки, находим апроксимацию для линейной зависимости - double delta0 = (xi4 * xi2 * length + xi3 * xi * xi2 + xi2 * xi3 * xi - xi2 * xi2 * xi2 - xi4 * xi * xi - xi3 * xi3 * length); //находим определитель, чтобы решить систему методом Крамера - double delta1 = (xi2yi * xi2 * length + xi3 * xi * yi + xi2 * xiyi * xi - xi2 * xi2 * yi - xi2yi * xi * xi - xi3 * xiyi * length); //находим определитель для первой переменной - double delta2 = (xi4 * xiyi * length + xi2yi * xi * xi2 + xi2 * xi3 * yi - xi2 * xiyi * xi2 - xi4 * xi * yi - xi2yi * xi3 * length); //находим определитель для второй переменной - double delta3 = (xi4 * xi2 * yi + xi3 * xiyi * xi2 + xi2yi * xi3 * xi - xi2yi * xi2 * xi2 - xi4 * xiyi * xi - xi3 * xi3 * yi); //находим определитель для третей переменной - double quadroa = delta1 / delta0; //находим первую переменную квадратичной зависимости - double quadrob = delta2 / delta0; //находим вторую переменную квадратичной зависимости - double quadroc = delta3 / delta0; //находим третью переменную квадратичной зависимости - - for(int i = 0; i < length; i++) - { - linQ += pow((y[i] - (lina * x[i]) - linb), 2); //находим невязку для линейной зависимости - quadroQ += pow((y[i] - quadroa * x[i] * x[i] - quadrob * x[i] - quadroc),2); //находим невязку для квадратичной зависимости - } - - cout << "Approksimirovali eksperimental'nye dannye linejnoj zavisimost'yu y = " << lina << " " << "x + " << linb << " " << " c nevyazkoj Q = " << linQ << " " << " i kvadratichnoj zavisimost'yu y = " << quadroa << " " << "x2 + " << quadrob << " " << "x " << quadroc << " " << " c nevyazkoj Q = " << quadroQ << endl; - return 0; -} \ No newline at end of file From 169871683bae776f520cc81dc07beec1a7d614fa Mon Sep 17 00:00:00 2001 From: CuteDarKy <92202575+CuteDarKy@users.noreply.github.com> Date: Sat, 25 Dec 2021 23:15:00 +0300 Subject: [PATCH 24/24] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=B0=205*=20=D1=81=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8=D1=8F=D0=BC?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 13.11_Task1.cpp | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ 13.11_Task2.cpp | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 13.11_Task1.cpp create mode 100644 13.11_Task2.cpp diff --git a/13.11_Task1.cpp b/13.11_Task1.cpp new file mode 100644 index 0000000..0ecc1fc --- /dev/null +++ b/13.11_Task1.cpp @@ -0,0 +1,58 @@ +#include +#include +#include +#include +using namespace std; +int main() +{//первый этап + SetConsoleCP(1251); // задаем кодировку для вывода на экран + SetConsoleOutputCP(1251); // задаем кодировку для ввода данных + double a, b, h, x, otre1, otre2,c, fa, fc; //создаём переменные типа double потому что расчитываем на плавающую точку + + cout << "Введите диапозон от = "; //стандартный ввод данных: выводим русский запрос на консоль принимаем значение + cin >> a; // стандартный ввод данных: принимаем значение + cout << "Введите диапозон до = "; + cin >> b; + cout << "Введите шаг = "; + cin >> h; + cout << endl; + cout << "x" << "\t" << "y" < 0) && (f2 < 0)) || ((f1 < 0) && (f2 > 0)) ) && (t == 0)) //если знак поменялся, то + { + otre1 = x; //начало отрезка, в котором лежит ответ + otre2 = x+h; //конец отрезка, в котором лежит ответ + t +=1; //счётчик: сколько раз сменился знак (считаем шаги до нахождения корня) + } + + cout << x << "\t"<< f2 << endl; //выводим в таблицу значение х и y (f2). Интервал между x и y 8 знаков (/t) + } + cout< 0.0001) //пока открезок не будет <= необходимой точности (0.0001) выполняем цикл + { + c = (otre1+otre2)/2; //находим середину отрезка c=(a+b)/2 + fa = pow(otre1, 0.5) -2.2 / otre1; // считаем значение y для x = a + fc = pow(c, 0.5) - 2.2 / c; // считаем значение y для x = c + cout << setw(5) << otre1 << setw(15) << otre2 << setw(15) << c << setw(15) << otre2-otre1 << setw(15) << fa << setw(15) << fc << setw(15) << fa*fc << endl; //выводим полученные результаты таблицей + if (fa*fc < 0) //выбираем новый отрезок [a,b] в соответствии с условием + { + otre2 = c; // a(otre1) остаётся прежним, b(otre2) = полученному с + } else if (fa*fc > 0){ + otre1 = c; // a(otre1) = полученному с, b(otre2) остаётся прежним + } + t +=1; //считаем число прохождения цикла (во сколько шагов получен результат) + } + cout <<"Корень уравнения = " << c << endl; //выводим искомое значение корня (по условию оно расчитано в переменной с) + cout <<"Шаг = "<< t < +#include +#include +using namespace std; + +int main() +{ + float x[8] = {3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8}; //создаём массив значений x. Берём тип float чтобы сохранить десятичные дроби + float y[8] = {2.527, 2.635, 2.655, 2.563, 2.361, 2.048, 1.638, 1.118}; //создаём массив значений y + int length = sizeof(x)/sizeof(x[0]); //создаём переменну "длина", хранящую число элементов массива X + double xi = 0; //сам X + double yi = 0; //сам Y + double xi2 = 0; //X^2 + double xiyi = 0; //X * Y + double xi3 = 0; //X^3 + double xi4 = 0; //X^4 + double xi2yi = 0; //X * Y^2 + double linQ = 0; // невязка + double quadroQ = 0; // + + cout << "xi" << "\t" << "yi" << "\t" << "xi2" << "\t" << "xi3" << "\t" << "xi4" << "\t" << "xiyi" << "\t" << "xi2yi" << endl; //выводим шапку для первой таблицы + for(int i = 0; i < length; i++) + { + xi += x[i]; //находим сумму всех значений X + yi += y[i]; //находим сумму всех значений Y + xi2 += x[i] * x[i]; //находим сумму квадратов всех значений X + xiyi += x[i] * y[i]; //находим сумму произведений всех наборов X*Y + xi2yi += x[i] * x[i] * y[i]; //находим сумму всех произведений (X^2 *Y) + xi3 += x[i] * x[i] * x[i]; //находим сумму кубов всех значений X + xi4 += x[i] * x[i] * x[i] * x[i]; //находим сумму X^4 всех значений X + + cout << x[i] << "\t" << y[i] << "\t" << x[i] * x[i] << "\t" << x[i] * x[i] * x[i] << "\t" << x[i] * x[i] * x[i] * x[i] << "\t" << x[i] * y[i] << "\t" << x[i] * x[i] * y[i] << endl; //заполняем таблицу + } + + cout << "Sum xi" << "\t" <<"Sum yi" << "\t" << "Sum xi2" << "\t" << "Sum xi3" << "\t" << "Sum xi4" << "\t" << "Sum xiyi" << "\t" << "Sum xi2yi" << endl; //выводим шапку для второй таблицы + cout << xi << "\t" << yi << "\t" << xi2 << "\t" << xi3 << "\t" << xi4 << "\t" << xiyi << "\t" << xi2yi << endl; // заполняем таблицу полученными в цикле результатами + + double linb = (xiyi * xi - xi2*yi) / (xi * xi - xi2 * length); //подбираем b для нахождения минимальной невязки + double lina = (yi - linb * length) / xi; //подбираем а для нахождения минимальной невязки, находим апроксимацию для линейной зависимости + double delta0 = (xi4 * xi2 * length + xi3 * xi * xi2 + xi2 * xi3 * xi - xi2 * xi2 * xi2 - xi4 * xi * xi - xi3 * xi3 * length); //находим определитель, чтобы решить систему методом Крамера + double delta1 = (xi2yi * xi2 * length + xi3 * xi * yi + xi2 * xiyi * xi - xi2 * xi2 * yi - xi2yi * xi * xi - xi3 * xiyi * length); //находим определитель для первой переменной + double delta2 = (xi4 * xiyi * length + xi2yi * xi * xi2 + xi2 * xi3 * yi - xi2 * xiyi * xi2 - xi4 * xi * yi - xi2yi * xi3 * length); //находим определитель для второй переменной + double delta3 = (xi4 * xi2 * yi + xi3 * xiyi * xi2 + xi2yi * xi3 * xi - xi2yi * xi2 * xi2 - xi4 * xiyi * xi - xi3 * xi3 * yi); //находим определитель для третей переменной + double quadroa = delta1 / delta0; //находим первую переменную квадратичной зависимости + double quadrob = delta2 / delta0; //находим вторую переменную квадратичной зависимости + double quadroc = delta3 / delta0; //находим третью переменную квадратичной зависимости + + for(int i = 0; i < length; i++) + { + linQ += pow((y[i] - (lina * x[i]) - linb), 2); //находим невязку для линейной зависимости + quadroQ += pow((y[i] - quadroa * x[i] * x[i] - quadrob * x[i] - quadroc),2); //находим невязку для квадратичной зависимости + } + + cout << "Approksimirovali eksperimental'nye dannye linejnoj zavisimost'yu y = " << lina << " " << "x + " << linb << " " << " c nevyazkoj Q = " << linQ << " " << " i kvadratichnoj zavisimost'yu y = " << quadroa << " " << "x2 + " << quadrob << " " << "x " << quadroc << " " << " c nevyazkoj Q = " << quadroQ << endl; + return 0; +} \ No newline at end of file