Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  matrix
Language: C/C++
Code:
#include<iostream>
#include<conio.h>
#include<iomanip.h>
#include<process.h>
#define sk 100

class matrix
    {
        public:
        int i,j,k,sum,r1,r2,c1,c2;
        int m1[sk][sk],m2[sk][sk];
        char reply;
        void getin(void);
        void mply(void);
        void add(void);
        void minus(void);
        void read(void);
        void input(void);
    };

void matrix::getin()
{
    std::cout << "*Calculadora de Matrices klktudice*";
    std::cout << "-------------------------------------";
    std::cout << "Matrice 2x2, 3x3, ata' matriz 100x100";
    std::cout << "SUMA, RESTA, MULTIPLICACION, DE TO' ";
    std::cout << "¿Deseas continuar? [Y/N] : ";
    
    std::cin >> reply;
    
    if(reply=='y'||reply=='Y')
    {
        std::cout << "Digita el numero de filas y columnas para la matriz #1: ";
        std::cin >> r1 >>c1;
        std::cout << "Digita el valor de la matrix #1 : " << std::endl;
        
        for(i=0;i<r1;i++)
            for(j=0;j<c1;j++)
                std::cin>>m1[i][j];
        std::cout << "Digita el numero de filas y columnas para la matriz #2 : ";
        std::cin >> r2>> c2;
        std::cout << "Digita el valor de la matrix #2 : "<< std::endl;
        for(i=0;i<r2;i++)
            for(j=0;j<c2;j++)
                std::cin>>m2[i][j];
    }
    else exit(0);
}

void matrix::mply()
{
    std::cout<<"El resultado de la multiplicacion es :";
    if(c1==r2)
    {
        for(i=0;i<r1;i++)
        {
            std::cout<<std::endl;
            for(j=0;j<c2;j++)
            {
                sum=0;
                for(k=0;k<c1;k++)
                    sum+=m1[i][k]*m2[k][j];
                        std::cout<< setw(6)<<sum;
            }
        }
    }
    else
     {
        std::cout <<"Entrada invalida ";
        std::cout << "Multiplicacion no posible ";
     }
}

void matrix::add()
{
    std::cout<<"El resultado de la suma es :";
    if(r1==r2&&c1==c2)
    {
        for(i=0;i<r1;i++)
        {
            std::cout<<std::endl;
            for(j=0;j<c1;j++)
                std::cout <<setw(3)<<(m1[i][j]+m2[i][j]);
        }
    }
    else
     {
        std::cout<<"Entrada invalida ";
        std::cout<<"Suma no imposible";
     }
}

void matrix::minus()
{
    std::cout<<"El resultado de la resta es :";
    if(r1==r2&&c1==c2)
    {
        for(i=0;i<r1;i++)
        {
            std::cout<<std::endl;
            for(j=0;j<c1;j++)
                std::cout<<setw(3)<<(m1[i][j]-m2[i][j]);
        }
    }
    else
     {
        std::cout<<"Entrada invalida ";
        std::cout<<"Resta no posible ";
     }
    
}
void matrix::read()
{
    std::cout<<"Entrada de matriz #1 es :";
    for(i=0;i<r1;i++)
    {
        std::cout<<std::endl;
        for(j=0;j<c1;j++)
            std::cout<<setw(3)<<m1[i][j];
    }
    std::cout<<std::endl;
    std::cout<<"Entrada de matriz #2 es :";
    for(i=0;i<r2;i++)
    {
        std::cout<<std::endl;
        for(j=0;j<c2;j++)
            std::cout<<setw(3)<<m2[i][j];
    }
}
void main()
{
    int ans,option;
    char response;
    matrix m;
    clrscr();
    start :
    m.getin();
    again :
    cout<<"¿Que deseas hacer? : "<<endl;
        cout<<"1.Suma";
        cout<<"2.Resta ";
        cout<<"3.Multiplicacion ";
        cout<<"4.Valor ";
        cout<<"5.Me Jalte', Salida ";
        cout<<"Digita el numero de tu opcion : ";
        repeat:
        cin>>ans;
    
    switch(ans)
    {
        case 1 : m.add(); break;
        case 2 : m.minus(); break;
        case 3 : m.mply(); break;
        case 4 : m.read(); break;
        case 5 : goto exit ;
        default :
        {
            cout<<"Entrada invalida, intenta denuevo: ";
            goto repeat;
        }
    }
    cout<<"Quieres intentarlo denuevo [Y/N] : ";
    cin>>response;
    if(response=='y'||response=='Y')
    {
    wrong:
        cout<<"Digita el numero de tu opcion";
        cout<<"1.Para la misma matriz";
        cout<<"2.Para otra matriz";
        cin>>option;
        switch(option)
        {
            case 1 : goto again;
            case 2 : goto start;
            default: cout<<"Entrada invalida "; goto wrong;
        }
    }
    exit :
    getch();
}

Comments: