Advertisement
myloyo

17.1

Dec 14th, 2023
1,013
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.13 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4. using System.Runtime.CompilerServices;
  5. using System.Security.Cryptography.X509Certificates;
  6.  
  7. namespace myloyorrr
  8. {
  9.     class Program
  10.     {
  11.         class SPoint
  12.         {
  13.             private int x, y;
  14.             public SPoint() { } //конструктор с нулевыми координатами
  15.             public SPoint(int x, int y) { //конструктор с заданными координатами
  16.                 this.x = x; this.y = y ;
  17.             }
  18.             public SPoint(SPoint a)
  19.             {
  20.                 this.x = a.x; this.y = a.y;
  21.             }
  22.             public void Show(StreamWriter sw) // выводим координаты точки на экран
  23.             {
  24.                 sw.WriteLine("({0}, {1})", this.x, this.y);
  25.             }
  26.             public double Distance() // расстояние от начала координат до точки
  27.             {
  28.                 return Math.Sqrt(x * x + y * y);
  29.             }
  30.             public int[] Vector(int a, int b) // перемещаем точку на вектор
  31.             {
  32.                 this.x = x + a;
  33.                 this.y = y + b;
  34.                 int[] coord = {x, y};
  35.                 return coord;
  36.             }
  37.             public int X //получить-установить точку х
  38.             {
  39.                 get { return x; }
  40.                 set { x = value; }
  41.             }
  42.             public int Y //получить-установить точку y
  43.             {
  44.                 get { return y; }
  45.                 set { y = value; }
  46.             }
  47.             public int Mul //умножаем точку на скаляр
  48.             {
  49.                 set
  50.                 {
  51.                     x *= value;
  52.                     y *= value;
  53.                 }
  54.             }
  55.             public int this[int i] //индексатор
  56.             {
  57.                 get
  58.                 {
  59.                     if (i == 0)
  60.                     {
  61.                         return x;
  62.                     }
  63.                     else if (i == 1)
  64.                     {
  65.                         return y;
  66.                     }
  67.                     else
  68.                     {
  69.                         throw new IndexOutOfRangeException("unacceptable index");
  70.                     }
  71.                 }
  72.                 set
  73.                 {
  74.                     if (i == 0)
  75.                     {
  76.                         x = value;
  77.                     }
  78.                     else if (i == 1)
  79.                     {
  80.                         y = value;
  81.                     }
  82.                     else
  83.                     {
  84.                         throw new IndexOutOfRangeException("unacceptable index");
  85.                     }
  86.                 }
  87.             }
  88.             public static SPoint operator++(SPoint x)
  89.             {
  90.                 SPoint p = new SPoint(x);
  91.                 p.x++;
  92.                 p.y++;
  93.                 return p;
  94.             }
  95.             public static SPoint operator --(SPoint x)
  96.             {
  97.                 SPoint p = new SPoint(x);
  98.                 p.x -= 1;
  99.                 p.y -= 1;
  100.                 return p;
  101.             }
  102.             public static bool operator true(SPoint a)
  103.             {
  104.                 if (a.x != a.y)
  105.                 {
  106.                     return false;
  107.                 }
  108.                 return true;
  109.             }
  110.             public static bool operator false(SPoint a)
  111.             {
  112.                 if (a.x == a.y)
  113.                 {
  114.                     return false;
  115.                 }
  116.                 return true;
  117.             }
  118.             public static SPoint operator +(SPoint t, int a)
  119.             {
  120.                 SPoint temp = new SPoint(t);
  121.                 temp.x += a;
  122.                 temp.y += a;
  123.                 return temp;
  124.  
  125.             }
  126.             public static SPoint operator -(SPoint t, int a)
  127.             {
  128.                 SPoint temp = new SPoint(t);
  129.                 temp.x -= a;
  130.                 temp.y -= a;
  131.                 return temp;
  132.             }
  133.  
  134.         }
  135.         static void Main()
  136.         {
  137.             using (StreamReader sr = new StreamReader("C:/Настя/книит/in.txt"))
  138.             {
  139.                 using (StreamWriter sw = new StreamWriter("C:/Настя/книит/out.txt"))
  140.                 {
  141.                     SPoint t = new SPoint (3, 3); // создаем точку (2,3)
  142.                     t.Show(sw);
  143.  
  144.                     double r = t.Distance();
  145.                     sw.WriteLine(r); // расстояние от начала координат до точки
  146.  
  147.                     t.Vector(3, 4); // перемещаем точку на вектор
  148.                     t.Show(sw);
  149.  
  150.                     t.X = -5; // изменяем координату точки х
  151.                     t.Y = -3; // изменяем координату точки у
  152.                     t.Show(sw);
  153.  
  154.                     t.Mul = 5;
  155.                     t.Show(sw);
  156.  
  157.                     sw.WriteLine(t[0]);
  158.                     sw.WriteLine(t[1]);
  159.  
  160.                     t++;
  161.                     t.Show(sw);
  162.                     t--;
  163.                     t.Show(sw);
  164.  
  165.                     if (t)
  166.                     {
  167.                         sw.WriteLine("значения полей одинаковые");
  168.                     }
  169.                     else
  170.                     {
  171.                         sw.WriteLine("значения полей разные");
  172.                     }
  173.  
  174.                     t.X = -15;
  175.                     if (t)
  176.                     {
  177.                         sw.WriteLine("значения полей одинаковые");
  178.                     }
  179.                     else
  180.                     {
  181.                         sw.WriteLine("значения полей разные");
  182.                     }
  183.  
  184.                     t = t + 4;
  185.                     t.Show(sw);
  186.  
  187.                     t = t - 10;
  188.                     t.Show(sw);
  189.  
  190.                     sw.WriteLine(t[2]);
  191.  
  192.                 }
  193.             }
  194.  
  195.         }
  196.     }
  197. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement