- Executors
-
Learn
Python Learning Hub Runnable examples, NumPy, pandas, and more C & C++ Learning Hub Pointers, memory, STL, and modern C++ C# Learning HubC# basics, OOP, LINQ, async, and .NET exercises Python Algorithms Search, sorting, recursion, and visualizers O(n) C & C++ Algorithms Compare algorithms implemented in C and C++
- Challenges
Gradient descent improves the weights a little at a time by moving against the gradient:
w ← w - learning_rate × dL/dw
Train a sigmoid neuron with stochastic gradient descent. For each epoch, go through the samples in the given order, and for each sample:
- z = sample · weights + bias, y = 1 / (1 + e^(-z))
- delta = 2 × (y - target) × y × (1 - y)
- weights[i] ← weights[i] - learning_rate × delta × sample[i] (for every i), then bias ← bias - learning_rate × delta
Implement train_neuron(samples, targets, weights, bias, learning_rate, epochs).
Input
samples: m training examples, each with n values.
targets: The m correct outputs (between 0 and 1).
weights, bias: The starting weights (n values) and bias.
learning_rate, epochs: The step size and how many passes over the data.
Output
Return the trained weights followed by the trained bias (n + 1 numbers).
Constraints
1 ≤ m ≤ 50, 1 ≤ n ≤ 10, 1 ≤ epochs ≤ 1,000
0 < learning_rate ≤ 5
-5 ≤ each value ≤ 5
Examples
Example 1
Input:
bias = 0.0
epochs = 1
samples = [
[1.0]
]
targets = [1.0]
weights = [0.0]
learning_rate = 1.0
Expected output:
[0.25, 0.25]
Explanation
y = σ(0) = 0.5, delta = 2 × (0.5 - 1) × 0.25 = -0.25. Weight: 0 - 1 × (-0.25) × 1 = 0.25. Bias: 0 - 1 × (-0.25) = 0.25. Result: [0.25, 0.25].
Example 2
Input:
bias = 0.0
epochs = 500
samples = [
[0.0, 0.0],
[0.0, 1.0],
[1.0, 0.0],
[1.0, 1.0]
]
targets = [0.0, 0.0, 0.0, 1.0]
weights = [0.0, 0.0]
learning_rate = 2.0
Expected output:
[6.346558, 6.339863, -9.592092]
Explanation
This is the logical AND gate. After 500 epochs both weights are large and positive and the bias is strongly negative, so only the input [1, 1] gives an output above 0.5.
References
-
Example 1 Not runInput:
bias = 0.0 epochs = 1 samples = [ [1.0] ] targets = [1.0] weights = [0.0] learning_rate = 1.0Expected output:[0.25, 0.25]Your output -
Example 2 Not runInput:
bias = 0.0 epochs = 500 samples = [ [0.0, 0.0], [0.0, 1.0], [1.0, 0.0], [1.0, 1.0] ] targets = [0.0, 0.0, 0.0, 1.0] weights = [0.0, 0.0] learning_rate = 2.0Expected output:[6.346558, 6.339863, -9.592092]Your output
4 hidden tests also run when you submit.
Online C++ Compiler & Debugger
Write, compile, run, and debug C++ online. Set breakpoints, inspect variables, and step through code with GDB in Server mode—no setup required.
🚀 2,392,386 total executions (12 this month)
Practice C++ with coding challenges
Solve hands-on problems right in this editor: run the sample tests, submit, and get an AI code review.
Explore by topic
Learn C and C++ together through practical comparisons, runnable code, output, memory models, data structures, algorithms, and modern C++ features.
💻 About This C++ Online Executor
The CodeUtility C++ Executor lets you write and run C++ code directly in your browser - no installation or compiler setup needed. It’s powered by a secure sandbox that supports real C++ standards from C++11, C++14, C++17, up to the latest version.
This tool uses a real C++ compiler running in the cloud to compile and execute your code, ensuring accurate and consistent behavior across versions. You can freely experiment with core C++ concepts like variables, functions, loops, conditionals, and object-oriented programming.
Whether you’re preparing for interviews, learning modern C++ features, or verifying algorithm logic, the CodeUtility C++ Executor provides a simple yet powerful environment to run code instantly from any device.
More than a code runner
Use a multi-file editor, an isolated execution terminal, runtime-specific libraries, persistent workspaces, sharing, and real-time collaboration from the same executor.
How to use this executor?
Choose a runtime, open or create a file, write your code, and select Run. Output appears in the terminal, while signed-in users can keep files in a workspace, install libraries, and collaborate through shares.
- Select a version and edit the current file or open another workspace file.
- Run the code, provide input in the terminal when requested, and review saved run history.
- Use libraries, workspace tools, sharing, and chat when your task needs more than one snippet.
💡 C++ Basics & Examples You Can Try Above
1. Declaring Variables and Constants
C++ requires you to declare the type of each variable. Use const to define read-only values that cannot be changed after initialization.
int age = 30;
double pi = 3.14159;
char grade = 'A';
std::string name = "Alice";
bool isActive = true;
// Constants
const int MAX_USERS = 100;
const std::string COMPANY = "CodeUtility";
// Attempting to modify a const will cause a compile-time error
// MAX_USERS = 200; // ❌ error
2. Conditionals (if / switch)
Use if, else if, else for branching. Use switch for multiple values.
int x = 2;
if (x == 1) {
std::cout << "One\n";
} else if (x == 2) {
std::cout << "Two\n";
} else {
std::cout << "Other\n";
}
// Switch-case
switch (x) {
case 1:
std::cout << "One\n";
break;
case 2:
std::cout << "Two\n";
break;
default:
std::cout << "Other\n";
}
3. Loops
Use for, while, and do-while to repeat code blocks.
for (int i = 0; i < 3; i++) {
std::cout << i << "\n";
}
int n = 3;
while (n > 0) {
std::cout << n << "\n";
n--;
}
4. Arrays
Arrays store multiple elements of the same type.
int numbers[3] = {10, 20, 30};
std::cout << numbers[1] << "\n";
5. Array/Vector Manipulation
Use std::vector for dynamic arrays.
#include <vector>
std::vector nums = {1, 2, 3};
nums.push_back(4);
nums.pop_back();
for (int n : nums) {
std::cout << n << " ";
}
6. Console Input/Output
Use std::cin for input and std::cout for output.
std::string name;
std::cout << "Enter your name: ";
std::cin >> name;
std::cout << "Hello, " << name << "\n";
7. Functions
Functions group reusable logic. Use parameters and return types.
int add(int a, int b) {
return a + b;
}
std::cout << add(3, 4);
8. Maps
std::map stores key-value pairs like dictionaries.
#include <map>
std::map ages;
ages["Alice"] = 30;
std::cout << ages["Alice"];
9. Exception Handling
Use try and catch to handle runtime errors.
try {
throw std::runtime_error("Error occurred");
} catch (const std::exception& e) {
std::cout << e.what();
}
10. File I/O
Use fstream to read from and write to files.
#include <fstream>
std::ofstream out("file.txt");
out << "Hello File";
out.close();
std::ifstream in("file.txt");
std::string line;
getline(in, line);
std::cout << line;
in.close();
11. String Manipulation
C++ strings support methods like length(), substr(), and find().
std::string text = "Hello World";
std::cout << text.length();
std::cout << text.substr(0, 5);
std::cout << text.find("World");
12. Classes & Objects
C++ supports object-oriented programming using classes.
class Person {
public:
std::string name;
Person(std::string n) : name(n) {}
void greet() { std::cout << "Hi, I'm " << name; }
};
Person p("Alice");
p.greet();
13. Pointers
A pointer stores the memory address of another variable. Use & to get an address,
and * to dereference (access the value at the address).
int x = 10;
int* ptr = &x;
std::cout << "Value of x: " << x << "\n";
std::cout << "Address of x: " << ptr << "\n";
std::cout << "Value from pointer: " << *ptr << "\n";
// Modify x through pointer
*ptr = 20;
std::cout << "Updated x: " << x << "\n";
🐞 How to Debug %{language} Code Online
Use the online %{language} debugger to find runtime and logic errors without installing a compiler or desktop IDE. Server mode compiles with debug symbols and runs the program under GDB.
- Set one or more breakpoints beside the line numbers.
- Select Debug to compile and pause at the first matching breakpoint.
- Inspect the current line, call stack, and variables.
- Use Continue, Step Over, Step Into, or Step Out to control execution.
- Select Stop to end the debugging session.
Start with a small reproducible example and place a breakpoint just before the value or control flow becomes unexpected.