O documento contém 12 exercícios sobre vetores e matrizes em C++. Os exercícios abordam tópicos como preenchimento e leitura de vetores e matrizes, busca e soma de valores, troca de posições e inversão.
1. Instituto Federal de Educação, Ciência e Tecnologia da Bahia – Campus Irecê
Disciplina: Algoritmos II
Prof
o
Leandro Souza
NOTA_____
EXERCÍCIOS – VETOR E MATRIZ
1. Leia um vetor de 12 posições e em seguida ler também dois valores X e Y quaisquer
correspondentes a duas posições no vetor. Ao final seu programa deverá escrever a soma
dos valores encontrados nas respectivas posições X e Y.
#include <stdio.h>
#include <conio.c>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <time.h>
using namespace std;
main (){
int vetor12[12];
int valor1=0,valor2=0,somaValor=0;
clrscr();
cout << "O Vetor[12] foi preenchido RANDOMICAMENTE" << endl << endl;
for (int i=0;i<12;i++)
{
vetor12[i] = rand()%100;
cout << "Vetor12 " << i << " = " << vetor12[i] << endl;
}
cout << endl << endl;
gotoxy(20,9);cout << "Somar 2 valores de 2 indices: " << endl << endl;
gotoxy(20,10);cout << "Qual indice 1? ";
cin >> valor1;
gotoxy(20,11);cout << "Qual indice 2? ";
cin >> valor2;
somaValor = vetor12[valor1] + vetor12[valor2];
cout << endl << endl << endl;
gotoxy(20,12);cout << "A soma de " << vetor12[valor1] << " + " << vetor12[valor2]
<< " = " << somaValor;
getch();
}
------------------------------------------------------------------------------------------------------------------------
2. Declare um vetor de 10 posições e o preencha com os 10 primeiros números impares e o
escreva.
2. #include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>
using namespace std;
main (){
int vetor10[10]={1,3,5,7,9,11,13,15,17,19};
cout << "O Vetor[10] com numeros impares" << endl << endl;
for (int i=0;i<10;i++)
{
cout << "Vetor10 " << i << " = " << vetor10[i] << endl;
}
getch();
}
------------------------------------------------------------------------------------------------------------------------
3. Leia um vetor de 16 posições e troque os 8 primeiros valores pelos 8 últimos e
vice-e-versa. Escreva ao final o vetor obtido.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>
using namespace std;
main (){
int vetor16[16] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int vetor8A[8];
cout << endl << endl << endl;
cout << "CONTEUDO DO VETOR" << endl;
for (int i=0;i<16;i++){
cout << vetor16[i] << " ";
}
for(int i = 0; i < 8; ++i)
{
vetor8A[i] = vetor16[i+8];
vetor16[i+8] = vetor16[i];
vetor16[i] = vetor8A[i];
}
cout << endl << endl << endl;
cout << "Vetor Invertido: " << endl;
for(int i = 0;i<16;++i)
{
cout << vetor16[i] << " ";
}
getch();
3. }
-------------------------------------------------------------------------------------------------------------------------------
4. Leia um vetor de 20 posições e em seguida um valor X qualquer. Seu programa devera
fazer uma busca do valor de X no vetor lido e informar a posição em que foi encontrado
ou se não foi encontrado.
#include <stdio.h>
#include <conio.c>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <time.h>
using namespace std;
main (){
int vetor20[20];
int valor1;
clrscr();
cout << "O Vetor[20] foi preenchido RANDOMICAMENTE" << endl << endl;
for (int i=0;i<20;i++)
{
vetor20[i] = rand()%100;
cout << "Id: " << i << " Numero: " << vetor20[i] << endl;
}
cout << endl << endl;
gotoxy(35,15);cout << "Qual o valor a pesquisar ";
cin >> valor1;
for (int i=0;i<20;i++)
{
if(vetor20[i] == valor1)
{
cout << "Id " << i << "t -> Tem o valor pesquisado: " << endl;
}
else
{
cout << "Id " << i << "t -> Valor NAO encontrado " << endl;
}
}
getch();
}
-------------------------------------------------------------------------------------------------------------------------------
5. Leia um vetor de 40 posições. Contar e escrever quantos valores pares ele possui.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>
4. using namespace std;
main (){
int vetor40[40];
int contaPares=0;
// preenchendo e exibindo o vetor
cout << "VETOR DE 40 POSICOES " << endl;
for (int i=0;i<40;i++){
vetor40[i] = rand()%100;
cout << vetor40[i] << " " ;
if(vetor40[i] %2 == 0)
contaPares++;
}
cout << endl << endl;
cout << "Tem " << contaPares << " PARES no Vetor" << endl;
getch();
}
-------------------------------------------------------------------------------------------------------------------------------
6. Leia uma matriz 10 x 10 e escreva a localização (linha e a coluna) do maior valor.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>
using namespace std;
/*
Leia uma matriz 10 x 10 e escreva a localização
(linha e a coluna) do maior valor.
*/
main (){
int matriz10x10[10][10];
int maiorValor=0,i,j;
// digitando a matriz
for (i=0;i<10;i++){
for (j=0;j<10;j++){
cout << i << " e " << j << " ";
cin >> matriz10x10[i][j];
if (matriz10x10[i][j] > maiorValor)
{
maiorValor = matriz10x10[i][j];
}
}
}
cout << endl;
// exibindo o resultado na tela
5. cout << "Matriz 10 x 10" << endl;
for (i=0;i<10;i++){
for ( j=0;j<10;j++){
if(maiorValor == matriz10x10[i][j])
{
cout << "Maior valor: " << maiorValor << endl;
cout << "Na linha: " << i << " e na Coluna: " << j << " " ;
}
cout << endl;
}
}
getch();
}
-------------------------------------------------------------------------------------------------------------------------------
7. Declare uma matriz 5 x 5. Preencha com 1 a diagonal principal e com 0 os demais
elementos. Escreva ao final a matriz obtida.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>
using namespace std;
main (){
int matriz5x5[5][5],i,j;
// digitando a matriz
for (i=0;i<5;i++)
{
for (j=0;j<5;j++)
{
if(i == j)
{
matriz5x5[i][j]=1;
}
else
{
matriz5x5[i][j]=0;
}
}
}
for (i=0;i<5;i++)
{
for (j=0;j<5;j++)
{
cout << matriz5x5[i][j] << " ";
}
cout << endl;
}
getch();
}
-------------------------------------------------------------------------------------------------------------------------------
6. 8. Leia uma matriz 4 x 4 e troque os valores da 1ª.linha pelos da 4ª.coluna, vice-e-versa.
Escrever ao final a matriz obtida
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>
using namespace std;
main (){
int matriz4x4[4][4];
int matrizAux,i,j;
cout << " DIGITANDO " << endl;
for (i=0;i<4;i++){
for (j=0;j<4;j++){
cout << "Valor " << i << " " << " " << j << " ";
cin >> matriz4x4[i][j];
}
}
// exibindo a matriz
cout << endl << endl;
cout << " MATRIZ 4X4 " << endl;
for (i=0;i<4;i++){
for (j=0;j<4;j++){
cout << matriz4x4[i][j] << " ";
}
cout << endl;
}
// trocando a linha 1 com a coluna 4
for (i=0;i<4;i++){
for (j=0;j<4;j++){
if (i == 0)
matrizAux = matriz4x4[i][j];
matriz4x4[i][j] = matriz4x4[i][3];
matriz4x4[i][3] = matrizAux;
}
cout << endl;
}
cout << endl;
cout << " MATRIZ TROCADA " << endl;
for (i=0;i<4;i++){
for (j=0;j<4;j++){
cout << matriz4x4[i][j] << " ";
}
cout << endl;
}
getch();
}
-------------------------------------------------------------------------------------------------------------------------------
9. Leia uma matriz 8 x 8 e a transforme numa matriz triangular inferior , atribuindo zero a
todos os elementos acima da diagonal principal, escrevendo-a ao final.
7. #include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>
using namespace std;
main (){
int matriz8x8[8][8],i,j;
for (i=0;i<8;i++){
for (j=0;j<8;j++){
matriz8x8[i][j] = 1+rand()%6;
}
}
cout << " MINHA MATRIZ " << endl;
for (i=0;i<8;i++){
for (j=0;j<8;j++){
cout << matriz8x8[i][j] << " ";
}
cout << endl;
}
// inserindo zero na diagonal superior
// a coluna j é o valor de i+1
// linha 0+1, linha 0+2, linha 0+3, ... linha 0+7
for (i=0;i<8;i++){
for (j=(i+1); j<8; j++){
matriz8x8[i][j] = 0;
}
}
cout << " MATRIZ SUPERIOR " << endl;
for (i=0;i<8;i++){
for (j=0;j<8;j++){
cout << matriz8x8[i][j] << " ";
}
cout << endl;
}
getch();
}:
-------------------------------------------------------------------------------------------------------------------------------
10. Leia uma matriz 5 x 5 e faça uma troca entre as diagonais superior e inferior. Escreva-a ao
final.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>
using namespace std;
main( ){
int matriz5x5[5][5];
int matriz2[5][5];
9. -------------------------------------------------------------------------------------------------------------------------------
11. Considere uma matriz de distância entre cidades 6 x 6:
1.(Irecê) 2.(Uibaí) 3.(Salvador) 4.(Lapão) 5.(Canarana) 6.(Alagoinhas)
1.(Irecê) 63 210 190 190
2.(Uibaí) 63 160 150 95
3.(Salvador) 210 160 10
4.(Lapão) 190 150 10
5.(Canarana) 95 80
6.(Alagoinhas) 190 80
Considere também um vetor de viagem indo de Salvador até Irecê pela seguinte
rota:
Indice 1 2 3 4 5 6
Cidade 3 4 2 5 6 1
Faça um programa que leia a matriz e o vetor e calcule a distancia percorrida durante a
viagem.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>
using namespace std;
int
distancias6x6[6][6]={0,63,210,190,0,190,63,0,160,150,95,0,210,160,0,10,0,0,190,150,10,0,0,0,0,95,0,0,0,80,190,0,0
,0,80,0};
int cidades[6]={3,4,2,5,6,1};
int contaDistancia=0,somaValores=0,origem=0,destino=0;
int i,j;
main (){
// exibe tabela DISTANCIA
cout << endl;
cout << "Tabela das Distancias" << endl;
for (i=0;i<6;i++){
for (j=0;j<6;j++){
cout << right << distancias6x6[i][j] << "t";
}
cout << endl;
}
cout << endl;
// exibe tabelas das CIDADES
cout << "Tabela das cidades" << endl;
for (i=0;i<6;i++){
cout << cidades[i] << "t";
}
// contando a distância
cout << endl;
for (i=0;i<6;i++){
10. if (cidades[i] == distancias6x6[i][j]);
somaValores = somaValores + distancias6x6[i][j];
}
cout << "nDistancia da Viagem: " << somaValores;
getch();
}
-------------------------------------------------------------------------------------------------------------------------------
12. Uma escola municipal de Irecê deseja fazer um programa que armazene uma lista de
alunos e sua média final. Faça um programa que armazene uma lista de nomes de 10
alunos e suas respectivas médias. Ao final o programa deverá informar ao usuário a lista
de nome, as notas. Além destas informações, o sistema deverá informar se o aluno está
aprovado (média maior ou igual a 6,0) recuperação (média entre 4,0 e 6,0) e reprovado
(media menor que 4,0).
Exemplo:
Nome Média Situação
Carlos Souza 5,0 Recuperação
José Nascimento 3,0 Reprovado
Pedro Luís 7,0 Aprovado
Maria Silva 8,9 Aprovado
Vania Oliveira 2,5 Reprovado
Leonardo Cavalcante 6,0 Aprovado
..... ........... ..........
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>
using namespace std;
main (){
string nomes[5];
float medias[5];
string resultado[5];
int i,j;
for (i=0;i<10;i++)
{
cout << "Aluno: " << i << " : ";
cin >>(nomes[i]);
cout << "Media: " << i << " : ";
cin >> (medias[i]);
if (medias[i] >= 6)
{
resultado[i]="APROVADO";
}
11. if (medias[i] >=4 && medias[i] < 6)
{
resultado[i]="RECUPERACAO";
}
if (medias[i] < 4)
{
resultado[i]="REPROVADO";
}
}
cout << "NOME tt MEDIA t RESULTADO" << endl;
for (i=0;i<5;i++){
cout << nomes[i] << "t t" << medias[i] << "t" << resultado[i] << endl;
}
getch();
}
-------------------------------------------------------------------------------------------------------------------------------
13. Escreva um que leia um vetor G de 20 elementos caracter que representa o gabarito de
uma prova. A seguir, para cada um dos 10 alunos da turma, leia o vetor de respostas (R)
do aluno e conte o número de acertos. Mostre o nº de acertos do aluno e uma mensagem
APROVADO, se a nota for maior ou igual a 6; e mostre uma mensagem de
REPROVADO, caso contrário.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>
using namespace std;
main (){ //
// char vetorG[20] = {'0','1','2','3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9'};
char vetorG[20] = {'a','c','d','b','e','d','a','c','d','b','a','e','c','c','d','e','a','a','b','b'};
int i;
char nomes[10];
char resposta[20];
int contaAcerto=0;
for (i=0;i<10;i++){
cout << "Aluno: ";
cin >> nomes;
for (int i=0;i<20;i++)
{
cout << "Questao: " << i << " ";
cin >> resposta[i];
if(resposta[i] == vetorG[i])
{
contaAcerto++;
} // fim do if
} // fim do for interno
cout << "Acertou: " << contaAcerto << endl;
12. if (contaAcerto >= 6)
{
cout << "APROVADO" << endl;
}else {
cout << "REPROVADO" << endl;
}
} // fim do for externo
getch();
} // fim do main()
-------------------------------------------------------------------------------------------------------------------------------
14. Faça um algoritmo que gere a seguinte matriz:
1 3 3 3 3 2
3 1 3 3 2 3
3 3 1 2 3 3
3 3 2 1 3 3
3 2 3 3 1 3
2 3 3 3 3 1
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>
using namespace std;
main (){
int matrizFeita[6][6] = {1,3,3,3,3,2,3,1,3,3,2,3,3,3,1,2,3,3,3,3,2,1,3,3,3,2,3,3,1,3,2,3,3,3,3,1};
int x=10,y=10;
for (int i=0;i<6;i++){
for (int j=0;j<6;j++){
cout << matrizFeita[i][j];
}
cout << endl;
}
getch();
}
-------------------------------------------------------------------------------------------------------------------------------:
OBSERVAÇÃO:
• A lista é INDIVIDUAL.
• A lista deverá ser entregue através do ambiente!
• NÃO será aceita lista fora do prazo!
• Caso seja entregue programas iguais ou copiados da internet a questão será anulada.
• Lembre, você poderá ser um dos convidados a descrever seu código durante a primeira aula após a entrega da lista.
DATA LIMITE DE ENTREGA:15/11/12 23h55min