Creación Y Uso De Una Clase De Punto 3D En C#

En este ejercicio, crearemos una clase Point3D para representar un punto en un espacio 3D con tres coordenadas: X, Y y Z. Esta clase proporcionará métodos para mover el punto a nuevas coordenadas, calcular la distancia a otro punto y devolver una representación de cadena del punto. El programa permitirá al usuario crear múltiples puntos, moverlos a diferentes coordenadas y calcular la distancia entre ellos.

La clase Point3D incluirá:

- Un constructor para inicializar el punto con las coordenadas X, Y y Z.
- Un método MoveTo para cambiar las coordenadas del punto.
- Un método DistanceTo para calcular la distancia euclidiana a otro punto.
- Un método ToString para devolver el punto como una cadena con el formato "(X,Y,Z)".
- Métodos getter y setter para todas las coordenadas.

En el programa de prueba, crearemos un array de 5 puntos, modificaremos sus coordenadas y calcularemos y mostraremos las distancias desde el primer punto hasta los demás.



Grupo

Clases avanzadas en C#

Objectivo

1. Cree una clase Point3D para representar un punto 3D con coordenadas X, Y y Z.
2. Implemente el método MoveTo para modificar las coordenadas del punto.
3. Implemente el método DistanceTo para calcular la distancia entre dos puntos utilizando la fórmula de la distancia euclidiana.
4. Implemente el método ToString para devolver el punto como una cadena con el formato "(X,Y,Z)".
5. En el programa de prueba, cree un array de 5 puntos, introduzca sus datos y calcule y muestre las distancias entre el primer punto y los otros cuatro.

Cree una clase "Point3D" para representar un punto en el espacio 3D con coordenadas X, Y y Z. Debe contener los siguientes métodos: MoveTo, DistanceTo(Point3D p2), ToString y métodos getter y setter. El programa de prueba debe crear un array de 5 puntos, obtener sus datos y calcular (y mostrar) la distancia desde el primer punto hasta los cuatro restantes.

Ejemplo de ejercicio en C#

 Copiar código C#
using System;

class Point3D
{
    // Private fields for X, Y, and Z coordinates of the point
    private double x, y, z;

    // Constructor to initialize the point with coordinates X, Y, and Z
    public Point3D(double x, double y, double z)
    {
        this.x = x;
        this.y = y;
        this.z = z;
    }

    // Getter and setter for the X coordinate
    public double X
    {
        get { return x; }
        set { x = value; }
    }

    // Getter and setter for the Y coordinate
    public double Y
    {
        get { return y; }
        set { y = value; }
    }

    // Getter and setter for the Z coordinate
    public double Z
    {
        get { return z; }
        set { z = value; }
    }

    // Method to move the point to new coordinates
    public void MoveTo(double newX, double newY, double newZ)
    {
        x = newX;
        y = newY;
        z = newZ;
    }

    // Method to calculate the Euclidean distance between the current point and another point
    public double DistanceTo(Point3D otherPoint)
    {
        double deltaX = x - otherPoint.X;
        double deltaY = y - otherPoint.Y;
        double deltaZ = z - otherPoint.Z;
        return Math.Sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ);
    }

    // Method to return the point as a string in the format "(X,Y,Z)"
    public override string ToString()
    {
        return $"({x}, {y}, {z})";
    }
}

class Program
{
    static void Main()
    {
        // Create an array of 5 points with initial coordinates
        Point3D[] points = new Point3D[5];
        points[0] = new Point3D(1, 2, 3);  // Point 1
        points[1] = new Point3D(4, 5, 6);  // Point 2
        points[2] = new Point3D(-1, -2, -3);  // Point 3
        points[3] = new Point3D(7, 8, 9);  // Point 4
        points[4] = new Point3D(10, 11, 12);  // Point 5

        // Display the coordinates of all points
        Console.WriteLine("Points:");
        for (int i = 0; i < points.Length; i++)
        {
            Console.WriteLine($"Point {i + 1}: {points[i]}");
        }

        // Calculate and display the distance from the first point to the others
        Console.WriteLine("\nDistances from Point 1:");
        for (int i = 1; i < points.Length; i++)
        {
            double distance = points[0].DistanceTo(points[i]);
            Console.WriteLine($"Distance from Point 1 to Point {i + 1}: {distance}");
        }
    }
}

 Output

Points:
Point 1: (1, 2, 3)
Point 2: (4, 5, 6)
Point 3: (-1, -2, -3)
Point 4: (7, 8, 9)
Point 5: (10, 11, 12)

Distances from Point 1:
Distance from Point 1 to Point 2: 5.196152422706632
Distance from Point 1 to Point 3: 7.0710678118654755
Distance from Point 1 to Point 4: 10.392304845413264
Distance from Point 1 to Point 5: 14.866068747318506

Comparte este ejercicio de C#

Practica más ejercicios C# de Clases avanzadas en 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#..