Условия существования неявной функции
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Теорема Пусть

1. функция F(x, y) непрерывна в прямоугольной окрестности

D = { (x, y): |xx0| < δ1, |yy0| < δ2 }

точки (x0, y0) , причем F(x0, y0) = 0 ;

2. функция F(x, y) при каждом фиксированном x Î (x0δ1, x0 + δ1) строго монотонна по y на интервале (y0δ2, y0 + δ2) .

Тогда существует окрестность точки x0 , в которой уравнение F(x, y) = 0 определяет функцию y = y(x) ( y(x0) = y0 ), непрерывную в этой окрестности.

 

8. Указатель this.

Прежде чем перейти к перегрузке операторов, необходимо познакомиться с ключевым словом this языка С++, которое является существенным ингредиентом многих перегруженных операторов.

Всякий раз, когда вызывается функция-член, автоматически передается указатель на объект, вызывающий данную функцию. Можно получить доступ к этому указателю, используя this. Ука­затель this служит неявным параметром всех функций-членов. (Функции-друзья не имеют указате­ля this.) Например, в операторе:

оb.f();

функции f() автоматически передается указатель this, указывающий на объект ob.

Как известно, функции-члены имеют непосредственный доступ к данным класса. Например, если задан следующий класс:

class cl {
int i;
// ...
};

то функция-член может присвоить переменной i значение 10, используя следующую инструкцию:

i = 10;

Фактически эта инструкция является сокращенной записью следующий инструкции:

this->i = 10;

 

9. Спецификаторы доступа : public, private, protected.

 

Каждому члену класса можно установить его область (уровень) доступа (англ. access control level). Область доступа члена класса определяет участки кода, из которых к этому элементу будет возможно обращаться. В языке Си++ поддерживаются следующие области доступа:

•private (закрытый, частный, внутренний член конкретного класса) — обращения к элементу допускаются только из кода методов класса, в котором этот элемент определён. Любые наследники класса уже не смогут получить доступ к этому члену;

•protected (защищённый, внутренний член иерархии классов) — обращения к

элементу допускаются из кода методов класса, в котором этот элемент определён, или из любых его классов-наследников;

public (публичный, общедоступный, открытый член класса) — обращения к элементу допускаются из любого места.

Общие описания вида класса с использованием спецификатора доступа (последовательность может быть любая):

class имя_класса

{

описание_данных_и_методов_класса; // по умолчанию будет private:

public:

описание_данных_и_методов_класса;

protected:

описание_данных_и_методов_класса;

private:

описание_данных_и_методов_класса;

};

10. Понятие инкапсуляции. Процедурный и объектно-ориентированный подходы в программировании.

Инкапсуляция — свойство, позволяющие объединить данные и код (методы) в одном месте (объекте) и скрыть реализацию этого объекта от пользователя предоставив ему интерфейс (спецификацию). Работа пользователя с объектом осуществляется только через предоставленный интерфейс, а всё внутреннее устройство полностью скрыто. В языке Си++ способ управления доступом осуществляется с помощью использования ключевых слов private и public подробнее про них написано ниже. При этом public создаёт общедоступный интерфейс а private скрывает данные в классе.

Интерфейс — это совместно используемая часть, предназначенная для взаимодействия двух систем — например, между компьютером и принтером, или пользователем и компьютером. В отношении классов мы говорим об общедоступном интерфейсе. В этом случае потребителем его является программа, использующая класс, система взаимодействия состоит из объектов класса, а интерфейс состоит из методов, предоставленных тем, кто написал этот класс. Интерфейс позволяет вам, как программисту, написать код, взаимодействующий с объектами класса, и таким образом, позволяет программе взаимодействовать с объектами класса. Например, чтобы определить количество символов в объекте класса string, не надо просматривать, как этот объект работает внутри. А просто можно воспользоваться методом size() этого класса, предоставленного его разработчиком.

 

На протяжении долгого времени в программировании применялся процедурный подход. При этом программа состоит из функций, вызывающих друг друга.

Гораздо позже появилось объектно-ориентированное программирование, которое позволяет группировать функции и данные в единой сущности — «объекте».

Например, «пользователь», «меню», «элемент»… Чтобы ООП-подход «работал», объект должен представлять собой законченную, интуитивно понятную сущность.

То есть, объект — это нечто большее, чем просто «группировка» функций и данных. В частности, встроенный объект Math, хотя и содержит функции (Math.sin, Math.pow, …) и данные (Math.PI), не является объектом в смысле ООП. Это не более чем способ группировки: «пространство имён».




Меню, процедурный код

Например, пусть у нас есть HTML-элемент, представляющий собой «меню», вот такой:

1 <div id="food-menu" class="menu">

 

2 <span class="menu-title">Продуктовое меню</span>

 

3 <ul class="menu-items">

 

4 <li>Сыр</li>

 

5 <li>Колбаса</li>

 

6 <li>Торт</li>

 

7 </ul>

 

8 </div>

Оживим его в процедурном стиле — через создание функций:

01 var foodMenu = $("#food-menu");

 

02  

 

03 function open() {

 

04 foodMenu.addClass('menu-open');

 

05 }

 

06  

 

07 function close() {

 

08 foodMenu.removeClass('menu-open');

 

09 }

 

10  

 

11 foodMenu.on('click', '.menu-title', function() {

 

12 if (foodMenu.hasClass('menu-open')) {

 

13 close();

 

14 } else {

 

15 open();

 

16 }

 

17 });

Это ещё называют «простыня кода». Потому что чем больше такого кода — тем сложнее его поддерживать. Особенно это заметно при создании сложных интерфейсов.

Меню, объектный подход

При объектном подходе меню описывается в виде объекта, например:

01 /**

 

02 * options -- объект с параметрами меню.

 

03 * elem -- элемент меню

 

04 */

 

05 function Menu(options) {

 

06 var elem = options.elem;

 

07  

 

08 this.open = function() {

 

09 elem.addClass('menu-open');

 

10 };

 

11  

 

12 this.close = function() {

 

13 elem.removeClass('menu-open');

 

14 };

 

15  

 

16 elem.on('click', '.menu-title', function() {

 

17 if (elem.hasClass('menu-open')) {

 

18 close();

 

19 } else {

 

20 open();

 

21 }

 

22 });

 

23  

 

24 }

Теперь мы можем использовать его в любом месте кода:

1 var foodMenu = new Menu({

 

2 elem: $('#food-menu')

 

3 });

 

4 // ...

 

5 foodMenu.open();

Дата: 2019-03-05, просмотров: 185.