Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "H3.h"
- #include <iostream>
- #include <math.h>
- using namespace std;
- comp :: comp(double n, double d, int e) {
- imag = n;
- real = d;
- exp = e;
- }
- void comp :: setImag(double n) {
- imag = n;
- }
- double comp :: getImag() {
- return imag;
- }
- void comp :: setReal(double n) {
- real = n;
- }
- double comp :: getReal() {
- return real;
- }
- void comp :: setExp(int e) {
- exp = e;
- }
- int comp :: getExp() {
- return exp;
- }
- comp comp :: soma(comp& s) {
- double rim, rr;
- comp result;
- rim = imag + s.imag;
- rr = real + s.real;
- result.imag = rim;
- result.real = rr;
- setImag(rim);
- setReal(rr);
- return result;
- }
- comp comp :: sub(comp& s) {
- double rim, rr;
- comp result;
- rim = imag - s.imag;
- rr = real - s.real;
- result.imag = rim;
- result.real = rr;
- setImag(rim);
- setReal(rr);
- return result;
- }
- comp comp :: mult(comp& m) {
- double rim, rr;
- int resexp;
- comp result;
- resexp = exp+m.exp;
- if (resexp%4==1) {
- rim = imag*(m.real+m.imag);
- rr = real*(m.real+m.imag);
- resexp = 1;
- setImag(rim);
- setReal(rr);
- setExp(resexp);
- }
- if (resexp%4==2) {
- rim = (imag*m.real)+(real*m.imag);
- rr = (real*m.real)-(imag*m.imag);
- resexp = 1;
- setImag(rim);
- setReal(rr);
- setExp(resexp);
- }
- if (resexp%4==3) {
- rim = imag*(m.real-m.imag);
- rr = real*(m.real-m.imag);
- resexp = 1;
- setImag(rim);
- setReal(rr);
- setExp(resexp);
- }
- if (resexp%4==0) {
- rim = (imag*m.real)-(real*m.imag);
- rr = (real*m.real)+(imag*m.imag);
- resexp = 1;
- setImag(rim);
- setReal(rr);
- setExp(resexp);
- }
- return result;
- }
- comp comp :: div(comp& d) {
- double rim, rr;
- int resexp;
- comp result;
- resexp = exp+d.exp;
- if (resexp%4==1) {
- rim = (imag)/(d.imag+d.real);
- rr = (real)/(d.imag+d.real);
- resexp = 1;
- setImag(rim);
- setReal(rr);
- setExp(resexp);
- }
- if (resexp%4==2) {
- rim = ((d.imag*real)-(d.real*imag))/(-(d.imag*d.imag)-(d.real*d.real));
- rr = ((-1)*((imag*d.imag)+(real*d.real)))/(-(d.imag*d.imag)-(d.real*d.real));
- resexp = 1;
- setImag(rim);
- setReal(rr);
- setExp(resexp);
- }
- if (resexp%4==3) {
- rim = (imag)/(d.real-d.imag);
- rr = (real)/(d.real-d.imag);
- resexp = 1;
- setImag(rim);
- setReal(rr);
- setExp(resexp);
- }
- if (resexp%4==0) {
- rim = (-(d.imag*real)-(d.real*imag))/(-(d.imag*d.imag)-(d.real*d.real));
- rr = ((imag*d.imag)-(real*d.real))/(-(d.imag*d.imag)-(d.real*d.real));
- resexp = 1;
- setImag(rim);
- setReal(rr);
- setExp(resexp);
- }
- return result;
- }
- comp comp :: mod() {
- double mod;
- mod = sqrt((imag*imag)+(real*real));
- cout << "mod=" << mod << "\n\n";
- }
- void comp :: leitor() {
- cout << "func= " << getImag() << "i";
- if (real>=0){
- cout <<"+"<< getReal() << "\n";
- } else {
- cout << getReal() << "\n";
- }
- }
- int main() {
- int option;
- double n,d,n_soma,d_soma,n_sub,d_sub,n_mul,d_mul,e_mul,n_div,d_div,e_div;
- comp inicial, temp;
- cout << "criar a func(1) ou usar padrao(2)? ";
- cin >> option;
- switch (option) {
- case 1:
- cout << "parte imaginaria da func: ";
- cin >> n;
- cout << "parte real da func: ";
- cin >> d;
- inicial.setImag(n);
- inicial.setReal(d);
- break;
- case 2:
- inicial.setImag(1);
- inicial.setReal(1);
- break;
- }
- cout << "(1)Ver a func \n(2)Somar \n(3)Subtrair \n(4)Multiplicar \n(5)Dividir \n(6)Obter mod \n(7)Sair do programa\n\n";
- cin >> option;
- while (option!=7) {
- switch (option) {
- case 1:
- inicial.leitor();
- break;
- case 2:
- cout << "parte imaginaria da func: ";
- cin >> n_soma;
- cout << "real da func: ";
- cin >> d_soma;
- temp.setImag(n_soma);
- temp.setReal(d_soma);
- inicial.soma(temp);
- inicial.leitor();
- break;
- case 3:
- cout << "parte imaginaria da func: ";
- cin >> n_sub;
- cout << "parte real da func: ";
- cin >> d_sub;
- temp.setImag(n_sub);
- temp.setReal(d_sub);
- inicial.sub(temp);
- inicial.leitor();
- break;
- case 4:
- cout << "Digite a parte imaginaria da func que sera multiplicada: ";
- cin >> n_mul;
- cout << "Digite a parte real da func que sera multiplicada: ";
- cin >> d_mul;
- cout << "Digite o expoente da variavel i: ";
- cin >> e_mul;
- temp.setImag(n_mul);
- temp.setReal(d_mul);
- temp.setExp(e_mul);
- inicial.mult(temp);
- inicial.leitor();
- break;
- case 5:
- cout << "parte imaginaria da func: ";
- cin >> n_div;
- cout << "parte real da func: ";
- cin >> d_div;
- cout << "expoente da variavel i: ";
- cin >> e_div;
- temp.setImag(n_div);
- temp.setReal(d_div);
- temp.setExp(e_div);
- inicial.div(temp);
- inicial.leitor();
- break;
- case 6:
- inicial.mod();
- break;
- }
- cout << "(1)Ver a func \n(2)Somar \n(3)Subtrair \n(4)Multiplicar \n(5)Dividir \n(6)Obter mod \n(7)Sair do programa\n\n";
- cin >> option;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment