🗊Презентация Дополнительные возможности при работе с пользовательскими функциями

Нажмите для полного просмотра!
Дополнительные возможности при работе с пользовательскими функциями, слайд №1Дополнительные возможности при работе с пользовательскими функциями, слайд №2Дополнительные возможности при работе с пользовательскими функциями, слайд №3Дополнительные возможности при работе с пользовательскими функциями, слайд №4Дополнительные возможности при работе с пользовательскими функциями, слайд №5Дополнительные возможности при работе с пользовательскими функциями, слайд №6Дополнительные возможности при работе с пользовательскими функциями, слайд №7Дополнительные возможности при работе с пользовательскими функциями, слайд №8Дополнительные возможности при работе с пользовательскими функциями, слайд №9Дополнительные возможности при работе с пользовательскими функциями, слайд №10Дополнительные возможности при работе с пользовательскими функциями, слайд №11Дополнительные возможности при работе с пользовательскими функциями, слайд №12Дополнительные возможности при работе с пользовательскими функциями, слайд №13Дополнительные возможности при работе с пользовательскими функциями, слайд №14Дополнительные возможности при работе с пользовательскими функциями, слайд №15Дополнительные возможности при работе с пользовательскими функциями, слайд №16Дополнительные возможности при работе с пользовательскими функциями, слайд №17Дополнительные возможности при работе с пользовательскими функциями, слайд №18Дополнительные возможности при работе с пользовательскими функциями, слайд №19Дополнительные возможности при работе с пользовательскими функциями, слайд №20

Содержание

Вы можете ознакомиться и скачать презентацию на тему Дополнительные возможности при работе с пользовательскими функциями. Доклад-сообщение содержит 20 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





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

Слайд 2





Параметры со значениями по умолчанию
Параметры со значениями по умолчанию

Чтобы упростить вызов функции, в ее заголовке можно указать значения параметров по умолчанию. Эти параметры должны быть последними в списке и при вызове функции аргументы для них могут опускаться. Если при вызове аргумент опущен, то должны отсутствовать и все аргументы, стоящие за ним, т.к. задавать значения по умолчанию можно только для последних параметров в списке функции.
Описание слайда:
Параметры со значениями по умолчанию Параметры со значениями по умолчанию Чтобы упростить вызов функции, в ее заголовке можно указать значения параметров по умолчанию. Эти параметры должны быть последними в списке и при вызове функции аргументы для них могут опускаться. Если при вызове аргумент опущен, то должны отсутствовать и все аргументы, стоящие за ним, т.к. задавать значения по умолчанию можно только для последних параметров в списке функции.

Слайд 3





Значениями параметров по умолчанию могут быть константы или константные выражения.
Значениями параметров по умолчанию могут быть константы или константные выражения.
Параметры по умолчанию проходят проверку типа во время описания функции и вычисляются при вызове.
Пример функции, определяющей сумму от 2-х до 5-ти переменных:
				. . .
int Sum (int a, int b, int c = 0, int d = 0, int e = 0)  { 	
					// 0 – умалчиваемые значения
		return (a + b + c + d + e); 		
}
Описание слайда:
Значениями параметров по умолчанию могут быть константы или константные выражения. Значениями параметров по умолчанию могут быть константы или константные выражения. Параметры по умолчанию проходят проверку типа во время описания функции и вычисляются при вызове. Пример функции, определяющей сумму от 2-х до 5-ти переменных: . . . int Sum (int a, int b, int c = 0, int d = 0, int e = 0) { // 0 – умалчиваемые значения return (a + b + c + d + e); }

Слайд 4





void main () 
void main () 
{
	int  x1=1, x2=1, x3=1, x4=1, x5=1,  y2, y3, y4, y5;
	y2= Sum (x1, x2);			//  y2 = 2	
// Работают все умалчиваемые значения;
	y3= Sum (x1, x2, x3);		//  y3 = 3	
// - два последних значения;
	y4= Sum (x1, x2, x3, x4);		//  y4 = 4	
// - одно последнее значение;
	y5= Sum (x1, x2, x3, x4, x5); 	//  y5 = 5
			. . .	
}
Описание слайда:
void main () void main () { int x1=1, x2=1, x3=1, x4=1, x5=1, y2, y3, y4, y5; y2= Sum (x1, x2); // y2 = 2 // Работают все умалчиваемые значения; y3= Sum (x1, x2, x3); // y3 = 3 // - два последних значения; y4= Sum (x1, x2, x3, x4); // y4 = 4 // - одно последнее значение; y5= Sum (x1, x2, x3, x4, x5); // y5 = 5 . . . }

Слайд 5





Таким образом:
Таким образом:
1. Умалчиваемое значение аргумента функции задается при его объявлении в заголовке функции.
2. В начале списка указывают параметры, значения которых будут передаваться всегда. 
3. При обращении пропуск умалчиваемых параметров в списке недопустим, т.е. для  получения значения  x1 + x2 + x3 + x5 вызов функции Sum (х1, х2, х3, х5); приведет к ошибочному результату. 
Правильным будет обращение, например
			y =  Sum (x1, x2, x3, 0, x5);
Описание слайда:
Таким образом: Таким образом: 1. Умалчиваемое значение аргумента функции задается при его объявлении в заголовке функции. 2. В начале списка указывают параметры, значения которых будут передаваться всегда. 3. При обращении пропуск умалчиваемых параметров в списке недопустим, т.е. для получения значения x1 + x2 + x3 + x5 вызов функции Sum (х1, х2, х3, х5); приведет к ошибочному результату. Правильным будет обращение, например y = Sum (x1, x2, x3, 0, x5);

Слайд 6





Перегрузка функций
Перегрузка функций
В языке С++ реализована возможность использования одного идентификатора для функций, выполняющих различные  действия  над различными типами данных, в результате чего можно использовать несколько функций с одним и тем же именем, но с разными списками параметров, как по количеству, так и по типу.
Такие функции называют перегруженными, а сам механизм – перегрузка функций. 
Компилятор определяет, к какой из функций следует обратиться путем сравнения типов аргументов с типами параметров.
Описание слайда:
Перегрузка функций Перегрузка функций В языке С++ реализована возможность использования одного идентификатора для функций, выполняющих различные действия над различными типами данных, в результате чего можно использовать несколько функций с одним и тем же именем, но с разными списками параметров, как по количеству, так и по типу. Такие функции называют перегруженными, а сам механизм – перегрузка функций. Компилятор определяет, к какой из функций следует обратиться путем сравнения типов аргументов с типами параметров.

Слайд 7





Пример перегрузки функций
Пример перегрузки функций

Пример функции Fun с двумя параметрами х, у, работающей в зависимости от типа передава-емых аргументов, следующим образом: 
– если тип параметров int, функция Fun складывает их значения и возвращает сумму;
– если тип параметров long, функция Fun перемножает их значения и возвращает произведение;
– если тип параметров double, функция Fun делит их значения и возвращает частное от деления.
Описание слайда:
Пример перегрузки функций Пример перегрузки функций Пример функции Fun с двумя параметрами х, у, работающей в зависимости от типа передава-емых аргументов, следующим образом: – если тип параметров int, функция Fun складывает их значения и возвращает сумму; – если тип параметров long, функция Fun перемножает их значения и возвращает произведение; – если тип параметров double, функция Fun делит их значения и возвращает частное от деления.

Слайд 8






	int Fun (int x, int y) {
        return  x + y;
	}
	long Fun (long x, long y) {
        return  x * y;
	}	
double Fun (double x, double y) {
        return  x / y;
}
Описание слайда:
int Fun (int x, int y) { return x + y; } long Fun (long x, long y) { return x * y; } double Fun (double x, double y) { return x / y; }

Слайд 9





void main ()
void main ()
{
	int a = 2, b = 3, s;
	long i = 3, j = 4, pr;
	double x = 10, y = 3, d;
	s = Fun(a, b);
	pr = Fun(i, j);
	d = Fun(x, y),
	cout  << "\n sum = " << s << " pr = " << pr 
		   << " del = " << d << endl;
}
		В результате получим:
			sum = 5  pr = 12  del = 3.33333
Описание слайда:
void main () void main () { int a = 2, b = 3, s; long i = 3, j = 4, pr; double x = 10, y = 3, d; s = Fun(a, b); pr = Fun(i, j); d = Fun(x, y), cout << "\n sum = " << s << " pr = " << pr << " del = " << d << endl; } В результате получим: sum = 5 pr = 12 del = 3.33333

Слайд 10





	 Понятие шаблона функции
	 Понятие шаблона функции
Механизм шаблонов – средство построения обобщенных определений функций, независи-мых от используемых типов данных. Их использование избавляет от необходимости дублировать код функции для различных типов данных, составляющих их параметры и возвращаемые результаты.
Компилятор по заданному в качестве аргумента типу данных на основе определения шаблона автоматически порождает соответствующие экземпляры функций.
Описание слайда:
Понятие шаблона функции Понятие шаблона функции Механизм шаблонов – средство построения обобщенных определений функций, независи-мых от используемых типов данных. Их использование избавляет от необходимости дублировать код функции для различных типов данных, составляющих их параметры и возвращаемые результаты. Компилятор по заданному в качестве аргумента типу данных на основе определения шаблона автоматически порождает соответствующие экземпляры функций.

Слайд 11





	 Формат шаблона функции:
	 Формат шаблона функции:
 		template   Список параметров шаблона 
		Декларация функции;
Список параметров шаблона определяет набор типов. Каждый тип определяется словом class и является локальным типом данных в рамках функции. Список параметров не может быть пустым.
Декларация функции – обычное определение (или прототип) функции. В списке ее параметров необходимо упомянуть хотя бы один раз типы параметров из списка шаблона.
Описание слайда:
Формат шаблона функции: Формат шаблона функции: template Список параметров шаблона Декларация функции; Список параметров шаблона определяет набор типов. Каждый тип определяется словом class и является локальным типом данных в рамках функции. Список параметров не может быть пустым. Декларация функции – обычное определение (или прототип) функции. В списке ее параметров необходимо упомянуть хотя бы один раз типы параметров из списка шаблона.

Слайд 12





	
	
 Пример 1. Шаблон с единственным параметром 
	template  < class T >
	void  fun (T par) {
		код функции fun
	}
Символ типа T можно использовать и для возвращаемого значения и для любых других объектов в коде функции.
Описание слайда:
Пример 1. Шаблон с единственным параметром template < class T > void fun (T par) { код функции fun } Символ типа T можно использовать и для возвращаемого значения и для любых других объектов в коде функции.

Слайд 13





Функция может иметь любые типы параметров как параметризованные, так и стандартно декларированные.
Функция может иметь любые типы параметров как параметризованные, так и стандартно декларированные.
 
Пример 2.  Шаблон функции с частично параметризованными параметрами:
      
		template  < class T >
      	void  fun (T par, int x, int y) {
      		код функции fun
      }
Описание слайда:
Функция может иметь любые типы параметров как параметризованные, так и стандартно декларированные. Функция может иметь любые типы параметров как параметризованные, так и стандартно декларированные. Пример 2. Шаблон функции с частично параметризованными параметрами: template < class T > void fun (T par, int x, int y) { код функции fun }

Слайд 14







Пример 3. Шаблон может иметь несколько  параметризованных параметров с разными символическими идентификаторами:
      template  < class T2, class T1 >
      void fun (T1 par1, T2 par2) {
      		код функции fun
      }
Порядок следования идентификаторов параме-тров в заголовке функции может отличаться от их декларации в шаблоне.
Описание слайда:
Пример 3. Шаблон может иметь несколько параметризованных параметров с разными символическими идентификаторами: template < class T2, class T1 > void fun (T1 par1, T2 par2) { код функции fun } Порядок следования идентификаторов параме-тров в заголовке функции может отличаться от их декларации в шаблоне.

Слайд 15







Пример нахождения максимума для разных типов аргументов:
#include <iostream.h>
	template < class T > 
	T  fun (T x, T y) {
		return (x > y) ? x : y;
 	}
Описание слайда:
Пример нахождения максимума для разных типов аргументов: #include <iostream.h> template < class T > T fun (T x, T y) { return (x > y) ? x : y; }

Слайд 16





void main()
void main()
{
    int  n = 2, m = 3;
    double  x = 7.5,  y = 2.5;
    cout << "Max (" << n << " , " << m << ") = "
		  << fun (n, m) << endl;
    cout << "Max (" << x << " , " << y << ") = "
		  << fun (x, y) << endl;
}
		Результат : 
 			Max  (2 , 3)  = 3
			Max  (7.5 , 2.5)  = 7.5
Описание слайда:
void main() void main() { int n = 2, m = 3; double x = 7.5, y = 2.5; cout << "Max (" << n << " , " << m << ") = " << fun (n, m) << endl; cout << "Max (" << x << " , " << y << ") = " << fun (x, y) << endl; } Результат : Max (2 , 3) = 3 Max (7.5 , 2.5) = 7.5

Слайд 17







Перегрузка шаблонов функций
Можно перегружать функции-шаблоны для неподходящих под данный код шаблона данных, т.к. их использование базируется, как и у обычных функций, на распознавании компилятором различий в списках их параметров.
Описание слайда:
Перегрузка шаблонов функций Можно перегружать функции-шаблоны для неподходящих под данный код шаблона данных, т.к. их использование базируется, как и у обычных функций, на распознавании компилятором различий в списках их параметров.

Слайд 18





Пример использования преобразования шаблонов и специализированных функций:
Пример использования преобразования шаблонов и специализированных функций:
			. . .
	template < class T > 
	T  max (T x, T y) {
		return (x > y) ? x : y;
	}
	char* max (char* x, char* y) {
		return ( strcmp (x, y) > 0) ? x : y;
	}
Описание слайда:
Пример использования преобразования шаблонов и специализированных функций: Пример использования преобразования шаблонов и специализированных функций: . . . template < class T > T max (T x, T y) { return (x > y) ? x : y; } char* max (char* x, char* y) { return ( strcmp (x, y) > 0) ? x : y; }

Слайд 19





void main()
void main()
{
	int a = 7, b = 5;
	char c1 = 'a', c2 = 'z';
	char s1[] = "one", s2[] = "two";
    cout << "Max( " << a << " , " << b << ") = "
        	   << max(a, b) << endl;
    cout << "Max( " << c1 << " , " << c2 << ") = "
        	   << max(c1, c2) << endl;
    cout << "Max( " << s1 << " , " << s2 << ") = "
        	   << max(s1, s2) << endl;
}
Описание слайда:
void main() void main() { int a = 7, b = 5; char c1 = 'a', c2 = 'z'; char s1[] = "one", s2[] = "two"; cout << "Max( " << a << " , " << b << ") = " << max(a, b) << endl; cout << "Max( " << c1 << " , " << c2 << ") = " << max(c1, c2) << endl; cout << "Max( " << s1 << " , " << s2 << ") = " << max(s1, s2) << endl; }

Слайд 20






		Результат : 
 			Max  ( 7 , 5 )  = 5
			Max  ( a , z )  = z
			Max  ( one , two )  = two
Описание слайда:
Результат : Max ( 7 , 5 ) = 5 Max ( a , z ) = z Max ( one , two ) = two



Похожие презентации
Mypresentation.ru
Загрузить презентацию