A maior rede de estudos do Brasil

Grátis
95 pág.
Aula 06 - Estruturas de dados homogêneas I - Vetores Numéricos

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

vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.05.022.011.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 1 
j = 0
aux = 3.0
Como o i é incrementado, a posição 
0 do vetor não será mais modificada
60
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.05.022.011.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 1 
j = 4
aux = 3.0
61
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 < 5.0 )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.05.022.011.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 1 
j = 4
aux = 3.0
62
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.05.022.011.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 1 
j = 3
aux = 3.0
63
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 < 22.0 )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.05.022.011.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 1 
j = 3
aux = 3.0
64
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 < 22.0 )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}
44.022.05.011.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 1 
j = 3
aux = 5.0
Como valor é menor, efetua a troca 
como visto anteriormente.
65
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.05.011.03.0
0 1 2 3 4 
Variáveis:
tam = 5
i = 1 
j = 2
aux = 5.0
66
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.05.011.03.0
0 1 2 3 4 
Variáveis:
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.
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