
- •1. Эволюция языков программирования. Что такое net?
- •Internet и появление языка Java.
- •2.Компоненты платформы net.
- •3.Модель выполнения приложения в среде .Net Framework. Промежуточный язык Microsoft (Microsoft Intermediate Language, msil). Сборки.
- •4. Обзор встроенных типов данных c#. Применение встроенной функциональности типов данных.
- •5.Операции ввода/вывода. Формат вывода. Пространство имён System. Класс System.Math.
- •6.Операции, операторы и выражения в c# .
- •Операторы
- •7. Массивы в c# (одномерные и двумерные). Класс System.Random, применение его методов для создания массива случайных чисел. Класс System.Array, использование его методов и свойства Length.
- •8. Структуры в c#, создание структуры.
- •9. Понятие объектно-ориентированного программирования.
- •10. Классы в c#. Члены класса: методы, поля, свойства и события. Форма определения класса.
- •11. Типы значений и ссылочные типы. Динамическое использование памяти: стеки и кучи. Упаковка и распаковка.
- •12. Конструкторы и деструкторы. Сборка «мусора».
- •13. Определение пользовательских методов класса. Модификаторы доступа к методам класса. Параметры методов класса, передача аргументов. Модификаторы ref, out, params параметров методов.
- •14. Возвращение методами объектов класса. Возвращение методами массивов.
- •15. Общие (статические) члены класса. Доступ к общим членам. Ограничения на static-методы.
- •Ограничения на static-методы.
- •16.Область видимости и время существования переменных. Преобразование и приведение типов.
- •17.Обработка исключительных ситуаций.
- •18.Перегрузка методов. Перегрузка конструкторов.
- •19.Перегрузка операторов. Перегрузка бинарных, унарных и операторов отношений.
- •20. Инкапсуляция и свойства. Формат записи свойств.
- •21.Индексаторы. Специальные приемы построения типов. Создание одномерного индексатора.
- •22.Создание двумерного индексатора.
- •23.Механизмы реализации инкапсуляции в c#.
- •24.Базовые классы и наследование. Доступы к членам классов.
- •25.Конструкторы и наследование.
- •26.Ссылки на базовый класс и объекты производных классов.
- •27.Виртуальные методы и их переопределение.
- •28.Использование абстрактных классов.
- •29.Механизмы реализации полиморфизма в c#.
- •30.Интерфейсы. Реализация интерфейсов. Стандартные интерфейсы среды .Net Framework.
- •31.Коллекции. Классы коллекций общего назначения.
- •32.Делегаты. Назначение делегатов. Многоадресатная передача.
- •33.События. Объявление и генерация событий. Реализация обработчиков событий
- •34.Обзор технологий программирования Windows-приложений.
- •35.Архитектура Windows Forms. Класс Form.
- •36.Элементы управления формы
35.Архитектура Windows Forms. Класс Form.
Windows Forms (Формы Windows) — это та часть каркаса .NET Framework, кот.поддерживает создание приложений со стандартным графич.пользоват. интерфейсом (GUI) на платформе Windows. Windows Forms создают более однородную (гомогенную) стр-ру и устраняют многие ошибки и противоречия от использования Windows API. Написание приложения с исп-нием Windows Forms потребует меньшего кол-ва кода, чем приложения, кот.исп-т Windows API или MFC. Другая выгода от Windows Forms - используется тот же самый API, независимо от языка прогр-ния. Windows Forms — название той части .NET Framework, кот.отвечает за графич. интерфейс пользователя. Windows Forms «оборачивает» в управляемый код стандартные элементы управления Windows, доступныепри помощи Win32 API. Причем управляеый код - классы, реализующие API для Windows Forms, не за висят от языка разработки. Внутри .NET Framework, Windows Forms реализуется в рамках пространства имён System.Windows.Forms. Формы Windows реализуются набором классов из пр-ва имен Systems.Windows.Forms. В основе почти каждого приложения, написанного с применением Windows Forms, - производный класс от System.WinForms.Form. Приложения, основанные на Windows Forms, которые используют кнопки, списки и другие типы компонентов Windows, используют классы управления System.WinForms, значительно упрощающие программирование управления.
36.Элементы управления формы
В Windows Forms термин "форма" - синоним окна верхнего уровня. Главное окно приложения - форма. Любые другие окна верхнего уровня, окна диалога - также формы. Формы позволяют отображать различные типы окон. Для создания формы, идентичной существующей, в проект следует добавить элемент Inherited Form и указать класс копируемой формы.Приложения, использующие Windows Forms используют классы System.WinForms. Этот раздел включает такие классы, как Form, который моделирует поведение окон или форм; Menu, который представляет меню; Clipboard, который дает возможность приложениям использовать буфер обмена. Другой важный "строительный" блок приложения класс System.WinForms по имени Application. Этот класс содержит стат.метод Run, кот. загружает приложение и отображает окно.
Автоматическое масштабирование формы. Если форма создавалась при размере системного шрифта, установленного через апплет Display (Экран) панели управления в Normal (Обычный) (96 DPI), то пользователь может сменить шрифт на Large (Крупный) (120 DPI) или выбрать какое-нибудь нестандартное значение.Одного масштабирования системных параметров шрифтов недостаточно для поддержки подстройки формы под запросы пользователей.
Создание новой формы.Для создания и отображения новой формы следует вызвать конструктор формы и затем вызвать метод Show. При этом, если создаваемая форма является дочерней, то следует установить значение свойства MdiParent.Например: // Создание нового экземпляра дочерней формы Form childForm = new Form(); // Делаем форму дочерней // для MDI-формы // до ее отображения childForm.MdiParent = this; childForm.Text = "Window " + childFormNumber++; childForm.Show(); // Отображаем дочернюю форму
Закрытие формыЗакрытие формы выполняется вызовом метода Close. Для того, чтобы закрыть все дочерние формы в MDI-приложении, следует использовать свойство MdiChildren, содержащее массив дочерних форм.Например: private void CloseAllToolStripMenuItem_Click( object sender, EventArgs e){ foreach (Form childForm in MdiChildren) { childForm.Close(); } }Масштабирование позволяет размещать элементы управления на форме на этапе разработки при использовании одних настроек системных шрифтов и в то же время добиться корректного отображения формы при других настройках системных шрифтов в период выполнения. Привязка позволяет изменять размеры и перемещать элементы управления с фиксацией их по отношению к определенным краям формы. Стыковка фиксирует элемент управления на конкретном крае. Разделение дает возможность изменять размеры пристыкованных эл-тов управления, а группирование - разбивать элементы управления на небольшие группы, которыми легче управлять.
Массив точек
Point T1 = new Point();
T1.show_point();
sbyte n;
Console.WriteLine("Vvedi kollichestvo tochek");
n = SByte.Parse(Console.ReadLine());
Point[] mas = new Point[n];
int i;
for (i = 0; i < n; i++)
{
mas[i] = new Point();
mas[i].Input_Point();
}
Console.WriteLine("Soderjimoe massiva");
for (i = 0; i < n; i++)
mas[i].show_point();
1. Эволюция языков программирования. Что такое NET?
2.Компоненты платформы NET.
3.Модель выполнения приложения в среде .NET Framework. Промежуточный язык Microsoft (Microsoft Intermediate Language, MSIL). Сборки.
4. Обзор встроенных типов данных C#. Применение встроенной функциональности типов данных.
5.Операции ввода/вывода. Формат вывода. Пространство имён System. Класс System.Math.
6.Операции, операторы и выражения в C# .
Оператор
Операторы
7. Массивы в C# (одномерные и двумерные). Класс System.Random, применение его методов для создания массива случайных чисел. Класс System.Array, использование его методов и свойства Length.
8. Структуры в C#, создание структуры.
9. Понятие объектно-ориентированного программирования.
10. Классы в C#. Члены класса: методы, поля, свойства и события. Форма определения класса.
11. Типы значений и ссылочные типы. Динамическое использование памяти: стеки и кучи. Упаковка и распаковка.
13. Определение пользовательских методов класса. Модификаторы доступа к методам класса. Параметры методов класса, передача аргументов. Модификаторы ref, out, params параметров методов.
14. Возвращение методами объектов класса. Возвращение методами массивов.
15. Общие (статические) члены класса. Доступ к общим членам. Ограничения на static-методы.
16.Область видимости и время существования переменных. Преобразование и приведение типов.
17.Обработка исключительных ситуаций.
18.Перегрузка методов. Перегрузка конструкторов.
19.Перегрузка операторов. Перегрузка бинарных, унарных и операторов отношений.
21.Индексаторы. Специальные приемы построения типов. Создание одномерного индексатора.
22.Создание двумерного индексатора.
23.Механизмы реализации инкапсуляции в C#.
24.Базовые классы и наследование. Доступы к членам классов.
25.Конструкторы и наследование.
26.Ссылки на базовый класс и объекты производных классов.
27.Виртуальные методы и их переопределение.
28.Использование абстрактных классов.
29.Механизмы реализации полиморфизма в C#.
30.Интерфейсы. Реализация интерфейсов. Стандартные интерфейсы среды .NET Framework.
31.Коллекции. Классы коллекций общего назначения.
32.Делегаты. Назначение делегатов. Многоадресатная передача.
33.События. Объявление и генерация событий. Реализация обработчиков событий
34.Обзор технологий программирования Windows-приложений.
35.Архитектура Windows Forms. Класс Form.
36.Элементы управления формы
Дано множество точек на плоскости.Сколько точек этого множества окажуться вне круга, ограниченного окружностью с центром в последней точке этого множества и радиусом, равны 2
bool flag = false;
double radius, s, m;uint kol = 0;
radius = 2;
Circle Okr = new Circle(mas[n] - 1, radius);
for (i = 0; i < n1 - 1; i++){
s = Math.Pow((mas[i].koord_x - mas[0].koord_x), 2) + Math.Pow((mas[i].koord_y - mas[0].koord_y), 2);
m = Math.Pow(radius, 2); if (s > m)
{ kol++; flag = true; } }
if (flag) Console.WriteLine("{0}точек дежит вне круга", kol);
else
Console.WriteLine("Нет точек за кругом");}*/
Дано множество точек на плоскости. Найти такую окружность с центром в начале координат, длина которой больше7
double radius,dlina; uint x=0;
bool flag= false;
Point T=new Point(0,0);
for (i= 0;i<n1;i++) {
Otrezok Otr=new Otrezok(T,mas[i]);
radius=Ort.perimetr();
Circle Okr=new Circle(T,radius);
dlina=Okr.perimetr();
if(dlina>7){ x=i; flag=true;} if(flag)
{ Console.WriteLine("Через точку");
mas[x].show_point();
Console.WriteLine("проходит окрухность, длина которой больше 7");}
else Console.WriteLine("Таких точек нет"):*/
Дано множество точек на плоскости.Сколько точек данного множества не попадает в круг с центром в начале координат и радиусом равным 5 единиц.?
bool flag = false;
double radius, s, m; uint kol = 0;
Point T = new Point(0, 0);
radius = 5;
Circle Okr = new Circle(T, radius);
for(i=0;i<n1-1;i++){
s = Math.Pow((mas[i].koord_x - mas[0].koord_x), 5) + Math.Pow((mas[i].koord_y - mas[0].koord_y), 5);
m = Math.Pow(radius, 5); if (s > m) { kol++; flag = true; } }
if (flag) Console.WriteLine("{0}точек дежит вне круга", kol);
else
Console.WriteLine("Нет точек за кругом");}*/
/*Дано множество точек на плоскости.Сколько точек этого множества окажутсжутся вне круга, ограниченного окружностью с центром в последней точке этого множества и радиусом, равным расстоянию между второй и предпоследней точками этого множества?
double radius, s, m;
Otrezok Otr = new Otrezok(mas[i], mas[n1 - 2]);
radius = Otr.perimetr();
Circle Okr = new Circle(mas[n1 - 1], radius);
Console.WriteLine("\nТочка с координатами");
for (i = 0; i < n1; i++)
{
s = Math.Pow((mas[i].koord_x - mas[n1 - 1].koord_x), 5) + Math.Pow((mas[i].koord_y - mas[n1 - 1].koord_y), 5);
m = Math.Pow(radius, 5);
if (s > m) { Console.WriteLine("\t-лежит вне окружности\t");
mas[i].show_point(); } }
Дано множество точек на плоскости.Указать в нём две точки, чтобы прямая, проходящая через них, делила 2и 4 координатные углы пополам.
bool flag = false, flag1;
uint j, x = 0, y = 0;
double m1, m2, m3, m4;
for (i=0;i<n1-1;i++)
for(j=i+1;j<n1:j++){ Prjamaja Pr=new Prjamaja(mas[i],mas[j]);
if(Pr.Is_Prjamaja)
{m1=mas[i].koord_x; m2=mas[i].koord_y; m3=mas[j].koord_x;
m4=mas[j].koord_y;
if(Math.Abs(m1)==Math.Abs(m2)&& Math.Abs(m3)==Math.Abs(m4))
flag=true; else flag1=false;
if (flag1&&((m1>0 && m2<0||m3>0&&m4<0)||(m1<0&&m2>0||m3<0&&m4>0)))
{x=i;y=j;flag=true;}}}
if(flag==false)Console.WriteLine("Таких точек нет");
else { Console.WriteLine("Через точки:");
mas[x].show_point(); mas[y].show_point(); Console.WriteLine("проходит прямая, делящая 2 и 4 координатные углы попалам");*/
/*Дано множество точек на плоскости. Указать в нём две такие точки, чтобы отрезок, концами которого они являются, был паралелен оси ОХ
bool flag = false;
uint j, x = 0, y = 0;
for(i=0;i<n1-1;i++) for(j=i+1;j<n1;j++) {
Otrezok Otr=new Otrezok(mas[i],mas[j]);
if(Otr.Is_Otrezok && mas[i].koord_y==mas[j].koord_y) {flag=true;x=if;y=j;}}
if(flag)
{Console.WriteLine("Через точки");
mas[x].show_point(); mas[y].show_point();
Console.WriteLine("проходит отрезок паралельный оси ОХ");
Дано множество точек на плоскостиюМожно ли указать пару точуе M и N в этом множестве таких, чтобы отрезок MN был перпендикулярен оси ОУ и находился в нижней полеплоскости?
uint j; double y1, y2; bool flag = false;
Console.WriteLine("Через точки проходит отрезок перпендикулярный ОУ в нижней полеплоскости,\n их координаты:");
for (i = 0; i < n1; i++) {
Otrezok Otr = new Otrezok(mas[i], mas[j]);
y1 = mas[i].koord_y;y2 = mas[j].koord_y;
if (Otr.Is_Otrezok){ if (y1 == y2 && y1 < 0 && y2 < 0) { mas[i].show.point(); mas[j].show_point(); Console.WriteLine("\n");
flag = true; }}}
if (flag == false) Console.WriteLine("Таких точек нет");*/
/*Дано множество точек на плоскости.Выбрать, если возможно, в этом множестве 2 точки так , чтобы из оставшихся точек ни одна больше не принадлежала прямой проходящей через выбранные 2 точки.
uint x = 0, y = 0, I, j; bool flag = false; double a, b, c, k, b0;
for(i=0;i<n1-1;i++) for (j=i+1;j<n1;j++){
Prjamaja Pr=new Prjamaja(mas[i],mas[j]); a=Pr.Koef_a; b=Pr.Koef_b; c=Pr.Koef_c; k=-a/b;
b0=-c/b;for (I=0;I<n1;I++)
{if((mas[I].koord_y>k*mas[I].koord_x+b0)||(mas[I].koord_y<k*mas[I].koord_x+b0)){
flag=true;x=if;
y=j;}}}
if(flag){
Console.WriteLine("Это точки:");
mas[x].show_point();
mas[y].show_point();}
else Console.WriteLine("Не возможно выбрать такие точки")
/*Дано множество точек на плоскости. можно ли в данном множестве точек найти тройку точек X,Y,Zтак, чтобы площадь треугольника XYZ была не меньше 7кв.ед.?
bool flag = false;uint j, k, x = 0, y = 0, z = 0;
double pl; for (i = 0; i < n1 - 2; i++)
{for (j = i + 1; j < n1 - 1; i++){ for (k = j + 1; k < n1; k++)
{Triangle Tr = new Triangle(mas[i], mas[j], mas[k]); if (Tr.Is_Triangle){
pl = Tr.area();if (pl >= 7){x = i; y = j; z = k;flag = true;}}}} } if (flag){
Console.WriteLine("Такой треугольник существует его вершины:");
mas[x].show_point(); mas[y].show_point(); mas[z].show_point();
}else { Console.WriteLine("Такой треугольник не существует"); }*/
/*Дано множество точек на плоскости. Можно ли найти такие точки в данном множестве, которые являлись бы вершинами двух равных между собой треугольнтков?
uint j, k, m, n, l;double s1, s2, p1, p2;
bool flag = false; Point[] index = new Point[6];
for(i=0;i<n1-2;i++){ for(j=i+1;j<n1-1;j++){
for(k=j+1;k<n1;k++){ Triangle Tr1=new Triangle(mas[i],mas[j],mas[k]);
s1=Tr1.area(); p1=Tr1.perimetr(); for(m=0;m<n1-2;m++){
for(n=m+1;n<n1-1;n++){ for(l=n+1;l<n1;l++){
if((mas[i]==mas[m])&&(mas[j]==mas[n])&&(mas[k]==mas[l])) flag=false;
else (Triangle Tr=new Triangle(mas[m],mas[n],mas[l])); s2=Tr.area();p2=Tr.perimetr(); if(s1==s2&&p1==p2){ index[0]=mas[i];index[1]=mas[j];
index[2]=mas[k];index[3]=mas[m];
index[4]=mas[n];index[5]=mas[l]; flag=true;}}}}}}}if(flag){
Console.WriteLine("\nТакие треугольники существуют и их вершины"); index[0].show_point(); index[1].show_point(); index[2].show_point(); Console.WriteLine("\n"); index[3].show_point();
index[4].show_point(); index[5].show_point();}
else Console.WriteLine("\nТакиз треугольников нет");*/
/*Дано множество точек на плоскости. Указать три точки X,Y,Z так, чтобы Х находилась в 1-ом координатном углу,У- dо атором,Z в третьем координатном углу и треугольник
XYZ имел площадь, меньшую 5кв.ед.
uint j, k, x = 0, y = 0, z = 0;
double pl, m1, m2, m3, m4, m5, m6;
bool flag = false;
for (i = 0; i < n1 - 2; i++)
{
for (j = i + 1; j < n1 - 1; j++)
{
for (k = j + 1; k < n1; k++)
{
m1 = mas[i].koord_x;
m2 = mas[i].koord_y;
m3 = mas[j].koord_x;
m4 = mas[j].koord_y;
m5 = mas[k].koord_x;
m6 = mas[k].koord_y;
if (m1 > 0 && m5 < 0 && m6 < 0) {
Triangle Tr = new Trianfle(mas[i], mas[j], mas[k]);
pl = Tr.area(); if (pl < 5) {
flag = true; x = i; y = j; z = k; } } } } } if (flag) {
Console.WriteLine("Такой треугольник существует, его вершины:");
mas[x].show_point();
mas[y].show_point();
mas[z].show_point(); }
else Console.WriteLine("Такой треугольник не существует");*/
/*Даны множества A и B, состоящие соответственно из N1 и N2 точек.Найти минимальное расстояние между точками этих множеств и сами точки, расположенные на этом расстоянии (вначале выводится точка из множества A, затем точка из множества B). */
uint i, j, m = 0, n = 0;
Console.WriteLine("Ввведите количество точек в множестве А");
uint N1 = UInt32.Parse(Console.ReadLine());
Point[] mas1 = new Point[N1];
for (i = 0; i < N1; i++){ mas1[i] = new Point();
mas1[i].Input_Point(); }
for (i = 0; i < N1; i++)mas1[i].show_point();
Console.WriteLine("Введите количество точек в множестве В");
uint N2 = UInt32.Parse(Console.ReadLine());
Point[] mas2 = new Point[N2]; for (i = 0; i < N2; i++){
mas2[i] = new Point();mas2[i].Input_Point();}
for (i = 0; i < N2; i++) mas2[i].show_point();
Otrezok Otr = new Otrezok(mas1[0], mas2[0]);
double rasst = Otr.perimetr(); for(i=0;i<N1;i++)
for (j = 0; j < N2; j++){
Otrezok Ot1 = new Otrezok(mas1[i], mas2[j]);
if (rasst > Ot1.perimetr()){ rasst = Ot1.perimetr();m = i; n = j;}}
Console.WriteLine("\n Минимальное расстояние между точками этих множеств = {0:#.####},", rasst);
Console.Write("а именно между точками");
mas1[m].show_point();
mas2[n].show_point();*/
Дано множество точек на плоскости. Сколько отрезков можно построить на данном множестве, один из концов которых лежит на оси ОY? */
uint i, j, kol = 0;
Console.WriteLine("Введите количество точек в множестве");
uint n1 = UInt32.Parse(Console.ReadLine());
Point[] mas = new Point[n1];
for (i = 0; i < n1; i++){
mas[i] = new Point();mas[i].Input_Point();}
Console.WriteLine("Множество:"); for (i = 0; i < n1; i++)
mas[i].show_point();for (i = 0; i < n1; i++){
for (j = 0; j < n1; j++){
Otrezok Ot2 = new Otrezok(mas[i], mas[j]);
if (Ot2.Is_Otrezok){
if (mas[i].koord_x == 0 || mas[j].koord_x == 0){
kol++;}}}}
Console.WriteLine("Всего можно построить{0} отрезков",kol/2);
Дано множество точек на плоскости. Сколько точек не принадлежит прямой, проходящей через две первые точки?
uint i, kol1 = 0, kol2 = 0;
Console.WriteLine("Введите количество точек в множестве");
uint n1 = UInt32.Parse(Console.ReadLine());
Point[] mas = new Point[n1];
for(i=0;i<n1;i++)
{mas[i]= new Point();mas[i].Input_Point();}
Console.WriteLine("Множество:");
for (i = 0; i < n1; i++)mas[i].show_point();
Prjamaja Pr = new Prjamaja(mas[0], mas[1]);
if(Pr.Is_Prjamaja){for(i=2;i<n1;i++){
if ((mas[i].koord_x-mas[0].koord_x)==(mas[i].koord_y-mas[0].koord_y)) kol1++;else kol2++;}}else kol2=0;
Console.WriteLine("{0} точек не принадлежат прямой, и {1} точек лежет на прямой",kol1,kol2);
Дано множество точек на плоскости. Сколько можно построить отрезков на данном множестве, имеющих одинаковую длину?
sbyte n;int N = 1;
Console.WriteLine("Введите колличество элементов в массиве точек.");
int n = Int32.Parse(Console.ReadLine());
Point[] mas = new Point[n];
for (int i = 0; i < n; i++){
mas[i] = new Point();
mas[i].Input_Point();}
Console.WriteLine("Введенные координаты:");
for (int i = 0; i < n; i++){
mas[i].show_point();}if (n < 2){N = 0;
Console.WriteLine("На плоскости нет отрезков!!!");}
if(n==2) N=1;if(n>2)
for(sbyte i=2;i<n;i++){N=N+i;}int t = 0;
int kol = 0;Otrezok[]mass=new Otrezok[N];
double[] dlin=new double[N]; int I = 0;
while (t != N){
for (int j = I + 1; j < n; j++){
mass[t] = new Otrezok(mas[I], mas[j]);
dlin[t] = mass[t].perimetr();
Console.WriteLine("Длинна = {0} ", dlin[t]);t++;}
I++;}for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
if ((dlin[i]==dlin[j]) && i != j){ kol++;j = N;}} }Console.WriteLine("Ответ: "+kol);*/
Дано множество точек на плоскости. Найти такую окружность
с центром в начале координат, на которой лежит наибольшее
количество точек данного множества.*/
double r,r1;int j,i,kol=0,max=0,nom=0;
Console.WriteLine("Введите кол-во элементов в массиве точек.");
int k = Int32.Parse(Console.ReadLine());Point[] mas = new Point[k];
Point T4 = new Point(0, 0);T4.show_point();
for ( i = 0; i < k; i++) {mas[i] = new Point();
mas[i].Input_Point();}
Console.WriteLine("Массив точек:");
for ( i = 0; i < k; i++) mas[i].show_point();
for (i = 0; i < k-1; i++){
Otrezok otr = new Otrezok(T4,mas[i] );r = otr.perimetr();
Circle cr = new Circle(T4,r);if (cr.Is_Circle){kol = 0;
for (j = i + 1; j < k; j++){
Otrezok otr1 = new Otrezok(T4,mas[j]);r1=otr1.perimetr();if (r == r1)
kol++;if (kol > max){max = kol;
nom=i;}}}} Console.WriteLine("окружность построена с радиусом , конец лежит в точке с номером " + nom); mas[nom].show_point();
Дано множество точек на плоскости. Можно ли указать пару точек M и N в этом множестве таких, чтобы отрезок MN был перпендикулярен оси Ox и находился в нижней полуплоскости?
uint i,j,kol=0;bool f = false;
Console.WriteLine("vvedite kol-vo tochek v mnozhestve");
uint k = UInt32.Parse(Console.ReadLine());
Point[] mas = new Point[k];for (i = 0; i < k; i++){mas[i] = new Point();mas[i].Input_Point();}Console.WriteLine("mnozhestvo :");for (i = 0; i < k; i++)
mas[i].show_point();
for (i = 0; i < k-1; i++){for (j = i+1; j < k; j++){Otrezok Ot2 = new Otrezok(mas[i], mas[j]);
{if (mas[i].koord_x == mas[j].koord_x && mas[i].koord_y < 0 && mas[j].koord_y < 0 ){
kol++;Console.WriteLine(" вот эти точки ");
mas[i].show_point();mas[j].show_point();}}}}
if (kol == 0)Console.WriteLine("нет ни одного отрезка");
Else Console.WriteLine("пара таких точек : "+ (kol/2));
/* Дано множество A из N точек на плоскости. Найти точку (вывести её номер и значение) среди всех точек этого множества,лежащих в первой или в третьей четверти, наиболее близкую к началу координат. Если таких точек нет, то вывести точку с нулевыми координатами.*/
int nom = 0;
double min,dlin=0;
Point T4 = new Point(1000000, 1000000);
Otrezok Otr3=new Otrezok(T1,T4);
min=Otr3.perimetr();
/*Console.WriteLine("minimym" + min);*/
for (i = 0; i < n; i++)
{
if (((mas[i].koord_x>0)&&(mas[i].koord_y>0))||((mas[i].koord_x<0)&&(mas[i].koord_y<0)))
{
Otrezok Otr4 = new Otrezok(T1, mas[i]);
dlin=Otr4.perimetr();
/*Console.WriteLine("Dlina" + dlin);*/
if (min>dlin)
{
min = dlin;
/*Console.WriteLine("minimym" + min);*/
nom = i;
}
}
}
i = nom;
Console.WriteLine("Точка наиболее близкая к началу координат");
if (min<=1000000)
mas[i].show_point();
else
T1.show_point();
Дано множество точек на плоскости. Найти такую окружность с
центром в начале координат, на которой лежит наибольшее количество точек данного множества.*/
Point T1 = new Point(0, 0);
T1.show_point();
sbyte n;
Console.WriteLine("Vvedi kollichestvo tochek");
n = SByte.Parse(Console.ReadLine());
Point[] mas = new Point[n];
int i, kol = 0;
for (i = 0; i < n; i++)
{
mas[i] = new Point();
mas[i].Input_Point();
}
Console.WriteLine("Soderjimoe massiva");
for (i = 0; i < n; i++)
mas[i].show_point();
int max = 0, j=0 ;
double per=0,k=0,dl=0;
for (i = 0; i < n; i++)
{
Otrezok rd = new Otrezok(T1, mas[i]);
per=rd.perimetr();
Console.WriteLine("radiys" + per);
for (j = i + 1; j < n; j++)
{
Otrezok otr = new Otrezok(T1, mas[j]);
dl = otr.perimetr();
if (dl == per)
kol++;
}
if (max < kol)
{
max = kol;
k = per;
}
}
Console.WriteLine("Okrygnost s radiysom "+k);