Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- #include <cmath>
- #include <string>
- using namespace std;
- int TakeNum(const int MIN, const int MAX) {
- const string ERROR_CHOISE = "Проверьте корректность введнных данных!\n";
- bool isIncorrect;
- int num;
- do {
- isIncorrect = false;
- cin >> num;
- if (cin.fail()) {
- isIncorrect = true;
- cout << ERROR_CHOISE;
- cin.clear();
- while (cin.get() != '\n');
- }
- if (!isIncorrect && cin.get() != '\n') {
- cin.clear();
- while (cin.get() != '\n');
- cout << ERROR_CHOISE;
- isIncorrect = true;
- }
- if (!isIncorrect && (num < MIN || num > MAX)) {
- isIncorrect = true;
- cout << ERROR_CHOISE;
- }
- } while (isIncorrect);
- return num;
- }
- int main() {
- setlocale(LC_ALL, "Rus");
- const double e = 2.71; // Введение константы 'e'
- int c, b, i = 0, integral, fractional;
- double a, x, y, z, temp, M, N;
- string strnum, integral_str, fractional_str;
- cout << "Задание 1\n"; // Первое задание
- cout << "Введите число 'c'\n";
- c = TakeNum(1, 100);
- cout << "Введите число 'b'\n";
- b = TakeNum(1, 100);
- a = 5 * cos(pow(c, 3)); // Находим число 'a', где функция pow() - возведение в степень
- cout << "а = " << a << '\n';
- x = (b * sqrt(pow(a, 2) - 1)) / (pow(a, 2) + pow(b, 2)) - 2.47 * a; // Находим число 'b', где функция sqrt() - взятие числа в корень
- cout << "x = " << x << '\n';
- y = pow(sin(sqrt(pow(x, 1 / 3))), 2) - pow(e, 0.4 * (1 + a));
- cout << "y = " << y << '\n';
- z = atan(y) + log10(fabs(x - 1)); // Находим число 'z', где функция atan() - взятие аркатнангенса числа, log10() - логарифм с онованием 10, а fabs() - взятия числа в модуль
- cout << "Итог. z = " << z << '\n';
- cout << "Задание 2\n"; // Второе задание
- cout << "Введите число 'M'\n";
- M = TakeNum(1, 10000);
- cout << "Введите число 'N'\n";
- N = TakeNum(1, 10000);
- temp = M / N;
- strnum = to_string(temp);
- cout << "При делении получится: " << strnum << '\n';
- while (strnum[i] != ',') { // Разбиваем число на целую и дробную часть с помощью поиска запятой, перед запятой - целое, после - дробное
- integral_str += strnum[i];
- i++;
- }
- for (i++; i < size(strnum); i++)
- fractional_str += strnum[i];
- integral = stoi(integral_str); // Переводим строки в целочисленный тип данных с помощью функции stoi() из библиотеки <string>
- fractional = stoi(fractional_str);
- int max = fractional % 10;
- while (fractional != 0) { // Алгоритм нахождение максимальной и ниже минимальной цифры в числе, пока число не равно нулю, проверяем, больше ли остаток переменной max, дальше делим на 10 без остатка
- if (fractional % 10 > max) {
- max = fractional % 10;
- }
- fractional /= 10;
- }
- cout << "Старшая цифра дробной части равна: " << max << '\n';
- int min = integral % 10;
- while (integral != 0) {
- if (integral % 10 < min) {
- min = integral % 10;
- }
- integral /= 10;
- }
- cout << "Младшая цифра целой части равна: " << min << '\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment