SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
CEA030 Programação de Computadores I DECOM UFOP 2011-1
Lista de Exercícios 3 Prof. José Romildo Malaquias
Estruturas de repetição
1. Fazer um programa para ler um número inteiro
n e calcular e exibir a soma dos números inteiros
de 1 a n, inclusive.
2. Fazer um programa para ler um número inteiro
n e calcular e exibir a soma dos números inteiros
ímpares no intervalo [1,n].
3. Dado um valor E, calcular o valor aproximado
da série
S = 1+
1
3
+
1
5
+
1
7
+···
considerando todos os termos maiores ou iguais
a E.
Observe que os termos da série são frações cujo
numerador é 1 e cujo denominador são números
ímpares consecutivos. Assim o denominador de
um termo é igual ao denominador do termo an-
terior mais 2.
4. Escrevar um programa que, dado um número
natural n, calcula e exibe o seu fatorial n!, dado
por
n! = 1×2×···×n
5. Fazer um programa para calcular e exibir o valor
de S, dado por
S =
1
1
−
2
4
+
3
9
−
4
16
+···−
10
100
Observe que os termos da série são frações onde
os numeradores são números naturais consecuti-
vos e os denominadores são os quadrados destes
números. Os sinais dos termos alternam entre
positivo e negativo.
6. Fazer um programa que, dados os valores de n
(inteiro) e a (ponto flutuante), determine a partir
de qual termo o valor de s, dado por
s = 1+
1
2
+
1
3
+···+
1
n
é maior do que a.
7. Escrever um programa para calcular a soma dos
pesos das pessoas com mais de trinta anos. O
usuário deverá informar a quantidade de pessoas
seguida da idade e peso de cada uma delas.
8. Escrever um programa para determinar quantas
pessoas acima de 18 anos tem uma estatura su-
perior a 1,60 metros. O usuário deverá informar
a idade e o peso de cada pessoa. O programa
deve terminar quando o usuário informar um va-
lor negativo para a idade.
9. Na seqüência de frações
2
1
,
3
2
,
5
3
,
8
5
,
13
8
,
21
13
,···
o numerador de cada fração é a soma do nume-
rador e do denominador da fração anterior, e o
denominador de cada fração é a soma dos deno-
minadores das duas frações anteriores. Dado o
valor inteiro de n, n ≥ 2, calcular e exibir a soma
dos n primeiros termos da seqüência.
10. Sabe-se que a cultura de uma certa bactéria do-
bra seu volume a cada dia. Dados um número
de dias n (inteiro) e um volume v (ponto flutu-
ante), qual deve ser o volume inicial para que
em n dias se obtenha, pelo menos, um volume v
desta cultura?
11. Crie uma aplicação que calcula e imprime os n
primeiros termos da sequência de Fibonacci. Os
dois primeiros termos são 1 e 1 e os termos pos-
teriores são gerados a partir da soma dos dois
termos imediatamente anteriores. Por exemplo,
os 7 primeiros números são:
1,1,2,3,5,8,13,...
Dica: Use duas variáveis para armazenar os dois
últimos termos da sequência, inicializadas com
os valores 1 e 1. Em um comando de repetição
calcule o próximo termo da sequência, exiba-o,
e atualize as variáveis usadas para armazenar os
dois últimos termos.
Curiosidade: Esta sequência foi introduzida ini-
cialmente para descrever o crescimento de uma
população de coelhos. Porém, se tornou muito
importante, e também popular. Descobriu-se
que na natureza é possível encontrá-la, como na
foto a seguir, descrevendo uma espiral de uma
folha de bromélia. A sequência pode ainda ser
vista no cinema, no filme O Código Da Vinci.
1
12. Um funcionário de uma empresa recebe au-
mento salarial anualmente. O primeiro aumento
é de 1,5% sobre seu salário inicial. Os aumen-
tos subsequentes sempre correspondem ao do-
bro do percentual de aumento do ano anterior.
Faça uma aplicação onde o usuário deve infor-
mar o salário inicial do funcionário, o ano de
contratação e o ano atual, e calcula e exibe o seu
salário atual.
13. Foi feita uma pesquisa em várias cidades brasi-
leiras para coletar dados sobre acidentes de trân-
sito. Os seguintes dados foram coletados para
cada cidade:
• código da cidade,
• quantidade de veículos de passeio, e
• quantidade de acidentes de trânsito com
vítimas
Deseja-se saber qual é:
• o maior e menor índice de acidentes de
trânsito e a que cidade pertencem,
• a média de veículos nas cinco cidades jun-
tas, e
• a média de acidentes de trânsito com víti-
mas nas cidades com menos de 2000 veí-
culos de passeio.
Escreva um programa que leia os dados da pes-
quisa e exiba estas informações. A entrada dos
dados da pesquisa deverá ser encerrada com o
código 0 para a cidade.
Dica 1: Utilize um comando de repetição para
obter e processar as informações. Leia o código
da primeira cidade antes do comando de repti-
ção. Em seguida use o comando de repetição
wile com a condição que verifica se o código
não é zero. No corpo do comando de repetição
leia os demais dados da cidade, faça o processa-
mento destes dados, e leia o código da próxima
cidade. Depois que o comando de repetição ter-
minar, calcule as informações finais e exiba os
resultados.
Dica 2: Use uma variável para determinar o
maior valor de uma sequência de valores. O va-
lor inicial da variável deve ser o primeiro ele-
mento da sequência. A partir do segundo ele-
mento da sequência, verifique se o elemento é
maior do que o valor da variável (que contém
a solução parcial). Se for maior, atualize a va-
riável com este elemento. Ao final do proces-
samento da sequência o valor da variável será o
maior elmento. Proceda de maneira similar para
determinar o menor valor.
14. Faça uma aplicação para fechamento das notas
de uma disciplina. Cada aluno recebe três notas
nas atividades desenvolvidas. O usuário deverá
informar a quantidade de alunos na turma, e em
seguida as notas de cada aluno. Calcule e exiba:
• a média aritmética das três notas de cada
aluno,
• a situação do aluno, dada pela tabela se-
guinte
média aritmética situação
até 3 reprovado
entre 3 (inclusive) e 7 exame especial
acima de 7 (inclusive) aprovado
• a média da turma
• o percentual de alunos aprovados
• o percentual de alunos em exame especial
• o percentual de alunos reprovados
15. Em um campeonato de futebol existem cinco ti-
mes e cada um possui onze jogadores. Faça um
programa que receba a idade, o peso e a altura
de cada um dos jogadores, calcule e mostre:
• a quantidade de jogadores com idade infe-
rior a 18 anos,
• a média das idades dos jogadores de cada
time,
• a média das alturas de todos os jogadores
do campeonato, e
• a porcentagem de jogadores com mais de
80 quilos entre todos os jogadores do cam-
peonato.
16. Foi feita uma pesquisa para determinar o índice
de mortalidade infantil em um certo período.
Faça um programa que leia o número de crian-
ças nascidas no período, e o sexo e o tempo de
vida de cada criança nascida. O programa deve
calcular e mostrar:
• a porcentagem de crianças do sexo femi-
nino motas no período,
2
• a porcentagem de crianças do sexo mascu-
lino mortas no período, e
• a porcentagem de crianças que viveram no
máximo 24 meses.
17. Craps é um jogo popular de azar que é jogado
em cassinos e nas ruas de todo o mundo. As
regras do jogo são simples e diretas.
O jogador lança dois dados. Cada dado tem seis
faces numeradas de um a seis. Depois que os
dados param de rolar, a soma dos pontos nas fa-
ces viradas para cima é calculada. Se a soma for
7 ou 11 no primeiro lance, o jogador ganha. Se a
soma for 2, 3 ou 12 no primeiro lance (chamado
craps), o jogador perde (isto é, a casa ganha). Se
a soma for 4, 5, 6, 8, 9 ou 10 no primeiro lance,
essa soma torna-se a pontuação do jogador. Para
ganhar, o jogador deve continuar a lançar os da-
dos até fazer sua pontuação (isto é, obter um
valor igual à sua pontuação, determinada no pri-
meiro lance). O jogador perde se obtiver um 7
antes de fazer sua pontuação.
Faça uma aplicação para jogar o jogo craps com
o usuário.
Dica 1: Para simular o lançamento de um dado
no programa pode-se utilizar as funções rand
e srand da biblioteca stdlib. Esta biblioteca
implementa um gerador de números pseudo-
aleatórios. A sequência de números geradas de-
pende de uma semente, que é um valor inteiro
sem sinal usado internamente para configurar o
gerador. Para que a sequência seja diferente toda
vez que o programa é executado, é necessário
que esta semente também seja diferente. Uma
boa sugestão é utilizar o relógio do sistema para
obter uma semente. O horário atual do relógio
do sistema pode ser obtido com a função time,
da biblioteca time. Assim o gerador de núme-
ros aleatórios da biblioteca padrão do C pode ser
inicializado com o comando
srand(time(NULL));
colocado no começo da função main. O pró-
ximo número da sequência pseudo-aleatória
pode ser obtido com a função rand, que não tem
nenhum argumento e retorna um número inteiro
na faixa de 0 a RAND_MAX, inclusive. Para se
obter um número pseudo-aleatório no intervalo
[1..6], pode-se utilizar a expressão
rand() % 6 + 1;
Portanto lançar um dado significa calcular o va-
lor desta expressão.
Dica 2: Utilize duas variáveis inteiras para ar-
mazenar os valores obtidos com o lançamento
dos dados. Faça o primeiro lançamento e cal-
cule a pontuação, que deve ser armzenada em
outra variável para referências futuras. Utilize
um comando switch para considerar os possí-
veis casos relativos ao primeiro lançamento, se-
guindo as regras do jogo. Caso o jogador não
perca nem ganhe no primeiro lançamento, uti-
lize um comando do while para repetidamente
continuar lançando os dados, no intuito to obter
a pontuação inicial. No corpo deste comando de
repetição lance os dados e calcule a soma dos
pontos obtidos. Esta soma deve ser comparada
com a pontuação inicial para decidir se o coma-
nod de repetição deve terminar ou não (ele deve
terminar quando a soma for 7 ou qando a soma
for igual à pontuação inicial).
Dica 3: As únicas interaçoes com o usuáro (jo-
gador) poderão ser para solicitar que ele tecle
ENTER para lançar os dados, exibir os pontos
obtidos em cada lançamento juntamente com a
soma (pontuação), e exibir o resultado final (ga-
nhou ou perdeu). Para permitir que o usuário
tecle ENTER, pode-se utilizar a função scanf:
scanf("%*c");
Dica 4: Exemplos de possíveis execuções do
programa:
Craps v1.0
-------------------------------------
Tecle ENTER para lançar os dados
Faces dos dados: 1 e 6
Pontuação: 7
Você ganhou. Parabéns!
Craps v1.0
-------------------------------------
Tecle ENTER para lançar os dados
Faces dos dados: 6 e 6
Pontuação: 12
CRAPS!
Você perdeu. Sinto muito!
Craps v1.0
-------------------------------------
Tecle ENTER para lançar os dados
Faces dos dados: 3 e 3
Pontuação: 6
Tecle ENTER para lançar os dados novamente
Faces dos dados: 1 e 6
Pontuação: 7
Você perdeu. Sinto muito!
3
Craps v1.0
-------------------------------------
Tecle ENTER para lançar os dados
Faces dos dados: 4 e 4
Pontuação: 8
Tecle ENTER para lançar os dados novamente
Faces dos dados: 3 e 1
Pontuação: 4
Tecle ENTER para lançar os dados novamente
Faces dos dados: 6 e 2
Pontuação: 8
Você ganhou. Parabéns!
4

Mais conteúdo relacionado

Mais procurados

Enem 2015 resolução da prova
Enem 2015 resolução da provaEnem 2015 resolução da prova
Enem 2015 resolução da provaClaudio Ribeiro
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlgWillians Miyabara
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmosMauro Pereira
 
TRT/RJ - Analista Judiciário - Execução de Mandatos
TRT/RJ - Analista Judiciário - Execução de MandatosTRT/RJ - Analista Judiciário - Execução de Mandatos
TRT/RJ - Analista Judiciário - Execução de MandatosIsabelly Sarmento
 
Frações decimais e números decimais
Frações decimais e números decimaisFrações decimais e números decimais
Frações decimais e números decimaistcrisouza
 
Lista de exercícios III Desafios python para zumbis
Lista de exercícios III Desafios python para zumbisLista de exercícios III Desafios python para zumbis
Lista de exercícios III Desafios python para zumbisFATEC São José dos Campos
 
Alguns algoritmos resolvidos
Alguns algoritmos resolvidosAlguns algoritmos resolvidos
Alguns algoritmos resolvidosjaoozinhoqi123
 
Analista Judiciário - TRT/RJ
Analista Judiciário - TRT/RJAnalista Judiciário - TRT/RJ
Analista Judiciário - TRT/RJIsabelly Sarmento
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlex Camargo
 

Mais procurados (20)

Algop - aula 04
Algop - aula 04Algop - aula 04
Algop - aula 04
 
05 repeticao
05 repeticao05 repeticao
05 repeticao
 
python.comandos
python.comandospython.comandos
python.comandos
 
01 variaveis io if
01 variaveis io if01 variaveis io if
01 variaveis io if
 
Enem 2015 resolução da prova
Enem 2015 resolução da provaEnem 2015 resolução da prova
Enem 2015 resolução da prova
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
M3 plan anual
M3 plan anualM3 plan anual
M3 plan anual
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
 
TRT/RJ - Analista Judiciário - Execução de Mandatos
TRT/RJ - Analista Judiciário - Execução de MandatosTRT/RJ - Analista Judiciário - Execução de Mandatos
TRT/RJ - Analista Judiciário - Execução de Mandatos
 
Algop - aula 07 resposta exercícios
Algop - aula 07 resposta exercíciosAlgop - aula 07 resposta exercícios
Algop - aula 07 resposta exercícios
 
03 bases numericas
03   bases numericas03   bases numericas
03 bases numericas
 
Frações decimais e números decimais
Frações decimais e números decimaisFrações decimais e números decimais
Frações decimais e números decimais
 
Aula 2 aed - pseudocódigo
Aula 2   aed - pseudocódigoAula 2   aed - pseudocódigo
Aula 2 aed - pseudocódigo
 
Lista de exercícios III Desafios python para zumbis
Lista de exercícios III Desafios python para zumbisLista de exercícios III Desafios python para zumbis
Lista de exercícios III Desafios python para zumbis
 
Alguns algoritmos resolvidos
Alguns algoritmos resolvidosAlguns algoritmos resolvidos
Alguns algoritmos resolvidos
 
Aula 05 Vetores
Aula 05  VetoresAula 05  Vetores
Aula 05 Vetores
 
Analista Judiciário - TRT/RJ
Analista Judiciário - TRT/RJAnalista Judiciário - TRT/RJ
Analista Judiciário - TRT/RJ
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: Matrizes
 
ENEM SEM EM - QUESTÕES DE MATEMÁTICA.
ENEM SEM EM - QUESTÕES DE MATEMÁTICA.ENEM SEM EM - QUESTÕES DE MATEMÁTICA.
ENEM SEM EM - QUESTÕES DE MATEMÁTICA.
 

Semelhante a Lista Exercícios Programação Computadores

Lista p1 - 2012-1
Lista   p1 - 2012-1Lista   p1 - 2012-1
Lista p1 - 2012-1Rafaelrpa
 
Apostila 1 pc i - estrutura da linguagem
Apostila 1   pc i - estrutura da linguagemApostila 1   pc i - estrutura da linguagem
Apostila 1 pc i - estrutura da linguagemLucas Cruz
 
03 Algoritmos - Exercicios.pdf
03 Algoritmos - Exercicios.pdf03 Algoritmos - Exercicios.pdf
03 Algoritmos - Exercicios.pdfEufrazinoPauloSoma
 
2ª lista avaliativa (1)
2ª lista   avaliativa (1)2ª lista   avaliativa (1)
2ª lista avaliativa (1)Hiago Rodrigues
 
Algoritmos - Comandos de Repetição
Algoritmos - Comandos de RepetiçãoAlgoritmos - Comandos de Repetição
Algoritmos - Comandos de RepetiçãoElaine Cecília Gatto
 
Linguagem C - Comandos condicionais [exercícios]
Linguagem C - Comandos condicionais [exercícios]Linguagem C - Comandos condicionais [exercícios]
Linguagem C - Comandos condicionais [exercícios]Matheus Alves
 
Lista de exercicio lpi
Lista de exercicio lpiLista de exercicio lpi
Lista de exercicio lpiArtur Luiz
 
[Curso Java Basico] Exercicios Aulas 16 17
[Curso Java Basico] Exercicios Aulas 16 17[Curso Java Basico] Exercicios Aulas 16 17
[Curso Java Basico] Exercicios Aulas 16 17Loiane Groner
 
Linguagem C - Structs [exercícios]
Linguagem C - Structs [exercícios]Linguagem C - Structs [exercícios]
Linguagem C - Structs [exercícios]Matheus Alves
 
Exercicio Pascal Repetição
Exercicio Pascal RepetiçãoExercicio Pascal Repetição
Exercicio Pascal RepetiçãoMarcus Vinicius
 
Conceitos e técnicas de programação lista de exercícios i
Conceitos e técnicas de programação lista de exercícios iConceitos e técnicas de programação lista de exercícios i
Conceitos e técnicas de programação lista de exercícios iRobson Ferreira
 
Caderno de Soluções - OBI 2015 - Nível 2
Caderno de Soluções - OBI 2015 - Nível 2Caderno de Soluções - OBI 2015 - Nível 2
Caderno de Soluções - OBI 2015 - Nível 2Ana Paula Silva
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaodiogoa21
 

Semelhante a Lista Exercícios Programação Computadores (20)

Lista p1 - 2012-1
Lista   p1 - 2012-1Lista   p1 - 2012-1
Lista p1 - 2012-1
 
Apostila 1 pc i - estrutura da linguagem
Apostila 1   pc i - estrutura da linguagemApostila 1   pc i - estrutura da linguagem
Apostila 1 pc i - estrutura da linguagem
 
03 Algoritmos - Exercicios.pdf
03 Algoritmos - Exercicios.pdf03 Algoritmos - Exercicios.pdf
03 Algoritmos - Exercicios.pdf
 
2ª lista avaliativa (1)
2ª lista   avaliativa (1)2ª lista   avaliativa (1)
2ª lista avaliativa (1)
 
Algop - aula 07
Algop - aula 07Algop - aula 07
Algop - aula 07
 
Algoritmos - Comandos de Repetição
Algoritmos - Comandos de RepetiçãoAlgoritmos - Comandos de Repetição
Algoritmos - Comandos de Repetição
 
Conta de água e pedágio
Conta de água e pedágioConta de água e pedágio
Conta de água e pedágio
 
Linguagem C - Comandos condicionais [exercícios]
Linguagem C - Comandos condicionais [exercícios]Linguagem C - Comandos condicionais [exercícios]
Linguagem C - Comandos condicionais [exercícios]
 
Lista de exercicio lpi
Lista de exercicio lpiLista de exercicio lpi
Lista de exercicio lpi
 
[Curso Java Basico] Exercicios Aulas 16 17
[Curso Java Basico] Exercicios Aulas 16 17[Curso Java Basico] Exercicios Aulas 16 17
[Curso Java Basico] Exercicios Aulas 16 17
 
Linguagem C - Structs [exercícios]
Linguagem C - Structs [exercícios]Linguagem C - Structs [exercícios]
Linguagem C - Structs [exercícios]
 
Lista exercícios
Lista exercíciosLista exercícios
Lista exercícios
 
Exercicios c
Exercicios cExercicios c
Exercicios c
 
Exercicio Pascal Repetição
Exercicio Pascal RepetiçãoExercicio Pascal Repetição
Exercicio Pascal Repetição
 
Conceitos e técnicas de programação lista de exercícios i
Conceitos e técnicas de programação lista de exercícios iConceitos e técnicas de programação lista de exercícios i
Conceitos e técnicas de programação lista de exercícios i
 
Aula 3 - 06/04/11
Aula 3 - 06/04/11Aula 3 - 06/04/11
Aula 3 - 06/04/11
 
Caderno de Soluções - OBI 2015 - Nível 2
Caderno de Soluções - OBI 2015 - Nível 2Caderno de Soluções - OBI 2015 - Nível 2
Caderno de Soluções - OBI 2015 - Nível 2
 
Cea030.lista.01
Cea030.lista.01Cea030.lista.01
Cea030.lista.01
 
03 algoritmos basicos
03 algoritmos basicos03 algoritmos basicos
03 algoritmos basicos
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
 

Lista Exercícios Programação Computadores

  • 1. CEA030 Programação de Computadores I DECOM UFOP 2011-1 Lista de Exercícios 3 Prof. José Romildo Malaquias Estruturas de repetição 1. Fazer um programa para ler um número inteiro n e calcular e exibir a soma dos números inteiros de 1 a n, inclusive. 2. Fazer um programa para ler um número inteiro n e calcular e exibir a soma dos números inteiros ímpares no intervalo [1,n]. 3. Dado um valor E, calcular o valor aproximado da série S = 1+ 1 3 + 1 5 + 1 7 +··· considerando todos os termos maiores ou iguais a E. Observe que os termos da série são frações cujo numerador é 1 e cujo denominador são números ímpares consecutivos. Assim o denominador de um termo é igual ao denominador do termo an- terior mais 2. 4. Escrevar um programa que, dado um número natural n, calcula e exibe o seu fatorial n!, dado por n! = 1×2×···×n 5. Fazer um programa para calcular e exibir o valor de S, dado por S = 1 1 − 2 4 + 3 9 − 4 16 +···− 10 100 Observe que os termos da série são frações onde os numeradores são números naturais consecuti- vos e os denominadores são os quadrados destes números. Os sinais dos termos alternam entre positivo e negativo. 6. Fazer um programa que, dados os valores de n (inteiro) e a (ponto flutuante), determine a partir de qual termo o valor de s, dado por s = 1+ 1 2 + 1 3 +···+ 1 n é maior do que a. 7. Escrever um programa para calcular a soma dos pesos das pessoas com mais de trinta anos. O usuário deverá informar a quantidade de pessoas seguida da idade e peso de cada uma delas. 8. Escrever um programa para determinar quantas pessoas acima de 18 anos tem uma estatura su- perior a 1,60 metros. O usuário deverá informar a idade e o peso de cada pessoa. O programa deve terminar quando o usuário informar um va- lor negativo para a idade. 9. Na seqüência de frações 2 1 , 3 2 , 5 3 , 8 5 , 13 8 , 21 13 ,··· o numerador de cada fração é a soma do nume- rador e do denominador da fração anterior, e o denominador de cada fração é a soma dos deno- minadores das duas frações anteriores. Dado o valor inteiro de n, n ≥ 2, calcular e exibir a soma dos n primeiros termos da seqüência. 10. Sabe-se que a cultura de uma certa bactéria do- bra seu volume a cada dia. Dados um número de dias n (inteiro) e um volume v (ponto flutu- ante), qual deve ser o volume inicial para que em n dias se obtenha, pelo menos, um volume v desta cultura? 11. Crie uma aplicação que calcula e imprime os n primeiros termos da sequência de Fibonacci. Os dois primeiros termos são 1 e 1 e os termos pos- teriores são gerados a partir da soma dos dois termos imediatamente anteriores. Por exemplo, os 7 primeiros números são: 1,1,2,3,5,8,13,... Dica: Use duas variáveis para armazenar os dois últimos termos da sequência, inicializadas com os valores 1 e 1. Em um comando de repetição calcule o próximo termo da sequência, exiba-o, e atualize as variáveis usadas para armazenar os dois últimos termos. Curiosidade: Esta sequência foi introduzida ini- cialmente para descrever o crescimento de uma população de coelhos. Porém, se tornou muito importante, e também popular. Descobriu-se que na natureza é possível encontrá-la, como na foto a seguir, descrevendo uma espiral de uma folha de bromélia. A sequência pode ainda ser vista no cinema, no filme O Código Da Vinci. 1
  • 2. 12. Um funcionário de uma empresa recebe au- mento salarial anualmente. O primeiro aumento é de 1,5% sobre seu salário inicial. Os aumen- tos subsequentes sempre correspondem ao do- bro do percentual de aumento do ano anterior. Faça uma aplicação onde o usuário deve infor- mar o salário inicial do funcionário, o ano de contratação e o ano atual, e calcula e exibe o seu salário atual. 13. Foi feita uma pesquisa em várias cidades brasi- leiras para coletar dados sobre acidentes de trân- sito. Os seguintes dados foram coletados para cada cidade: • código da cidade, • quantidade de veículos de passeio, e • quantidade de acidentes de trânsito com vítimas Deseja-se saber qual é: • o maior e menor índice de acidentes de trânsito e a que cidade pertencem, • a média de veículos nas cinco cidades jun- tas, e • a média de acidentes de trânsito com víti- mas nas cidades com menos de 2000 veí- culos de passeio. Escreva um programa que leia os dados da pes- quisa e exiba estas informações. A entrada dos dados da pesquisa deverá ser encerrada com o código 0 para a cidade. Dica 1: Utilize um comando de repetição para obter e processar as informações. Leia o código da primeira cidade antes do comando de repti- ção. Em seguida use o comando de repetição wile com a condição que verifica se o código não é zero. No corpo do comando de repetição leia os demais dados da cidade, faça o processa- mento destes dados, e leia o código da próxima cidade. Depois que o comando de repetição ter- minar, calcule as informações finais e exiba os resultados. Dica 2: Use uma variável para determinar o maior valor de uma sequência de valores. O va- lor inicial da variável deve ser o primeiro ele- mento da sequência. A partir do segundo ele- mento da sequência, verifique se o elemento é maior do que o valor da variável (que contém a solução parcial). Se for maior, atualize a va- riável com este elemento. Ao final do proces- samento da sequência o valor da variável será o maior elmento. Proceda de maneira similar para determinar o menor valor. 14. Faça uma aplicação para fechamento das notas de uma disciplina. Cada aluno recebe três notas nas atividades desenvolvidas. O usuário deverá informar a quantidade de alunos na turma, e em seguida as notas de cada aluno. Calcule e exiba: • a média aritmética das três notas de cada aluno, • a situação do aluno, dada pela tabela se- guinte média aritmética situação até 3 reprovado entre 3 (inclusive) e 7 exame especial acima de 7 (inclusive) aprovado • a média da turma • o percentual de alunos aprovados • o percentual de alunos em exame especial • o percentual de alunos reprovados 15. Em um campeonato de futebol existem cinco ti- mes e cada um possui onze jogadores. Faça um programa que receba a idade, o peso e a altura de cada um dos jogadores, calcule e mostre: • a quantidade de jogadores com idade infe- rior a 18 anos, • a média das idades dos jogadores de cada time, • a média das alturas de todos os jogadores do campeonato, e • a porcentagem de jogadores com mais de 80 quilos entre todos os jogadores do cam- peonato. 16. Foi feita uma pesquisa para determinar o índice de mortalidade infantil em um certo período. Faça um programa que leia o número de crian- ças nascidas no período, e o sexo e o tempo de vida de cada criança nascida. O programa deve calcular e mostrar: • a porcentagem de crianças do sexo femi- nino motas no período, 2
  • 3. • a porcentagem de crianças do sexo mascu- lino mortas no período, e • a porcentagem de crianças que viveram no máximo 24 meses. 17. Craps é um jogo popular de azar que é jogado em cassinos e nas ruas de todo o mundo. As regras do jogo são simples e diretas. O jogador lança dois dados. Cada dado tem seis faces numeradas de um a seis. Depois que os dados param de rolar, a soma dos pontos nas fa- ces viradas para cima é calculada. Se a soma for 7 ou 11 no primeiro lance, o jogador ganha. Se a soma for 2, 3 ou 12 no primeiro lance (chamado craps), o jogador perde (isto é, a casa ganha). Se a soma for 4, 5, 6, 8, 9 ou 10 no primeiro lance, essa soma torna-se a pontuação do jogador. Para ganhar, o jogador deve continuar a lançar os da- dos até fazer sua pontuação (isto é, obter um valor igual à sua pontuação, determinada no pri- meiro lance). O jogador perde se obtiver um 7 antes de fazer sua pontuação. Faça uma aplicação para jogar o jogo craps com o usuário. Dica 1: Para simular o lançamento de um dado no programa pode-se utilizar as funções rand e srand da biblioteca stdlib. Esta biblioteca implementa um gerador de números pseudo- aleatórios. A sequência de números geradas de- pende de uma semente, que é um valor inteiro sem sinal usado internamente para configurar o gerador. Para que a sequência seja diferente toda vez que o programa é executado, é necessário que esta semente também seja diferente. Uma boa sugestão é utilizar o relógio do sistema para obter uma semente. O horário atual do relógio do sistema pode ser obtido com a função time, da biblioteca time. Assim o gerador de núme- ros aleatórios da biblioteca padrão do C pode ser inicializado com o comando srand(time(NULL)); colocado no começo da função main. O pró- ximo número da sequência pseudo-aleatória pode ser obtido com a função rand, que não tem nenhum argumento e retorna um número inteiro na faixa de 0 a RAND_MAX, inclusive. Para se obter um número pseudo-aleatório no intervalo [1..6], pode-se utilizar a expressão rand() % 6 + 1; Portanto lançar um dado significa calcular o va- lor desta expressão. Dica 2: Utilize duas variáveis inteiras para ar- mazenar os valores obtidos com o lançamento dos dados. Faça o primeiro lançamento e cal- cule a pontuação, que deve ser armzenada em outra variável para referências futuras. Utilize um comando switch para considerar os possí- veis casos relativos ao primeiro lançamento, se- guindo as regras do jogo. Caso o jogador não perca nem ganhe no primeiro lançamento, uti- lize um comando do while para repetidamente continuar lançando os dados, no intuito to obter a pontuação inicial. No corpo deste comando de repetição lance os dados e calcule a soma dos pontos obtidos. Esta soma deve ser comparada com a pontuação inicial para decidir se o coma- nod de repetição deve terminar ou não (ele deve terminar quando a soma for 7 ou qando a soma for igual à pontuação inicial). Dica 3: As únicas interaçoes com o usuáro (jo- gador) poderão ser para solicitar que ele tecle ENTER para lançar os dados, exibir os pontos obtidos em cada lançamento juntamente com a soma (pontuação), e exibir o resultado final (ga- nhou ou perdeu). Para permitir que o usuário tecle ENTER, pode-se utilizar a função scanf: scanf("%*c"); Dica 4: Exemplos de possíveis execuções do programa: Craps v1.0 ------------------------------------- Tecle ENTER para lançar os dados Faces dos dados: 1 e 6 Pontuação: 7 Você ganhou. Parabéns! Craps v1.0 ------------------------------------- Tecle ENTER para lançar os dados Faces dos dados: 6 e 6 Pontuação: 12 CRAPS! Você perdeu. Sinto muito! Craps v1.0 ------------------------------------- Tecle ENTER para lançar os dados Faces dos dados: 3 e 3 Pontuação: 6 Tecle ENTER para lançar os dados novamente Faces dos dados: 1 e 6 Pontuação: 7 Você perdeu. Sinto muito! 3
  • 4. Craps v1.0 ------------------------------------- Tecle ENTER para lançar os dados Faces dos dados: 4 e 4 Pontuação: 8 Tecle ENTER para lançar os dados novamente Faces dos dados: 3 e 1 Pontuação: 4 Tecle ENTER para lançar os dados novamente Faces dos dados: 6 e 2 Pontuação: 8 Você ganhou. Parabéns! 4