Trabalhando com Matrizes

Publicado por Denilson 08/05/2008

[ Hits: 7.108 ]

Download 3329.4901




Esse script faz soma, subtração, multiplicação e a transposta de uma matriz.

  



Esconder código-fonte

#include<iostream.h>
#include<stdio.h>
#include<conio2.h> 
#include<math.h> 
#define UP 72 
#define DOWN 80
#define ENTER 13

void Transposta (int A[10][10],int m,int n){
     int cont=1;
     textcolor(10);
     
printf("\n%c",218);
gotoxy(wherex()+(m*5),wherey());
printf("%c",191);
     
     for(int i=0; i<n; i++){
     cout<<"\n";
     printf("%c",179);
     
     for(int j=0; j<m; j++){
     textcolor(7);
     printf("%3d  ",A[j][i]);}
     textcolor(10);
     printf("%c",179);
     
     if(cont<n){          
     printf("\n%c",179);
     gotoxy(wherex()+(m*5),wherey());
     printf("%c",179);
     cont++;}}
     
printf("\n%c",192);
gotoxy(wherex()+(m*5),wherey());
printf("%c",217);}

void MATRIZ (int A[10][10],int m,int n){int cont=1;
     textcolor(10);
     
printf("\n%c",218);
gotoxy(wherex()+(n*5),wherey());
printf("%c",191);

for(int i=0;i<m;i++){
     cout<<"\n";
     printf("%c",179);
     for(int j=0;j<n;j++){
     textcolor(7);
     printf(" %3d ",A[i][j]);}
     textcolor(10);
     printf("%c",179);
     
     if(cont<m){
     printf("\n%c",179);
     gotoxy(wherex()+(n*5),wherey());
     printf("%c",179);
     cont++;}}
     
printf("\n%c",192);
gotoxy(wherex()+(n*5),wherey());
printf("%c",217);}

void Soma(int A[10][10],int B[10][10],int C[10][10],int m, int n)
{int i,j;
for(i=0;i<m;i++)for(j=0;j<n;j++)C[i][j]=A[i][j]+B[i][j];}

void Subtracao(int A[10][10],int B[10][10],int C[10][10],int m, int n)
{int i,j;
for(i=0;i<m;i++)for(j=0;j<n;j++)C[i][j]=A[i][j]-B[i][j];}

void Multiplicacao(int A[10][10],int B[10][10],
int C[10][10],int m, int n,int p){int i,j,k;
for(i=0;i<m;i++)
for(j=0;j<p;j++){C[i][j]=0;
for(k=0;k<n;k++)C[i][j]=C[i][j]+A[i][k]*B[k][j];}}

char cmenu[5][28]={" Soma de Matrizes          ",
" Subtra‡Æo de Matrizes     "," Multiplica‡Æo de Matrizes ",
" Matriz Transposta         "," Sair                      "};

int linha,tecla; 

void menu(){ 
clrscr();
gotoxy(0,0);

textcolor(11);
cout<<"\n @Autor: Denilson Edinaldo Pinto\n\n\n\n";

textcolor(12);
cout<<"\n\n PROJETO DE MATRIZES\n\n ";
textcolor(11);
cout<<"              MENU:";

textcolor(14);
textbackground(4);

for(linha=1;linha<=5;linha++){ 
gotoxy(22,linha+10); cprintf("%s", cmenu[linha]);}

linha=0; 
textbackground(1); 
gotoxy(22,linha+10); cprintf("%s", cmenu[linha]); 
textbackground(0);} 

main(){
int A[10][10],B[10][10],C[10][10],m,n,p,i,j,x,y,k,cont=1; 
 
menu();

do{
A[10][10]=0,B[10][10]=0,C[10][10]=0;
m=0,n=0,p=0,i=0,j=0,x=0,y=0,k=0,cont=1;

tecla=getch();

if(tecla==DOWN&&linha<5){ 
textbackground(4); 
gotoxy(22,linha+10); cprintf("%s", cmenu[linha]); 
linha++; 
textbackground(1); 
gotoxy(22,linha+10); cprintf("%s", cmenu[linha]);} 

if(tecla==UP&&linha>-1){ 
textbackground(4); 
gotoxy(22,linha+10); cprintf("%s", cmenu[linha]); 
linha--; 
textbackground(1); 
gotoxy(22,linha+10); cprintf("%s", cmenu[linha]);}

if(tecla==DOWN&&linha==5){ 
textbackground(4); 
gotoxy(22,linha+10); cprintf("%s", cmenu[linha]); 
linha=0; 
textbackground(1); 
gotoxy(22,linha+10); cprintf("%s", cmenu[linha]);} 

if(tecla==UP&&linha==-1){ 
textbackground(4); 
gotoxy(22,linha+11); cprintf("%s", cmenu[linha+1]); 
linha=4; 
textbackground(1); 
gotoxy(22,linha+10); cprintf("%s", cmenu[linha]);}

if(tecla==ENTER&&linha==0){ 
textbackground(0); 
clrscr();

textcolor(11);
cout<<"\n Soma de Matrizes";
textcolor(10);
cout<<"\n\n Digite o n§ de linhas: ";
textcolor(7);
cin>>m;

textcolor(10);
cout<<"\n\n Digite o n§ de colunas: ";
textcolor(7);
cin>>n;

textcolor(10);
cout<<"\n\n Digite a Matriz A: ";
textcolor(7);

for(y=10,i=0;i<m;y++,i++){
for(x=22,j=0;j<n;x=x+5,j++){gotoxy(x,y);
                            cin>>A[i][j];
                            cout<<" ";}}
                            
textcolor(10);
cout<<"\n\n Digite a Matriz B: ";
textcolor(7);

for(y=y+2,i=0;i<m;y++,i++){
for(x=22,j=0;j<n;x=x+5,j++){gotoxy(x,y);
                            cin>>B[i][j];
                            cout<<" ";}}
                                    
Soma(A,B,C,m,n);
textcolor(10);
cout<<"\n\n Matriz C: \n";
MATRIZ (C,m,n);

getch(); 
menu();}
                                    
if(tecla==ENTER&&linha==1){ 
textbackground(0); 
clrscr();

textcolor(11);
cout<<"\n Subtra‡Æo de Matrizes";
textcolor(10);
cout<<"\n\n Digite o n§ de linhas: ";
textcolor(7);
cin>>m;

textcolor(10);
cout<<"\n\n Digite o n§ de colunas: ";
textcolor(7);
cin>>n;

textcolor(10);
cout<<"\n\n Digite a Matriz A: ";
textcolor(7);

for(y=10,i=0;i<m;y++,i++){
for(x=22,j=0;j<n;x=x+5,j++){gotoxy(x,y);
                            cin>>A[i][j];
                            cout<<" ";}}
textcolor(10);

cout<<"\n\n Digite a Matriz B: ";
textcolor(7);

for(y=y+2,i=0;i<m;y++,i++){
for(x=22,j=0;j<n;x=x+5,j++){gotoxy(x,y);
                            cin>>B[i][j];
                            cout<<" ";}}
                                    
Subtracao(A,B,C,m,n);
textcolor(10);
cout<<"\n\n Matriz C: \n";
MATRIZ (C,m,n);

getch(); 
menu();}
                                    
if(tecla==ENTER&&linha==2){ 
textbackground(0); 
clrscr();

textcolor(11);
cout<<"\n Multiplica‡Æo de Matrizes";
textcolor(10);
cout<<"\n\n Matriz A: ";
cout<<"\n\n Digite o n§ de linhas: ";
textcolor(7);
cin>>m;

textcolor(10);
cout<<"\n\n Digite o n§ de colunas: ";
textcolor(7);
cin>>n;

textcolor(10);
cout<<"\n\n Digite a Matriz A: ";
textcolor(7);

for(y=12,i=0;i<m;y++,i++){
for(x=22,j=0;j<n;x=x+5,j++){gotoxy(x,y);
                            cin>>A[i][j];
                            cout<<" ";}}
textcolor(10);
cout<<"\n\n Matriz B: ";
cout<<"\n\n Digite o n§ de colunas: ";
textcolor(7);
cin>>p;

textcolor(10);
cout<<"\n\n Digite a Matriz B: ";
textcolor(7);

for(y=y+7,i=0;i<m;y++,i++){
for(x=22,j=0;j<p;x=x+5,j++){gotoxy(x,y);
                            cin>>B[i][j];
                            cout<<" ";}}
                                    
Multiplicacao(A,B,C,m,n,p);
textcolor(10);
cout<<"\n\n Matriz C: \n";

printf("\n%c",218);
gotoxy(wherex()+(p*5),wherey());
printf("%c",191);

for(int i=0;i<m;i++){
     cout<<"\n";
     printf("%c",179);
     for(int j=0;j<p;j++){
     textcolor(7);
     printf(" %3d ",C[i][j]);}
     textcolor(10);
     printf("%c",179);
     
     if(cont<m){
     printf("\n%c",179);
     gotoxy(wherex()+(p*5),wherey());
     printf("%c",179);
     cont++;}}
     
     printf("\n%c",192);
     gotoxy(wherex()+(p*5),wherey());
     printf("%c",217);
getch(); 
menu();}
                                    
if(tecla==ENTER&&linha==3){ 
textbackground(0); 
clrscr();

textcolor(11);
cout<<"\n Matriz Transposta";
textcolor(10);
cout<<"\n\n Matriz A: ";
cout<<"\n\n Digite o n§ de linhas: ";
textcolor(7);
cin>>m;

textcolor(10);
cout<<"\n\n Digite o n§ de colunas: ";
textcolor(7);
cin>>n;

textcolor(10);
cout<<"\n\n Digite a Matriz A: ";
textcolor(7);

for(y=12,i=0;i<m;y++,i++){
for(x=22,j=0;j<n;x=x+5,j++){gotoxy(x,y);
                            cin>>A[i][j];}}
textcolor(10);
cout<<"\n\n Transposta de A: \n";

Transposta (A,m,n);
getch(); 
menu();}

if(tecla==ENTER&&linha==4){ 
textbackground(0); 
clrscr(); 
exit(0);}

}while(tecla!=27);}

Scripts recomendados

Contar elementos de uma lista encadeada

AGENDA DE COMPROMISSO

Método de Newton Modificado p/ Raízes Multiplas

Gerenciamento de Área de Alocação Dinâmica (Listas Encadeadas)

Árvore AVL ordenação


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts