5  Problemas variados com repetições e condicionais

\(\newcommand\Id[1]{\mbox{\textit{#1}}}\)
[Problema #0031]

Em uma competição de natação, as categorias são determinadas segundo a idade dos competidores.

Categorias:

  • Infantil A: até 4 anos;
  • Infantil B: 5 e 6 anos;
  • Infantil C: 7 a 10 anos;
  • Juvenil A: 11 a 13 anos;
  • Juvenil B: 14 a 17 anos;
  • Sênior: 18 ou mais anos.

O número de vagas total para a competição é 200, sem separação entre as categorias. Embora tenha tenham sido preenchidas todas as vagas, houve uma preocupação grande quanto às categorias Infantil A e Sênior, temendo que não houvesse atletas suficientes para elas.

Escreva um algoritmo completo para processar a idade de todos os participantes e determinar a quantidade de nadadores pertencentes ao Infantil A e Sênior.

[Problema #0032]

Um sistema monitora a pressão de uma caldeira registrando uma medida a cada cinco minutos. Como o sistema funciona continuamente, os dados são registrados diariamente, com a primeira medida a 0h e a última às 23h55min.

Escreva um algoritmo para processar todos os dados colhido em um dia e determinar a a pressão média nesse período.

[Problema #0033]

É preciso processar o resultado de uma pesquisa de opinião para a qual era possível escolher entre sim, não e não sei.

Escreva um algoritmo para processar uma sequência de respostas (com mínimo de uma resposta) e determinar as porcentagens de cada categoria.

Dica: Represente as comparações usando texto em nível alto de abstração (exemplo: “se a resposta foi sim, então…”).

[Problema #0034]

Um relatório de gastos é apresentado mensalmente ao gerente de uma empresa. Nesse relatório constam, logo no início, a quantidade de despesas individuais e, seguindo a essa informação, vêm os valores em R$ de cada gasto realizado. Deseja-se saber quantos desses valores são superiores a R$1000,00.

Escreva um algoritmo para processar os dados descritos e apresentar a quantidade desejada e a porcentagem desta em relação ao número total de gastos realizados.

[Problema #0035]

A Universidade promoveu um um show de música folclórica em seu Anfiteatro principal, o qual tem capacidade para 400 pessoas. Os ingressos foram grátis e distribuídos com antecedência. Na noite do espetáculo, todos os assentos foram ocupados.

Para colher informações sobre o público participante, foi perguntado a cada ingressante sua identidade de gênero e sua idade. Os gêneros foram anotados da seguinte forma: 1 - cisgênero; 2 - transgênero e 3 - não binário.

Os dados de interesse para a análise incluem:

  • as porcentagens de cada grupo em relação ao total;
  • as idades médias de cada grupo.

Escreva um algoritmo para processar uma sequência de informações que consiste, para cada um dos presentes no show, no número referente ao seu grupo e sua idade. O pseudocódigo deve apresentar as porcentagens indicadas e as médias que existirem.

 7.2

[Problema #0036]

Escreva um algoritmo para, a partir de um valor em \(\mathbb{Z}^*\), apresentar todos seus divisores e a soma destes divisores.

 7.13

 7.3

[Problema #0037]

Considere o seguinte problema:

Escreva um algoritmo para processar uma sequência indefinida e não vazia de valores inteiros (todos positivos) e determinar o valor máximo. A sequência é terminada por um valor sentinela igual a -1.

Para esse problema, foi apresentado o seguinte algoritmo:

Essa solução, porém, contém um erro de lógica. Identifique-o e proponha a correção.

 7.4

[Problema #0038]

Adson Biardeyson da Gama e Rafaela Xiomara Corocher são investidores.

Adson tem uma aplicação com valor atual de R$12.000,00. Essa aplicação rende 1,2% de juros ao mês.

Rafaela, por sua vez, tem uma aplicação de R$11.500,00, cujo rendimento mensal é de 1,9%.

Escreva um algoritmo que apresente a evolução simultânea dos saldos de ambas as aplicações mês a mês (incluindo o mês inicial), até que a aplicação de Rafaela supere a de Adson. O número de meses decorridos até esta situação deve também ser apresentado.

Para referência, o algoritmo deveria produzir um resultado como o seguinte:

    12000.00 11500.00
    12144.00 11718.50
    12289.73 11941.15
    12437.20 12168.03
    12586.45 12399.23
    12737.49 12634.81
    12890.34 12874.87
    13045.02 13119.50
    7 meses
[Problema #0039]

Zana Geraldo e Otto de Mattos Oliveira são investidores e há um interesse no progresso de aplicações de cada um deles.

Escreva um algoritmo que, a partir dos saldos atuais das duas aplicações e as respectivas taxas de juros mensais, apresente a evolução simultânea dos saldos de ambas as aplicações mês a mês (incluindo o mês inicial), até que a aplicação de Otto supere a de Zana ou até que tenham transcorridos 12 meses. O número de meses decorridos deve ser apresentado no final.

[Problema #0042]

Existe um grupo de voluntários para um estudo clínico, perfazendo 30 pessoas. Para cada uma delas foram coletadas diversas informações, entre elas a idade.

Escreva um algoritmo que, a partir da sequência das 30 idades, apresente a idade máxima e a quantidade de pessoas que possuem esta idade.

 7.14

[Problema #0055]

Uma instituição de ensino faz o controle de desempenho dos alunos usando conceitos, como A, B, C etc. no lugar nas notas numéricas.

Para que cálculos de médias possam ser feitos usando os conceitos, eles precisam ser convertidos para valores numéricos e o resultado convertido para conceito novamente.

Em particular, a instituição possui a seguinte associação entre conceitos e notas:

Conceito Valor numérico
A 10,0
B 8,5
C 6,5
D 5,5
E 3,0
F 0,0

A conversão de nota numérica para conceito obedece à seguinte associação

Intervalo Conceito
\(n > 9\) A
\(8{,}0 < n \leq 9{,}0\) B
\(6{,}0 < n \leq 8{,}0\) C
\(4{,}0 < n \leq 6{,}0\) D
\(0{,}0 < n \leq 4{,}0\) E
\(n = 0{,}0\) F

É necessário que um professor obtenha a média numérica de uma turma com 30 alunos, sendo que as informações disponíveis são os conceitos de cada um deles.

Escreva um algoritmo para, a partir de 30 conceitos, apresentar a média numérica referente a esses conceitos.

[Problema #0069]

Um número inteiro é comumente escrito na base 10. Assim, o número \(2601\) pode ser entendido como \({1 \times 10^0} + {0 \times 10^1} + {6 \times 10^2} + {2 \times 10^3}\).

Escreva um algoritmo que decomponha qualquer valor inteiro positivo em suas potências de 10 (começando pelas unidades; \(10^0\)). A solução deve deixar claros os cálculos usados para separar o valor em suas partes relevantes.

Como exemplo, para 1003, apresentar

3 x 10^0

0 x 10^1

0 x 10^2

1 x 10^3

[Problema #0070]

O palíndromo de um número é aquele que possui o mesmo valor, mesmo invertendo a ordem de seus dígitos. Assim, 373 é um palíndromo. Também são exemplos: 1001, 395593 e 1230321.

Escreva um algoritmo que, a partir de um valor inteiro positivo qualquer, gere um palíndromo por espelhamento, o qual deve ser armazenado em uma variável também numérica. Indique claramente os cálculos feitos.

Por exemplo, para 15, gerar 1551; para 773, gerar 773377, para 2, gerar 22.

Embora 15 possa também gerar o palíndromo 151 (sem a repetição da unidade), essa possibilidade não deve ser tratada.