Voltar ao inícioComputação · 9º ano · Mudar de matéria
Começar grátis
Apontamentos

Exercícios: O processo de desenvolvimento

Pratica★☆☆
Estas fases do desenvolvimento de um programa estão fora de ordem: (a) testar o programa com diferentes dados, (b) editar o código-fonte, (c) depurar os erros…

Estas fases do desenvolvimento de um programa estão fora de ordem: (a) testar o programa com diferentes dados, (b) editar o código-fonte, (c) depurar os erros encontrados, (d) executar o programa. Ordene-as de forma razoável e explique o que se faz em cada uma, levando em conta que, ao testar, pode ser necessário voltar atrás.

Resolver
Pratica★☆☆
Explique o que é um «bug» em um programa e o que é depurar. Dê um exemplo simples de erro que o programa de um caixa eletrônico poderia ter e que consequência teria para…

Explique o que é um «bug» em um programa e o que é depurar. Dê um exemplo simples de erro que o programa de um caixa eletrônico poderia ter e que consequência teria para o usuário.

Resolver
Pratica★☆☆
A figura mostra o ciclo de trabalho do desenvolvimento de um programa, mas uma de suas etapas está coberta por um ponto de interrogação, como mostra a figura. Indique…

A figura mostra o ciclo de trabalho do desenvolvimento de um programa, mas uma de suas etapas está coberta por um ponto de interrogação, como mostra a figura.

Editar o código Executar e testar funciona bem? ? Publicar o programa não sim

Indique qual etapa falta no ciclo, em que ela consiste e por que a seta do «não» devolve o trabalho à edição do código.

Resolver
Pratica★☆☆
Explique o que é uma mensagem de rastreamento ou registro (log) em um programa e como ela ajuda a encontrar um erro (permite ver por onde o programa passou e com que…

Explique o que é uma mensagem de rastreamento ou registro (log) em um programa e como ela ajuda a encontrar um erro (permite ver por onde o programa passou e com que valores).

Resolver
Pratica★☆☆
Os programas têm versões (1.0, 1.1, 2.0...). Explique para que serve guardar versões do código e o que se pode fazer se a última versão funcionar pior que a anterior.

Os programas têm versões (1.0, 1.1, 2.0...). Explique para que serve guardar versões do código e o que se pode fazer se a última versão funcionar pior que a anterior.

Resolver
Pratica★☆☆
Explique o que é um caso de teste e escreva dois casos para um programa que soma dois números: um com valores normais e outro com algum valor especial, indicando a…

Explique o que é um caso de teste e escreva dois casos para um programa que soma dois números: um com valores normais e outro com algum valor especial, indicando a entrada e o resultado esperado de cada um.

Resolver
Pratica★☆☆
A documentação acompanha o programa. Explique quais duas coisas ela deveria explicar no mínimo (o que o programa faz e como se usa) e por que um programa sem…

A documentação acompanha o programa. Explique quais duas coisas ela deveria explicar no mínimo (o que o programa faz e como se usa) e por que um programa sem documentação «envelhece» mal quando uma equipe trabalha nele.

Resolver
Pratica★☆☆
Distinga entre um erro que aparece na compilação (o programa nem sequer inicia) e um erro que aparece na execução (inicia, mas falha com certos dados), com um exemplo de…

Distinga entre um erro que aparece na compilação (o programa nem sequer inicia) e um erro que aparece na execução (inicia, mas falha com certos dados), com um exemplo de cada tipo.

Resolver
Pratica★★☆
Explique a diferença entre um erro de sintaxe e um erro de lógica, com um exemplo de cada um em um programa que calcula a média de três notas. Qual dos dois tipos impede…

Explique a diferença entre um erro de sintaxe e um erro de lógica, com um exemplo de cada um em um programa que calcula a média de três notas. Qual dos dois tipos impede a execução do programa e qual permite executá-lo, mas dá resultados incorretos?

Resolver
Pratica★★☆
Um programa que divide dois números funciona bem em quase todos os testes, mas falha quando o divisor é 0. Explique o que são valores-limite ou casos especiais nos…

Um programa que divide dois números funciona bem em quase todos os testes, mas falha quando o divisor é 0. Explique o que são valores-limite ou casos especiais nos testes, por que é preciso testá-los sempre e cite outros dois valores com os quais você testaria esse programa.

Resolver
Pratica★★☆
Explique o que é a modularização de um programa (dividi-lo em funções ou módulos) e analise duas vantagens que ela traz quando o desenvolvimento é feito por uma equipe…

Explique o que é a modularização de um programa (dividi-lo em funções ou módulos) e analise duas vantagens que ela traz quando o desenvolvimento é feito por uma equipe de várias pessoas: pense na divisão do trabalho, nos testes e na localização de erros.

Resolver
Pratica★★☆
Um laço de um programa nunca para. Explique onde você colocaria mensagens de saída temporárias para diagnosticá-lo (dentro do laço, mostrando a variável de controle a…

Um laço de um programa nunca para. Explique onde você colocaria mensagens de saída temporárias para diagnosticá-lo (dentro do laço, mostrando a variável de controle a cada volta) e o que observaria nessas mensagens para encontrar a causa.

Resolver
Pratica★★☆
Para testar um programa que aplica um desconto a pessoas de 65 anos ou mais, defina três casos de teste: um com um valor normal, um com o valor-limite exato e um com um…

Para testar um programa que aplica um desconto a pessoas de 65 anos ou mais, defina três casos de teste: um com um valor normal, um com o valor-limite exato e um com um valor errôneo (idade negativa ou impossível), com o resultado esperado de cada um. Justifique suas escolhas.

Resolver
Pratica★★☆
Explique o que é refatorar (melhorar o código sem mudar o que ele faz) e descreva duas refatorações típicas (renomear variáveis com nomes claros, extrair uma função a…

Explique o que é refatorar (melhorar o código sem mudar o que ele faz) e descreva duas refatorações típicas (renomear variáveis com nomes claros, extrair uma função a partir de código repetido), com um exemplo de cada uma.

Resolver
Pratica★★☆
Um trecho de código usa as variáveis x, y2 e zzz para guardar o preço, o imposto e o total. Reescreva esses nomes de forma significativa e explique por que a escolha de…

Um trecho de código usa as variáveis x, y2 e zzz para guardar o preço, o imposto e o total. Reescreva esses nomes de forma significativa e explique por que a escolha de nomes é uma ferramenta contra os erros (o código se autodocumenta).

Resolver
Pratica★★☆
Duas pessoas de uma equipe editam ao mesmo tempo o mesmo arquivo do projeto e, ao unir as alterações, aparece um conflito. Explique o que é um conflito de mesclagem,…

Duas pessoas de uma equipe editam ao mesmo tempo o mesmo arquivo do projeto e, ao unir as alterações, aparece um conflito. Explique o que é um conflito de mesclagem, como se resolve (revisar ambas as versões e decidir) e que dois hábitos de trabalho em equipe o previnem (dividir o trabalho por módulos, integrar as alterações com frequência).

Resolver
Pratica★★★
No sistema de cobrança de uma cooperativa escolar, detectou-se que, ao emitir a fatura mensal, o total a pagar de alguns sócios está errado. Você dispõe dos seguintes…

No sistema de cobrança de uma cooperativa escolar, detectou-se que, ao emitir a fatura mensal, o total a pagar de alguns sócios está errado. Você dispõe dos seguintes registros do sistema:

  • Sócio 101: 2 compras de 15,00 reais -> Total cobrado: 30,00 reais (esperado: 30,00 reais).

  • Sócio 102: 1 compra de 50,00 reais com desconto promocional de 10 % (5,00 reais) e taxa de gestão de 3,00 reais -> Total cobrado: 47,50 reais (esperado: 48,00 reais).

  • Sócio 103: 1 compra de 20,00 reais e devolução de 1 artigo de 5,00 reais (-5,00 reais) -> Total cobrado: 25,00 reais (esperado: 15,00 reais).

  • Formule uma hipótese justificada sobre a falha lógica ou de ordem das operações que explica o erro no Sócio 102 e no Sócio 103.

  • Elabore a estratégia de depuração para confirmar as hipóteses: indique quais dados de teste mínimos você introduziria para isolar a falha, em que pontos do fluxo colocaria pontos de interrupção (breakpoints) e quais variáveis concretas deveria inspecionar passo a passo.

Resolver
Pratica★★★
Elabore um plano de testes para um programa que pede dois números e mostra a divisão deles: faça uma tabela com pelo menos seis casos de teste (pares de valores de…

Elabore um plano de testes para um programa que pede dois números e mostra a divisão deles: faça uma tabela com pelo menos seis casos de teste (pares de valores de entrada, incluindo valores normais, limite e errôneos), o resultado esperado de cada um e o que o programa deveria fazer se a entrada não for válida. Justifique a escolha de cada caso.

Resolver
Pratica★★★
A intranet da escola implementa um módulo de autenticação com os seguintes requisitos: Nome de usuário: de 4 a 12 caracteres alfanuméricos, insensível a…

A intranet da escola implementa um módulo de autenticação com os seguintes requisitos:

  • Nome de usuário: de 4 a 12 caracteres alfanuméricos, insensível a maiúsculas/minúsculas.

  • Senha: entre 8 e 16 caracteres, sensível a maiúsculas/minúsculas, com pelo menos um dígito e um caractere especial.

  • Segurança: bloqueio temporário da conta durante 15 minutos após três tentativas falhas consecutivas.

Elabore um plano de testes rigoroso por meio de uma tabela com pelo menos seis casos de teste criados por você. Para cada caso, deve especificar: identificador, valores de entrada (usuário e senha), estado prévio do sistema, resultado esperado e qual risco específico de lógica, fronteira ou segurança está sendo validado.

Resolver
Pratica★★★
Um grupo de três estudantes vai desenvolver durante dez semanas um aplicativo de controle de presença para a escola. Para evitar atrasos e entregas fracassadas de última…

Um grupo de três estudantes vai desenvolver durante dez semanas um aplicativo de controle de presença para a escola. Para evitar atrasos e entregas fracassadas de última hora, é preciso estruturar a metodologia de trabalho da equipe:

  1. Elabore um cronograma organizado em quatro marcos ou entregáveis verificáveis, explicando quais critérios objetivos devem ser cumpridos antes de autorizar a passagem para o marco seguinte.

  2. Defina um protocolo formal de revisão por pares (code review): estabeleça quem revisa o código de quem, qual lista de verificação de qualidade mínima deve ser superada antes de aceitar qualquer alteração e como os desacordos são gerenciados.

  3. Estabeleça e justifique uma política de «congelamento de código» (code freeze): em que semana deve ser ativada, que tipo de modificações ficam terminantemente proibidas a partir desse momento e quais tarefas exclusivas a equipe deve assumir até a entrega final.

Resolver
Pratica★★★
Desafio do tema. Como analista júnior de software, você vai criar um script em Python (pode usar um ambiente web gratuito como o Replit) que avalie o custo energético…

Desafio do tema. Como analista júnior de software, você vai criar um script em Python (pode usar um ambiente web gratuito como o Replit) que avalie o custo energético diário para promover a economia doméstica.

Siga estas três fases:

  1. Coleta de dados: Acesse o site da Agência Nacional de Energia Elétrica (ANEEL) e registre a tarifa oficial ($\text{R\$}\ /\text{kWh}$) de $6$ faixas horárias distintas do dia de hoje.

  2. Projeto e codificação: Aplique o processo de desenvolvimento de software. Esboce primeiro o algoritmo e transfira-o para Python. O programa deve armazenar os dados em uma lista, usar um laço iterativo para calcular o custo médio diário e empregar condicionais (if-else) que emitam alertas quando o preço superar o limiar de $0,18$ reais/kWh.

  3. Depuração e produto final: Realize testes com valores limite e corrija falhas de execução. Redija um relatório breve que inclua o código limpo e comentado, uma captura do resultado no console e duas propostas de consumo eficiente para a sua casa com base nos seus dados.

Será avaliado:

  • Rigor no processo de desenvolvimento (projeto algorítmico prévio, codificação textual e depuração).

  • Uso correto de estruturas de controle (sequenciais, condicionais e iterativas) e da sintaxe da linguagem.

  • Precisão no tratamento de dados reais e viabilidade das conclusões energéticas.

Resolver