Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Created by Sailein on 18.04.2018.
- //
- #include "Snake.h"
- int main ()
- {
- PM p1, p2, p3;
- int type, act, pol; // type- выбор типа коэффициентов/ act- выбор действие над многочленом/ pol- выбор многочлена
- int test;
- printf("Нужно ли выполнить проверку функций?\n1 Да\n2 Нет\nОтвет ");
- scanf("%d", &test);
- while ((test != 1) && (test != 2))
- {
- printf("ошибка(введите 1 или 2)\n");
- scanf("%d", &test);
- }
- if (test == 1) printf("kek"); //test_all_functions(); // тут будет тестер потом
- printf("\n\nВыберите тип коэффициентов:");
- printf("\n1-целые\n2-вещественные\n3-выйти из программы\n");
- printf("Ответ ");
- scanf("%d", &type);
- while ((type != 1) && (type != 2) && (type != 3)) {
- printf("Ошибка(введите 1, 2 или 3)\n");
- scanf("%d", &type);
- }
- while (type != 3) {
- // >>>>>>для целых<<<<<< //
- if (type == 1)
- {
- Scanner(&p1, Scan_int, sizeof(int));
- Scanner(&p2, Scan_int, sizeof(int));
- printf("\nP1(x)= ");
- Printer(&p1, Print_int);
- printf("\nP2(x)= ");
- Printer(&p2, Print_int);
- printf("\nКакое действие выполнить?\n1-сложение\n2-умножение\n3-умножение на скаляр\n4-подстановка аргумента\n5-коспозиция");
- printf("Ответ ");
- scanf("%d", &act);
- while ((act != 1) && (act != 2) && (act != 3) && (act != 4) && (act != 5))
- {
- printf("\nошибка(вы можете выбрать 1, 2, 3, 4 или 5)\n");
- scanf("%d", &act);
- }
- if (act == 1)
- {
- Create(Max(&p1, &p2)->max, sizeof(int));
- Summa(&Sum_int, &p1, &p2, &p3);
- printf("\nРезультат сложения многочленов P1 и P2: ");
- Printer(&p3, Print_int);
- }
- else if (act == 2)
- {
- Create(p1.max + p2.max, sizeof(int));
- Mul(&Sum_int, &Mul_int, &p1, &p2, &p3);
- printf("Результат умножения многочленов P1 и P2: ");
- Printer(&p3, Print_int);
- Free(&p3);
- }
- else if (act == 3)
- {
- int A;
- printf("\nКакой многочлен будем умножать на скаляр?:\n1-P1(x)\n2-P2(x)\nОтвет ");
- scanf("%d", &pol);
- while ((pol != 1) && (pol != 2))
- {
- printf("ошибка(введите 1 или 2)\n");
- scanf("%d", &pol);
- }
- if (pol == 1)
- {
- printf("На какое число умножить многочлен P1? ");
- scanf("%d", &A);
- Skalar(&Mul_int, &p1, (void* )&A);
- printf("P1(x)*%d=", A);
- Printer(&p1, Print_int);
- }
- else if (pol == 2)
- {
- printf("На какое число умножить многочлен P2? ");
- scanf("%d", &A);
- Skalar(&Mul_int, &p2, (void *) &A);
- printf("P2(x)*%d=", A);
- Printer(&p2, Print_int);
- }
- }
- else if (act == 4)
- {
- int x, res;
- printf("\nВ какой многочлен подставить значение аргумента?:\n1-P1(x)\n2-P2(x)\nОтвет ");
- scanf("%d", &pol);
- while ((pol != 1) && (pol != 2))
- {
- printf("ошибка(введите 1 или 2)\n");
- scanf("%d", &pol);
- }
- if (pol == 1)
- {
- printf("\nx=");
- scanf("%d", &x);
- Subst(&Sum_int, &Mul_int, &p1,(void*)&x, (void*)&res);
- printf("P(%d)=%d\n", x, res);
- }
- else if (pol == 2)
- {
- printf("\nx=");
- scanf("%d", &x);
- Subst(&Sum_int, &Mul_int, &p2,(void*)&x, (void*)&res);
- printf("P(%d)=%d\n", x, res);
- }
- }
- else if (act == 5)
- {
- printf("\nКак вы хотите сделать композицию:\n1-P1(x)в P2(x)\n2-P2(x) в P1(x)\nОтвет ");
- scanf("%d", &pol);
- while ((pol != 1) && (pol != 2))
- {
- printf("ошибка(введите 1 или 2)\n");
- scanf("%d", &pol);
- }
- if (pol == 1)
- {
- Create(p1.max * p2.max, sizeof(int));
- Composition(&Mul_int, &Sum_int, &p2, &p1, &p3);
- printf("\nРезультат композиции P1 в P2: ");
- Printer(&p3, Print_int);
- Free(&p3);
- }
- if (pol == 2)
- {
- Create(p1.max * p2.max, sizeof(int));
- Composition(&Mul_int, &Sum_int, &p1, &p2, &p3);
- printf("\nРезультат композиции P2 в P1: ");
- Printer(&p3, Print_int);
- Free(&p3);
- }
- }
- Free(&p1);
- Free(&p2);
- Free(&p3);
- type = 3;
- }
- // >>>>>>для комплексных<<<<<< //
- else if (type == 2) {
- Scanner(&p1, Scan_float, sizeof(float));
- Scanner(&p2, Scan_float, sizeof(float));
- printf("\nP1(x)= ");
- Printer(&p1, Print_float);
- printf("\nP2(x)= ");
- Printer(&p2, Print_float);
- printf("\nКакое действие выполнить?\n1-сложение\n2-умножение\n3-умножение на скаляр\n4-подстановка аргумента\n5-коспозиция\n");
- printf("Ответ ");
- scanf("%d", &act);
- while ((act != 1) && (act != 2) && (act != 3) && (act != 4) && (act != 5))
- {
- printf("\nошибка(вы можете выбрать 1, 2, 3, 4 или 5)\n");
- scanf("%d", &act);
- }
- if (act == 1)
- {
- Create(Max(&p1, &p2)->max, sizeof(float));
- Summa(&Sum_float, &p1, &p2, &p3);
- printf("\nРезультат сложения многочленов P1 и P2: ");
- Printer(&p3, Print_float);
- Free(&p3);
- }
- else if (act == 2)
- {
- Create(p1.max + p2.max, sizeof(float));
- Mul(&Sum_float, &Mul_float, &p1, &p2, &p3);
- printf("Результат умножения многочленов P1 и P2: ");
- Printer(&p3, Print_float);
- Free(&p3);
- }
- else if (act == 3)
- {
- float A;
- printf("\nКакой многочлен будем умножать на скаляр?:\n1-P1(x)\n2-P2(x)\nОтвет ");
- scanf("%d", &pol);
- while ((pol != 1) && (pol != 2))
- {
- printf("ошибка(введите 1 или 2)\n");
- scanf("%d", &pol);
- }
- if (pol == 1)
- {
- printf("На какое число умножить многочлен P1? ");
- scanf("%f", &A);
- Skalar(&Mul_float, &p1, (void* )&A);
- printf("P1(x)*%f=", A);
- Printer(&p1, Print_float);
- }
- else if (pol == 2)
- {
- printf("На какое число умножить многочлен P2? ");
- scanf("%f", &A);
- Skalar(&Mul_float, &p2, (void *) &A);
- printf("P2(x)*%f=", A);
- Printer(&p2, Print_float);
- }
- }
- else if (act == 4)
- {
- float x, res;
- printf("\nВ какой многочлен подставить значение аргумента?:\n1-P1(x)\n2-P2(x)\nОтвет ");
- scanf("%d", &pol);
- while ((pol != 1) && (pol != 2))
- {
- printf("ошибка(введите 1 или 2)\n");
- scanf("%d", &pol);
- }
- if (pol == 1)
- {
- printf("\nx=");
- scanf("%f", &x);
- Subst(&Sum_float, &Mul_float, &p1,(void*)&x, (void*)&res);
- printf("P(%f)=%f\n", x, res);
- }
- else if (pol == 2)
- {
- printf("\nx=");
- scanf("%f", &x);
- Subst(&Sum_float, &Mul_float, &p2,(void*)&x, (void*)&res);
- printf("P(%f)=%f\n", x, res);
- }
- }
- else if (act == 5)
- {
- printf("\nКак вы хотите сделать композицию:\n1-P1(x)в P2(x)\n2-P2(x) в P1(x)\nОтвет ");
- scanf("%d", &pol);
- while ((pol != 1) && (pol != 2))
- {
- printf("ошибка(введите 1 или 2)\n");
- scanf("%d", &pol);
- }
- if (pol == 1)
- {
- Create(p1.max * p2.max, sizeof(float));
- Composition(&Mul_float, &Sum_float, &p2, &p1, &p3);
- printf("\nРезультат композиции P1 в P2: ");
- Printer(&p3, Print_float);
- Free(&p3);
- }
- if (pol == 2)
- {
- Create(p1.max * p2.max, sizeof(float));
- Composition(&Mul_float, &Sum_float, &p1, &p2, &p3);
- printf("\nРезультат композиции P2 в P1: ");
- Printer(&p3, Print_float);
- Free(&p3);
- }
- }
- Free(&p1);
- Free(&p2);
- type = 3;
- }
- }
- system("pause");
- return 0;
- }
Add Comment
Please, Sign In to add comment