A maior rede de estudos do Brasil

Grátis
95 pág.
06.Vetores

Pré-visualização | Página 5 de 6

tam = 5
i = 1 
j = 2
aux = 5.0
67
Exercício 2 – Teste de Mesa
void ordena(float vet[], int tam)
{
int i, j;
float aux;
for(i = 0; i <= (tam-2); i++)
{
for(j = tam-1; j > i; j--)
{
if (5.0 < 11.0 )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.022.011.05.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 1 
j = 2
aux = 5.0
Como valor é menor, efetua a troca 
como visto anteriormente.
68
Exercício 2 – Teste de Mesa
void ordena(float vet[], int tam)
{
int i, j;
float aux;
for(i = 0; i <= (tam-2); i++)
{
for(j = tam-1; j > i; j--)
{
if (vet[j] < vet[j-1] )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.022.011.05.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 1 
j = 1
aux = 5.0
Nesse ponto, como j = 1, saiu do laço 
interno e volta para o externo.
69
Exercício 2 – Teste de Mesa
void ordena(float vet[], int tam)
{
int i, j;
float aux;
for(i = 0; i <= (tam-2); i++)
{
for(j = tam-1; j > i; j--)
{
if (vet[j] < vet[j-1] )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.022.011.05.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 2 
j = 1
aux = 5.0
Como o i é incrementado, a posição 
1 do vetor não será mais modificada
70
Exercício 2 – Teste de Mesa
void ordena(float vet[], int tam)
{
int i, j;
float aux;
for(i = 0; i <= (tam-2); i++)
{
for(j = tam-1; j > i; j--)
{
if ( 44.0 < 22.0 )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.022.011.05.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 2 
j = 4
aux = 5.0
71
Exercício 2 – Teste de Mesa
void ordena(float vet[], int tam)
{
int i, j;
float aux;
for(i = 0; i <= (tam-2); i++)
{
for(j = tam-1; j > i; j--)
{
if ( 22.0 < 11.0 )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.022.011.05.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 2 
j = 3
aux = 5.0
72
Exercício 2 – Teste de Mesa
void ordena(float vet[], int tam)
{
int i, j;
float aux;
for(i = 0; i <= (tam-2); i++)
{
for(j = tam-1; j > i; j--)
{
if ( vet[j] < vet[j-1] )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.022.011.05.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 2 
j = 2
aux = 5.0
Como j = 2, saiu do laço interno e 
volta para o externo.
73
Exercício 2 – Teste de Mesa
void ordena(float vet[], int tam)
{
int i, j;
float aux;
for(i = 0; i <= (tam-2); i++)
{
for(j = tam-1; j > i; j--)
{
if ( vet[j] < vet[j-1] )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.022.011.05.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 3 
j = 2
aux = 5.0
Como o i é incrementado, a posição 
2 do vetor não será mais modificada
74
Exercício 2 – Teste de Mesa
void ordena(float vet[], int tam)
{
int i, j;
float aux;
for(i = 0; i <= (tam-2); i++)
{
for(j = tam-1; j > i; j--)
{
if ( 44.0 < 22.0 )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.022.011.05.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 3 
j = 4
aux = 5.0
75
Exercício 2 – Teste de Mesa
void ordena(float vet[], int tam)
{
int i, j;
float aux;
for(i = 0; i <= (tam-2); i++)
{
for(j = tam-1; j > i; j--)
{
if ( 44.0 < 22.0 )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.022.011.05.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 3 
j = 3
aux = 5.0
Como j = 3, saiu do laço interno e 
volta para o externo.
76
Exercício 2 – Teste de Mesa
void ordena(float vet[], int tam)
{
int i, j;
float aux;
for(i = 0; i <= (tam-2); i++)
{
for(j = tam-1; j > i; j--)
{
if ( 44.0 < 22.0 )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.022.011.05.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 4 
j = 3
aux = 5.0
Como o i é incrementado, e sai do laço 
externo, finalizando a procedimento.
77
#include <stdio.h>
void ordena(float vet[], int tam)
{
int i, j;
float aux;
for(i = 0; i <= (tam-2); i++)
{
for(j = tam-1; j > i; j--)
{
if ( vet[j] < vet[j-1] )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
int main()
{
int i;
float vet[5]={11.0,22.0,3.0,44.0,5.0}; 
ordena(vet, 5);
for (i=0; i < 5; i++)
printf("%.2f\n",vet[i]);
return 0;
}
Programa Completo
78
Exercícios
1) Quais são os elementos do vetor referenciados pelas 
expressões abaixo ?
vet
a) vet[3] b) vet[0] c) vet[13]
2) Qual é a diferença entre os números “3” das duas 
instruções abaixo ?
inteiro vet[3];
vet[3] ���� 5;
1 2 4 7 4 2 8 9 0 6 5 4 3
79
Exercícios
3) Dada um tabela contendo a idade de 10 
alunos, faça um algoritmo que calcule o número 
de alunos com idade superior a média.
4) Faça um algoritmo para ler e somar dois 
vetores de 10 elementos inteiros. Imprima ao 
final os valores dessa soma, elemento a 
elemento.
5) Refaça o exercício anterior criando um 
procedimento para efetuar a leitura dos vetores e 
um segundo procedimento que imprimirá a soma 
dos vetores.
80
Exercícios
6) Refaça o exercício anterior criando uma função 
que receba o vetor com a idade dos alunos e retorne 
a quantidade de alunos com idade superior a média.
7) Faça um algoritmo que leia, via teclado, 20 
valores do tipo inteiro e determine qual o menor 
valor existente no vetor e imprima valor e seu índice 
no vetor.
8) Refaça o exercício anterior criando um 
procedimento que receba como parâmetro o vetor e 
imprima o menor valor e seu índice no vetor.
81
Vetores Numéricos
DCC 120
82
� O vetor é uma estrutura: 
�Homogênea 
�Estática
� Todas as componentes são de um mesmo tipo 
e seu tamanho permanece o mesmo durante 
toda a execução do programa.
Vetores
83
� A sintaxe em C para declaração de variável do tipo 
vetor é a seguinte
tipo_primitivo identificador[qtde_elementos];
Exemplo:
// vetor com 5 (0 a 4) elementos do tipo int
int dados[5];
Vetores: Declaração
0 1 2 3 4
dados
5 elementos quaisquer do tipo int
Índices do vetor
84
� Cada um dos elementos de um vetor é referenciado individualmente por meio de 
um número inteiro entre colchetes após o nome do vetor.
Exemplos:
� X = valores[1]; //atribui a x o valor da posição 1 do vetor valores
� Y = valores[4]; //atribui a x o valor da posição 4 do vetor valores
� valores[0] = 3.2; // a posição zero do vetor valores recebe o valor 3.2
Vetores: Referência 
(Manipulação)
0 1 2 3 4
valores 3.6 2.7 7.94.2 1.2
85
É possível fornecer valores a cada elemento de 
um vetor no momento da sua declaração. 
Exemplo:
float valores[5] = {3.6, 2.7, 4.2, 7.9, 1.2};
float nros[5] = {0.0}; // como fica o vetor????
Vetores: Inicialização
0 1 2 3 4
valores 3.6 2.7 7.94.2 1.2
86
Observações:
� Os vetores NÃO são automaticamente inicializados!!! 
� Se houver menos valores do que o número de elementos do vetor , 
os elementos restantes são inicializados