Trình biên dịch và gỡ lỗi C# online

Viết, biên dịch, chạy và debug C# online. Đặt breakpoint, step into hoặc step over và xem biến cùng object lồng nhau trong IDE hỗ trợ nhiều tệp, lưu workspace, chia sẻ và cộng tác trực tiếp—không cần cài đặt.

Thư viện cài đặt sẵn
🚀 350,747 tổng số lượt thực thi (1 trong tháng này)
Kết quả

Luyện C# với thử thách lập trình

Giải các bài tập thực tế ngay trên trình soạn thảo này: chạy kiểm thử mẫu, nộp bài và nhận đánh giá code từ AI.

Tất cả thử thách C#
Dễ

Trung Bình Của Ba Số

Tính trung bình cộng của ba số nguyên.

Bạn sẽ học Số họcPhép chia
BeginnerLearning-pathVariables
Dễ

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Bạn sẽ học Số họcGiá trị trả về
BeginnerLearning-pathVariables
Trung bình

Một thế hệ của thuật toán di truyền

Lai tạo thế hệ chuỗi bit tiếp theo bằng chọn lọc kiểu giải đấu, lai ghép một điểm và đột biến.

Bạn sẽ học Thuật toán di truyềnTìm kiếm tiến hóa
OptimizationSimulationtrí tuệ nhân tạo
Chưa có lời giải
Dễ

Bài toán máy đánh bạc nhiều tay với epsilon-greedy

Cân bằng giữa khám phá và khai thác trên bài toán multi-armed bandit bằng cách chọn hành động epsilon-greedy.

Bạn sẽ học Khám phá và khai thácBandit
Học tăng cườngtrí tuệ nhân tạohọc máy
Chưa có lời giải
Dễ

Phân phối trạng thái của chuỗi Markov

Lan truyền một phân phối xác suất qua ma trận chuyển của chuỗi Markov trong một số bước.

Bạn sẽ học Chuỗi MarkovXác suất
Simulationtrí tuệ nhân tạomath
Chưa có lời giải
Trung bình

Lặp giá trị (Value Iteration)

Tính giá trị của từng trạng thái trong một quá trình quyết định Markov bằng cách lặp lại phép cập nhật tối ưu Bellman.

Bạn sẽ học Phương trình BellmanMDP
Học tăng cườngtrí tuệ nhân tạohọc máy
Chưa có lời giải
Trung bình

Cập nhật Q-learning

Áp dụng phép cập nhật Q-learning cho một chuỗi trải nghiệm và xem phần thưởng lan ngược về các trạng thái trước.

Bạn sẽ học Q-learningPhần thưởng chiết khấu
Học tăng cườngtrí tuệ nhân tạohọc máy
Chưa có lời giải
Trung bình

Cắt tỉa Alpha-Beta

Đánh giá cây trò chơi bằng minimax có cắt tỉa alpha-beta và đếm xem việc tìm kiếm thực sự xét bao nhiêu lá.

Bạn sẽ học Cắt tỉa alpha-betaTìm kiếm trò chơi
RecursionTreestrí tuệ nhân tạo
Chưa có lời giải
Trung bình

Tìm kiếm A* trên lưới có trọng số

Tìm đường đi rẻ nhất qua một lưới chi phí địa hình bằng A*, thuật toán tìm đường phía sau game và robot.

Bạn sẽ học Tìm kiếm A*Heuristic
GraphsGridsShortest-pathtrí tuệ nhân tạo
Chưa có lời giải
Trung bình

Lấy mẫu với temperature và top-k

Chọn token tiếp theo như mô hình ngôn ngữ: giữ k logit cao nhất, áp dụng temperature rồi lấy mẫu.

Bạn sẽ học Sinh văn bảnLấy mẫu
trí tuệ nhân tạohọc máy
Chưa có lời giải
Khó

Self-attention nhiều đầu (multi-head)

Chiếu đầu vào thành query, key và value, chạy attention song song ở nhiều đầu, rồi kết hợp lại.

Bạn sẽ học Multi-head attentionPhép chiếu ma trận
trí tuệ nhân tạohọc máy
Chưa có lời giải
Trung bình

Chuẩn hóa theo lớp (layer normalization)

Chuẩn hóa mỗi hàng về trung bình 0 và phương sai 1, rồi co giãn và dịch chuyển, như mọi khối Transformer.

Bạn sẽ học Layer normTransformer
Mạng nơ-rontrí tuệ nhân tạohọc máy
Chưa có lời giải

🔷 Giới thiệu về Trình thực thi C# / .NET trực tuyến này

CodeUtility C# Executor cho phép bạn viết và chạy mã C# thật trực tiếp trong trình duyệt - không cần cài đặt, thiết lập Visual Studio hay .NET SDK. Công cụ này được vận hành bởi môi trường sandbox an toàn hỗ trợ .NET runtime và các phiên bản C# hiện đại, bao gồm C# 9 trở lên.

Công cụ này dùng dotnet-script phía dưới để biên dịch và thực thi mã của bạn với đúng hành vi .NET, cho phép bạn thử nghiệm cả các tính năng C# cơ bản lẫn nâng cao như LINQ, async/await, pattern matching và generics.

Bạn có thể thử các script đơn giản, hàm và luồng logic, hoặc khám phá các khái niệm như class, struct, kế thừa và interface - tất cả trong một môi trường code sạch, không xao nhãng.

Dù bạn đang học C#, kiểm thử thuật toán hay thử nghiệm các tính năng .NET, CodeUtility C# Executor mang đến cách chạy mã C# nhanh, an toàn và tin cậy ngay từ bất kỳ trình duyệt nào.

Không chỉ là công cụ chạy mã

Sử dụng trình soạn thảo nhiều tệp, terminal thực thi biệt lập, thư viện riêng theo môi trường chạy, không gian làm việc lâu dài, tính năng chia sẻ và cộng tác theo thời gian thực ngay trong cùng một trình thực thi.

Cách sử dụng trình thực thi này?

Chọn môi trường chạy, mở hoặc tạo tệp, viết mã rồi nhấn Chạy. Kết quả xuất hiện trong terminal; người dùng đã đăng nhập có thể lưu tệp trong không gian làm việc, cài thư viện và cộng tác qua liên kết chia sẻ.

  1. Chọn phiên bản rồi chỉnh sửa tệp hiện tại hoặc mở một tệp khác trong không gian làm việc.
  2. Chạy mã, nhập dữ liệu trong terminal khi được yêu cầu và xem lại lịch sử chạy đã lưu.
  3. Sử dụng thư viện, công cụ không gian làm việc, chia sẻ và trò chuyện khi tác vụ cần nhiều hơn một đoạn mã.

💡 C# cơ bản & ví dụ bạn có thể thử ở trên

1. Khai báo biến và hằng số

C# sử dụng khai báo biến kiểu tĩnh (strongly-typed). Dùng const cho hằng số tại thời điểm biên dịch và readonly cho hằng số tại thời điểm chạy.

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

// Hằng số
const int MaxUsers = 100;
const string Company = "CodeUtility";

2. Cấu trúc điều kiện (if / switch)

Dùng if, else if và switch để điều khiển luồng.

int x = 2;
if (x == 1)
{
    Console.WriteLine("Một");
}
else if (x == 2)
{
    Console.WriteLine("Hai");
}
else
{
    Console.WriteLine("Khác");
}

switch (x)
{
    case 1:
        Console.WriteLine("Một");
        break;
    case 2:
        Console.WriteLine("Hai");
        break;
    default:
        Console.WriteLine("Khác");
        break;
}

3. Vòng lặp

C# hỗ trợ các vòng lặp for, while và foreach.

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

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

4. Mảng

Mảng lưu trữ tập hợp có kích thước cố định gồm các phần tử cùng kiểu.

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

5. Thao tác với List

Dùng List<T> cho các tập hợp động.

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

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

6. Nhập/Xuất Console

Dùng Console.WriteLine và Console.ReadLine cho I/O cơ bản.

Console.Write("Nhập tên của bạn: ");
string name = Console.ReadLine();
Console.WriteLine($"Xin chào, {name}!");

7. Hàm

Định nghĩa phương thức với kiểu trả về, tên và tham số.

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

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

8. Từ điển (Dictionary)

Dictionary<TKey, TValue> lưu trữ các cặp khóa-giá trị.

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

9. Xử lý ngoại lệ

Xử lý lỗi thời gian chạy bằng try, catch và finally.

try
{
    throw new Exception("Đã có lỗi xảy ra");
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

10. I/O Tệp

Dùng File và StreamReader/StreamWriter cho các thao tác với tệp.

File.WriteAllText("file.txt", "Xin chào Tệp");
string text = File.ReadAllText("file.txt");
Console.WriteLine(text);

11. Xử lý chuỗi

Chuỗi C# hỗ trợ các phương thức như Length, Substring, Contains.

string message = "Xin chào Thế giới";
Console.WriteLine(message.Length);
Console.WriteLine(message.Substring(0, 5));
Console.WriteLine(message.Contains("World"));

12. Lớp & Đối tượng

C# hỗ trợ lập trình hướng đối tượng thông qua class và object.

class Person
{
    public string Name;
    public Person(string name) => Name = name;
    public void Greet() => Console.WriteLine($"Xin chào, tôi là {Name}");
}

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