Trabalhando com Matrizes
Publicado por Denilson 08/05/2008
[ Hits: 7.249 ]
Esse script faz soma, subtração, multiplicação e a transposta de uma matriz.
#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);}
Manipulação de um vetor de registros
Programa recursivo para obter raiz quadrada
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (7)
Sinto uma leve lentidão ao arrastar, miniminizar e restauras as janela... (0)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (6)