Realizador de tarefas
Bom, eu estou fazendo um programa que tem que realizar 4 funcoes para matrizes uma para calcular a soma, outra a multiplicacao, a transposta e outra para multiplicar vetor por matriz, tudo isso apenas em um programa. Até acho que fiz certo as funcoes independentes, mas quando chama a funcao Pausa, ele não retorna (Retorna para o menu), e tambem queria modificar uma coisa porem essa realmente eu nao sei como... fazer uma matriz de dimensao qualquer, eu tive que definir o tamanho de 100 para as matrizes e para o vetor, mas se eu quiser uma outra dimensão maior não aceitaria, como faço isso? será que terei q fazer por meio de ponteiros, como posso fazer isso?
dentro da funçao Pausa eu usei outra funcao toupper q eh responsavel em converter um caracter minusculo em formato maiusculo; e usei apostrofos entre o C dentro do while para determinar o conteudo da variavel LETRA.
Tentei outras formas como:
int Pausa (void)
{
char Resp;
do
{
cout<<endl;
cout << "Continua? im / [N]ão + <ENTER>: "; cin>> Resp;
Resp = toupper(Resp);
}
while (Resp=='S');
return 0;
}
ou
int Pausa (void)
{
Resp=1;
cout<<endl;
cout << " Deseja Continuar? [1] para Sim / [2] para Não"; cin>> Resp;
Resp = toupper(Resp);
}
while (Resp==1);
return 0;
}
O meu programa final ficou assim:
#include <iostream.h>
#include <iomanip.h>
#include <cctype>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
float A[100][100],B[100][100],C[100][100],v[100],p[100], Transp[100][100]; //Eu precisava declarar uma matriz, porem sem definir suas dimensoes.....
int i,j,k, M, N ,P;
int Adicao (void);
int Multiplicacao (void);
int Transposta (void);
int VetorXMatriz (void);
int Pausa (void);
int main(void)
{
textbackground(RED);
textcolor(YELLOW );
int OPCAO=0;
while (OPCAO != 5)
{
cout << setiosflags (ios::right);
cout << setiosflags (ios::fixed);
cout << "\n";
cout << "\n" ;
cout << " ________________________________________________" << endl ;
cout << "\n" ;
cout << " Realizador de Tarefas - ECA - Calc. Num." << endl ;
cout << " Programa Matrizes " << endl ;
cout << " Menu Principal " << endl ;
cout << " ________________________________________________" << endl ;
cout << "\n\n\n" ;
cout << " ________________________________________________" << endl ;
cout << " [1] - Adicao entre Matrizes " << endl ;
cout << " [2] - Multiplicacao entre Matrizes " << endl ;
cout << " [3] - Transposta de uma Matriz " << endl ;
cout << " [4] - Multiplicacao de um Vetor por uma Matriz " << endl ;
cout << " [5] - Fim de Programa " << endl ;
cout << " _________________________________________________" << endl ;
cout << "\n" ;
cout << "\n" ;
cout << " Entre com a Opcao Desejada: " ; cin >> OPCAO ;
cout << "\n" << "\n" ;
if (OPCAO!=5){
if ( OPCAO > 5 || OPCAO <=0 )
{
cout << " Opcoes apenas de 1 a 5 conforme Menu Principal! " << " " ;cout << " Opcoes apenas de 1 a 5 conforme Menu Principal! " << " " ;
cout << " Opcao Escolhida esta Invalida, Tente novamente! " << " " ;
cout << "\n" << "\n" ;
cout << " Entre com a Opcao Desejada: " ; cin >> OPCAO;
cout << "\n" << "\n" ;
if ( OPCAO > 5 || OPCAO <=0 )
{
cout << " Opcao Invalida Novamente! " << " " ;
cout << "\n" ;
cout << " O Programa sera fechado! Ate a Proxima! " << " " ;
cout << "\n" << "\n" ;
} }else {
switch (OPCAO)
{
case 1 : Adicao (); break;
case 2 : Multiplicacao (); break;
case 3 : Transposta (); break;
case 4 : VetorXMatriz (); break;
}
} }
return 0;
}
}
int Adicao (void)
{
cout <<"Programa para calcular o resultado da adicao de 2 matrizes\n";
cout <<"Qual a dimensao das matrizes ? ";
cout << " Sendo A[MxN],B[NxP]\n""Entre com o valor de M: " ;cin >> M; cout<< "\n";
cout << "Entre com o valor de N: " ;cin >> N; cout<< "\n";
cout << "Entre com o valor de P: " ;cin >> P; cout<< "\n";
for(i=0;i<M;i++){
for(j=0;j<N;j++){
cout<<"A "<<i<<j<<": ";
cin>>A*[j];*
}
}
for(i=0;i<N;i++){
for(j=0;j<P;j++){
cout<<"B "<<i<<j<<": ";
* cin>>B**[j];*
}
}
for(i=0;i<M;i++){
for(j=0;j<P;j++){
* C[j] = A[j] + B**[j];*
}
}
cout<<"A matriz resultado da Soma das matrizes A e B eh:\n";
for(i=0;i<M;i++)
{
for(j=0;j<P;j++)
{
* cout<< "C "<<i<<j<<": " << C**[j]<< endl;*
} }
Pausa();
return 0;
}
int Multiplicacao (void)
{
cout <<"Programa para calcular o resultado da multiplicacao de 2 matrizes quadradas\n";
cout <<"Qual a dimensao das matrizes ? ";
cout << " Sendo A[MxN],B[NxP]\n""Entre com o valor de M: " ;cin >> M; cout<< "\n";
cout << "Entre com o valor de N: " ;cin >> N; cout<< "\n";
cout << "Entre com o valor de P: " ;cin >> P; cout<< "\n";
for(i=0;i<M;i++){
for(j=0;j<N;j++){
cout<<"A "<<i<<j<<": ";
* cin>>A**[j];*
}
}
for(i=0;i<N;i++){
for(j=0;j<P;j++){
cout<<"B "<<i<<j<<": ";
* cin>>B**[j];*
}
}
for(i=0;i<M;i++){
for(j=0;j<P;j++){
* C**[j]=0;*
for(k=0;k<N;k++){
* C[j]=C[j]+(A**[k]B[k][j]);
}
}
}
cout<<"A matriz resultado da multiplição das matrizes A e B eh:\n";
for(i=0;i<M;i++){
for(j=0;j<P;j++){
* cout<<"C "<<i<<j<<": " << C**[j]<< endl;*
}
}
Pausa();
return 0; }
int Transposta (void)
{
cout <<"Programa para calcular a Transposta da matriz\n";
cout <<"Qual a dimensao da matriz ? ";
cout << " Sendo A[MxN]\n Entre com o valor de M: " ;cin >> M; cout<< "\n";
cout << "Entre com o valor de N: " ;cin >> N; cout<< "\n";
for(i=0;i<M;i++){
for(j=0;j<N;j++){
cout<<"Entre com os Valores A "<<i<<j<<": ";
* cin>>A**[j];*
}
}
for(i=0;i<M;i++){
for(j=0;j<N;j++){
Transp[j]=A[j];
}
}
cout<<"A matriz Transposta eh:\n";
for(i=0;i<N;i++){
for(j=0;j<M;j++){
* cout << "mTransp"<<i<<j<<": " << Transp**[j]<< endl;*
}
}
Pausa();
return 0;
}
int VetorXMatriz (void)
{
cout <<"Programa para Multiplicação de um Vetor por uma Matriz\n";
cout << " Sendo A[MxM] e v[M]\n Entre com o valor de M: " ;cin >> M; cout<< "\n";
for (i=0; i<M; i++){
*p** = 0;*
for (j=0; j<M; j++)
{
p += A [j] v[j];*
}
}
for (i=0; i<M; i++)
{
cout << "\n";
for (j=0; j<M; j++)
{
*cout << A** [j];*
}
cout << " ]";
*cout << " [ " << v** << " ]";*
}
for (i=0; i<M; i++)
*cout << "\n" << "O Resultado eh:\n" << p**;*
Pausa ();
return 0;
}
int Pausa (void)
{
char LETRA;
cout << "Tecle <C> + <ENTER> para voltar ao menu...";
do
{
LETRA = cin.get();
LETRA = toupper(LETRA);
}
while (LETRA!='C');
return 0;
cout << "\n" ;
cout << "Autor: Eu." << " " ;
cout << "\n" << "\n" ;
system("Pause");
return 0;
}
Discussão (1)
Carregando comentários...