Aula 03 - Estruturas de Decisão Condicional e Controle de Fluxo
Navegação Rápida
📍 Disciplina: 01 Lógica de Programação | 🗺️ Área: 06 Computação e Telecomunicações | 🏠 Hub Principal
Metadados da Aula
- Área: 06 Computação e Telecomunicações
- Carga Horária Equivalente: 4 horas-aula teóricas e práticas
- Pré-requisitos: Aula 02 - Tipos e Operadores
- Palavras-chave: Estruturas Condicionais, Avaliação de Curto-Circuito, Complexidade Ciclomática de McCabe, Grafo de Fluxo de Controle, Casamento de Padrões Estrutural (match-case), PRODIST Módulo 8, Função ANSI 25
📌 Sumário da Aula
- 🧭 1. Contextualização e Objetivos de Aprendizagem
- 📋 2. Sumário Executivo dos Tópicos
- ⚡ 3. Fundamentação Teórica e Modelagem Matemática
- 🖼️ 4. Diagrama Técnico Integrado
- 💻 5. Implementação Prática em Engenharia Elétrica
- 📝 6. Banco de Questões de Fixação e Concursos Auditados
- 📚 7. Referências Bibliográficas e Normas Técnicas
🧭 1. Contextualização e Objetivos de Aprendizagem
O comportamento inteligente de qualquer sistema cibernético reside na sua habilidade de bifurcar a execução de tarefas a partir da interpretação de sinais do ambiente físico. Em subestações de energia elétrica, centros de controle operacional e plantas de geração eólica ou solar, decisões críticas — como o disparo instantâneo de disjuntores por curto-circuito, a partida de grupos geradores de emergência ou o alívio de carga por subtensão — dependem da avaliação determinística e segura de proposições lógicas encadeadas.
Esta aula estuda a formalização matemática das estruturas de desvio condicional (if, elif, else e match-case), as propriedades assintóticas e de segurança proporcionadas pela técnica de avaliação de curto-circuito (short-circuit evaluation), e introduz a métrica de engenharia de software de Complexidade Ciclomática de McCabe, fundamental para auditar a confiabilidade de softwares críticos e planejar suítes exaustivas de testes unitários.
Ao término desta aula, o engenheiro será capaz de:
- Projetar árvores de decisão determinísticas e completas, garantindo cobertura total do espaço amostral de variáveis de processo e prevenindo estados indefinidos.
- Aplicar a avaliação de curto-circuito para otimizar o tempo de processamento de CPUs embarcadas e prevenir exceções catastróficas de execução (como divisões por zero ou referências a ponteiros nulos).
- Calcular a métrica de Complexidade Ciclomática de McCabe a partir do Grafo de Fluxo de Controle (), determinando o número de casos de teste necessários para homologação de software conforme normas de segurança funcional.
- Implementar algoritmos modernos de desempacotamento estrutural e tratamento de telemetria utilizando a sintaxe
match-casedo Python 3.10+.
📋 2. Sumário Executivo dos Tópicos
- Bifurcação de Fluxo: Desvio condicional baseado no valor de verdade de predicados booleanos ().
- Curto-Circuito Lógico: Regra de otimização em que o segundo operando é avaliado apenas se o primeiro for insuficiente para determinar o resultado final: em
A and B, se for falso, não é executado; emA or B, se for verdadeiro, não é executado. - Expressão Condicional Ternária: Síntese em uma única linha de atribuição funcional:
x = valor_se_verdadeiro if condicao else valor_se_falso. - Complexidade Ciclomática (): Métrica quantitativa formulada por Thomas McCabe: , representando a quantidade de caminhos linearmente independentes no grafo de fluxo de controle. Define o número mínimo de testes unitários para cobertura de ramos.
- Limites de Risco de McCabe: indica software de baixo risco e alta confiabilidade; denota código perigoso e inaceitável em engenharia de sistemas críticos.
- Casamento de Padrões Estrutural (PEP 634): Estrutura
match-caseque combina inspeção de tipo, desempacotamento de dicionários/tuplas e filtros de guarda (if), substituindo sequências densas deif-elif-else.
⚡ 3. Fundamentação Teórica e Modelagem Matemática
3.1 Álgebra Booleana de Predicados e Estruturas Condicionais
Em lógica de programação, uma estrutura condicional mapeia o estado das variáveis de um sistema em trajetórias distintas de computação. Formalmente, seja o vetor de estado contendo as grandezas elétricas medidas (tensões, correntes, frequências e temperaturas). Um predicado é uma função booleana:
A estrutura canônica encadeada if - elif - else: