Онлайн-компилятор и отладчик C#

Пишите, компилируйте, запускайте и отлаживайте C# онлайн. Используйте точки останова, пошаговое выполнение и просмотр объектов в многофайловой IDE без Visual Studio.

Предустановленные библиотеки
🚀 350,747 всего выполнений (1 в этом месяце)
Вывод

Практикуйте C# на задачах

Решайте задачи прямо в редакторе: запускайте тесты, отправляйте решение и получайте AI-рецензию.

Все задачи на C#
Легко

Среднее из трёх

Вычислите среднее трёх целых чисел.

Вы освоите АрифметикаДеление
BeginnerLearning-pathVariables
Легко

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Вы освоите АрифметикаВозвращаемые значения
BeginnerLearning-pathVariables
Средне

Одно поколение генетического алгоритма

Выведите следующее поколение битовых строк с помощью турнирного отбора, одноточечного скрещивания и мутации.

Вы освоите Генетические алгоритмыЭволюционный поиск
OptimizationSimulationискусственный интеллект
Пока нет решений
Легко

Распределение состояний цепи Маркова

Распространите распределение вероятностей через матрицу переходов цепи Маркова на заданное число шагов.

Вы освоите Цепи МарковаВероятность
Simulationискусственный интеллектmath
Пока нет решений
Средне

Итерация по ценностям

Вычислите ценность каждого состояния марковского процесса принятия решений, многократно применяя оптимальное обновление Беллмана.

Вы освоите Уравнение БеллманаMDP
Обучение с подкреплениемискусственный интеллектмашинное обучение
Пока нет решений
Средне

Обновления Q-learning

Примените обновление Q-learning к потоку опыта и посмотрите, как награды распространяются назад к предыдущим состояниям.

Вы освоите Q-learningДисконтированные награды
Обучение с подкреплениемискусственный интеллектмашинное обучение
Пока нет решений
Средне

Альфа-бета отсечение

Оцените дерево игры минимаксом с альфа-бета отсечением и посчитайте, сколько листьев поиск действительно просмотрел.

Вы освоите Альфа-бета отсечениеПоиск в играх
RecursionTreesискусственный интеллект
Пока нет решений
Средне

Крестики-нолики с минимаксом

Выберите идеальный ход в крестиках-ноликах, перебрав всё дерево игры минимаксом.

Вы освоите МинимаксДеревья игры
Recursionискусственный интеллект
Пока нет решений
Средне

Поиск A* на взвешенной сетке

Найдите самый дешёвый путь через сетку стоимостей местности с помощью A* — алгоритма поиска, на котором строится навигация в играх и робототехнике.

Вы освоите Поиск A*Эвристики
GraphsGridsShortest-pathискусственный интеллект
Пока нет решений
Средне

Сэмплирование с температурой и top-k

Выберите следующий токен как языковая модель: оставьте k наибольших логитов, примените температуру и сделайте выборку.

Вы освоите Генерация текстаСэмплирование
искусственный интеллектмашинное обучение
Пока нет решений
Сложно

Многоголовое самовнимание

Спроецируйте вход в запросы, ключи и значения, выполните внимание в нескольких головах параллельно и объедините их.

Вы освоите Многоголовое вниманиеМатричные проекции
искусственный интеллектмашинное обучение
Пока нет решений
Средне

Нормализация слоя

Нормализуйте каждую строку к среднему 0 и дисперсии 1, затем масштабируйте и сдвиньте, как делает каждый блок Transformer.

Вы освоите Нормализация слояTransformer
Нейронные сетиискусственный интеллектмашинное обучение
Пока нет решений

🔷 Об этом онлайн-исполнителе C# / .NET

CodeUtility C# Executor позволяет писать и запускать настоящий C#‑код прямо в браузере - без установки, настройки Visual Studio или .NET SDK. Он работает в защищенной песочнице с поддержкой .NET runtime и современных версий языка C#, включая C# 9 и новее.

Этот инструмент использует dotnet-script под капотом, чтобы компилировать и выполнять ваш код с реальным поведением .NET, позволяя экспериментировать как с базовыми, так и с продвинутыми возможностями C#, такими как LINQ, async/await, сопоставление с образцом и обобщения.

Вы можете тестировать простые скрипты, функции и логические конструкции или изучать концепции классов, структур, наследования и интерфейсов - все это в чистой, не отвлекающей среде для кодинга.

Независимо от того, изучаете ли вы C#, тестируете алгоритмы или экспериментируете с возможностями .NET, CodeUtility C# Executor дает вам быстрый, безопасный и надежный способ мгновенно запускать C#‑код из любого браузера.

Больше, чем средство запуска кода

Используйте в одном исполнителе многофайловый редактор, изолированный терминал выполнения, библиотеки для выбранной среды, постоянные рабочие пространства, общий доступ и совместную работу в реальном времени.

Как пользоваться этим исполнителем?

Выберите среду выполнения, откройте или создайте файл, напишите код и нажмите «Запустить». Результат появится в терминале. Пользователи, вошедшие в систему, могут хранить файлы в рабочем пространстве, устанавливать библиотеки и совместно работать через общие ресурсы.

  1. Выберите версию и отредактируйте текущий файл или откройте другой файл рабочего пространства.
  2. Запустите код, при необходимости введите данные в терминале и просмотрите сохранённую историю запусков.
  3. Используйте библиотеки, инструменты рабочего пространства, общий доступ и чат, когда для задачи требуется несколько фрагментов кода.

💡 Основы C# и примеры, которые можно попробовать выше

1. Объявление переменных и констант

В C# используется строгая типизация переменных. Применяйте const для констант времени компиляции и readonly для констант времени выполнения.

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

// Константы
const int MaxUsers = 100;
const string Company = "CodeUtility";

2. Условия (if / switch)

Используйте if, else if и switch для управления потоком выполнения.

int x = 2;
if (x == 1)
{
    Console.WriteLine("Один");
}
else if (x == 2)
{
    Console.WriteLine("Два");
}
else
{
    Console.WriteLine("Другое");
}

switch (x)
{
    case 1:
        Console.WriteLine("Один");
        break;
    case 2:
        Console.WriteLine("Два");
        break;
    default:
        Console.WriteLine("Другое");
        break;
}

3. Циклы

В C# поддерживаются циклы for, while и foreach.

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

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

4. Массивы

Массивы хранят коллекции фиксированного размера из элементов одного типа.

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

5. Работа со списками

Используйте List<T> для динамических коллекций.

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

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

6. Ввод/вывод в консоли

Используйте Console.WriteLine и Console.ReadLine для базового ввода-вывода.

Console.Write("Введите ваше имя: ");
string name = Console.ReadLine();
Console.WriteLine($"Привет, {name}!");

7. Функции

Определяйте методы, указывая тип возвращаемого значения, имя и параметры.

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

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

8. Словари

Dictionary<TKey, TValue> хранит пары ключ-значение.

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

9. Обработка исключений

Обрабатывайте ошибки времени выполнения с помощью try, catch и finally.

try
{
    throw new Exception("Что-то пошло не так");
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

10. Работа с файлами

Используйте File и StreamReader/StreamWriter для операций с файлами.

File.WriteAllText("file.txt", "Привет, файл");
string text = File.ReadAllText("file.txt");
Console.WriteLine(text);

11. Работа со строками

Строки в C# поддерживают методы Length, Substring, Contains и другие.

string message = "Hello World";
Console.WriteLine(message.Length);
Console.WriteLine(message.Substring(0, 5));
Console.WriteLine(message.Contains("World"));

12. Классы и объекты

C# поддерживает объектно-ориентированное программирование через классы и объекты.

class Person
{
    public string Name;
    public Person(string name) => Name = name;
    public void Greet() => Console.WriteLine($"Привет, я {Name}");
}

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