Не получается обработать исключение деления на ноль - C#

Узнай цену своей работы

Формулировка задачи:

Ну никак не получается обработать исключение деление на 0. То все время выбрасывает его, то вообще никогда. Его надо обработать в методе public double Cos(Vector s). Оно должно выбрасываться если вы введете координаты 1, 2, 3 Вот код:
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApplication
{
    class Vector
    {
 
        //////////////////////////
        private double x;
        private double y;
        private double z;
        /////////////////////////
 
        public Vector() // Конструктор без аргументов
        { x = 1; y = 2; z = 3; }
        public Vector(double a, double b, double c) // Конструктор с аргументами
        { x = a; y = b; z = c; }
 
        /// //////// Свойства для x,y,z
        public double X
        {
            set { }
            get { return x; }
        }
        public double Y
        {
            set { }
            get { return y; }
        }
        public double Z
        {
            set { }
            get { return z; }
        }
 
        public double GetLength() // Метод для получения длинны вектора
        { return Math.Sqrt(x * x + y * y + z * z); }
 
        public static Vector operator -(Vector k, Vector r) // Перегружаем "-"
        { return new Vector(k.x - r.x, k.y - r.y, k.z - r.z); }
 
        public static Vector operator +(Vector k, Vector r) // Перегружаем "+"
        { return new Vector(k.x + r.x, k.y + r.y, k.z + r.z); }
 
        public static double operator *(Vector k, Vector r) // Перегружаем "*"
        {
            return (k.x * r.x + k.y * r.y + k.z * r.z);
        }
 
        public double Cos(Vector s)  // Метод для получения косинуса угла между векторами
        {

              return  (this * s) / (this.GetLength() * s.GetLength());

        }

    }
 
    internal class Program
    {
 
        /// /////////////////////////////////////////////////////////// 
        private static void Main()
        {
            double x, y, z;
            Console.WriteLine("Составить описание класса для вектора, заданного координатами его концов в трех¬мерном пространстве. Обеспечить операции сложения и вычитания векторов с получением нового вектора (суммы или разности), вычисления скалярного произведения двух векторов, длины вектора, косинуса угла между векторами. Написать программу, демонстрирующую все разработанные элементы класса.");
 
            Vector v1 = new Vector();
            Console.WriteLine("\nИспользуем конструктор без параметров и получаем вектор со следующтми координатами:");
            Console.WriteLine("v1=({0},{1},{2})", v1.X, v1.Y, v1.Z);
            Console.WriteLine("Введите координаты вектора");
            x = Convert.ToDouble(Console.ReadLine());
            y = Convert.ToDouble(Console.ReadLine());
            z = Convert.ToDouble(Console.ReadLine());
            Vector v2 = new Vector(x, y, z);
            Console.WriteLine("Используем конструктор с параметрами и получаем вектор со следующтми координатами:");
            Console.WriteLine("v2=({0},{1},{2})", v2.X, v2.Y, v2.Z);
            Vector v3 = new Vector();
            v3 = v2 - v1;
            Vector v4 = new Vector();
            v4 = v2 + v1;
            Console.WriteLine("v3=v2-v1=({0},{1},{2})", v3.X, v3.Y, v3.Z);
            Console.WriteLine("v4=v2+v1=({0},{1},{2})", v4.X, v4.Y, v4.Z);
            double ProizV3V4 = v3 * v4;
            double Cos = v3.Cos(v4);
 
            Console.WriteLine("Скалярное произведение v3*v4={0}", ProizV3V4);
            Console.WriteLine("Косинус между векторами v3 и v4: {0}", Cos);
 
            Console.ReadKey();
        }
    }
}

Решение задачи: «Не получается обработать исключение деления на ноль»

textual
Листинг программы
if (this.GetLength() == 0 || s.GetLength() == 0)
   throw new DivideByZeroException();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы