Q. 1 (6.00) - Um aluno de iniciação científica da EST do curso de Engenharia foi a uma fábrica do Polo Industrial efetuar mediçōes para sua pesquisa. Ele observou vários funcionários montando uma certa quantidade de dispositivos eletrônicos, e tomou nota da quantidade produzida e da duraçāo de tempo para produção por cada funcionário. Você deve ajudá lo, projetando um algoritmo para processar as medições observadas. Seu algoritmo recebe como entrada vários valores de cada medição (quantidade de peças e tempo) e, até que o tempo informado seja menor que zero (quantidade de peças correspondente não deve ser considerada), informe:
- Quantidade de pegas produzidas por unidade de tempo;
- Maior quantidade de peças que um funcionário produziu. Informe também o tempo que este funcionário gastou;
- Quantidade total de peças produzidas;
- Quantidade de mediçōes realizadas pelo aluno.
Passo 1
Beleza, aqui o que a questão pede é a criação de um algoritmo que receba várias medições – cada medição vem com “quantidade de peças” e “tempo gasto” – e pare de ler quando o tempo for negativo (essa última medição não entra nos cálculos). No fim, o programa deve informar:
- A taxa de produção (peças por unidade de tempo) para cada medição;
- Qual foi a maior quantidade de peças produzidas por um funcionário e quanto tempo ele levou;
- Quantas peças foram produzidas no total;
- Quantas medições o aluno fez.
Conteúdo envolvido: variáveis, inicialização, laço de repetição (while), condicionais (if), acumuladores e comparadores.
Passo 2
Primeiro, vamos definir e inicializar nossas variáveis. Isso é essencial porque, em programação, usar variável sem valor inicial pode dar ruim.
• pecas: inteiro (número de peças lidas em cada medição)
• tempo: real (tempo gasto nessa medição)
• taxa: real (vamos guardar a razão peças/tempo)
• totalPecas: inteiro, começa em 0, vai acumulando todas as peças
• contador: inteiro, começa em 0, conta quantas medições válidas já rolaram
• maxPecas: inteiro, começa em 0, vai marcar a maior produção
• tempoMax: real, tempo correspondente à maior produção
• pecas: inteiro (número de peças lidas em cada medição)
• tempo: real (tempo gasto nessa medição)
• taxa: real (vamos guardar a razão peças/tempo)
• totalPecas: inteiro, começa em 0, vai acumulando todas as peças
• contador: inteiro, começa em 0, conta quantas medições válidas já rolaram
• maxPecas: inteiro, começa em 0, vai marcar a maior produção
• tempoMax: real, tempo correspondente à maior produção
Teoria rápida: uma variável é um espaço na memória; inicializar significa dar um valor de partida (tipo 0 ou vazio) para evitar lixo de memória.
Passo 3
Agora, a lógica do laço de repetição. A gente vai ler as duas entradas (pecas e tempo) e, enquanto
tempo ≥ 0
, processa; quando tempo < 0
, interrompe.Dentro do laço:
- Calcula a taxa usando a fórmula
- Imprime essa taxa.
- Atualiza o total de peças:
totalPecas ← totalPecas + pecas
- Incrementa o contador de medições:
contador ← contador + 1
- Verifica se essa medição bateu o recorde de peças:
sepecas > maxPecas
então
–maxPecas ← pecas
–tempoMax ← tempo
fim se
Teoria extra:
- O laço
while
(ou “enquanto”) repete um bloco de código enquanto a condição for verdadeira. - Um acumulador (como
totalPecas
) serve para somar vários valores sequenciais. - O comparador
>
nos ajuda a achar máximos.
Passo 4
Quando o
–
–
–
while
terminar (porque lemos um tempo negativo), já temos:–
totalPecas
com a soma de todas as peças válidas,–
contador
com quantas medições rolaram,–
maxPecas
e tempoMax
apontando o maior produtor e seu tempo.Só falta exibir esses quatro resultados finais.
Resposta
Pseudocódigo completo em estilo amigão:
Algoritmo ProcessoDeMedições
// 1. Inicialização
totalPecas ← 0
contador ← 0
maxPecas ← 0
tempoMax ← 0.0
// 2. Primeira leitura
leia(pecas, tempo)
// 3. Loop principal
enquanto tempo ≥ 0 faça
// 3.1. Cálculo da taxa
taxa ← pecas / tempo // fórmula: taxa = pecas ÷ tempo
escreva("Taxa de produção: ", taxa)
// 3.2. Atualiza acumuladores
totalPecas ← totalPecas + pecas
contador ← contador + 1
// 3.3. Verifica recorde de produção
se pecas > maxPecas então
maxPecas ← pecas
tempoMax ← tempo
fim se
// 3.4. Nova leitura pra checar condição de parada
leia(pecas, tempo)
fimenquanto
// 4. Saídas finais
escreva("Maior produção: ", maxPecas, " peças em ", tempoMax, " unidades de tempo")
escreva("Total de peças produzidas: ", totalPecas)
escreva("Número de medições realizadas: ", contador)
FimAlgoritmo