Filtrar


Questões por página:
Um método recursivo é aquele que chama a si mesmo, direta ou indiretamente. Métodos recursivos permitem uma descrição mais clara e concisa dos algoritmos, especialmente quando o problema a ser resolvido pode ser definido em termos recursivos. No entanto, isso não significa que um método recursivo será sempre a melhor opção para resolver um problema (Ziviani, 2012).
O código em Python, a seguir, tem como objetivo calcular, recursivamente, o n-ésimo número de Fibonacci. Esse código é extremamente ineficiente, pois recalcula o mesmo valor várias vezes. Por exemplo, para calcular fib(5) são necessários os valores de fib(4) e fib(3). Entretanto, fib(4) também chama recursivamente fib(3). 
Imagem associada para resolução da questão
Considerando a execução do código apresentado para n = 5, assinale a alternativa que representa CORRETAMENTE o número de chamadas de fib(5), fib(4), fib(3), fib(2) e fib(1), nessa ordem. 
Considere a seguinte situação hipotética:
Uma universidade possui um sistema acadêmico desenvolvido em PHP com framework próprio. Atualmente, o deploy é feito manualmente via FTP (File Transfer Protocol) para o servidor de produção. Em períodos de matrícula, erros de publicação causam indisponibilidade do sistema. A equipe decidiu implementar um pipeline de CI/CD (Integração Contínua/Implantação Contínua). O repositório está no GitLab e os servidores utilizam Linux. É obrigatório garantir: versionamento rastreável, execução automática de testes antes do deploy e controle formal sobre liberações para produção.

Assinale a alternativa que atende de forma CORRETA aos requisitos técnicos e de governança para o novo processo de deploy:
Considere a seguinte situação hipotética:
O sistema acadêmico de uma Universidade utiliza MySQL 8 como banco de dados principal. Durante o período de matrícula, o sistema começou a apresentar lentidão severa e, em alguns momentos, indisponibilidade. Em períodos anteriores de matrícula, foi necessário realizar reinicializações manuais diárias no servidor de banco de dados devido a instabilidades e degradação de desempenho.

Durante a análise, a equipe de Tecnologia da Informação identificou que:
a aplicação executa múltiplas consultas sequenciais ao banco dentro da mesma requisição HTTP (padrão N+1).
algumas transações permanecem abertas por vários segundos.
o número de conexões ativas atinge frequentemente o limite configurado (max_connections).
há aumento significativo de locks em tabelas de pedidos e estoque.

Assinale a alternativa que apresenta a abordagem CORRETA para prevenir o problema de travamento e alta contenção no MySQL, bem como otimizar o desempenho do servidor nesse cenário: 
Considere a seguinte situação hipotética:
Uma equipe está desenvolvendo um sistema de pedidos, utilizando PostgreSQL. Existe uma tabela pedidos com as colunas:

id
cliente_id
valor_total
status
criado_em
atualizado_em

Durante uma auditoria interna, um analista de banco de dados identificou que o campo atualizado_em nem sempre reflete a última modificação do registro, pois a aplicação depende do backend para atualizar esse campo manualmente. Em alguns casos, desenvolvedores esqueceram de atualizar o timestamp em operações de UPDATE, gerando inconsistência nos relatórios.
A equipe decidiu resolver o problema no nível do banco de dados, garantindo que o campo atualizado_em seja atualizado automaticamente sempre que houver alteração no registro.

Assinale a alternativa que apresenta o comando que garante que o campo atualizado_em seja atualizado automaticamente sempre que um registro da tabela pedidos for modificado:
Considere a seguinte situação hipotética:

Uma equipe de desenvolvedores está desenvolvendo uma API REST em Java (Spring Boot) que possui autenticação JWT, integração com banco relacional e deploy automatizado via CI/CD.
Após a identificação de uma vulnerabilidade de validação de entrada que resultou em SQL Injection em ambiente de homologação, a área de segurança recomendou integrar SAST e DAST no processo de desenvolvimento.
Durante a discussão da equipe, surgiram propostas diferentes sobre como combinar essas ferramentas ao pipeline existente.

Assinale a alternativa CORRETA, que implementa SAST e DAST dentro de um modelo DevSecOps: