Свойство, доступное только для записи - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д