#include <iostream>
#include <string>
int main() {
std::string nome;
std::cout << "Qual o seu nome? ";
std::cin >> nome;
std::cout << "Olá, " << nome << "!\n";
}Aulas de programação em Markdown
Aulas que compilam.
Escreva a aula em Markdown. Cada bloco de código ganha um ▶ que compila com o g++ de verdade e mostra a saída num terminal, ali mesmo, no telão.
$ trunade aula.mdLendo do teclado
Aperte ▶ e digite seu nome no terminal.
A aula é um arquivo.
Markdown comum, no seu editor. Salvou, a página atualiza.
aula-02.md
## Lendo do teclado
Use `std::cin` para ler da entrada padrão.
```cpp
#include <iostream>
int main() {
int a, b;
std::cin >> a >> b;
std::cout << a + b << "\n";
}
```
```stdin
2 40
```- Programa completo
- Cada bloco tem o seu main() e é compilado do zero, como na prova.
- Entrada de verdade
- Bloco stdin junto com a aula, saída esperada com veredito de juiz, ou cin interativo no terminal.
- Erro é conteúdo
- Erro de compilação inteiro, sinais, tempo limite e código de saída.
O que vem pronto.
- C++, C e Python
- Outras linguagens por configuração, com o compilador e as flags que você quiser.
- Molde escondido
- Declare #include e using namespace std uma vez; cada bloco mostra só o que importa.
- Casos de teste
- Pares stdin/expected com ✓ ou ✗ como no juiz: passou no exemplo, falhou no caso extremo.
- Fórmulas e diagramas
- LaTeX e Mermaid renderizados localmente.
- Perguntas e passos
- Blocos quiz e exercícios com enunciado, dica e solução que roda.
- Feito para o telão
- Índice com T, espaço para a próxima seção, Z amplia um bloco, F para tela cheia.
- Rodar tudo
- R roda todos os blocos com entrada fixa e aponta o que quebrou, antes de entrar na sala.
- PDF e HTML
- Exporte a aula com as saídas; o HTML abre em qualquer lugar e reproduz cada execução no ▶.
- Registro para pesquisa
- Um log local e anônimo de execuções, erros, respostas e seções, para estudar a aula.
- Edite sem medo
- Mude o código durante a aula; o arquivo não muda.
- Offline
- Um binário local, sem CDN, sem conta, sem nuvem.
- Suas fontes
- Tema, largura e fontes de título, texto e código, guardados para todas as aulas.
E o Jupyter?
Ótimo quando o estado entre células é o ponto: dados, gráficos, exploração. Uma aula de C++ pede outra coisa.
| Trunade! | Jupyter | |
|---|---|---|
| Bloco | programa completo, com main() | célula que continua o estado anterior |
| Compilador | o real, com as suas flags | o do kernel (C++ interpretado) |
| Entrada | terminal interativo ou stdin fixo | limitada |
| Saída esperada | veredito por caso, como no juiz | à mão |
| Arquivo | Markdown puro | JSON com saídas embutidas |
Instale e rode.
$ brew install gcc # g++-16 no macOS
$ ./install.sh
$ trunade aula.md