🐱 Exemplos: Scratch: Programação Visual em Blocos
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)