Código que podes executar

Exemplos de Python, C, C++, Java, Haskell, Prolog, PHP e SQL. Pré-visualizações web, DartPad e Ripes.

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Os exemplos mais leves mostram o resultado ao entrarem no ecrã. Depois de mudares o código, carrega em Executar ou usa Ctrl+Enter (⌘+Enter no Mac). O primeiro arranque descarrega o motor da linguagem. Os editores de código correm no teu navegador. O DartPad, mais abaixo, usa um serviço de compilação externo.

Python

Este programa soma os primeiros cinco números naturais. Muda o limite do range e compara o resultado.

Python
numeros = range(1, 6)
print(sum(numeros))
Resultado

Executa o código para ver a saída e os gráficos.

Um exemplo com vários ficheiros

Aqui queremos experimentar o comprimento de um vetor, não aprender a usar NumPy. O editor mostra as coordenadas e a chamada a norma. Com (3,4)(3,4), o comprimento é 32+42=5\sqrt{3^2+4^2}=5. Muda para (6,8)(6,8) e confirma que duplica.

Ficheiros do exemplo
Norma do vetor
from apoio import norma

x = 3
y = 4
print(norma([x, y]))
from numpy.linalg import norm

def norma(vetor):
    return float(norm(vetor))
Resultado

Executa o código para ver a saída e os gráficos.

As tabs por cima do editor mostram todos os ficheiros. O ficheiro principal é o que corre; apoio.py fica disponível para importar e também podes editar. Repor código restaura todos os ficheiros do exemplo.

C

printf escreve o resultado. Aqui, o ciclo soma os números de 1 a 5 e mostra 15.

C
#include <stdio.h>

int main(void) {
    int soma = 0;
    for (int n = 1; n <= 5; n++) soma += n;
    printf("%d\n", soma);
    return 0;
}
Resultado

Executa o código para ver a saída e os gráficos.

C++

Os dados de entrada já contêm o número 5. O programa lê esse número e calcula o quadrado. Podes mudar ambos antes de executar.

C++
#include <iostream>

int main() {
    int n;
    std::cin >> n;
    std::cout << n * n << "\n";
}
Resultado

Executa o código para ver a saída e os gráficos.

Java

Usa a classe Main como ponto de entrada. Este exemplo conta os elementos de uma lista.

Java
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        java.util.List<String> nomes = Arrays.asList("Ana", "Rui", "Inês");
        System.out.println(nomes.size());
    }
}
Resultado

Executa o código para ver a saída e os gráficos.

JavaScript

Aqui, filter guarda os números pares. Este editor executa JavaScript sem a página web. Para experimentar o DOM, usa o exemplo de HTML abaixo.

JavaScript
const numeros = [1, 2, 3, 4, 5, 6];
console.log(numeros.filter(n => n % 2 === 0).join(", "));
Resultado

Executa o código para ver a saída e os gráficos.

SQLite e PostgreSQL

Cada execução começa com uma base de dados vazia. Cria a tabela, insere os dados e faz a consulta no mesmo bloco.

CREATE TABLE notas (nome TEXT, valor INTEGER);
INSERT INTO notas VALUES ('Ana', 16), ('Rui', 14), ('Inês', 18);
SELECT nome, valor FROM notas WHERE valor >= 16;
Resultado

Executa a consulta para ver as tabelas.

PostgreSQL tem tipos e funções próprios. Aqui, NUMERIC(8,2) guarda preços decimais e RETURNING devolve a linha inserida. Os dois motores usam bases em memória que começam vazias em cada execução.

CREATE TABLE produtos (
  id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  nome TEXT NOT NULL,
  preco NUMERIC(8,2) NOT NULL
);
INSERT INTO produtos (nome, preco) VALUES ('Livro', 12.30)
RETURNING id, nome, preco;
Resultado

Executa a consulta para ver as tabelas.

Haskell

filter even guarda os pares; map (^2) calcula os seus quadrados. Muda a lista e compara os resultados. Este motor usa GHC e aceita um programa com main, sem entrada interativa.

Haskell
main :: IO ()
main = print (map (^2) (filter even [1..6]))
Resultado

Executa o código para ver a saída e os gráficos.

Prolog

Os factos dizem quem é progenitor de quem. A regra avo liga duas gerações. findall junta as respostas numa lista, que aqui é [ana].

Prolog
progenitor(ana, rui).
progenitor(rui, ines).

avo(X, Y) :- progenitor(X, Z), progenitor(Z, Y).

main :- findall(X, avo(X, ines), Avos), writeln(Avos).
Resultado

Executa o código para ver a saída e os gráficos.

O motor é SWI-Prolog. O código comum funciona, mas as bibliotecas específicas de SICStus, usado em PFL, podem ser diferentes.

PHP

array_sum soma os valores do array. count conta-os. A divisão dá a média, 16.

PHP
<?php
$notas = [14, 16, 18];
echo array_sum($notas) / count($notas), "\n";
Resultado

Executa o código para ver a saída e os gráficos.

HTML, CSS e JavaScript

O botão muda o texto do parágrafo. Abre CSS e JavaScript para veres como. Carrega em Pré-visualizar depois de fazeres alterações.

HTML / CSS / JavaScript
Código a editar
HTML
CSS e JavaScript
CSS
JavaScript
Pré-visualização

A preparar a pré-visualização…

Consola
Sem mensagens.

Dart e Flutter

Para exemplos de ES, podes usar o DartPad. Abre o menu de exemplos do próprio editor para escolher Dart ou Flutter.

Dart e FlutterAbrir DartPad

O DartPad envia o código para o serviço de compilação da Google.

Assembly RISC-V

Este programa soma os números de 1 a 5 no registo t0 e mostra 15. addi incrementa o contador; ble repete o ciclo enquanto o contador não ultrapassar 5.

RISC-V
.text
.globl main
main:
  li t0, 0
  li t1, 1
  li t2, 5
soma:
  add t0, t0, t1
  addi t1, t1, 1
  ble t1, t2, soma
  mv a0, t0
  li a7, 1
  ecall
  li a0, 10
  li a7, 11
  ecall
  li a7, 10
  ecall
Resultado

Executa o código para ver a saída e os gráficos.

O editor usa RISC-V de 32 bits e as chamadas de sistema do RARS. ecall com a7 = 1 escreve um inteiro, a7 = 11 escreve um carácter e a7 = 10 termina. As chamadas de sistema são convenções do simulador, não instruções adicionais de RISC-V.

Para veres como cada instrução altera os registos e a memória, abre o Ripes e avança uma instrução de cada vez.

Assembly RISC-VAbrir Ripes

Simula um processador RISC-V, com registos e execução passo a passo. Abre numa nova janela.

Usar numa página

Numa página MDX, importa CodePlayground.astro e passa a linguagem e o código. O campo input é opcional. Quando o exemplo precisa de dados ou de código auxiliar, passa ficheiros em files: o principal corre e os outros ficam em tabs editáveis.

import CodePlayground from '../../../components/CodePlayground.astro';

<CodePlayground language="python" code={'print(2 + 3)'} />

Os exemplos servem para programas pequenos. Python inclui a biblioteca padrão e pacotes do catálogo Pyodide, como NumPy, pandas e Matplotlib. C usa C17, C++ usa C++17, Java usa Java 8 e PHP usa PHP 8.4. Estes editores não substituem o ambiente de uma cadeira: não incluem Minix, processos POSIX, MPI ou Laravel. Consulta as linguagens e os limites para escolher o ambiente. O botão Parar termina a execução.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.