Almacenamiento De Múltiples Puntos 2D Mediante Una Matriz De Estructuras En C#

Este ejercicio se basa en el almacenamiento de puntos 2D basado en estructuras, ampliándolo para gestionar hasta 1000 puntos. Se utilizará una estructura denominada `Point2D` para almacenar las coordenadas x e y (short) junto con los componentes de color RGB (byte). El programa utilizará una matriz de estructuras para gestionar múltiples puntos. Inicialmente, solicitará al usuario los datos de los dos primeros puntos y luego los mostrará.



Grupo

Matrices, estructuras y cadenas de C#

Objectivo

1. Defina una estructura llamada `Point2D` con campos para coordenadas y colores RGB.
2. Cree un array con capacidad para almacenar hasta 1000 puntos.
3. Solicite al usuario los detalles de los dos primeros puntos.
4. Almacene los datos de entrada en el array.
5. Visualice los puntos almacenados.
6. Asegúrese de que la validación de las entradas numéricas sea correcta.

Escriba un programa en C# que amplíe el ejercicio anterior (estructura point), de modo que se puedan almacenar hasta 1000 puntos mediante un array de estructuras. Solicite al usuario los datos de los dos primeros puntos y luego muéstrelos.

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()
    {
        const int MAX_POINTS = 1000; // Maximum number of points
        Point2D[] points = new Point2D[MAX_POINTS]; // Array to store points

        // Getting data for the first point
        Console.WriteLine("Enter data for the first point:");
        points[0] = ReadPoint();

        // Getting data for the second point
        Console.WriteLine("\nEnter data for the second point:");
        points[1] = ReadPoint();

        // Displaying entered data
        Console.WriteLine("\nStored Points:");
        DisplayPoint("Point 1", points[0]);
        DisplayPoint("Point 2", points[1]);
    }

    // Method to read a single point's data from user input
    static Point2D ReadPoint()
    {
        Point2D point;
        point.x = ReadShort("X coordinate: ");
        point.y = ReadShort("Y coordinate: ");
        point.r = ReadByte("Red component (0-255): ");
        point.g = ReadByte("Green component (0-255): ");
        point.b = ReadByte("Blue component (0-255): ");
        return point;
    }

    // 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#..