Buscar

Lista_7_Gabarito

Prévia do material em texto

Professora ANITA LOPES
Lista 7 - cout, atribuição, cin, if...else if ..., switch(), for, while e do...while e matrizes bidimensionais.
	
	Orientações:
1- Todos os exercícios têm pelo menos uma matriz bidimensional,
2- O comando de entrada está presente em todos os exercícios.
3- Quando existir algum cálculo, declare a variável e armazene o resultado da operação.
4- A estrutura do for, ou a estrutura do while ou a estrutura do...while, está presente em todos os exercícios.
5 - Todos os exercícios terão comando de saída.
6- Todas as soluções na linguagem C++.
	Linguagem C++
	Solução do exercício 8
	
1) Entrar com valores reais para uma matriz M[4] [5] . Gerar e exibir a matriz DOBRO.
#include <iostream>
using namespace std;
int main()
{
 int L, c;
 float M[4][5], DOBRO[4][5];
 //entrada
 for(L=0; L<4; L++)
 {
 for(c=0; c<5; c++)
 {
 cout<<"\nElemento linha "<<L+1<<" coluna "<<c+1<<": ";
 cin>>M[L][c];
 //gera a matriz dobro . Poderia estar em outro for, mas assim eh melhor
 DOBRO[L][c]= M[L][c] * 2;
 }
 }
 //saida 
 cout<<"\n\nMatriz Dobro\n\n";
 for(L=0; L<4; L++)
 {
 for(c=0; c<5; c++)
 {
 cout<<DOBRO[L][c]<<"\t";
 }
 cout<<"\n";
 }
 cout<<"\n\n";
 system("pause");
}
2) Entrar com valores inteiros para uma matriz A[4] [4] e para uma matriz B[4] [4]. Gerar e exibir a matriz SOMA.
#include <iostream>
using namespace std;
int main()
{
 int L, c, A[4][4], B[4][4], SOMA[4][4];
 //entrada dos valores da Matriz A
 for(L=0; L<4; L++)
 {
 for(c=0; c<4; c++)
 {
 cout<<"\nElemento linha "<<L+1<<" coluna "<<c+1<<" da matriz A: ";
 cin>>A[L][c];
 }
 }
 //entrada dos valores da Matriz B
 for(L=0; L<4; L++)
 {
 for(c=0; c<4; c++)
 {
 cout<<"\nElemento linha "<<L+1<<" coluna "<<c+1<<" da matriz B: ";
 cin>>B[L][c];
 //gera a matriz SOMA . Poderia estar em outro for, mas assim eh melhor
 SOMA[L][c]= A[L][c] + B[L][c];
 }
 }
 //saida 
 cout<<"\n\nMatriz SOMA\n\n";
 for(L=0; L<4; L++)
 {
 for(c=0; c<4; c++)
 {
 cout<<SOMA[L][c]<<"\t";
 }
 cout<<"\n";
 }
 cout<<"\n\n";
 system("pause");
}
3) Entrar com valores para duas matrizes 5 x 5. Gerar e exibir a matriz diferença.
 #include <iostream>
using namespace std;
int main()
{
 int L, c, A[5][5], B[5][5], diferenca[5][5];
 //entrada dos valores da Matriz A
 for(L=0; L<5; L++)
 {
 for(c=0; c<5; c++)
 {
 cout<<"\nElemento linha "<<L+1<<" coluna "<<c+1<<" da matriz A: ";
 cin>>A[L][c];
 }
 }
 //entrada dos valores da Matriz B
 for(L=0; L<5; L++)
 {
 for(c=0; c<5; c++)
 {
 cout<<"\nElemento linha "<<L+1<<" coluna "<<c+1<<" da matriz B: ";
 cin>>B[L][c];
 //gera a matriz diferenca . Poderia estar em outro for, mas assim eh melhor
 diferenca[L][c]= A[L][c] + B[L][c];
 }
 }
 //saida 
 cout<<"\n\nMatriz Diferenca\n\n";
 for(L=0; L<5; L++)
 {
 for(c=0; c<5; c++)
 {
 cout<<diferenca[L][c]<<"\t";
 }
 cout<<"\n";
 }
 cout<<"\n\n";
 system("pause");
}
4) Ler valores inteiros para a matriz A[3][5] . Gerar e exibir a matriz SOMA_LINHA, onde cada elemento é a soma dos elementos de uma linha da matriz A. Faça o trecho que gera a matriz, separado dos trechos de entrada ou do trecho de saída.
#include <iostream>
using namespace std;
int main()
{
 int L, c, A[3][5], SOMA_LINHA[3];
 //entrada dos valores da Matriz A
 for(L=0; L<3; L++)
 { 
 SOMA_LINHA[L] = 0;//para não ter que criar outro for
 for(c=0; c<5; c++)
 {
 cout<<"\nElemento linha "<<L+1<<" coluna "<<c+1<<" da matriz A: ";
 cin>>A[L][c];
 }
 }
 //gera a matriz SOMA_LINHA
 for(L=0;L<3;L++) 
 for (c=0; c<5;c++) 
 SOMA_LINHA[L] += A[L][c]; 
 //saida 
 system("cls");
 cout<<"\n\nSoma Linha\n\n";
 for(L=0;L< 3;L++) 
 cout<<"\n"<<SOMA_LINHA[L]; 
 cout<<"\n\n";
 system("pause");
}
5) Ler valores inteiros para a matriz A[3][5]. Gerar e imprimir a matriz SOMA_COLUNA, onde cada elemento é a soma dos elementos de uma coluna da matriz A. Faça o trecho que gera a matriz, separado dos trechos de entrada ou do trecho de saída.
#include <iostream>
using namespace std;
int main()
{
 int L, c, A[3][5], SOMA_COLUNA[5];
 //entrada dos valores da Matriz A
 for(L=0; L<3; L++)
 { 
 for(c=0; c<5; c++)
 {
 cout<<"\nElemento linha "<<L+1<<" coluna "<<c+1<<" da matriz A: ";
 cin>>A[L][c];
 }
 }
 //inicializa SOMA_COLUNA
 for (c=0; c<5;c++) 
 SOMA_COLUNA[c] = 0; 
 //gera a matriz SOMA_COLUNA
 for (c=0; c<5;c++)
 for(L=0;L<3;L++) 
 SOMA_COLUNA[c] += A[L][c]; 
 //saida 
 system("cls");
 cout<<"\n\nSoma Coluna\n\n";
 for(c=0;c< 5;c++) 
 cout<<SOMA_COLUNA[c]<<"\t"; 
 cout<<"\n\n";
 system("pause");
}
6) Fazer um programa leia valores para uma matriz M10 x 10 e escreva-a na ordem inversa que foi lida.
 Se a matriz fosse M3 x 3 e tivesse estes elementos:
 
ú
ú
ú
û
ù
ê
ê
ê
ë
é
9
8
7
6
5
4
3
2
1
 sua impressão seria: 
ú
ú
ú
û
ù
ê
ê
ê
ë
é
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
int main()
{
 int L,C;
 float mat[10][10];
 //Entrada
 for(L=0; L < 10; L++)
 {
 for(C=0; C < 10; C++)
 {
 cout<<"\n Linha "<<L+1<<" coluna "<<C+1<<": ";
 cin>>mat[L][C];
 }
 } 
 //Saida
 system("cls");//system("clear"); LINUX
 cout<<"\nMatriz Exibida na orem inversa de leitura\n";
 for(L=9; L >=0; L--)
 {
 for(C=9; C >=0 ; C--)
 {
 cout<<mat[L][C]<<"\t";
 }
 cout<<"\n\n"; 
 }
 cout<<"\n\n";
 system("pause");
} 
7) Faça um programa que leia valores reais para uma matriz 5 x 5 e exiba todos os elementos exceto os elementos da diagonal principal.
#include <iostream>
using namespace std;
int main()
{
 int L,C;
 float mat[5][5];
 //Entrada
 for(L=0; L < 5; L++)
 {
 for(C=0; C < 5; C++)
 {
 cout<<"\n Linha "<<L+1<<" coluna "<<C+1<<": ";
 cin>>mat[L][C];
 }
 } 
 //Saida
 system("cls");//system("clear"); LINUX
 cout<<"\nTodos elementos menos os da DP\n";
 for(L=0; L < 5; L++)
 {
 for(C=0; C < 5; C++)
 {
 if(L != C)
 cout<<mat[L][C]<<"\t";
 else cout<<"\t";
 }
 cout<<"\n\n";
 }
 cout<<"\n\n";
 system("pause");
} 
8) Faça um programa que leia valores reais para uma matriz 4 x 4 e exiba os elementos que se encontram acima da diagonal principal e a soma deles.
#include <iostream>
using namespace std;
int main()
{
 int L,C;
 float mat[4][4], soma=0;
 //Entrada
 for(L=0; L < 4; L++)
 {
 for(C=0; C < 4; C++)
 {
 cout<<"\n Linha "<<L+1<<" coluna "<<C+1<<": ";
 cin>>mat[L][C];
 }
 } 
 //Saida
 system("cls");//system("clear"); LINUX
 cout<<"\nTodos elementos acima da DP\n";
 for(L=0; L < 4; L++)
 {
 for(C=0; C < 4; C++)
 {
 if(L < C)
 {
 soma += mat[L][C];
 cout<<mat[L][C]<<"\t";
 } 
 else cout<<"\t";
 }
 cout<<"\n\n";
 }
 cout<<"\nSoma dos elementos: "<<soma<<"\n";
 system("pause");
} 
9) Faça um programa que leia os elementos de uma matriz 6 x 6 e exiba os elementos que se encontram acima da diagonal principal e o produto deles.
#include <iostream>
using namespace std;
int main()
{
 int L,C;
 float mat[6][6], produto=1;
 //Entrada
 for(L=0; L < 6; L++)
 {
 for(C=0; C < 6; C++)
 {
 cout<<"\n Linha "<<L+1<<" coluna "<<C+1<<": ";
 cin>>mat[L][C];}
 } 
 //Saida
 system("cls");//system("clear"); LINUX
 cout<<"\nTodos elementos acima da DP\n";
 for(L=0; L < 6; L++)
 {
 for(C=0; C < 6; C++)
 {
 if(L < C)
 {
 produto *= mat[L][C];
 cout<<mat[L][C]<<"\t";
 } 
 else cout<<"\t";
 }
 cout<<"\n\n";
 }
 cout<<"\nProduto dos elementos: "<<produto<<"\n";
 system("pause");
} 
9) Faça um programa que leia valores inteiros para uma matriz M inteira 4x4 e exiba os elementos que estão em linhas pares e colunas ímpares.
#include <iostream>
using namespace std;
int main()
{
 int L,C, mat[4][4];
 //Entrada
 for(L=0; L < 4; L++)
 {
 for(C=0; C < 4; C++)
 {
 cout<<"\n Linha "<<L+1<<" coluna "<<C+1<<": ";
 cin>>mat[L][C];
 }
 } 
 //Saida
 system("cls");//system("clear"); LINUX
 cout<<"\nElementos em linhas pares e colunas impares\n";
 for(L=0; L < 4; L++)
 {
 for(C=0; C < 4; C++)
 {
 if(L % 2 ==1 && C % 2 == 0)
 {
 cout<<mat[L][C]<<"\t";
 } 
 else cout<<"\t";
 }
 cout<<"\n\n";
 }
 cout<<"\n\n";
 system("pause");
}
10) Num torneio de futsal, de um turno, inscreveram-se 12 times. Armazenar os nomes dos times e exibir a tabela de jogos.
Solução_1
#include <iostream>
#define TAM 3
using namespace std;
int main()
{
 int L, c;
 char times[TAM][21];
 //entrada dos nomes dos times
 for(L=0; L<TAM; L++)
 { 
 cout<<"\nNome do "<<L+1<<"o time: ";
 cin.getline(times[L], 31);
 }
 // saida
 system("cls"); //nao eh obrigatorio
 cout<<"\n\nTabela de Jogos \n\n";
 for(L=0; L<TAM; L++)
 for(c=0; c<TAM; c++)
 if(L < c) // pode ser if(L > c) tambem
 cout<<"\n"<<times[L]<<" x "<<times[c];
 cout<<"\n\n";
 system("pause");
}
Solução_2
#include <iostream>
#define TAM 3
using namespace std;
int main()
{
 int L, c;
 char times[TAM][21];
 //entrada dos nomes dos times
 for(L=0; L<TAM; L++)
 { 
 cout<<"\nNome do "<<L+1<<"o time: ";
 cin.getline(times[L], 31);
 }
 // saida
 system("cls"); //nao eh obrigatorio
 cout<<"\n\nTabela de Jogos \n\n";
 for(L=0; L<TAM-1; L++)
 for(c=L+1; c<TAM; c++)
 cout<<"\n"<<times[L]<<" x "<<times[c];
 cout<<"\n\n";
 system("pause");
}
_1067872412.unknown
_1067872413.unknown

Continue navegando