Свойство, доступное только для записи - C#

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

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

Проверьте, пожалуйста, код.

Проблема:

требуется написать свойство, позволяющее умножить координаты точки на скаляр, доступное только для записи. class Point: строки с 67 по 80. В Program вместо новых координат (полученных в методе Move), подставляются старые координаты точки (1,2), причем при расчете

y

value удваивается (координата умножается на 6). Строки 26 - 28.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Practice_Classes
  7. {
  8. class Point
  9. {
  10. int x;
  11. int y;
  12. public Point() //конструктор для нулевых координат
  13. {
  14. x = 0;
  15. y = 0;
  16. }
  17. public Point(int x, int y) //конструктор для заданных координат
  18. {
  19. this.x = x;
  20. this.y = y;
  21. }
  22. public void Print() // вывести координаты точек на экран;
  23. {
  24. Console.WriteLine("Координаты точки: х = {0}, y = {1}", x, y);
  25. }
  26. public double Length(int x, int y) // рассчитать расстояние от начала координат до точки;
  27. {
  28. return Math.Sqrt(x * x + y * y);
  29. }
  30. public static void Move(int x, int y) // переместить точку на плоскости на вектор(a, b) , int a, int b
  31. {
  32. Console.WriteLine("Перемещение точки на плоскости на вектор(a, b). Введите а:");
  33. int a = int.Parse(Console.ReadLine());
  34. Console.WriteLine("Введите b:");
  35. int b = int.Parse(Console.ReadLine());
  36. x = x + a;
  37. y = y + b;
  38. Console.WriteLine("Координаты точки: х = {0}, y = {1}", x, y);
  39. }
  40. public int X //свойство для обращения к полю x
  41. {
  42. get
  43. {
  44. return x;
  45. }
  46. set
  47. {
  48. x = value;
  49. }
  50. }
  51. public int Y //свойство для обращения к полю y
  52. {
  53. get
  54. {
  55. return y;
  56. }
  57. set
  58. {
  59. y = value;
  60. }
  61. }
  62. //Свойство, позволяющее умножить координаты точки на скаляр (доступное только для записи)
  63. public int Sx //свойство только для записи
  64. {
  65. set
  66. {
  67. x = x * value;
  68. }
  69. }
  70. public int Sy //свойство только для записи
  71. {
  72. set
  73. {
  74. y = y * value;
  75. }
  76. }
  77. }
  78. }
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Practice_Classes
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Point p1 = new Point();
  13. p1.Print();
  14. Point p2 = new Point(1,2);
  15. p2.Print();
  16. double z = p2.Length(p2.X,p2.Y); //вызов метода Length
  17. Console.WriteLine("Расстояние между точками (0,0) и ({0},{1}) = {2:f2}", p2.X, p2.Y, z);
  18. Point.Move(p2.X,p2.Y);
  19. // Дальше что-то не так... Вместо новых координат (полученных в методе Move), подставляются старые координаты точки (1,2).
  20. p2.Sx = p2.X * 3;
  21. p2.Sy = p2.Y * 3; // Вместо 3 подставляется 6!
  22. Console.WriteLine("Координаты точки: х = {0}, y = {1}", p2.X, p2.Y);
  23. Console.ReadKey();
  24. }
  25. }
  26. }

Решение задачи: «Свойство, доступное только для записи»

textual
Листинг программы
  1.             set
  2.             {
  3.                 x = x * value;
  4.             }

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


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

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

14   голосов , оценка 4.214 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы