Свойство, доступное только для записи - C#
Формулировка задачи:
Проверьте, пожалуйста, код.
Проблема:
требуется написать свойство, позволяющее умножить координаты точки на скаляр, доступное только для записи. class Point: строки с 67 по 80. В Program вместо новых координат (полученных в методе Move), подставляются старые координаты точки (1,2), причем при расчетеy
value удваивается (координата умножается на 6). Строки 26 - 28.using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Practice_Classes { class Point { int x; int y; public Point() //конструктор для нулевых координат { x = 0; y = 0; } public Point(int x, int y) //конструктор для заданных координат { this.x = x; this.y = y; } public void Print() // вывести координаты точек на экран; { Console.WriteLine("Координаты точки: х = {0}, y = {1}", x, y); } public double Length(int x, int y) // рассчитать расстояние от начала координат до точки; { return Math.Sqrt(x * x + y * y); } public static void Move(int x, int y) // переместить точку на плоскости на вектор(a, b) , int a, int b { Console.WriteLine("Перемещение точки на плоскости на вектор(a, b). Введите а:"); int a = int.Parse(Console.ReadLine()); Console.WriteLine("Введите b:"); int b = int.Parse(Console.ReadLine()); x = x + a; y = y + b; Console.WriteLine("Координаты точки: х = {0}, y = {1}", x, y); } public int X //свойство для обращения к полю x { get { return x; } set { x = value; } } public int Y //свойство для обращения к полю y { get { return y; } set { y = value; } } //Свойство, позволяющее умножить координаты точки на скаляр (доступное только для записи) public int Sx //свойство только для записи { set { x = x * value; } } public int Sy //свойство только для записи { set { y = y * value; } } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Practice_Classes { class Program { static void Main(string[] args) { Point p1 = new Point(); p1.Print(); Point p2 = new Point(1,2); p2.Print(); double z = p2.Length(p2.X,p2.Y); //вызов метода Length Console.WriteLine("Расстояние между точками (0,0) и ({0},{1}) = {2:f2}", p2.X, p2.Y, z); Point.Move(p2.X,p2.Y); // Дальше что-то не так... Вместо новых координат (полученных в методе Move), подставляются старые координаты точки (1,2). p2.Sx = p2.X * 3; p2.Sy = p2.Y * 3; // Вместо 3 подставляется 6! Console.WriteLine("Координаты точки: х = {0}, y = {1}", p2.X, p2.Y); Console.ReadKey(); } } }
Решение задачи: «Свойство, доступное только для записи»
textual
Листинг программы
set { x = x * value; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д