Está en la página 1de 95

Vetores Numricos

DCC 119 Algoritmos


Estruturas de Dados

 Em diversas situaes os tipos bsicos de dados


(inteiro, real, caracter, ....) no so suficientes para
representar a informao que se deseja armazenar.
 Exemplo, uma palavra: AULA.
 Valor de 50 produtos em uma loja

 Existe a possibilidade de construo de novos tipos


de dados a partir da composio (ou abstrao) de
tipos de dados primitivos.

 Esses novos tipos tm um formato denominado


ESTRUTURA DE DADOS, que define como os tipos
primitivos esto organizados.

2
Motivao

 Problema 1: Como poderamos fazer um


algoritmo para ler 50 notas de uma turma e
calcular sua mdia?
principal
{
inteiro i; //varivel de controle
real nota, media, soma = 0;
para (i  1; i <= N; ii+1) faa
{
imprima("Digite uma nota:");
leia(nota); Problema: Qual o
soma  soma + nota; valor da 1a ou 5a
} ou 40a nota?
media  soma/N;
imprima("Media = ", media);
}

3
Motivao

 Problema 2: Fazer um programa para ler 50 notas de uma


turma e calcular a sua mdia. Imprimir as notas lidas juntamente
com a mdia da turma como na tabela.

Nota Media
 Como faz-lo? No exemplo
8.0 7.75 anterior, uma nota
4.6 7.75 sobreposta por outra em
2.3 7.75 cada iterao do para.
3.7 7.75  A soluo armazenar
7.8 7.75 todas as 50 notas lidas...
9.0 7.75
Mas como?!?
.... ...

4
Variveis Compostas Homogneas

 Quando uma determinada estrutura de dados


for composta de variveis com o mesmo tipo
primitivo, temos um conjunto homogneo de
dados.

 Essas variveis so chamadas de variveis


compostas homogneas.

5
Variveis Compostas Homogneas
Unidimensionais (Vetores)
 As variveis compostas homogneas
unidimensionais so utilizadas para
representar arranjos unidimensionais de
elementos de um mesmo tipo, em outras
palavras, so utilizadas para representar
vetores.

6
Vetores: Declarao

 A sintaxe para declarao de uma varivel deste tipo, tanto na


pseudolinguagem quanto em C a seguinte:
tipo identificador [qtd de elementos];

Exemplo:
// vetor com 5 elementos do tipo inteiro
inteiro dados[5] ; // em C seria ficaria int dados[5];

ndices do vetor
0 1 2 3 4
dados
5 elementos quaisquer do tipo inteiro

7
Vetores: Referncia (Manipulao)
 Cada um dos elementos de um vetor referenciado individualmente por meio de
um nmero inteiro entre colchetes aps o nome do vetor.
0 1 2 3 4

Exemplos: dados 3 2 4 7 1

 Considerando o vetor dados, quais valores sero atribudos a X e Y nos exemplos


abaixo???
PseudoLinguagem Linguagem c
X  dados[1]; X = dados[1];
Y  dados[4]; Y = dados[4];
A instruo abaixo atribui um valor ao elemento 0 (zero) do vetor dados:

PseudoLinguagem Linguagem c
dados[0]  6; ou dados[0] = 6; ou
I  0; I = 0;
dados[i]  6; dados[i] = 6; 8
Vetores: Exemplos
O programa a seguir, usa o comando para para inicializar com zeros
os elementos de um array inteiro n de 10 elementos e o imprime sob
a forma de uma tabela.

principal
Elemento Valor
{
inteiro n[10], i; 0 0
1 0
0; i <= 9; i
para (i i+1) faa 2 0
{ 3 0
n[i]  0; 4 0
} 5 0
6 0
imprima("Elemento Valor");
7 0
0; i <= 9; i
para (i i+1) faa
8 0
{
imprima(i," ", n[i]); 9 0
}
}

9
Vetores: Exemplos
Exemplo anterior em C:

//inicializando um vetor (array)


#include <stdio.h> Elemento Valor
0 0
int main()
1 0
{
int n[10], i; 2 0
3 0
for (i=0; i<= 9; i++) 4 0
{ 5 0
n[i] = 0; 6 0
} 7 0
8 0
printf("%s%13s\n","Elemento", "Valor");
for (i=0; i<= 9; i++) 9 0
{
printf("%7d%13d\n",i,n[i]);
}
return 0;
}
10
Vetores: Exemplos
O programa abaixo inicializa os dez elementos de um array s com os
valores: 2, 4, 6, ..., 20 e imprime o array em um formato de tabela.

principal
{
constante inteiro TAMANHO  10;
Elemento Valor
inteiro s[TAMANHO], j;
0 2
1 4
para (j  0; j <= TAMANHO - 1; j  j+1) faa
2 6
{
3 8
s[j]  2 + 2*j;
4 10
}
5 12
imprima("Elemento Valor");
6 14
para (j  0; j <= TAMANHO - 1; j  j+1) faa
{
7 16
imprima (j, " ",s[j]);
8 18
9 20
}
}

11
Vetores: Exemplos
Exemplo anterior em C:
#include <stdio.h> Elemento Valor
0 2
#define TAMANHO 10 1 4
int main() 2 6
{ 3 8
int s[TAMANHO], j; 4 10
for (j=0; j<= TAMANHO - 1; j++) 5 12
{ 6 14
s[j] = 2 + 2*j;
7 16
8 18
}
9 20
printf("%s%13s\n","Elemento", "Valor");
for (j=0; j<= TAMANHO - 1; j++)
{
printf("%8d%13d\n",j,s[j]);
}
return 0;
}
12
Vetores e Subrotinas

 Em pseudolinguagem, a passagem de parmetros


em procedimentos e funes feita por cpia. Para
realizar a passagem por referncia, utilize a palavra
ref antes do tipo de vetor.

 Em C, vetores so passados sempre por referncia.

 Tanto em C, quanto em pseudolinguagem, o


tamanho do vetor pode ser omitido.

13
Vetores e Subrotinas
No exemplo abaixo apresentado um procedimento imprimeVetor
que imprime um vetor de tamanho tam.
imprimeVetor (inteiro vet[], inteiro tam)
{
inteiro i;
para (i  0; i <= tam - 1; i  i+1) faa
{
imprima (vet[i]);
}
}

principal
{
constante inteiro TAMANHO  10;
inteiro s[TAMANHO], j;
para (j  0; j <= TAMANHO - 1; j  j+1)
{
imprima ("Informe o valor do vetor na posio ", j);
leia (s[j]);
}
imprimeVetor(s, TAMANHO);
}
14
Vetores e Subrotinas
Exemplo anterior em C:
#include <stdio.h>
#define TAMANHO 10
void imprimeVetor (int vet[], int tam)
{
int i;
for (i = 0; i <= tam - 1; i++)
{
printf("%d\n", vet[i]);
}
}

int main()
{
int s[TAMANHO], i;
for (i = 0; i <= TAMANHO- 1; i++)
{
printf ("Informe o valor do vetor na posio %d: ", i);
scanf (%d", &s[i]);
}
imprimeVetor(s, TAMANHO);
return 0;
}
15
Exerccio Resolvido 1

 Vamos ver agora o teste de mesa para o


seguinte problema:
 Criar uma funo que receba um vetor de
nmeros reais e seu tamanho e retorne o ndice
do maior valor contido no vetor. Se houver mais
de uma ocorrncia do maior valor, retornar o
ndice do primeiro. Faa um programa principal
para testar a funo.

16
Exerccio 1 - Soluo Proposta
inteiro encontraMaior (real vet[], inteiro tam)
{
inteiro indice, i;
real maior  vet[0];
indice  0;
para (i  1; i < tam; i  i+1) faa
{
se( vet[i] > maior)
{
maior  vet[i];
indice  i;
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
17
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{
inteiro indice, i;
real maior  vet[0];
indice  0;
para (i  1; i < tam; i  i+1) faa
{
se( vet[i] > maior)
{
maior  vet[i];
indice  i;
}
}
retorne indice;
}

principal
{ Inicialmente so
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4}; criadas as variveis
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
18
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{
inteiro indice, i;
real maior  vet[0];
indice  0;
para (i  1; i < tam; i  i+1) faa
{
se( vet[i] > maior)
{
maior  vet[i];
indice  i;
}
}
retorne indice;
}

principal
{ Chama a funo
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4}; encontraMaior
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
19
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Vetor e seu
inteiro indice, i; tamanho so
real maior  vet[0];
passados como
indice  0;
parmetro
para (i  1; i < tam; i  i+1) faa
{
se( vet[i] > maior)
{
maior  vet[i];
indice  i;
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
20
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 3.0
indice  0; indice = 0
para (i  1; i < tam; i  i+1) faa
{
se( vet[i] > maior) Varivies locais da
{ funo so inicializadas
maior  vet[i];
indice  i;
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
21
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 3.0
indice  0; indice = 0
para (i  1; i < tam; i  i+1) faa i=1
{
se( vet[i] > maior)
{
maior  vet[i]; Comea a busca pelo
indice  i; ndice 1, uma vez que o
} ndice zero j foi utilizada
} para inicializar a varivel
retorne indice; indice
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
22
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 3.0
indice  0; indice = 0
para (i  1; i < tam; i  i+1) faa i=1
{
se( 4.3 > 3.0 )
{
maior  vet[i]; Executa o primeiro teste
indice  i;
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
23
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 4.3
indice  0; indice = 1
para (i  1; i < tam; i  i+1) faa i=1
{
se( 4.3 > 3.0 )
{ Sendo o teste verdadeiro,
maior  vet[i]; atualiza variveis maior e
indice  i; indice.
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
24
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 4.3
indice  0; indice = 1
para (i  1; i < tam; i  i+1) faa i=2
{
se( vet[i] > maior )
{ Passa para a prxima
maior  vet[i]; iterao do loop.
indice  i;
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
25
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 4.3
indice  0; indice = 1
para (i  1; i < tam; i  i+1) faa i=2
{
se( 5.6 > 4.3 )
{ Mais um teste verdadeiro.
maior  vet[i];
indice  i;
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
26
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 5.6
indice  0; indice = 2
para (i  1; i < tam; i  i+1) faa i=2
{
se( 5.6 > 4.3 )
{ Sendo o teste verdadeiro,
maior  vet[i]; atualiza variveis maior e
indice  i; indice.
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
27
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 5.6
indice  0; indice = 2
para (i  1; i < tam; i  i+1) faa i=3
{
se( vet[i] > maior )
{ Passa para a prxima
maior  vet[i]; iterao do loop.
indice  i;
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
28
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 5.6
indice  0; indice = 2
para (i  1; i < tam; i  i+1) faa i=3
{
se( 2.8 > 5.6 )
{ Valor do vetor menor,
maior  vet[i]; no entra na condio.
indice  i;
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
29
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 5.6
indice  0; indice = 2
para (i  1; i < tam; i  i+1) faa i=4
{
se( vet[i] > maior )
{ Passa para a prxima
maior  vet[i]; iterao do loop.
indice  i;
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
30
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 5.6
indice  0; indice = 2
para (i  1; i < tam; i  i+1) faa i=4
{
se( 7.9 > 5.6 )
{ Mais um teste verdadeiro.
maior  vet[i];
indice  i;
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
31
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 7.9
indice  0; indice = 4
para (i  1; i < tam; i  i+1) faa i=4
{
se( 7.9 > 5.6 )
{ Sendo o teste verdadeiro,
maior  vet[i]; atualiza variveis maior e
indice  i; indice.
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
32
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 7.9
indice  0; indice = 4
para (i  1; i < tam; i  i+1) faa i=4
{
se( vet[i] > maior )
{ Passa para a penltima
maior  vet[i]; iterao do loop.
indice  i;
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
33
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 7.9
indice  0; indice = 4
para (i  1; i < tam; i  i+1) faa i=4
{
se( 3.4 > 7.9 )
{ Valor do vetor menor,
maior  vet[i]; no entra na condio.
indice  i;
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
34
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 7.9
indice  0; indice = 4
para (i  1; i < tam; i  i+1) faa i=5
{
se( vet[i] > maior )
{ Passa para a ltima
maior  vet[i]; iterao do loop (nesse
indice  i; caso, no entra)
}
}
retorne indice;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
35
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 7.9
indice  0; indice = 4
para (i  1; i < tam; i  i+1) faa i=5
{
se( vet[i] > maior )
{
maior  vet[i];
indice  i;
Retorna o valor do maior
}
} valor
retorne 4;
}

principal
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6)
imprima("Maior valor esta na posicao ", posicao);
}
36
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 7.9
indice  0; indice = 4
para (i  1; i < tam; i  i+1) faa i=5
{
se( vet[i] > maior )
{
maior  vet[i];
indice  i;
}
}
retorne indice;
}
Volta para a funo principal,
principal pegando o retorno do ndice
{ do maior valor
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6) posicao = 4
imprima("Maior valor esta na posicao ", posicao);
}
37
Exerccio 1 - Teste de Mesa
inteiro encontraMaior (real vet[], inteiro tam)
{ Variveis
inteiro indice, i;
real maior  vet[0];
maior = 7.9
indice  0; indice = 4
para (i  1; i < tam; i  i+1) faa i=5
{
se( vet[i] > maior )
{
maior  vet[i];
indice  i;
}
}
retorne indice;
}
Imprime o ndice do
principal maior valor
{
real vetor[6] = {3.0, 4.3, 5.6, 2.8, 7.9, 3.4};
inteiro posicao;
posicao  encontraMaior( vetor, 6) posicao = 4
imprima("Maior valor esta na posicao ", posicao);
Maior valor esta na posicao 4
}
38
Exerccio Resolvido 2

 Criar uma funo em C que receba um vetor


de nmeros reais e um valor inteiro
representando o seu tamanho. Essa funo
dever ordenar o vetor em ordem crescente.

39
Exerccio 2 - Soluo Proposta
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;
}
}
}
}

40
Exerccio 2 Teste de Mesa
void ordena(float vet[], int tam) Vamos supor para esse
{ exerccio que o vetor de
int i, j; entrada tenha 5 posies e
float aux; os seguintes valores
for(i = 0; i <= (tam-2); i++)
{ 11.0, 22.0, 3.0, 44.0, 5.0
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;
}
}
}
}

41
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 22.0 3.0 44.0 5.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
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; Inicialmente funo
} chamada passando-se
} os valores propostos
}
}

42
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 22.0 3.0 44.0 5.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =
for(j = tam-1; j > i; j--)
{ j =
if ( vet[j] < vet[j-1] )
aux =
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
} A seguir so criadas as
} variveis auxiliares
}
}

43
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 22.0 3.0 44.0 5.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =
if ( vet[j] < vet[j-1] )
aux =
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
} A idia central ir puxando
os menores valores atravs de
}
trocas para o incio do vetor
}

44
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 22.0 3.0 44.0 5.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =4
if ( vet[j] < vet[j-1] )
aux =
{
aux=vet[j];
vet[j]= vet[j-1];
no loop interno que iremos iterar
vet[j-1]=aux;
sobre o vetor efetuando essas trocas,
} conforme os menores valores forem
} sendo identificados.
} Repare que iremos iterar do ltimo
} elemento at o elemento i+1.

45
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 22.0 3.0 44.0 5.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =4
if ( 5.0 < 44.0 )
aux =
{
aux=vet[j];
vet[j]= vet[j-1];
Os testes so feitos sempre entre os
vet[j-1]=aux;
valores i e o seu antecessor (i-1)
}
}
}
}

46
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 22.0 3.0 44.0 5.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =4
if ( 5.0 < 44.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
} Como menor, efetua a troca
}
}
}

47
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 22.0 3.0 44.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =4
if ( 5.0 < 44.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

48
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 22.0 3.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =4
if ( 5.0 < 44.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

49
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 22.0 3.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =3
if ( vet[j] < vet[j-1] )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

50
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 22.0 3.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =3
if ( 5.0 < 3.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
Aqui o teste falha. Vai para a prxima
vet[j-1]=aux;
iterao do loop interno.
}
}
}
}

51
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 22.0 3.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =2
if ( vet[j] < vet[j-1] )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

52
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 22.0 3.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =2
if ( 3.0 < 22.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

53
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 3.0 22.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =2
if ( 3.0 < 22.0 )
aux = 3.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
} Como valor menor, efetua a troca
} como visto anteriormente.
}

54
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 3.0 22.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =1
if ( vet[j] < vet[j-1] )
aux = 3.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

55
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 11.0 3.0 22.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =1
if ( 3.0 < 11.0 )
aux = 3.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

56
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 11.0 22.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =1
if ( 3.0 < 11.0 )
aux = 3.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
} Como valor menor, efetua a troca
} como visto anteriormente.
}

57
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 11.0 22.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =0
for(j = tam-1; j > i; j--)
{ j =0
if ( vet[j] < vet[j-1] )
aux = 3.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
} Nesse ponto, como j = 0, saiu do lao
} interno e volta para o externo.
}

58
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 11.0 22.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =1
for(j = tam-1; j > i; j--)
{ j =0
if ( vet[j] < vet[j-1] )
aux = 3.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
} Como o i incrementado, a posio
} 0 do vetor no ser mais modificada
}

59
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 11.0 22.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =1
for(j = tam-1; j > i; j--)
{ j =4
if ( vet[j] < vet[j-1] )
aux = 3.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

60
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 11.0 22.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =1
for(j = tam-1; j > i; j--)
{ j =4
if ( 44.0 < 5.0 )
aux = 3.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

61
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 11.0 22.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =1
for(j = tam-1; j > i; j--)
{ j =3
if ( vet[j] < vet[j-1] )
aux = 3.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

62
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 11.0 22.0 5.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =1
for(j = tam-1; j > i; j--)
{ j =3
if ( 5.0 < 22.0 )
aux = 3.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

63
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 11.0 5.0 22.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =1
for(j = tam-1; j > i; j--)
{ j =3
if ( 5.0 < 22.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
} Como valor menor, efetua a troca
} como visto anteriormente.
}

64
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 11.0 5.0 22.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =1
for(j = tam-1; j > i; j--)
{ j =2
if (vet[j] < vet[j-1] )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

65
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 11.0 5.0 22.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =1
for(j = tam-1; j > i; j--)
{ j =2
if (5.0 < 11.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

66
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 5.0 11.0 22.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =1
for(j = tam-1; j > i; j--)
{ j =2
if (5.0 < 11.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
} Como valor menor, efetua a troca
} como visto anteriormente.
}

67
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 5.0 11.0 22.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =1
for(j = tam-1; j > i; j--)
{ j =1
if (vet[j] < vet[j-1] )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
} Nesse ponto, como j = 1, saiu do lao
} interno e volta para o externo.

68
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 5.0 11.0 22.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =2
for(j = tam-1; j > i; j--)
{ j =1
if (vet[j] < vet[j-1] )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
} Como o i incrementado, a posio
} 1 do vetor no ser mais modificada
}

69
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 5.0 11.0 22.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =2
for(j = tam-1; j > i; j--)
{ j =4
if ( 44.0 < 22.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

70
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 5.0 11.0 22.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =2
for(j = tam-1; j > i; j--)
{ j =3
if ( 22.0 < 11.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

71
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 5.0 11.0 22.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =2
for(j = tam-1; j > i; j--)
{ j =2
if ( vet[j] < vet[j-1] )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
} Como j = 2, saiu do lao interno e
} volta para o externo.

72
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 5.0 11.0 22.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =3
for(j = tam-1; j > i; j--)
{ j =2
if ( vet[j] < vet[j-1] )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
} Como o i incrementado, a posio
} 2 do vetor no ser mais modificada
}

73
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 5.0 11.0 22.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =3
for(j = tam-1; j > i; j--)
{ j =4
if ( 44.0 < 22.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
}
}

74
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 5.0 11.0 22.0 44.0

int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =3
for(j = tam-1; j > i; j--)
{ j =3
if ( 44.0 < 22.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
}
} Como j = 3, saiu do lao interno e
} volta para o externo.

75
Exerccio 2 Teste de Mesa
0 1 2 3 4
void ordena(float vet[], int tam)
{ 3.0 5.0 11.0 22.0 44.0
int i, j;
Variveis:
float aux;
for(i = 0; i <= (tam-2); i++) tam = 5
{
i =4
for(j = tam-1; j > i; j--)
{ j =3
if ( 44.0 < 22.0 )
aux = 5.0
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
} Como o i incrementado, e sai do lao
} externo, finalizando a procedimento.
}

76
Programa Completo
#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;
}
77
Exerccios

1) Quais so os elementos do vetor referenciados pelas


expresses abaixo ?
vet 1 2 4 7 4 2 8 9 0 6 5 4 3

a) vet[3] b) vet[0] c) vet[13]

2) Qual a diferena entre os nmeros 3 das duas


instrues abaixo ?
inteiro vet[3];
vet[3]  5;

78
Exerccios
3) Dada um tabela contendo a idade de 10
alunos, faa um algoritmo que calcule o nmero
de alunos com idade superior a mdia.

4) Faa um algoritmo para ler e somar dois


vetores de 10 elementos inteiros. Imprima ao
final os valores dessa soma, elemento a
elemento.

5) Refaa o exerccio anterior criando um


procedimento para efetuar a leitura dos vetores e
um segundo procedimento que imprimir a soma
dos vetores. 79
Exerccios
6) Refaa o exerccio anterior criando uma funo
que receba o vetor com a idade dos alunos e retorne
a quantidade de alunos com idade superior a mdia.

7) Faa 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) Refaa o exerccio anterior criando um


procedimento que receba como parmetro o vetor e
imprima o menor valor e seu ndice no vetor.
80
Vetores Numricos
DCC 120

81
Vetores
 O vetor uma estrutura:
Homognea

Esttica

 Todas as componentes so de um mesmo tipo


e seu tamanho permanece o mesmo durante
toda a execuo do programa.

82
Vetores: Declarao
 A sintaxe em C para declarao de varivel do tipo
vetor a seguinte
tipo_primitivo identificador[qtde_elementos];
Exemplo:
// vetor com 5 (0 a 4) elementos do tipo int
int dados[5];
ndices do vetor
0 1 2 3 4
dados
5 elementos quaisquer do tipo int

83
Vetores: Referncia
(Manipulao)
 Cada um dos elementos de um vetor referenciado individualmente por meio de
um nmero inteiro entre colchetes aps o nome do vetor.

0 1 2 3 4

valores 3.6 2.7 4.2 7.9 1.2

Exemplos:
 X = valores[1]; //atribui a x o valor da posio 1 do vetor valores
 Y = valores[4]; //atribui a x o valor da posio 4 do vetor valores
 valores[0] = 3.2; // a posio zero do vetor valores recebe o valor 3.2

84
Vetores: Inicializao

possvel fornecer valores a cada elemento de


um vetor no momento da sua declarao.
Exemplo:
float valores[5] = {3.6, 2.7, 4.2, 7.9, 1.2};
0 1 2 3 4

valores 3.6 2.7 4.2 7.9 1.2

float nros[5] = {0.0}; // como fica o vetor????

85
Vetores: Inicializao

Observaes:
 Os vetores NO so automaticamente inicializados!!!

 Se houver menos valores do que o nmero de elementos do vetor ,


os elementos restantes so inicializados automaticamente com o valor
zero.
int n[5] = {32, 64, 27};

 A seguinte declarao causa um erro de sintaxe:


int n[5] = {32, 64, 27, 18, 95, 14};

 O tamanho do vetores pode ser omitido:


int n[ ] = {1, 2, 3, 4, 5};

86
Vetores: Exemplo
 Leia um vetor de 10 posies (inteiros) e imprima-o na ordem
invertida (da ltima para a primeira posio).
#include <stdio.h>
#include <stdlib.h>

int main()
{
int numeros[10],i;
for (i=0; i<10;i++){
printf("Digite valor %d: ",i);
scanf("%d", &numeros[i]);
}
printf("Vetor na ordem invertida:\n");
for (i=9; i>=0; i--)
printf("%d\n",numeros[i]);
return 0;

}
87
Vetores e Subrotinas

 Em C, vetores so passados sempre por


referncia.

 Ou seja, as modificaes feitas na subrotina


refletem nos dados do vetor passado como
parmetro pela funo chamadora.

88
Vetores e Subrotinas: Exemplo

 O exemplo a seguir apresenta subrotinas


para leitura e impresso do vetor e clculos
do maior, menor e mdia dos elementos.

89
Vetores e Subrotinas: Exemplo (1/3)
#include <stdio.h>
#define TAMANHO 10

void leVetor(int vet[], int tam)


{
int i;
for(i = 0; i < tam; i++)
{
printf("Informe o valor do vetor na posio %d: ", i);
scanf("%d", &vet[i]);
}
}

void imprimeVetor(int vet[], int tam)


{
int i;
printf("Vetor: ");
for(i = 0; i < tam; i++)
{
printf("%d ", vet[i]);
}
}

90
Vetores e Subrotinas: Exemplo (2/3)
int maiorElemento(int vet[], int tam)
{
int i, maior = vet[0];
for(i = 1; i < tam; i++)
{
if(vet[i] > maior)
maior = vet[i];
}
return maior;
}

int menorElemento(int vet[], int tam)


{
int i, menor = vet[0];
for(i = 1; i < tam; i++)
{
if(vet[i] < menor)
menor = vet[i];
}
return menor;
}

91
Vetores e Subrotinas: Exemplo (3/3)
float mediaVetor(int vet[], int tam)
{
int i, soma = 0;
for(i = 0; i < tam; i++)
{
soma = soma + vet[i];
}
return soma / (float)tam;
}

int main()
{
int v[TAMANHO];
leVetor(v, TAMANHO);
imprimeVetor(v, TAMANHO);
printf("\nO maior elemento do vetor %d.", maiorElemento(v, TAMANHO));
printf("\nO menor elemento do vetor %d.", menorElemento(v, TAMANHO));
printf("\nA mdia dos valores do vetor %.2f.",mediaVetor(v, TAMANHO));
return 0;
}

92
Exerccios
1) Desenvolva um programa que leia um vetor de nmeros
reais, um escalar e imprima o resultado da multiplicao do
vetor pelo escalar.

2) Faa um procedimento que faa a leitura um vetor de 10


elementos inteiros e imprima somente os valores
armazenados nos ndices pares.

3) Faa um programa que leia um vetor com 15 valores reais.


A seguir, encontre o menor elemento do vetor e a sua
posio dentro do vetor, mostrando: O menor elemento do
vetor esta na posio XXXX e tem o valor YYYYY.

4) Faa um programa que leia um vetor de 15 posies


(reais) e depois um valor a ser procurado no vetor. Imprima
se o valor foi ou no encontrado e a quantidade de vezes que
o valor est presente no vetor. 93
Exerccios

5) Faa uma funo que receba um vetor de nmeros


inteiros e um valor inteiro. A funo dever procurar este
segundo valor neste vetor e retornar seu ndice se for
encontrado. Se o elemento no for encontrado, retornar -1.

6) Dada uma tabela com as notas de uma turma de 20


alunos, faa funes que retornem:
a) A mdia da turma.
b) a quantidade de alunos aprovados (>=60)
c) a quantidade de alunso reprovados.(< 60)

7) Faa um programa que leia um conjunto de 20 valores e


armazene-os num vetor V. Particione-o em dois outros
vetores, P e I, conforme os valores de V forem pares ou
mpares. No final, imprima os valores dos 3 vetores.

94
Exerccios
8) Faa um programa que leia um vetor G[13] que o
gabarito de um teste da loteria esportiva, contendo os valores
1 quando for coluna 1, 0 quando for coluna do meio e 2
quando for coluna 2.
Ler a seguir, para 5 apostadores, seu carto de apostas
(R[13]) e depois da leitura imprimir quantos acertos o
apostador teve.
Faa o teste atravs de funes.

9) Com relao ao exerccio anterior, calcule e mostre o


percentual dos apostadores que fizeram de 10 a 13 pontos e
o percentual dos apostadores que fizeram menos do que 10
pontos.

10) Faa um programa que leia um vetor de valores inteiros e


imprima-o na ordem crescente. O vetor deve ter tamanho N
(utilize a diretiva #define). 95

También podría gustarte