Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- //1) Напишите объявление структуры, которая бы описывала точку на плоскости
- //2) ... которая бы описывала прямоугольник на плоскости (стороны параллельны осям)
- //3) Напишите функцию, которая получает координаты точки и список прямоугольников в качестве
- //входных аргументов и возвращает список тех прямоугольников, внутри которых лежит точка
- namespace point_poligon
- {
- class Program
- {
- //описываем точку
- public struct Point
- {
- public int X;
- public int Y;
- public void Increment()
- {
- X++;
- Y++;
- }
- }
- //описываем прямоугольник
- public struct Rectangle
- {
- public string Name;
- //верхний левый угол
- public int X;
- public int Y;
- public int width; //ширина прямоугольника.
- public int height; //высота прямоугольника
- }
- //функция, которая получает координаты точки и список прямоугольников
- //и возвращает список тех прямоугольников, внутри которых лежит точка
- public static List<Rectangle> FindRectangles (Point z, List<Rectangle> lstIn)
- {
- List<Rectangle> lstOut = new List<Rectangle>();
- for (int i = 0; i < lstIn.Count; i++)
- {
- if (z.X >= lstIn[i].X && z.X <= lstIn[i].X+ lstIn[i].width)
- {
- if (z.Y <= lstIn[i].Y && z.X >= lstIn[i].Y - lstIn[i].height)
- {
- lstOut.Add(lstIn[i]);
- }
- }
- }
- return lstOut;
- }
- static void Main(string[] args)
- {
- Point z;
- z.X = 10;
- z.Y = 5;
- Rectangle a;
- a.Name = "a";
- a.X = 10;
- a.Y = 10;
- a.width = 15;
- a.height = 10;
- Rectangle b;
- b.Name = "b";
- b.X = 5;
- b.Y = 15;
- b.width = 10;
- b.height = 20;
- Rectangle c;
- c.Name = "c";
- c.X = 15;
- c.Y = 0;
- c.width = 10;
- c.height = 5;
- //собираем прямоугольники в список
- List<Rectangle> lstRectangle = new List<Rectangle>();
- {
- lstRectangle.Add(a);
- lstRectangle.Add(b);
- lstRectangle.Add(c);
- }
- foreach (Rectangle i in FindRectangles(z, lstRectangle))
- {
- Console.WriteLine(i.Name);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement