Compilador e depurador C# online

Escreva, compile, execute e depure C# online. Use pontos de interrupção, execução passo a passo e inspeção de objetos em uma IDE com vários arquivos, sem Visual Studio.

Bibliotecas pré-instaladas
🚀 350,747 execuções totais (1 este mês)
Saída

Pratique C# com desafios de código

Resolva problemas práticos direto neste editor: rode os testes de exemplo, envie sua solução e receba uma revisão de código por IA.

Todos os desafios de C#
Fácil

Average of Three

Average three whole numbers.

Você vai aprender AritméticaDivisão
BeginnerLearning-pathVariables
Fácil

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Você vai aprender AritméticaValores de retorno
BeginnerLearning-pathVariables
Fácil

Bandido multibraço epsilon-greedy

Equilibre exploração e aproveitamento em um bandido multibraço com seleção de ações epsilon-greedy.

Você vai aprender Explorar ou aproveitarBandidos
Aprendizado por reforçoaiaprendizado de máquina
Ainda sem soluções
Fácil

Distribuição de estados de uma cadeia de Markov

Propague uma distribuição de probabilidade pela matriz de transição de uma cadeia de Markov por um número de passos.

Você vai aprender Cadeias de MarkovProbabilidade
Simulationaimath
Ainda sem soluções
Médio

Iteração de valor

Calcule quanto vale cada estado de um processo de decisão de Markov aplicando repetidamente a atualização de otimalidade de Bellman.

Você vai aprender Equação de BellmanMDPs
Aprendizado por reforçoaiaprendizado de máquina
Ainda sem soluções
Médio

Atualizações de Q-learning

Aplique a atualização do Q-learning a um fluxo de experiências e veja as recompensas voltarem para estados anteriores.

Você vai aprender Q-learningRecompensas descontadas
Aprendizado por reforçoaiaprendizado de máquina
Ainda sem soluções
Médio

Poda alfa-beta

Avalie uma árvore de jogo com minimax e poda alfa-beta, e conte quantas folhas a busca realmente examina.

Você vai aprender Poda alfa-betaBusca em jogos
RecursionTreesai
Ainda sem soluções
Médio

Jogo da velha com minimax

Escolha a jogada perfeita no jogo da velha explorando toda a árvore de jogo com minimax.

Você vai aprender MinimaxÁrvores de jogo
Recursionai
Ainda sem soluções
Médio

Busca A* em uma grade ponderada

Encontre o caminho mais barato por uma grade de custos de terreno com A*, o algoritmo de busca por trás da navegação em jogos e robôs.

Você vai aprender Busca A*Heurísticas
GraphsGridsShortest-pathai
Ainda sem soluções
Médio

Amostragem com temperatura e top-k

Escolha o próximo token como um modelo de linguagem: mantenha os k maiores logits, aplique a temperatura e amostre.

Você vai aprender Geração de textoAmostragem
aiaprendizado de máquina
Ainda sem soluções
Difícil

Autoatenção multi-cabeça

Projete a entrada em consultas, chaves e valores, execute a atenção em várias cabeças em paralelo e combine-as.

Você vai aprender Atenção multi-cabeçaProjeções matriciais
aiaprendizado de máquina
Ainda sem soluções
Médio

Normalização de camada

Normalize cada linha para média 0 e variância 1 e depois escale e desloque, como todo bloco Transformer faz.

Você vai aprender Normalização de camadaTransformers
Redes neuraisaiaprendizado de máquina
Ainda sem soluções

🔷 Sobre este Executor Online de C# / .NET

O CodeUtility C# Executor permite escrever e executar código C# real diretamente no navegador - sem necessidade de instalar, configurar o Visual Studio ou o .NET SDK. Ele é alimentado por um sandbox seguro que oferece suporte ao runtime do .NET e a versões modernas da linguagem C#, incluindo C# 9 e posteriores.

Esta ferramenta usa dotnet-script nos bastidores para compilar e executar seu código com comportamento real do .NET, permitindo experimentar recursos básicos e avançados de C#, como LINQ, async/await, pattern matching e generics.

Você pode testar scripts simples, funções e fluxos de lógica, ou explorar conceitos como classes, structs, herança e interfaces - tudo em um ambiente de codificação limpo e sem distrações.

Seja para aprender C#, testar algoritmos ou experimentar recursos do .NET, o CodeUtility C# Executor oferece uma forma rápida, segura e confiável de executar código C# instantaneamente a partir de qualquer navegador.

Mais do que um executor de código

Use no mesmo executor um editor de vários arquivos, um terminal de execução isolado, bibliotecas específicas do ambiente, espaços de trabalho persistentes, compartilhamento e colaboração em tempo real.

Como usar este executor?

Escolha um ambiente de execução, abra ou crie um arquivo, escreva o código e selecione Executar. A saída aparece no terminal; usuários conectados podem manter arquivos em um espaço de trabalho, instalar bibliotecas e colaborar por meio de compartilhamentos.

  1. Selecione uma versão e edite o arquivo atual ou abra outro arquivo do espaço de trabalho.
  2. Execute o código, forneça dados no terminal quando solicitado e consulte o histórico de execuções salvo.
  3. Use bibliotecas, ferramentas do espaço de trabalho, compartilhamento e chat quando a tarefa exigir mais de um trecho de código.

💡 Fundamentos de C# e Exemplos que Você Pode Testar Acima

1. Declarando Variáveis e Constantes

C# usa declarações de variáveis com tipagem forte. Use const para constantes de compilação e readonly para constantes de tempo de execução.

int age = 30;
double pi = 3.14159;
char grade = 'A';
string name = "Alice";
bool isActive = true;

// Constantes
const int MaxUsers = 100;
const string Company = "CodeUtility";

2. Condicionais (if / switch)

Use if, else if e switch para controle de fluxo.

int x = 2;
if (x == 1)
{
    Console.WriteLine("Um");
}
else if (x == 2)
{
    Console.WriteLine("Dois");
}
else
{
    Console.WriteLine("Outro");
}

switch (x)
{
    case 1:
        Console.WriteLine("Um");
        break;
    case 2:
        Console.WriteLine("Dois");
        break;
    default:
        Console.WriteLine("Outro");
        break;
}

3. Laços

C# oferece os laços for, while e foreach.

for (int i = 0; i < 3; i++)
{
    Console.WriteLine(i);
}

int n = 3;
while (n > 0)
{
    Console.WriteLine(n);
    n--;
}

4. Arrays

Arrays armazenam coleções de tamanho fixo de elementos do mesmo tipo.

int[] numbers = { 10, 20, 30 };
Console.WriteLine(numbers[1]);

5. Manipulação de Listas

Use List<T> para coleções dinâmicas.

List<int> nums = new List<int> { 1, 2, 3 };
nums.Add(4);
nums.Remove(2);

foreach (int n in nums)
{
    Console.Write(n + " ");
}

6. Entrada/Saída no Console

Use Console.WriteLine e Console.ReadLine para I/O básico.

Console.Write("Digite seu nome: ");
string name = Console.ReadLine();
Console.WriteLine($"Olá, {name}!");

7. Funções

Defina métodos usando um tipo de retorno, nome e parâmetros.

int Add(int a, int b)
{
    return a + b;
}

Console.WriteLine(Add(3, 4));

8. Dicionários

Dictionary<TKey, TValue> armazena pares chave-valor.

Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Alice"] = 30;
Console.WriteLine(ages["Alice"]);

9. Tratamento de Exceções

Trate erros em tempo de execução usando try, catch e finally.

try
{
    throw new Exception("Algo deu errado");
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

10. Entrada/Saída de Arquivos

Use File e StreamReader/StreamWriter para operações com arquivos.

File.WriteAllText("file.txt", "Olá, arquivo");
string text = File.ReadAllText("file.txt");
Console.WriteLine(text);

11. Manipulação de Strings

Strings em C# oferecem métodos como Length, Substring, Contains.

string message = "Olá Mundo";
Console.WriteLine(message.Length);
Console.WriteLine(message.Substring(0, 5));
Console.WriteLine(message.Contains("Mundo"));

12. Classes e Objetos

C# suporta programação orientada a objetos por meio de classes e objetos.

class Person
{
    public string Name;
    public Person(string name) => Name = name;
    public void Greet() => Console.WriteLine($"Olá, eu sou {Name}");
}

Person p = new Person("Alice");
p.Greet();