Vous êtes sur la page 1sur 12

Instituto Federal de Educao, Cincia e Tecnologia da Bahia Campus Irec

Disciplina: Algoritmos II
o
Prof Leandro Souza

NOTA_____

EXERCCIOS VETOR E MATRIZ


1.

Leia um vetor de 12 posies e em seguida ler tambm dois valores X e Y quaisquer


correspondentes a duas posies no vetor. Ao final seu programa dever escrever a soma
dos valores encontrados nas respectivas posies 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 posies e o preencha com os 10 primeiros nmeros impares e o

escreva.

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

------------------------------------------------------------------------------------------------------------------------------4. Leia um vetor de 20 posies e em seguida um valor X qualquer. Seu programa devera

fazer uma busca do valor de X no vetor lido e informar a posio em que foi encontrado
ou se no 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 posies. 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>

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 localizao (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 localizao
(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

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

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

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.

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

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

------------------------------------------------------------------------------------------------------------------------------11. Considere uma matriz de distncia entre cidades 6 x 6:


1.(Irec)
1.(Irec)
2.(Uiba)
3.(Salvador)
4.(Lapo)
5.(Canarana)
6.(Alagoinhas)

63
210
190

2.(Uiba)
63
160
150
95

3.(Salvador)
210
160

4.(Lapo)
190
150
10

5.(Canarana) 6.(Alagoinhas)
190
95

10
80

190

80

Considere tambm um vetor de viagem indo de Salvador at Irec pela seguinte


rota:
Indice
Cidade

1
3

2
4

3
2

4
5

5
6

6
1

Faa 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 distncia
cout << endl;
for (i=0;i<6;i++){

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 mdia final. Faa um programa que armazene uma lista de nomes de 10
alunos e suas respectivas mdias. Ao final o programa dever informar ao usurio a lista
de nome, as notas. Alm destas informaes, o sistema dever informar se o aluno est
aprovado (mdia maior ou igual a 6,0) recuperao (mdia entre 4,0 e 6,0) e reprovado
(media menor que 4,0).
Exemplo:
Nome
Carlos Souza
Jos Nascimento
Pedro Lus
Maria Silva
Vania Oliveira
Leonardo Cavalcante
.....

Mdia
5,0
3,0
7,0
8,9
2,5
6,0
...........

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

Situao
Recuperao
Reprovado
Aprovado
Aprovado
Reprovado
Aprovado
..........

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 nmero 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 contrrio.
#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;

if (contaAcerto >= 6)
{
cout << "APROVADO" << endl;
}else {
cout << "REPROVADO" << endl;
}
} // fim do for externo
getch();
} // fim do main()

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

14. Faa um algoritmo que gere a seguinte matriz:


133332
313323
331233
332133
323313
233331
#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();
}

-------------------------------------------------------------------------------------------------------------------------------:
OBSERVAO:
A lista INDIVIDUAL.
A lista dever ser entregue atravs do ambiente!
NO ser aceita lista fora do prazo!
Caso seja entregue programas iguais ou copiados da internet a questo ser anulada.
Lembre, voc poder ser um dos convidados a descrever seu cdigo durante a primeira aula aps a entrega da lista.
DATA LIMITE DE ENTREGA:15/11/12 23h55min

Vous aimerez peut-être aussi