Vetores e Acumuladores
Por: Wandersglaydsson Fieteiro • 10/8/2015 • Abstract • 1.675 Palavras (7 Páginas) • 275 Visualizações
VETORES ACUMULADORES/CONTADORES/”TRONO”
[pic 1]
PROBLEMA:
Faça um programa para apurar os votos e determinar o novo presidente do clube de figurinhas!!!
Como será a eleição?
Quantidade de candidatos: 5
Identificação dos candidatos: nº entre 1 e 5
Os 30 sócios votam no número do candidato.
SOLUÇÃO:
DECLARANDO AS VARIÁVEIS
Uma urna para cada candidato:
[pic 2]
As urnas comportam-se como uma variável contadora!!!
Precisa-se de 5 urnas → 5 variáveis contadoras → Coleção de variáveis contadoras [pic 3]
vetor de inteiros ( int vurnas[5]; )
[pic 4]
CONTABILIZANDO OS VOTOS
a) COMO RELACIONAR AS POSIÇÕES DO VETOR AOS CANDIDATOS????
Como os candidatos são representados por números conhecidos e seqüenciais dentro de um intervalo (1 a 5), o próprio número identificador do candidato é usado para selecionar a posição do vetor. Portanto, o nº do candidato é utilizado para acessar diretamente a posição do vetor que armazena seus votos.
Número do Candidato | Posição |
1 | 0 |
2 | 1 |
3 | 2 |
4 | 3 |
5 | 4 |
pos = numcandidato – 1
b) INICIALIZANDO O VETOR DE CONTADORES
Para usar uma variável contadora, é necessário inicializá-la!!! Portanto, para usar o vetor de contadores de voto é preciso colocar 0 em cada uma das posições!!!
c) APURANDO OS VOTOS :Capturar o voto dos eleitores atualizando a urna de seus candidatos
REPETIR
Captura o voto do eleitor
posição do vetor = nº candidato que está no voto do eleitor -1 vurnas[pos]=vurnas[pos]+1;
ENCONTRANDO O VENCEDOR:
Percorrer o vetor de contadores de votos para determinar a posição que armazena o maior valor.
Com esta posição, calcula-se o número do candidato
posdomaior = 0
Para as demais posições
Se vurnas[pos] > vurnas[posdomaior]
Posdomaior = pos
#define TAM 5
void zera( int v[], int n);
void contabiliza( int vurnas[], int n);
void det_posdomaior(int vurnas[], int n);
int main(void)
{
int vurnas[TAM], ,posdomaior;
zera(vurnas,TAM);
contabiliza( vurnas,TAM);
posdomaior = det_posdomaior(vurnas, TAM);
printf( “ Novo presidente %d:”, posdomaior+1);
return 0;
}
void zera( int v[], int n)
{
int i;
for (i=0; i
v[i]=0;
}
return;
}
void contabiliza( int vurnas[], int n)
{
int,pos,socios,voto;
for ( socios=0;socios<30;socios++) {
printf( “Digite o voto:” );
scanf(“%d”,&voto));
if( voto>=1 && voto <=5) {
pos = voto-1;
(vurnas[pos]) ++;
}
}
return;
}
void det_posdomaior(int v[urnas], int n)
{
int pos, posdomaior = 0;
for (pos=1;pos
if vurnas[pos] > vurnas[posdomaior])
posdomaior = pos;
}
return posdomaior;
}
EXERCÍCIO DE FIXAÇÃO
- 1) Uma escola deseja escolher a rainha da escola através de uma eleição onde participarão todos os alunos. Cada aluno escolherá uma rainha. Há 10 candidatas a rainha identificadas por números de 101 a 110. Faça um programa que inicialmente obtenha a quantidade de alunos da escola. A seguir, para cada aluno deverão ser lidos os votos para rainha. Este programa deverá exibir a rainha da escola, ou seja, aquela que tiver mais votos.
EXERCÍCIOS OBRIGATÓRIOS
1. A Naiky realizou uma pesquisa numa universidade para ajudar a quantificar a produção de seu novo modelo de tênis nos diferentes tamanhos. Os modelos serão produzidos nos tamanhos 35 a 44. Faça um programa que capture o tamanho de cada aluno entrevistado e exiba na tela o percentual de alunos por tamanho.
Exemplo:
Entrada: 35 34 42 35 36 44 46 44 35 36 3744
Saída: tamanho 35 – percentual: 30
tamanho 36 – percentual: 20
tamanho 37 – percentual: 10
tamanho 38 – percentual: 0
tamanho 39 – percentual: 0
tamanho 40 – percentual: 0
tamanho 41 – percentual: 0
tamanho 42 – percentual: 10
tamanho 43 – percentual: 0
tamanho 44 – percentual: 30
- Uma locadora de jogos deseja realizar uma promoção na qual, para cada 10 jogos retirados, o cliente tem direito a uma locação grátis.
Para realizar esta promoção entre seus 10 clientes, registrou no mês de abril, o número do cliente( valor entre 1 e 10), dia da retirada e quantidade de jogos retirados por ele neste dia. O mesmo cliente pode realizar várias retiradas no mês de abril.
Faça um programa que implemente a promoção da locadora, mostrando na tela, a quantidade de locações gratuitas que cada cliente tem direito.
...