Всем привет. Сегодня мы обсудим что такое функции и с чем их едят. Для начала немножко отойдем от программирования и подумаем, что такое функции в реальной жизни? Несомненно большинство из Вас скажут, что функция это способность кого-то или чего-то выполнять определенные действия, и эти люди будут правы. В программировании функции так же нужны для того, чтобы выполнять те или иные действия. Дадим более правильное определение: Функция - подпрограмма, которая может вызываться в коде нашей программы и производить какие-либо действия. Сегодня нам потребуется многое из того что мы изучили. Посмотрим на синтаксис объявления функции:
Модификатор_доступа Возвращаемое_значение Имя_функции(Параметры)
{
Тело_функции
}
О модификаторах доступа мы будем говорить в следующем уроке, пока что не придавайте этому особого значения. В скобочках указываются параметры функции, с которыми мы будем работать. Вот как будет выглядеть функция, которая складывает два числа, и возвращает целое значение:
public static int Sum(int a, int b)
{
return a+b;
}
Мы назвали функцию Sum, указали что она вернет значение целого типа (т.к. результат от сложения двух целых чисел есть целое число). Далее указали два параметра a и b, это переменные с которыми нам придется работать. В теле функции написали return и указали, то что нам нужно вернуть из этой функции.
Протестируем нашу функцию, вызвав ее в main:
static void Main(string[] args)
{
int c = Sum(1,2);
Console.WriteLine(c);
}
Попробуйте передать в качестве параметров разные цифры и убедитесь в правильности результата.
Немного усложним задачу. Напишем функцию, которая будет в качестве первого параметра принимать имя, в качестве второго фамилию, в качестве третьего возраст. Функция должна выводить информацию о человеке. Данные вводятся с клавиатуры.
public static void PeopleInfo(string fname, string sname, int age)
{
Console.WriteLine("Имя: "+fname);
Console.WriteLine("Фамилия" + sname);
Console.WriteLine("Возраст" + age);
}
Вы явно уже заметили наличие слова void в качестве возращаемого значения. Все на самом деле просто: void говорит нам о том, что функция ничего не возвращает, она просто выполняет код который написан в теле функции и завершает свою работу. Попробуйте сами дописать программу.
Давайте напишем еще три функции. Первая заполняет массив цифрами от 0 до 10, вторая считает среднее арифметическое, третья выводит массив на экран.
Вот так выглядит наша первая функция:
public static int[] ArrayFill(int n)
{
int[] array = new int[n];
for (int i = 0; i<n;i++)
array[i] = i;
return array;
}
В качестве параметра принимается количество элементов в массиве, затем в теле функции создается массив из n элементов и заполняется циклом. Далее возвращаем полученный массив.
Вторая функция:
public static float Average(int[] array)
{
int s = 0;
for (int i = 0; i < array.Length; i++)
s += array[i];
return s / array.Length;
}
На вход подается массив, среднее арифметическое которого мы будет считать. В теле функции уже знакомый нам код. На выход подается результат.
Ну и что может быть проще написания третьей функции:
public static void PrintArray(int[] array)
{
for (int i = 0; i < array.Length; i++)
Console.Write(array[i]+" ");
}
Так как функция ничего не возвращает, то пишем void. Остальное и так понятно. Попробуйте вызвать эти функции так, чтобы для начала массив заполнился, потом вывелся на экран и в конце появилось среднее арифметическое значение.
Всем спасибо. В дальнейшем мы еще не раз рассмотрим тему функций, а пока для начала хватит этих знаний.