Trabalhando com Matrizes

Publicado por Denilson 08/05/2008

[ Hits: 7.139 ]

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

POGRAMA EM C REGISTRO DE CADASTRO ALTERAR E REMOVER CLIENTES PRODUTOS

Braco Robotico em OpenGL

Tabela Hash feita em C

Biblioteca estática para manipulação de pilhas

Fibonnaci com Memoization


  

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