exercicios vetor e matriz

12
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.

Upload: adao-braga

Post on 30-Oct-2014

1.432 views

Category:

Documents


14 download

TRANSCRIPT

Page 1: Exercicios Vetor e Matriz

Instituto Federal de Educação, Ciência e Tecnologia da Bahia – Campus Irecê

Disciplina: Algoritmos II

Profo 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.

Page 2: Exercicios Vetor e Matriz

#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();

Page 3: Exercicios Vetor e Matriz

}

-------------------------------------------------------------------------------------------------------------------------------

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>

Page 4: Exercicios Vetor e Matriz

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

Page 5: Exercicios Vetor e Matriz

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(); }

-------------------------------------------------------------------------------------------------------------------------------

Page 6: Exercicios Vetor e Matriz

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.

Page 7: Exercicios Vetor e Matriz

#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];

Page 8: Exercicios Vetor e Matriz

int vetDiag1[5]; int vetDiag2[5]={0}; int i, j; // criando a matriz randomicamente cout << "Matriz inicial " << endl; for(i=0;i<5;i++){ for(j=0;j<5;j++){ matriz5x5[i][j]= i+j; cout << matriz5x5[i][j] << " "; } cout << endl; } // primeira diagonal cout << endl << endl; cout << "Diagonal 1" << endl << endl; for(i=0;i<5;i++){ for(j=0;j<5;j++){ if(i==j){ vetDiag1[i] = matriz5x5[i][j]; cout << vetDiag1[i] << " "; } } } //// segunda diagonal cout << endl << endl; cout << "Diagonal 2" << endl << endl; for(i=0;i<5;i++){ for(j=0;j<5;j++){ if(i+j==5){ vetDiag2[i] = matriz5x5[i][j]; cout << vetDiag2[i] << " "; } } } // trocando as diagonais for(i=0;i<5;i++){ for(j=0;j<5;j++){ if(i==j){ matriz5x5[i][j]=vetDiag2[i]; } if(i+j==5){ matriz5x5[i][j]=vetDiag1[i]; } } } // exibindo a matriz cout << endl << endl; cout << " Diagonais trocadas " << endl << endl; for(i=0;i<5;i++){ for(j=0;j<5;j++){ cout << matriz5x5[i][j] << " "; } cout << endl; } getch(); }

Page 9: Exercicios Vetor e Matriz

-------------------------------------------------------------------------------------------------------------------------------

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++){

Page 10: Exercicios Vetor e Matriz

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"; }

Page 11: Exercicios Vetor e Matriz

if (medias[i] >=4 && medias[i] < 6) { resultado[i]="RECUPERACAO"; } if (medias[i] < 4) { resultado[i]="REPROVADO"; } } cout << "NOME \t\t 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;

Page 12: Exercicios Vetor e Matriz

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