Buscar

Problemas Comuns

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Contagens, 
somatórios, máximos e 
mínimos
Nesta aula apresentaremos alguns 
problemas recorrentes envolvendo 
estruturas de repetição
2
Introdução
 Alguns problemas que aparecem com 
frequência em computação são 
aqueles envolvendo contagem, 
somatório e determinação dos valores 
máximo e mínimo em um conjunto de 
dados
 Obviamente, todo problema tem suas 
particularidades, mas há um esquema 
padrão para a solução desse tipo de 
problema
3
Contagem (1/2)
 Problemas que envolvem 
contagem são aqueles que visam 
determinar quantos elementos 
em um conjunto de dados 
satisfazem a um critério
 Por exemplo, quantos números 
pares há em um conjunto de 
números naturais
4
Contagem (2/2)
 Para resolver este tipo de problema é 
necessário uma variável que fará a 
contagem (contador)
 Deve ser inicializada com zero antes do 
início da entrada de dados
 Normalmente usamos um if dentro de 
uma estrutura de repetição para 
determinar se a entrada satisfaz um 
determinado critério
 Caso afirmativo, o contador é 
incrementado de 1
5
Exemplo: programa para 
determinar quantos números pares 
há entre n números naturais
#include <stdio.h>
int main()
{
 int n, i, val, cont;
 printf("Informe o tamanho da sequência: ");
 scanf("%d", &n);
 cont = 0;
 printf("Informe %d números naturais: ", n);
 for (i = 1; i <= n; i++) {
 scanf("%d", &val);
 if (val % 2 == 0) {
 cont++;
 }
 }
 printf("Há %d número(s) pare(s)\n", cont);
 return 0;
}
6
Somatório (1/2)
 Parecido com o problema da contagem, 
entretanto, deve-se acumular em uma 
variável o somatório de valores 
possivelmente diferentes
 Exige uma variável para acumular o 
somatório (acumulador)
 Deve ser inicializada com zero
 Pode ser necessário utilizar um if para 
verificar se um valor da entrada satisfaz a 
uma condição
 Caso afirmativo, somar a entrada ao 
acumulador 
7
Somatório (2/2)
 Exemplos de problemas que 
exigem um somatório:
 Calcular a soma de n números 
inteiros
 Não exige um if dentro do laço
 Calcular a soma dos números pares 
num conjunto de n números 
naturais
 Exige um if dentro do laço
8
Exemplo: programa para determinar 
a soma dos números pares num 
conjunto de n números naturais
#include <stdio.h>
int main()
{
 int n, i, val, soma;
 printf("Informe o tamanho da sequência: ");
 scanf("%d", &n);
 soma = 0;
 printf("Informe %d números naturais: ", n);
 for (i = 1; i <= n; i++) {
 scanf("%d", &val);
 if (val % 2 == 0) {
 soma += val;
 }
 }
 printf("Soma dos pares: %d\n", soma);
 return 0;
}
9
Média
 Envolve somatório e eventualmente 
contagem
 Para determinar uma média é 
necessário somar todos os elementos 
a partir dos quais será calculada a 
média
 Se a média não for sobre todos os 
dados da entrada ou o tamanho da 
entrada não for conhecido, é 
necessária uma contagem
10
Exemplo: programa para determinar 
a média de uma sequência de 
inteiros terminada com 0
#include <stdio.h>
int main() {
 int val, cont = 0;
 float media = 0;
 printf("Informe uma sequência de números inteiros 
(0 p/ terminar): ");
 scanf("%d", &val);
 while (val != 0) {
 media += val;
 cont++;
 scanf("%d", &val);
 }
 media /= cont;
 printf("Média dos números: %.2f\n", media);
 return 0;
}
11
Porcentagem
 Envolve contagem
 É preciso determinar quantos 
elementos da entrada satisfazem 
um critério (contador) e depois 
multiplicá-lo por 100 e dividi-lo 
pelo total de elementos
12
Exemplo: programa para determinar 
a porcentagem de números pares 
num conjunto de n números naturais
#include <stdio.h>
int main() {
 int n, i, val, pares = 0;
 float porc_pares;
 printf("Informe o tamanho da sequência: ");
 scanf("%d", &n);
 printf("Informe uma sequência de %d números 
naturais: ", n);
 for (i = 1; i <= n; i++) {
 scanf("%d", &val);
 if (val % 2 == 0) 
 pares++;
 }
 porc_pares = pares * 100.0 / n;
 printf("Porcentagem de pares: %.1f %%\n", 
 porc_pares);
 return 0;
}
13
Máximos e mínimos (1/3)
 Para determinar o maior e o menor valor 
de um conjunto de dados (máximo e 
mínimo) é necessário uma variável para 
cada uma dessas informações
 Essas variáveis devem ser inicializadas 
com o primeiro valor do conjunto
 Depois deve-se verificar se há algum 
valor maior ou menor entre os demais 
elementos do conjunto
14
Máximos e mínimos (2/3)
 Para garantir que as variáveis sejam 
inicializadas com o 1º elemento do 
conjunto há 2 técnicas principais:
 Fazer a entrada do 1º elemento do 
conjunto fora da repetição e inicializar 
as variáveis com esse valor (preferível)
 Atribuir valores iniciais a essas 
variáveis de tal forma que 1º elemento 
do conjunto atualize seus valores
 É necessário conhecer a faixa de 
valores que a entrada pode assumir
Maior deve ser 
inicializada 
com o menor, 
enquanto 
menor deve 
ser inicializada 
com o maior
15
Máximos e mínimos (3/3)
 Dentro da repetição utiliza-se um if 
para verificar se o valor informado é 
maior do que o valor da variável que 
representa o maior valor e outro if 
para verificar se o valor é menor do 
que o da variável que representa o 
menor valor
16
Exemplo: programa para 
determinar o maior e o menor valor 
num conjunto de n inteiros
#include <stdio.h>
int main() {
 int n, i, val, maior, menor;
 
 printf("Informe o tamanho da sequência: ");
 scanf("%d", &n);
 printf("Informe uma sequência de %d números inteiros: ", n);
 scanf("%d", &val);
 maior = menor = val;
 for (i = 2; i <= n; i++) {
 scanf("%d", &val);
 if (val > maior)
 maior = val;
 else 
 if (val < menor) 
 menor = val;
 }
 printf("Maior: %d\nMenor: %d\n", maior, menor);
 return 0;
}
17
Exemplo: programa para 
determinar a maior e a menor 
nota numa turma de n alunos
#include <stdio.h>
int main() {
 int n, i;
 float nota, maior, menor; 
 printf("Informe o tamanho da turma: ");
 scanf("%d", &n);
 printf("Informe as notas dos %d alunos: ", n);
 maior = 0;
 menor = 10;
 for (i = 1; i <= n; i++) {
 scanf("%f", &nota);
 if (nota > maior)
 maior = nota;
 if (nota < menor)
 menor = nota;
 }
 printf("Maior nota: %.2f\nMenor nota: %.2f\n", 
 maior, menor);
 return 0;
}
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes