From eefb42222d0c7392e2c13db6f51029e5425c73f1 Mon Sep 17 00:00:00 2001 From: Violettam88 <92202628+Violettam88@users.noreply.github.com> Date: Fri, 17 Dec 2021 16:59:35 +0300 Subject: [PATCH 1/7] Create 1.cpp --- task8/1.cpp | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 task8/1.cpp diff --git a/task8/1.cpp b/task8/1.cpp new file mode 100644 index 0000000..ea654f6 --- /dev/null +++ b/task8/1.cpp @@ -0,0 +1,112 @@ +#include +#include + +using namespace std; + +class Students +{ +private: + string name; + string last_name; + string patronymic; + int group; + int kurs; + int age; + + string vname(string name) + { + if (name == " ") + { + cout << " Name = " << endl; + cin >> name; + } + return name; + } + + string vlast_name(string last_name) + { + if (last_name == " ") + { + cout << "Last_name = " << endl; + cin >> last_name; + } + return last_name; + } + + string vpatronymic(string patronymic) + { + if (patronymic == " ") + { + cout << "Patronymic= " << endl; + cin >> patronymic; + + } + return patronymic; + } + + int vgroup(int group) + { + if (group == 0) + { + cout << "Group = " << endl; + cin >> group; + } + return group; + } + + int vkurs(int kurs) + { + if (kurs == 0) + { + cout << "Kurs = " << endl; + cin >> kurs; + } + return group; + } + + int vage(int age) + { + if (age == 0) + { + cout << "Age = " << endl; + cin >> age; + } + return age; + } + +public: + Students (string name, string last_name, string patronymic, int group, int kurs, int age) + { + this->name = vname(name); + this->last_name = vlast_name(last_name); + this->patronymic = vpatronymic(patronymic); + this->group = vgroup(group); + this->kurs = vkurs(kurs); + this->age = vage(age); + this->name = name + " " + last_name + " " + patronymic; + } + + void show() + { + cout << "Name " << name << endl; + cout << "Last_ame " << last_name << endl; + cout << "Patronymic " << patronymic << endl; + cout << "Group " << group << endl; + cout << "Kurs " << kurs << endl; + cout << "Age " << age << endl; + } +}; +int main() +{ + Students One(" "," ", " ", 0, 0, 0); + Students Two(" ", " ", " ", 0, 0, 0); + Students Three(" ", " ", " ", 0, 0, 0); + One.show(); + Two.show(); + Three.show(); + + return 0; +} + + +// помогала Екатерина Завидина с условием задачи From b6bb879175553ce4faff05dc43c6bb0b10f4cbe9 Mon Sep 17 00:00:00 2001 From: Violettam88 <92202628+Violettam88@users.noreply.github.com> Date: Fri, 17 Dec 2021 17:01:49 +0300 Subject: [PATCH 2/7] Create 2.cpp --- task8/2.cpp | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 task8/2.cpp diff --git a/task8/2.cpp b/task8/2.cpp new file mode 100644 index 0000000..572751f --- /dev/null +++ b/task8/2.cpp @@ -0,0 +1,165 @@ +#include +#include +#include // загрузка библиотеки для работы с файлами + +using namespace std; + +class Employee +{ +private: + string full_name; + string position; + string home_address; + int experience; + string phone_number; + int number_of_hours_worked; + int cost_of_an_hour_of_work; + + string vfull_name(string full_name) + { + if (full_name == " ") + { + cout << "Full_name = "; + getline(cin, full_name); + } + return full_name; + } + + string vposition(string position) + { + if (position == " ") + { + cout << "Position = "; + cin >> position; + } + return position; + } + + string vhome_address(string home_address) + { + if (home_address == " ") + { + cout << "Home_address= "; + getline(cin, home_address); + + } + return home_address; + } + + int vexperience(int experience) + { + if (experience == 0) + { + cout << "Experience = "; + cin >> experience; + } + return experience; + } + + string vphone_number(string phone_number) + { + if (phone_number == "") + { + cout << "Phone_number "; + cin >> phone_number; + } + return phone_number; + } + + int vnumber_of_hours_worked(int number_of_hours_worked) + { + if (number_of_hours_worked == 0) + { + cout << "Number_of_hours_worked = "; + cin >> number_of_hours_worked; + } + return number_of_hours_worked; + } + + int vcost_of_an_hour_of_work(int cost_of_an_hour_of_work) + { + if (cost_of_an_hour_of_work == 0) + { + cout << "cost_of_an_hour_of_work = " << endl; + cin >> cost_of_an_hour_of_work; + } + return cost_of_an_hour_of_work; + } +public: + Employee() : full_name("Mishina Violetta Aleksandrovna"), position("disigner"), home_address("Ivanovo, Kalina street, building 20, apartment 28"), experience(1), phone_number("+79158175317"), number_of_hours_worked(560), cost_of_an_hour_of_work(400) {}; + Employee(string full_name, string position, string home_address, int experience, string phone_number, int number_of_hours_worked, int cost_of_an_hour_of_work) + { + this->full_name = vfull_name(full_name); + this->position = vposition(position); + this->home_address = vhome_address(home_address); + this->experience = vexperience(experience); + this->phone_number = vphone_number(phone_number); + this->number_of_hours_worked = vnumber_of_hours_worked(number_of_hours_worked); + this->cost_of_an_hour_of_work = vcost_of_an_hour_of_work(cost_of_an_hour_of_work); + } + void show() + { + string soglasie; + cout << "Full name " << full_name << endl; + cout << "Position " << position << endl; + cout << "Home address " << home_address << endl; + cout << "Experience " << experience << endl; + cout << "Phone number " << phone_number << endl; + cout << "Number of hours worked " << number_of_hours_worked << endl; + cout << "Cost of an hour of work " << cost_of_an_hour_of_work << endl; + cout << "Wages " << wages() << endl; + cout << "Bonus " << bonus() << endl; + cout << "Create file with this information? \nEnter yes/any other key(no): "; + cin >> soglasie; + if (soglasie == "yes") + { + ofstream info; + info.open(full_name + ".txt"); // создаёт или открывает файл + info << "Full name " << full_name << endl; + info << "Position " << position << endl; + info << "Home address " << home_address << endl; + info << "Experience " << experience << endl; + info << "Phone number " << phone_number << endl; + info << "Number of hours worked " << number_of_hours_worked << endl; + info << "Cost of an hour of work " << cost_of_an_hour_of_work << endl; + info << "Wages " << wages() << endl; + info << "Bonus " << bonus() << endl; + info.close(); + } + } + int wages() + { + return number_of_hours_worked * cost_of_an_hour_of_work; + } + float bonus() + { + if (experience >= 1) + { + if (experience >= 3) + { + if (experience >= 6) + { + if (experience >= 10) + { + return (float)number_of_hours_worked * cost_of_an_hour_of_work*13/100; + } + return (float)number_of_hours_worked * cost_of_an_hour_of_work * 7 / 100; + } + return (float)number_of_hours_worked * cost_of_an_hour_of_work * 5 / 100; + } + return (float)number_of_hours_worked * cost_of_an_hour_of_work * 3 / 100; + } + } +}; +int main() +{ + Employee One; + Employee Two("Veselov Oleg Borisovich", "Plumber", "Moscow, Leninsky prospect, building 5, apartment 16", 5, "+ 79883275603", 956, 300); + Employee Three("Smirnov Ivan Olegovich", "Driver", "Ivanovo, Thunderbolt street, building 17, apartment 83 ",13, "+ 79998235625", 3460, 380); + One.show(); + Two.show(); + Three.show(); + + return 0; +} +// помогал Евгений Смуров с инициализацией полей класса From fc4dac85b48c6a4833491703417c1b28e90dc0a9 Mon Sep 17 00:00:00 2001 From: Violettam88 <92202628+Violettam88@users.noreply.github.com> Date: Fri, 17 Dec 2021 20:35:49 +0300 Subject: [PATCH 3/7] Create 3.cpp --- task8/3.cpp | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 task8/3.cpp diff --git a/task8/3.cpp b/task8/3.cpp new file mode 100644 index 0000000..5a2e941 --- /dev/null +++ b/task8/3.cpp @@ -0,0 +1,179 @@ +// код взяла у Евгения Смурова и сделала расшифровку каждой строки. +// к сожалению, я не понимаю как делать эту программу, поэтому воспользовалась кодом Жени +#include // стандартная библиотека +#include // библиотека для работы с функциями времени и датой +#include // библиотека для работы с потоковыми функциями + + +class Massive // создание класса Массив +{ +private: //обозначение приватных переменных + int rows; // int обозначение числовой перемнной + int columns; + int* sum_odd; + int* max_odd; + float* avr; // объявление одномерного динамического массива +public: + int** arr; // объявление двумерного динамического массива + Massive(int rows, int columns); // класс с двумя числовыми данными + ~Massive(); //объявление деструктора + void Find() { + int sum = 0; + std::cout << "" << std::endl; + std::cout << "Sum in rows with condition" << std::endl; + for (int i = 0; i < rows; i++) { //цикл для нахождения суммы нечётных элементов в ряду + for (int j = 0; j < columns; j++) { + if (j + 1 % 2 != 0) { + sum += arr[i][j]; + } + } + sum_odd[i] = sum; + sum = 0; + std::cout << std::setw(5) << sum_odd[i]; + } + int max = -100; // задание невозможно малого значения массива + std::cout << "" << std::endl; + std::cout << "" << std::endl; + std::cout << std::setw(4) << "Max in column with condition" << std::setw(20) << "Avarage in column" << std::endl; + for (int j = 0; j < columns; j++) { + for (int i = 0; i < rows; i++) { + if (arr[i][j] % 2 != 0 && arr[i][j] > max) { + max = arr[i][j]; // нахождение максимального среди нечётных значений столбца + } + sum += arr[i][j]; + } + avr[j] = (float)sum / rows; + max_odd[j] = max; + sum = 0; + max = -100; + std::cout << std::setw(10) << max_odd[j] << std::setw(30) << avr[j] << std::endl; + } + } + + void Fill() { + for (int i = 0; i < rows; i++) { + for (int j = 0; j < columns; j++) { + arr[i][j] = std::rand() % 200 - 100; // заполнение ячейки рандомными значениями + } + + } + } + + void Veiw() { // отображение массивов + for (int i = 0; i < rows; i++) { + for (int j = 0; j < columns; j++) { + std::cout << std::setw(4) << arr[i][j] << "\t"; + } + std::cout << "" << std::endl; + } + } + + void TransposeMassive() { + int** buff = new int* [columns]; // создание буфферного массива + for (int i = 0; i < columns; i++) { + buff[i] = new int[rows]; + } + for (int i = 0; i < columns; i++) { // перенос значений в буфферный массив + for (int j = 0; j < rows; j++) { + buff[i][j] = arr[j][i]; + } + } + + for (int i = 0; i < rows; i++) { // удаление исходного массива + delete[] arr[i]; + } + delete[] arr; + + arr = new int* [columns]; // создание нового перевёрнутого массива + for (int i = 0; i < columns; i++) { + arr[i] = new int[rows]; + } + + std::swap(arr, buff); // замена массива одного массива на др + std::swap(rows, columns); + + for (int i = 0; i < rows; i++) { // удаление буфферного массива + delete[] buff[i]; + } + delete[] buff; + } + + void DelNull() { // замена на нули отрицательных значений + for (int i = 0; i < rows; i++) { + for (int j = 0; j < columns; j++) { + if (arr[i][j] < 0) { + arr[i][j] = 0; + } + } + } + } +}; + +Massive::Massive(int in_r, int in_c) { + rows = in_r; + columns = in_c; + arr = new int* [rows]; // создание двумерного динамического массива + for (int i = 0; i < rows; i++) { + arr[i] = new int[columns]; + } + sum_odd = new int[columns]; // создание одномерных динамических массивов + max_odd = new int[rows]; + avr = new float[rows]; +}; + +Massive::~Massive() { // удаление всех массивов + for (int i = 0; i < rows; i++) { + delete[] arr[i]; + } + delete[] arr; + delete[] sum_odd; + delete[] max_odd; + delete[] avr; +}; + +void sum(int in_c, int in_r, Massive& first, Massive& second, Massive& third); // объявление метода суммирования + +int main(int argc, char const* argv[]) { + + std::srand(static_cast(time(nullptr))); // задание ключа для рандомизации + + std::cout << "Enter count of rows and columns for the array:" << std::endl; + std::cout << "Number of rows: "; + int in_r; + std::cin >> in_r; + std::cout << "Number of columns: "; + int in_c; + std::cin >> in_c; + + Massive first(in_r, in_c); + first.Fill(); + std::cout << "First generated massive:" << std::endl; + first.Veiw(); + first.Find(); + first.TransposeMassive(); + std::cout << "Transposed massive:" << std::endl; + first.Veiw(); + + Massive second(in_c, in_r); + second.Fill(); + std::cout << "Second generated massive:" << std::endl; + second.Veiw(); + Massive third(in_c, in_r); + std::cout << "Sum of first and second massive: " << std::endl; + sum(in_c, in_r, first, second, third); + third.Veiw(); + std::cout << "First generated massive:" << std::endl; + first.Veiw(); + std::cout << "Deleted null values from first massive: " << std::endl; + first.DelNull(); + first.Veiw(); + return 0; +} + +void sum(int in_c, int in_r, Massive& first, Massive& second, Massive& third) { + for (int i = 0; i < in_c; i++) { + for (int j = 0; j < in_r; j++) { + third.arr[i][j] = first.arr[i][j] + second.arr[i][j]; + } + } +} From 0f45e285e7d57a60e552c71f7074eb090a3fe12b Mon Sep 17 00:00:00 2001 From: Violettam88 <92202628+Violettam88@users.noreply.github.com> Date: Fri, 24 Dec 2021 17:35:43 +0300 Subject: [PATCH 4/7] Create 1.cpp --- hm9/1.cpp | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 hm9/1.cpp diff --git a/hm9/1.cpp b/hm9/1.cpp new file mode 100644 index 0000000..706459d --- /dev/null +++ b/hm9/1.cpp @@ -0,0 +1,138 @@ +include // Стандартная библиотека +#include //Библиотека для заголовочный файлов +#include //Библиотека для вычислений + +using namespace std; // Обявление пространства имён std +//Взяла код у Кати и закомментировала, так как я не умею распределять время и не успею сделать сама, добавила небольшое изменение +class Pendulum // Создание общего класса +{ +private: + virtual double frequency() = 0;// Объявление переменной частоты, double вмещает больше, чем float, обнуление идёт для правильное подсчёта формул, virtual переопределяет в др классах + virtual double period() = 0; // Объявление переменной периода + virtual void type() = 0; // Объявление переменной тип, void - общий указатель +}; +class Physical :public Pendulum // Подкласс Физический маятник +{ + double m; // Объявление переменных m, I, g, R для дальнейшего подсчёта формулы + double I; + double g; + double R; +public: + Physical(double m, double g, double I, double R) + { + this->m = m; // Отслеживание какой объект его вызвал + this->I = I; + this->g = g; + this->R = R; + + } + double frequency() override + { + return sqrt((m * g * R) / I); // Формула подсчёта частоты + } + double period() override + { + return 2 * 3, 14 * sqrt(I / (m * g * R)); // Формула подсчёта периода + } + void type() override + { + cout << " Physical Pendulum" << endl; // Вовод типа + } +}; +class Mathematics :public Pendulum // Подкласс Математический маятник +{ + double g; // Объявление переменной g + double l; // Объявление переменной l +public: + double getL(double l) + { + if (l == 0) // если l будет равна 0, то выводится 1, иначе определяется с помощью ввода + { + cout << "l = "; + cin >> l; + } + cout << endl; + return l; // Вывод l + } + Mathematics(double g, double l) + { + this->g = g; // Отслеживание какой объект его вызвал + this->l = getL(l); // Ожидание ввода пользователя + } + double frequency() override + { + return sqrt(g / l); // Формула подсчёта частоты + } + double period() override + { + return 2 * 3, 14 * sqrt(l / g); // Формула подсчёта периода + } + void type() override + { + cout << " Mathematical Pendulum" << endl; // Вовод типа + } +}; +class Spring :public Pendulum // Подкласс Пружинный маятник +{ + double m; // Объявление переменной m, k + double k; +public: + double getM(double m) + { + if (m == 0) // если m будет равна 0, то выводится 1, иначе определяется с помощью ввода + { + cout << " m = "; + cin >> m; + } + cout << endl; + return m; // Вывод m + } + double getK(double k) + { + if (k == 0) // если k будет равна 0, то выводится 1, иначе определяется с помощью ввода + { + cout << "k = "; + cin >> k; + } + cout << endl; + return k; // Вывод k + } + Spring(double m, double k) + { + this->m = getM(m); // Отслеживание какой объект его вызвал + this->k = getK(k); + } + double frequency() override + { + return sqrt(k / m); // Формула подсчёта частоты + } + double period() override + { + return 2 * 3, 14 * sqrt(m / k); // Формула подсчёта периода + } + void type() override + { + cout << " Spring pendulum" << endl; // Вовод типа + } +}; + +int main() +{ + + Physical phy(23, 15, 10, 12); // Физический маятник с заданными значениями + phy.type(); + cout << " Cyclic frequency = " << phy.frequency() << " Oscillation period = " << phy.period() << endl; // Вывод подсчётов + cout << endl; + + cout << "Enter length for mathematics pendulum:" <power = power; // Отслеживание какой объект его вызвал + this->year = year; + this->term = term; + this->colour = colour; + } + void Taxx() override + { + if (power <= 20) // Если сила меньше или равна 20, то налог считатется по формуле из 149 строки + { + tax = power * 1 * term; + } + else if (power >= 20 && power <= 35) // Иначе если сила больше или равна 20 и меньше или равна 35, то налог считатется по формуле из 153 строки + { + tax = power * 2 * term; + } + else if (power > 35) // Иначе если сила больше 35, то налог считатется по формуле из 157 строки + { + tax = power * 5 * term; + } + } + void Show() override + { + cout << endl; + cout << "Bike: " << " Power = " << power << " Year = " << year << " Term = " << term << " Colour = " << colour << " Tax = " << tax << endl; // Выводим все эти переменные + } +}; + +class Airplane :public Transport +{ + int capacity; // Добавление дополнительного параметра "Вместимость" + +public: + Airplane(float power, int year, int term, int capacity) // Параметры самолёта + { + this->power = power; // Отслеживание какой объект его вызвал + this->year = year; + this->term = term; + this->capacity = capacity; + } + void Taxx() override + { + tax = power * 25 * term; // Налог рассчитывается по этой формуле + } + void Show() override + { + cout << endl; + cout << "Airplane: " << " Power = " << power << " Year = " << year << " Term = " << term << " Capacity = " << capacity << " Tax = " << tax << endl; // Выводим все эти переменные + } +}; + +int main() +{ + Passengercar p(350, 0, 1, "Toyota Land Cruiser ", 7000000); // Легковой автомобиль с заданными значениями + p.Taxx(); + p.Show(); + + Bus b(200, 2016, 2, 1000); // Автобус с заданными значениями + b.Taxx(); + b.Show(); + + Bike i(50, 2019, 2, "green"); // Мотоцикл с заданными значениями + i.Taxx(); + i.Show(); + + Airplane a(1500, 2015, 5, 567); // Самолёт с заданными значениями + a.Taxx(); + a.Show(); + +} From 535a131ff6ccabdbffcaa2b1cd02f11c2b2cc23c Mon Sep 17 00:00:00 2001 From: Violettam88 <92202628+Violettam88@users.noreply.github.com> Date: Fri, 24 Dec 2021 18:06:41 +0300 Subject: [PATCH 6/7] Update and rename 2 to 2.cpp --- hm9/{2 => 2.cpp} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename hm9/{2 => 2.cpp} (98%) diff --git a/hm9/2 b/hm9/2.cpp similarity index 98% rename from hm9/2 rename to hm9/2.cpp index fc28e63..5a899eb 100644 --- a/hm9/2 +++ b/hm9/2.cpp @@ -189,7 +189,7 @@ class Airplane :public Transport int main() { - Passengercar p(350, 0, 1, "Toyota Land Cruiser ", 7000000); // Легковой автомобиль с заданными значениями + Passengercar p(350, 0, 1, "Toyota Land Cruiser ", 7); // Легковой автомобиль с заданными значениями p.Taxx(); p.Show(); From ccd268b5b7a095b7b15b6918dac35586f8cbe776 Mon Sep 17 00:00:00 2001 From: Violettam88 <92202628+Violettam88@users.noreply.github.com> Date: Tue, 11 Jan 2022 15:33:48 +0300 Subject: [PATCH 7/7] Update 2.cpp --- task8/2.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/task8/2.cpp b/task8/2.cpp index 572751f..21473ac 100644 --- a/task8/2.cpp +++ b/task8/2.cpp @@ -86,7 +86,7 @@ class Employee return cost_of_an_hour_of_work; } public: - Employee() : full_name("Mishina Violetta Aleksandrovna"), position("disigner"), home_address("Ivanovo, Kalina street, building 20, apartment 28"), experience(1), phone_number("+79158175317"), number_of_hours_worked(560), cost_of_an_hour_of_work(400) {}; + Employee() : full_name(""), position(""), home_address(""), experience(), phone_number(""), number_of_hours_worked(), cost_of_an_hour_of_work() {}; Employee(string full_name, string position, string home_address, int experience, string phone_number, int number_of_hours_worked, int cost_of_an_hour_of_work) { this->full_name = vfull_name(full_name);