Программирование на языке си ( с ) | C Sharp (Си шарп) с нуля. Сортировки | Массивы | Функции

Пользовательские функции ( создание ) | Что такое рекурсия — это

   Создание пользовательских функций

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

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

Мы забыли сказать, что означает пользовательская функция. Это функция, которая создана пользователем. Вот вам парочку примеров, из задания, где вам нужно было дать названия функциям:

void swap (int x, int y){
   int z = x;
   x = y;
   y = z;
}

Как вы, наверное, догадались - это пользовательская функция, которая меняет местами значения у элементов

void GetError (){
   pritnf ("Ошибка\n");
}

Пользовательская функция, выбрасывающая сообщение об ошибке

int max (int a, int b, int c){
   if (a > b && a > c)
      return a;
   if (b > a && b > c)
      return b;
   if (c > a && c > b)
      return c;
}

Эта созданная пользовательская функция определяет наибольшее число из трех.

Но есть одно важное замечание. В нашей пользовательской функции swap, которая меняет местами значения у элементов. На самом деле значения, после выполнении функции останутся на своем месте, так как в саму функцию передаются копии объектов. Как передавать в функцию сам объект мы рассмотрим позднее

   что такое рекурсия

Многие задаются вопросом что такое рекурсия? Давайте с вами постараемся дать определение. Рекурсия - это вид функции, которая вызывает саму себя. Давайте для начала рассмотрим пример рекурсии:

#include <conio.h>
#include <stdio.h>

int sum (int temp){
    int i=0;
    if (temp == 0)
       return temp;
    else
       return temp+sum(temp-1);
}

int main()
{
    printf ("%d", sum(5));
    getch();
return 0;
}

Этот пример рекурсивной функции ( рекурсии ) выводит сумму чисел до введенной в аргументе. Суть рекурсивной функции ( рекурсии ) тут состоит в том, что пока наше число не равно нулю, мы будем накапливать полученное число в аргументе и передавать в эту же функцию число, но на единицу меньшее. Т.е. на первом шаге мы в накоплении оставим 5, а передадим 4, далее мы к 5 прибавляем 4, а передаем 3. Вот как действует наша рекурсия. Надеюсь, теперь вы не напишите в поисковике запрос: «Что такое рекурсия».

Но тема эта очень сложна. Постарайтесь ее понять, и если не удастся, то не расстраивайтесь, так как Москва не сразу строилась.

Задания:

  1. Напишите функции вычисления площадей следующих фигур: квадрат, прямоугольник, треугольник (значения сторон выберите сами)
  2. Создайте рекурсивную функцию, вычисляющую факториал переданного числа (все-таки постарайтесь выполнить это задание, так как оно очень сильно похоже на то, которое я вам дал в этом уроке)

Предвидущие уроки:

  1. Основные понятия функции

Следующие уроки:

  1. Указатели
При копировании ( использовании ) материала размещайте ссылку на сайт www.mir-koda.ru