Random number C# Exercise - C# Programming Course

 Exercise

Random number

 Objetive

Create a class RandomNumber, with three static methods:

- GetFloat will return a number between 0 and 1 using the following algorithm:

seed = (seed * a + c) % m
result = abs(seed / m)

- GetInt(max) will return a number from 0 to max, using:
result = round(max * GetFloat)

- GetInt(min, max) will return a number from min to max (you must create this one totally on your own).

The starting values must be:
m = 233280;
a = 9301;
c = 49297;
seed = 1;

 Example Code

// Importing the System namespace for the functionality of Math methods
using System;

public class RandomNumber
{
    // Static fields with the values as required
    private static int m = 233280;  // Modulus
    private static int a = 9301;    // Multiplier
    private static int c = 49297;   // Increment
    private static int seed = 1;    // Seed value

    // Static method to get a float between 0 and 1
    public static float GetFloat()
    {
        // Updating the seed using the given algorithm: seed = (seed * a + c) % m
        seed = (seed * a + c) % m;
        
        // Calculating the result as the absolute value of (seed / m)
        float result = Math.Abs((float)seed / m);
        
        // Returning the result
        return result;
    }

    // Static method to get an integer from 0 to max
    public static int GetInt(int max)
    {
        // Getting a float value between 0 and 1
        float randomFloat = GetFloat();
        
        // Calculating the result as the rounded integer value of (max * GetFloat)
        int result = (int)Math.Round(max * randomFloat);
        
        // Returning the result
        return result;
    }

    // Static method to get an integer between min and max
    public static int GetInt(int min, int max)
    {
        // Getting a float value between 0 and 1
        float randomFloat = GetFloat();
        
        // Calculating the result as the integer between min and max
        int result = (int)Math.Round(min + (max - min) * randomFloat);
        
        // Returning the result
        return result;
    }
}

// Main program to test the RandomNumber class
public class Program
{
    public static void Main()
    {
        // Testing GetFloat to get a random float between 0 and 1
        Console.WriteLine($"Random Float: {RandomNumber.GetFloat()}");

        // Testing GetInt to get a random integer between 0 and 100
        Console.WriteLine($"Random Int (0 to 100): {RandomNumber.GetInt(100)}");

        // Testing GetInt with a specific range (e.g., between 50 and 100)
        Console.WriteLine($"Random Int (50 to 100): {RandomNumber.GetInt(50, 100)}");
    }
}

More C# Exercises of OOP More On Classes

 Array of objects: table
Create a class named "Table". It must have a constructor, indicating the width and height of the board. It will have a method "ShowData" which will wr...
 House
Create a class "House", with an attribute "area", a constructor that sets its value and a method "ShowData" to display "I am a house, my area is 200 m...
 Table + coffetable + array
Create a project named "Tables2", based on the "Tables" project. In it, create a class "CoffeeTable" that inherits from "Table". Its method "ShowDa...
 Encrypter & Decrypter
Create a class "Encrypter" to encrypt and decrypt text. It will have a "Encrypt" method, which will receive a string and return another string. It ...
 Complex numbers
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 ...
 Table + coffetable + leg
Extend the example of the tables and the coffee tables, to add a class "Leg" with a method "ShowData", which will write "I am a leg" and then it will ...
 Catalog
Create the classes diagram and then, using Visual Studio, a project and the corresponding classes for a catalog utility: It will be able to store i...
 Text to HTML
Create a class "TextToHTML", which must be able to convert several texts entered by the user into a HTML sequence, like this one: Hola Soy yo Ya ...
 Class ScreenText
Create a class ScreenText, to display a certain text in specified screen coordinates. It must have a constructor which will receive X, Y and the strin...
 Enhanced ComplexNumber class
Improve the "ComplexNumber" class, so that it overloads the operators + and - to add and subtract numbers....
 3D point
Create a class "Point3D", to represent a point in 3-D space, with coordinates X, Y and Z. It must contain the following methods: MoveTo, which will...
 Catalog + Menu
Improve the Catalog program, so that "Main" displays a menu to allow entering new data of any kind, as well as displaying all the data stored....

Juan A. Ripoll - Programming Tutorials and Courses © 2025 All rights reserved.  Legal Conditions.