Содержание
- 2. 1) Что будет выведено на экран? 2) Что надо исправить для получения правильного результата для всех
- 3. Указатели Указатели – это переменные, предназначены для хранения адресов памяти.
- 4. Объявление указателя: тип* имя; Память под переменные-указатели выделяется только тогда, когда им присваивается какое-либо значение. Примеры
- 5. Указатель можно сразу проинициализировать: Примеры: int i;//целая переменная; const int ci;//целая константа //указатель на целую переменную
- 6. Способы инициализации указателя с помощью операции получения адреса int a=5; int* p=&a;// или int p(&a); с
- 7. Пример: int A; // выделяется память int* B; // память не выделяется ... A=10; B=&A; //
- 9. Обращаться к содержимому области памяти можно через переменные-указатели, для этого используется операция разыменования. Для этого ставится
- 10. int **D; // значением этой переменной является значение переменной типа указатель D=&B;
- 11. Действия над указателями Описание: int *p1, *p2, i;
- 14. Передача параметров по значению вычисляются значения выражений, стоящие на месте фактических параметров; в стеке выделяется память
- 15. //функция возвращает площадь треугольника, заданного длинами сторон а,b,c double square (double a, double b, double c)
- 16. //вызов функции double a=2.5,b=2,c=1; double s1=square (a, b, c); 2.5 1 s p b Стек функции
- 17. Пример. Найти наибольший общий делитель (НОД) для значений x, y, x+y. #include using namespace std; int
- 18. void Change (int a,int b) //передача по значению { int r=a; a=b; b=r; } //вызов функции
- 19. Передача параметров по адресу В стек заносятся копии адресов параметров, следовательно, у функции появляется доступ к
- 20. void Change (int* a, int* b) //передача по адресу { int r=*a; *a=*b; *b=r; } //вызов
- 21. void Change (int& a, int& b) //передача по адресу (ссылке) { int r=a; a=b; b=r; }
- 22. Локальные переменные Переменные, которые используются внутри данной функции, называются локальными. Память для них выделяется в стеке,
- 23. Глобальные переменные Глобальные переменные – это переменные, описанные вне функций. Они видны во всех функциях, где
- 24. Пример. Написать программу, запрашивающую N целых чисел и выводящих в текстовый файл все цифры этих чисел
- 25. Подставляемые (inline) функции Спецификатор inline определяет для функции так называемое внутреннее связывание, которое заключается в том,
- 26. /* функция возвращает расстояние от точки с координатами (x1,y1) (по умолчанию центр координат) до точки с
- 27. Рекурсия Рекурсией называется ситуация, когда какой-то алгоритм вызывает себя прямо (прямая рекурсия) или через другие алгоритмы
- 28. Рекурсия — это способ определения множества объектов через само это множество на основе заданных простых базовых
- 29. Задачи Вычислить факториал (n!), используя рекурсию. Вычислить степень, используя рекурсию. Вычислить n-ое число Фиббоначи
- 30. Задача 1. Вычислить факториал (n!), используя рекурсию. Исходные данные: n Результат: n! Рассмотрим эту задачу на
- 31. #include int fact(int n) { if (n==0)return 1; //тривиальная задача return (n*fact(n-1)); } void main() {
- 33. Задача 2. Вычислить степень, используя рекурсию. Исходные данные: x,n Результат: xn Математическая модель:
- 34. #include int pow( int x,int n) { if(n==0)return 1;//тривиальная задача return(x*pow(x,n-1)); } void main() { int
- 35. Вычисление суммы цифр числа int sumDig ( int n ) { int sum; sum = n
- 36. Алгоритм Евклида Алгоритм Евклида. Чтобы найти НОД двух натуральных чисел, нужно вычитать из большего числа меньшее
- 37. Как работает рекурсия? int Fact ( int N ) { int F; cout N=" if (
- 38. Стек Стек – область памяти, в которой хранятся локальные переменный и адреса возврата. Fact(3) Fact(2) Fact(1)
- 39. Рекурсия – «за» и «против» с каждым новым вызовом расходуется память в стеке (возможно переполнение стека)
- 42. Скачать презентацию