Estructura Para Almacenar Puntos 2D Con Color RGB En C#

Este ejercicio se centra en el uso de estructuras de C# (structs) para definir y gestionar puntos 2D con valores de color RGB asociados. Cada punto tendrá coordenadas x e y (short) y tres componentes de color: rojo, verde y azul (byte). El programa creará dos puntos, solicitará datos al usuario y mostrará la información almacenada.



Grupo

Matrices, estructuras y cadenas de C#

Objectivo

1. Defina una estructura llamada `Point2D` con los campos obligatorios:
- `x` (corto) - Coordenada X
- `y` (corto) - Coordenada Y
- `r` (byte) - Componente de color rojo
- `g` (byte) - Componente de color verde
- `b` (byte) - Componente de color azul
2. Cree dos instancias de `Point2D`.
3. Solicite al usuario que introduzca valores para cada campo de ambos puntos.
4. Muestre los datos introducidos por el usuario.
5. Asegúrese de que la validación de las entradas numéricas sea correcta.

Escriba una estructura en C# para almacenar datos de puntos 2D. Los campos para cada punto serán:
- Coordenada x (corta)
- Coordenada y (corta)
- r (color rojo, byte)
- g (color verde, byte)
- b (color azul, byte)

Escriba un programa en C# que cree dos "puntos", solicite al usuario sus datos y luego muestre su contenido.

Ejemplo de ejercicio en C#

 Copiar código C#
using System;

class Program
{
    // Defining a struct to store 2D point data with RGB color components
    struct Point2D
    {
        public short x, y;  // Coordinates
        public byte r, g, b; // RGB color values
    }

    static void Main()
    {
        Point2D point1, point2; // Creating two point instances

        // Getting data for the first point
        Console.WriteLine("Enter data for the first point:");
        point1.x = ReadShort("X coordinate: ");
        point1.y = ReadShort("Y coordinate: ");
        point1.r = ReadByte("Red component (0-255): ");
        point1.g = ReadByte("Green component (0-255): ");
        point1.b = ReadByte("Blue component (0-255): ");

        // Getting data for the second point
        Console.WriteLine("\nEnter data for the second point:");
        point2.x = ReadShort("X coordinate: ");
        point2.y = ReadShort("Y coordinate: ");
        point2.r = ReadByte("Red component (0-255): ");
        point2.g = ReadByte("Green component (0-255): ");
        point2.b = ReadByte("Blue component (0-255): ");

        // Displaying entered data
        Console.WriteLine("\nStored Points:");
        DisplayPoint("Point 1", point1);
        DisplayPoint("Point 2", point2);
    }

    // Method to safely read a short value
    static short ReadShort(string message)
    {
        short value;
        while (true)
        {
            Console.Write(message);
            if (short.TryParse(Console.ReadLine(), out value))
                return value;
            Console.WriteLine("Invalid input. Please enter a valid short integer.");
        }
    }

    // Method to safely read a byte value
    static byte ReadByte(string message)
    {
        byte value;
        while (true)
        {
            Console.Write(message);
            if (byte.TryParse(Console.ReadLine(), out value))
                return value;
            Console.WriteLine("Invalid input. Please enter a number between 0 and 255.");
        }
    }

    // Method to display a point's data
    static void DisplayPoint(string name, Point2D point)
    {
        Console.WriteLine($"{name} -> X: {point.x}, Y: {point.y}, Color: RGB({point.r}, {point.g}, {point.b})");
    }
}

 Output

Enter data for the first point:
X coordinate: 10
Y coordinate: 20
Red component (0-255): 255
Green component (0-255): 0
Blue component (0-255): 0

Enter data for the second point:
X coordinate: -5
Y coordinate: 15
Red component (0-255): 0
Green component (0-255): 255
Blue component (0-255): 255

Stored Points:
Point 1 -> X: 10, Y: 20, Color: RGB(255, 0, 0)
Point 2 -> X: -5, Y: 15, Color: RGB(0, 255, 255)

Comparte este ejercicio de C#

Practica más ejercicios C# de Matrices, estructuras y cadenas de C#

¡Explora nuestro conjunto de ejercicios de práctica de C#! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C#..