Complex Numbers - C# Programming Exercise

In this exercise of C#, the concept of complex numbers is introduced, which consist of two parts: the real part and the imaginary part. In an expression like a+bi (for example, 2-3i), the real part would be "a" (2) and the imaginary part would be "b" (-3). The goal of this exercise is to create a class called ComplexNumber with the following features:

A constructor to set the values for both the real and the imaginary parts of the complex number. The class should also include setters and getters for both parts, allowing access and modification of those values.

The class must include a ToString method that returns the complex number as a string, such as "(2,-3)". Another important method is GetMagnitude, which should return the magnitude of the complex number, calculated as the square root of a²+b².

Additionally, the Add method should be implemented to sum two complex numbers. The real part will be the sum of both real parts, and the imaginary part will be the sum of both imaginary parts. Finally, a test program should be created to verify that all these features work as expected. This exercise is a great way to practice implementing classes, methods, and mathematical operations in C#.

 Category

OOP More On Classes

 Exercise

Complex Numbers

 Objective

A complex number has two parts: the real part and the imaginary part. In a number such as a+bi (2-3i, for example) the real part would be "a" (2) and the imaginary part would be "b" (-3).

Create a class ComplexNumber with:
A constructor to set the values for the real part and the imaginary part.
Setters and getters for both.
A method "ToString", which would return "(2,-3)"
A method "GetMagnitude" to return the magnitude of the complex number (square root of a2+b2)
A method "Add", to sum two complex numbers (the real part will be the sum of both real parts, and the imaginary part will be the sum of both imaginary parts)
Create a test program, to try these capabilities.

 Write Your C# Exercise

// Importing the System namespace for basic system functionalities like Console for input/output
using System;

public class ComplexNumber
{
    // Private fields for the real and imaginary parts of the complex number
    private double real;
    private double imaginary;

    // Constructor to set the values for the real and imaginary parts
    public ComplexNumber(double real, double imaginary)
    {
        this.real = real; // Setting the real part
        this.imaginary = imaginary; // Setting the imaginary part
    }

    // Getter for the real part
    public double GetReal()
    {
        return real; // Returning the real part
    }

    // Setter for the real part
    public void SetReal(double real)
    {
        this.real = real; // Updating the real part
    }

    // Getter for the imaginary part
    public double GetImaginary()
    {
        return imaginary; // Returning the imaginary part
    }

    // Setter for the imaginary part
    public void SetImaginary(double imaginary)
    {
        this.imaginary = imaginary; // Updating the imaginary part
    }

    // Method to return the complex number as a string in the format "(real, imaginary)"
    public override string ToString()
    {
        return $"({real},{imaginary})"; // Returning the complex number as a string
    }

    // Method to calculate and return the magnitude of the complex number
    public double GetMagnitude()
    {
        return Math.Sqrt(real * real + imaginary * imaginary); // Returning the magnitude (square root of a^2 + b^2)
    }

    // Method to add another complex number to this one
    public ComplexNumber Add(ComplexNumber other)
    {
        double newReal = this.real + other.GetReal(); // Summing the real parts
        double newImaginary = this.imaginary + other.GetImaginary(); // Summing the imaginary parts
        return new ComplexNumber(newReal, newImaginary); // Returning the new complex number
    }

    // Main method to test the functionality of the ComplexNumber class
    public static void Main()
    {
        // Creating two complex numbers
        ComplexNumber complex1 = new ComplexNumber(2, -3); // 2 - 3i
        ComplexNumber complex2 = new ComplexNumber(1, 4); // 1 + 4i

        // Printing the complex numbers
        Console.WriteLine($"Complex number 1: {complex1}"); // Output: (2,-3)
        Console.WriteLine($"Complex number 2: {complex2}"); // Output: (1,4)

        // Printing the magnitude of the first complex number
        Console.WriteLine($"Magnitude of complex number 1: {complex1.GetMagnitude()}"); // Output: Magnitude of 2 - 3i

        // Adding the two complex numbers and displaying the result
        ComplexNumber sum = complex1.Add(complex2); // Adding the two complex numbers
        Console.WriteLine($"Sum of complex numbers: {sum}"); // Output: (3,1)
    }
}

 Share this C# exercise

 More C# Programming Exercises of OOP More On Classes

Explore our set of C# programming exercises! Specifically designed for beginners, these exercises will help you develop a solid understanding of the basics of C#. From variables and data types to control structures and simple functions, each exercise is crafted to challenge you incrementally as you build confidence in coding in C#.

  •  Table + coffetable + leg

    In this exercise of C#, the example of tables and coffee tables is extended by adding a class called "Leg". This class should include a method named ShowData, ...

  •  Catalog

    In this exercise of C#, you are required to create a class diagram and then, using Visual Studio, develop a project with the corresponding classes for a catalog utili...

  •  Random number

    In this exercise of C#, you need to create a class called RandomNumber with three static methods. The first method, GetFloat, should return a number bet...

  •  Text to HTML

    In this exercise of C#, you need to create a class called TextToHTML, which should be able to convert several texts entered by the user into an HTML sequence. ...

  •  Class ScreenText

    In this exercise of C#, you need to create a class called ScreenText, which will display a certain text at specified screen coordinates. The class must have a ...

  •  Enhanced ComplexNumber class

    In this exercise of C#, you need to improve the ComplexNumber class by overloading the + and - operators to allow the addition and subtraction of...