Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //functions_h --
- #ifndef FUNCTIONS_REAL_H
- #define FUNCTIONS_REAL_H
- //--
- #include <iostream>
- #include <math.h>
- #include <string>
- //--
- void f_addiction()
- {
- double variable_1, variable_2;
- std::cout << "Podaj pierwsza zmienna: \n";
- std::cin >> variable_1;
- std::cout << "Podaj druga zmienna: \n";
- std::cin >> variable_2;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- std::cout << variable_1 << " + " << variable_2 << " = " << variable_1 + variable_2 << "\n";
- }
- }
- //--
- void f_subtraction()
- {
- double variable_1, variable_2;
- std::cout << "Podaj pierwsza zmienna: \n";
- std::cin >> variable_1;
- std::cout << "Podaj druga zmienna: \n";
- std::cin >> variable_2;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- std::cout << variable_1 << " - " << variable_2 << " = " << variable_1 - variable_2 << "\n";
- }
- }
- //--
- void f_multiplication()
- {
- double variable_1, variable_2;
- std::cout << "Podaj pierwsza zmienna: \n";
- std::cin >> variable_1;
- std::cout << "Podaj druga zmienna: \n";
- std::cin >> variable_2;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- std::cout << variable_1 << " * " << variable_2 << " = " << variable_1 * variable_2 << "\n";
- }
- }
- //--
- void f_divide()
- {
- double variable_1, variable_2;
- std::cout << "Podaj pierwsza zmienna: \n";
- std::cin >> variable_1;
- std::cout << "Podaj druga zmienna: \n";
- std::cin >> variable_2;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- if (variable_2 != 0)
- std::cout << variable_1 << " : " << variable_2 << " = " << variable_1 / variable_2 << "\n";
- else
- std::cout << "\nNie mozna dzielic przez 0. \n";
- }
- }
- //--
- void f_roots()
- {
- double variable, index;
- std::cout << "Podaj zmienna: \n";
- std::cin >> variable;
- std::cout << "Podaj stopien pierwiastka: \n";
- std::cin >> index;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- std::cout << "Pierwiatek " << index << " stopnia z " << variable <<" wynosi: " << pow(variable, 1/index) << "\n";
- }
- }
- //--
- void f_exponentiation()
- {
- double variable, index;
- std::cout << "Podaj zmienna: \n";
- std::cin >> variable;
- std::cout << "Podaj wykladnik: \n";
- std::cin >> index;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- std::cout << variable << " podniesiona do potegi: " << index << " = " << pow(variable,index) << "\n";
- }
- }
- //--
- void f_log()
- {
- double variable, index;
- std::cout << "Podaj zmienna: \n";
- std::cin >> variable;
- std::cout << "Podaj wykladnik: \n";
- std::cin >> index;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- if (variable >= 0 && index >= 1)
- std::cout << "Logarytm z " << variable << " przy podstawie " << index << " wynosi: " << log(variable) / log(index);
- else
- std::cout << "\nNieprawidlowe dane. \n";
- }
- }
- //--
- void f_modulo()
- {
- long long variable_1, variable_2;
- std::cout << "Podaj pierwsza zmienna: \n";
- std::cin >> variable_1;
- std::cout << "Podaj druga zmienna: \n";
- std::cin >> variable_2;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow lub liczbe zmiennoprzecinkowa. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- if(variable_2 == 0)
- std::cout << "\nNie mozna dzielic przez 0. \n";
- else if(variable_1 == 0)
- std::cout << variable_1 << " % " << variable_2 << " = " << variable_2 << "\n";
- else
- std::cout << variable_1 << " % " << variable_2 << " = " << variable_1 % variable_2 << "\n";
- }
- }
- //--
- void f_strong()
- {
- double variable;
- long long result = 1;
- std::cout << "Podaj zmienna: \n";
- std::cin >> variable;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "Blad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- {
- if (variable > 0 && (variable - int(variable) == 0)) {
- for (int i = 1; i <= variable; i++)
- result *= i;
- std::cout << "Silnia z liczby " << variable << " wynosi: " << result << "\n";
- }
- else if (variable == 0)
- std::cout << "Silnia z liczby 0 wynosi 1.\n";
- else
- std::cout << "Blad. Nieprawidlowa zmienna.\n";
- }
- }
- }
- //--
- void f_sin()
- {
- double variable;
- std::cout << "Podaj wartosc w radianach: ";
- std::cin >> variable;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- std::cout << "Sinus z " << variable << " wynosi " << sin(variable) << "\n";
- }
- }
- //--
- void f_cos()
- {
- double variable;
- std::cout << "Podaj wartosc w radianach: ";
- std::cin >> variable;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- std::cout << "Cosinus z " << variable << " wynosi " << cos(variable) << "\n";
- }
- }
- //--
- void f_tan()
- {
- long variable;
- std::cout << "Podaj wartosc w radianach: ";
- std::cin >> variable;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- {
- long test_1 = variable % 90;
- long test_2 = variable / 90;
- if (test_1 == 0 && (test_2 % 2) != 0)
- std::cout << "Brak tangensa dla tej wartosci (asymptota pionowa).\n";
- else
- std::cout << "Tangens z " << variable << " wynosi " << tan(variable) << "\n";
- }
- }
- }
- //--
- void f_ctan()
- {
- long variable;
- std::cout << "Podaj wartosc w radianach: ";
- std::cin >> variable;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- {
- long test_1 = variable % 90;
- long test_2 = variable / 90;
- if (test_1 == 0 && (test_2 % 2) == 0)
- std::cout << "Brak cotangensa dla tej wartosci (asymptota pionowa).\n";
- else
- std::cout << "Cotangens z " << variable << " wynosi " << 1/tan(variable) << "\n";
- }
- }
- }
- //--
- void f_arc_sin()
- {
- double variable;
- std::cout << "Podaj wartosc: ";
- std::cin >> variable;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- if(variable >= -1 && variable <= 1)
- std::cout << "Arc sinus z " << variable << " wynosi " << asin(variable) << " rad " << "\n";
- else
- std::cout << "Brak Arc Sinusa dla tej wartosci.\n";
- }
- }
- //--
- void f_arc_cos()
- {
- double variable;
- std::cout << "Podaj wartosc: ";
- std::cin >> variable;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- if (variable >= -1 && variable <= 1)
- std::cout << "Arc cosinus z " << variable << " wynosi " << acos(variable) << " rad " << "\n";
- else
- std::cout << "Brak Arc Cosinusa dla tej wartosci.\n";
- }
- }
- //--
- void f_arc_tan()
- {
- double variable;
- std::cout << "Podaj wartosc: ";
- std::cin >> variable;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- std::cout << "Arc Tangens z " << variable << " wynosi " << atan(variable) << " rad " << "\n";
- }
- }
- //--
- void f_trigonometric()
- {
- int option;
- do {
- std::cout << "\nFunkcje trygonometryczne: \n\n";
- std::cout << "1. Sinus. \n";
- std::cout << "2. Cosinus. \n";
- std::cout << "3. Tangens. \n";
- std::cout << "4. Cotangens. \n";
- std::cout << "5. Arc Sinus. \n";
- std::cout << "6. Arc Cosinus. \n";
- std::cout << "7. Arc Tangens. \n";
- std::cout << "\n8. Powrot do Menu Liczb Rzeczywistych. \n\n";
- std::cin >> option;
- switch (option)
- {
- case 1:
- f_sin();
- break;
- case 2:
- f_cos();
- break;
- case 3:
- f_tan();
- break;
- case 4:
- f_ctan();
- break;
- case 5:
- f_arc_sin();
- break;
- case 6:
- f_arc_cos();
- break;
- case 7:
- f_arc_tan();
- break;
- case 8:
- break;
- default:
- std::cout << "\n Nie ma takiej opcji. \n\n";
- break;
- }
- } while (option != 8);
- }
- //--
- int bin_to_dec(std::string n)
- {
- std::string num = n;
- int dec_value = 0;
- int base = 1;
- int len = num.length();
- for (int i = len - 1; i >= 0; i--) {
- if (num[i] == '1')
- dec_value += base;
- base = base * 2;
- }
- return dec_value;
- }
- //--
- void s_bin_to_dec()
- {
- std::string variable;
- std::cout << "Podaj liczbe w systemie binarnym: \n";
- std::cin >> variable;
- int len = variable.length();
- for (int i = len - 1; i >= 0; i--)
- if (variable[i] != '1' && variable[i] != '0')
- std::cout << "Nieprawidlowa liczba. \n";
- else
- std::cout << "Liczba binarna " << variable << " w systemie dziesetnym to: " << bin_to_dec(variable) << "\n";
- }
- //--
- void dec_to_bin(int n)
- {
- int binaryNum[32];
- // counter for binary array
- int i = 0;
- while (n > 0) {
- // storing remainder in binary array
- binaryNum[i] = n % 2;
- n = n / 2;
- i++;
- }
- // printing binary array in reverse order
- for (int j = i - 1; j >= 0; j--)
- std::cout << binaryNum[j];
- }
- //--
- void s_dec_to_bin()
- {
- double variable;
- std::cout << "Podaj liczbe w systemie dziesetnym: \n";
- std::cin >> variable;
- if (true)
- {
- if (std::cin.fail())
- {
- std::cout << "\nBlad, podano znak/ciag znakow. \n";
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- else
- {
- if (variable - int(variable) == 0)
- {
- std::cout << "Liczba dziesetna " << variable << " w systemie binarnym to: ";
- dec_to_bin(variable);
- std::cout << "\n";
- }
- else
- std::cout << "Blad. Liczba zmiennoprzecinkowa.\n";
- }
- }
- }
- //--
- void f_conversion()
- {
- int option;
- do {
- std::cout << "\nPrzeliczanie miedzy systemami liczbowymi: \n\n";
- std::cout << "1. Binarny na dziesietny. \n";
- std::cout << "2. Dziesietny na binary. \n";
- std::cout << "\n14. Powrot do Menu Glownego. \n\n";
- std::cin >> option;
- switch (option)
- {
- case 1:
- s_bin_to_dec();
- break;
- case 2:
- s_dec_to_bin();
- break;
- case 14:
- break;
- default:
- std::cout << "\n Nie ma takiej opcji. \n\n";
- break;
- }
- } while (option != 14);
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement