Módulo 02 — Lógica e Algoritmos • 1º Semestre

Demonstrações práticas e código-fonte completo comentado para fundamentar os conceitos de Scratch: Programação Visual em Blocos e o Modelo IPO.


🗺️ Fluxo de Execução e Rastreamento dos Blocos

flowchart TD
    EV["🟨 Quando ⚑ for clicado"] --> IN1["🟦 Pergunte [Digite a 1ª nota:]"]
    IN1 --> IN2["🟦 Pergunte [Digite a 2ª nota:]"]
    IN2 --> PROC["🟧 Mude [media v] para ((n1 + n2) / 2)"]
    PROC --> DEC{"🟨 se < media >= 6 > então"}
    DEC -- Sim --> OUT1["🟪 Diga [Situação: APROVADO! 🎉]"]
    DEC -- Não --> OUT2["🟪 Diga [Situação: REPROVADO! 📚]"]
    
    style EV fill:#ffea00,stroke:#f57f17,stroke-width:2px,color:#000
    style IN1 fill:#4fc3f7,stroke:#0288d1,stroke-width:2px,color:#000
    style IN2 fill:#4fc3f7,stroke:#0288d1,stroke-width:2px,color:#000
    style PROC fill:#ffb74d,stroke:#f57c00,stroke-width:2px,color:#000
    style DEC fill:#ffd54f,stroke:#ff8f00,stroke-width:2px,color:#000
    style OUT1 fill:#81c784,stroke:#388e3c,stroke-width:2px,color:#000
    style OUT2 fill:#e57373,stroke:#d32f2f,stroke-width:2px,color:#000

💻 Simulação Textual dos Blocos do Scratch em Python

Abaixo está a implementação funcional que simula o comportamento dos blocos do Scratch 3.0 no console.

# -*- coding: utf-8 -*-
"""
Simulação Textual do Comportamento do Ator no Scratch 3.0 (Modelo IPO).
"""

class ScratchSprite:
    def __init__(self, nome: str):
        self.nome = nome
        self.variaveis = {}

    def perguntar_e_esperar(self, pergunta: str) -> str:
        print(f"[{self.nome}] 💭 {pergunta}")
        resposta = input("  > [Usuário digita]: ")
        return resposta

    def dizer(self, mensagem: str, segundos: int = 2) -> None:
        print(f"[{self.nome}] 💬 \"{mensagem}\" (durante {segundos}s)")

if __name__ == "__main__":
    print("=== SIMULAÇÃO DIDÁTICA DO SCRATCH 3.0 (MODELO IPO) ===")
    gato = ScratchSprite("Gato do Scratch")
    
    print("\n[Evento: Quando a bandeira verde for clicada ⚑]\n")
    
    # 1. Entrada de Dados (Sensores)
    nome = gato.perguntar_e_esperar("Digite o nome do aluno:")
    nota1 = float(gato.perguntar_e_esperar("Digite a primeira nota:"))
    nota2 = float(gato.perguntar_e_esperar("Digite a segunda nota:"))
    
    # 2. Processamento (Operadores e Variáveis)
    media = (nota1 + nota2) / 2.0
    
    # 3. Saída de Dados (Aparência)
    gato.dizer(f"A média do(a) aluno(a) {nome} é: {media:.2f}", segundos=3)
    
    # 4. Decisão Condicional (Controle)
    if media >= 6.0:
        gato.dizer("Situação: APROVADO! 🎉", segundos=3)
    else:
        gato.dizer("Situação: REPROVADO! 📚", segundos=3)

⚙️ Instruções de Compilação e Execução

Para compilar e executar o código acima em seu terminal, utilize o comando:

python scratch_simulation.py

🖥️ Saída Esperada no Console

Ao executar o programa, o resultado formatado no terminal deve ser:

=== SIMULAÇÃO DIDÁTICA DO SCRATCH 3.0 (MODELO IPO) ===

[Evento: Quando a bandeira verde for clicada ⚑]

[Gato do Scratch] 💭 Digite o nome do aluno:
  > [Usuário digita]: Maria
[Gato do Scratch] 💭 Digite a primeira nota:
  > [Usuário digita]: 7.5
[Gato do Scratch] 💭 Digite a segunda nota:
  > [Usuário digita]: 8.5
[Gato do Scratch] 💬 "A média do(a) aluno(a) Maria é: 8.00" (durante 3s)
[Gato do Scratch] 💬 "Situação: APROVADO! 🎉" (durante 3s)