Функции, рекурсии. Лекция 2

Содержание

Слайд 2

Проверка Д/З

Чему равно k при:
i=5;
int k=++i + ++i;

Проверка Д/З Чему равно k при: i=5; int k=++i + ++i;

Слайд 3

Мемчик

Мемчик

Слайд 4

Функции в языке C++

2 вида:
Функции с возвращаемым значением
Функции без возвращаемого значения

Функции в языке C++ 2 вида: Функции с возвращаемым значением Функции без возвращаемого значения

Слайд 5

Функция с возвращаемым значением

Такая функция обязательно должна давать результат определенного типа. Конструкция:

Функция с возвращаемым значением Такая функция обязательно должна давать результат определенного типа. Конструкция:

Слайд 6

Вызов функции

Вызов функции

Слайд 7

Функция без возвращаемого значения

Иначе такая функция может называться процедурой. Делает определенные действия,

Функция без возвращаемого значения Иначе такая функция может называться процедурой. Делает определенные
при этом не возвращая значения. Для того, чтобы функция ничего не возвращала, в качестве возвращаемого типа используется тип void.

Слайд 8

Пример

Для досрочного выхода из функции можно использовать return

Пример Для досрочного выхода из функции можно использовать return

Слайд 9

Посложнее: рекурсия

Посложнее: рекурсия

Слайд 10

Но перед этим мемы

Но перед этим мемы

Слайд 14

И от гугла

И от гугла

Слайд 15

Рекурсия

Рекурсия — определение, описание, изображение какого-либо объекта или процесса внутри самого этого

Рекурсия Рекурсия — определение, описание, изображение какого-либо объекта или процесса внутри самого
объекта или процесса, то есть ситуация, когда объект является частью самого себя[1].
То есть в нашем случае, рекурсия это вызов функции внутри самой себя. По такому принципу работают функции факториала, числа Фибоначчи, обходов графов, деревьев и другие.

[1] – определение взято с https://ru.wikipedia.org/wiki/Рекурсия

Слайд 16

Пример - факториал

Пример - факториал

Слайд 17

Разберем вместе: число Фибоначчи

Разберем вместе: число Фибоначчи

Слайд 18

Задачки на разбор

 

Задачки на разбор

Слайд 19

Задачка на рекурсию: сложить все цифры в числе рекурсивно.

Задачка на рекурсию: сложить все цифры в числе рекурсивно.

Слайд 20

Поверхностно про ввод/вывод в консоль

#include /*подключение библиотеки для ввода/вывода*/
cin>> /*операция занесения

Поверхностно про ввод/вывод в консоль #include /*подключение библиотеки для ввода/вывода*/ cin>> /*операция
в переменную из потока*/
cout<< /*операция помещения в выходной поток*/
<cin.getline(s,N) /*метод чтения строки из потока, где s - строковая переменная, а N - размер*/
cin.get() /*получение символа из потока*/

Слайд 21

Манипуляторы для работы с потоками

Манипуляторы для работы с потоками

Слайд 22

Пример работы

#include  using namespace std;
int main() {
  char s[80];
  cin >> s;
  cout << s <<

Пример работы #include using namespace std; int main() { char s[80]; cin
endl;
  system("pause");
  return 0; }

Слайд 23

Другой пример. Чтение всей строки

#include  using namespace std;
int main() {
  char s[80];
  cin.getline(s,80);
  cout << s

Другой пример. Чтение всей строки #include using namespace std; int main() {
<< endl;
  system("pause");
  return 0; }

Слайд 24

Пример форматированного вывода

#include  using namespace std; int main() {
  cout<  for (double t = 0; t <= 3;

Пример форматированного вывода #include using namespace std; int main() { cout for
t += 0.5) {
    cout.width(3);
    cout.precision(1);
    cout << t;
    cout.width(8);
    cout.precision(3);
    cout << cos(t) << endl;
  }
  system("pause");
  return 0; }