Основне меню  

   

Реклама  

Скачуйте відеуроки для створення сайту за допомогою SMS Joomla 

реклама

 

 

   

Ми в Facebook  

Калькулятор расчета пеноблоков смотрите на этом ресурсе
Все о каркасном доме можно найти здесь http://stroidom-shop.ru
Как снять комнату в коммунальной квартире смотрите тут comintour.net
   

Реклама в мережі  

   

Статистика  

Користувачі
1
Статті
180
Перегляди статей
595582
   

Пошук по сайту  

   

Ми знаходимось тут  

   

Випадкове фото  

   

Наш відеоканал  

   

Відвідування сайту  

Яндекс.Метрика

 

   

Посібник Delphi  

ДОСТУПНИЙ ВИКЛАД,

ЦІКАВІ ПРИКЛАДИ, ВИХІДНІ КОДИ.

ЦІНА ДИСКА З МАТЕРІАЛАМИ - 500 грн. 

Якщо ваша карта обслуговується ПриватБанком тоді переведіть потрібну суму через Приват24 на карту    5168 7573 0556 9925 або натисніть на посилання "Перейти до оплати", щоб здійснити миттєвий платіж без комісії. Перейти до оплати!

 Звертайтесь за адресою еmail:kuzbyt@ukr.net

 
   

Відеокурс по С++  

   

Рекомендуємо:  

   

Ми в контактах  

   

Сайти  

Українські уроки про ІТ

Єдина Країна! Единая Страна!

 

Українські уроки про програмування

 

 
   

Функції в Сі-шарп. 

Функція являє собою невелику підпрограму. Якщо просто програма - це рішення якоїсь прикладної задачі, то функція - це також рішення, тільки вже в рамках програми і, відповідно, вона виконує завдання «простіше». Функції дозволяють зменшити розмір програми за рахунок того, що не потрібно повторно писати якийсь фрагмент коду - ми просто викликаємо скільки завгодно і де потрібно оголошену функцію.

Функції в Сі-шарп також називають методами. Між цими двома поняттями різниця невелика, і тут ми будемо використовувати термін функція.

До цього, ми весь код писали у функції main. Функція main є головною функцією програми та точкою входу програми. Будь-яка функція в Сі-шарп може бути оголошена тільки в рамках класу, так як C # - повністю об'єктно-орієнтована мова програмування (ООП). Оголошення користувача функції всередині іншої функції (наприклад main) неприпустимо. Оголошення функції має наступну структуру:

[Модифікатор доступу] [тип значення] [ім'я функції] ([аргументи])

{

// Тіло функції

}

Модифікатор доступу (області видимості) може бути public, private, protected, internal. Для чого це потрібно будемо говорити в окремому уроці, а поки будемо всюди використовувати public.

Між модифікатором і типом може стояти ключове слово static, що означає, що функція буде статичною. Детально говорити про статичних функціях і змінних ми будемо в окремому уроці. Скажу тільки, що зі статичної функції можна викликати інші функції, якщо вони теж статичні. Головна функція main - завжди static, тому всі функції в цьому уроці ми будемо оголошувати також статичними.

Функція може повертати значення чи не повертати. Якщо функція, наприклад, повертає ціле число, то потрібно вказати тип int. Якщо функція не повертає ніякого значення, то для цього використовується ключове слово void. Функції, які не повертають значення, ще називають процедурами.

Називати функції стоїть так, щоб ім'я відбивало суть функції. Використовуйте дієслова або словосполучення з дієсловами. Приклади: GetAge (), Sort (), SetVisibility ().

Аргументи - це ті дані, які необхідні для виконання функції. Аргументи записуються у форматі [тип] [ідентифікатор]. Якщо аргументів декілька, вони відокремлюються комою. Аргументи можуть бути відсутні.

Перший рядок функції, де вказуються тип, ім'я, аргументи і т.д. називається заголовком функції.

Отже, вистачить теорії, переходимо до практики.

Приклад функції, яка не повертає значення

Напишемо просту функцію, яка буде заміняти в масиві рядків вказане ім'я на інше. Ця функція буде приймати три аргументи: масив рядків, ім'я, яке необхідно замінити і нове ім'я. Оскільки функція не повертатиме значення, вказуємо тип void перед ім'ям функції.

public static void ReplaceName (string [] names, string name, string newName)

{

   for (int i = 0; i <names.Length; i ++)

   {

     if (names [i] == name)

     names [i] = newName;

   }

}

Сама функція дуже проста. Проходимо в циклі за елементами і дивимося, чи рівний елемент зазначеному імені. Якщо так, то замінюємо його на нове ім'я.

Функція написана, і тепер використовуємо її:

class Program

{

   public static void ReplaceName (string [] names, string name, string newName)

   {

     for (int i = 0; i <names.Length; i ++)

     {

       if (names [i] == name)

         names [i] = newName;

       }

     }

   static void Main (string [] args)

   {

     string [] names = {"Sergey", "Maxim", "Andrey", "Oleg", "Andrey", "Ivan", "Sergey"};

     ReplaceName (names, "Andrey", "Nikolay"); // Виклик функції. Всі рядки "Andrey" в масиві будуть замінені на "Nikolay"

     ReplaceName (names, "Ivan", "Vladimir");

   }

}

Після виклику функції два рази в цій програмі, масив буде виглядати так: "Sergey", "Maxim", "Nikolay", "Oleg", "Nikolay", "Vladimir", "Sergey".

Приклад функції, яка повертає значення

Напишемо функцію, яка буде знаходити максимальне число в масиві. Аргумент у цієї функції буде один - масив цілих чисел. Тип значення - ціле число int.

public static int GetMax (int [] array)

{

   int max = array [0];

   for (int i = 1; i <array.Length; i ++)

   {

     if (array [i]> max)

       max = array [i];

   }

   return max;

}

Логіка функції проста. Створюємо змінну max, в яку записуємо перший елемент масиву. Далі в циклі порівнюємо кожен елемент зі значенням в max, якщо елемент більше, ніж max, то записуємо в max цей елемент. Наприкінці функції використовуємо оператор return, щоб повернути наш результат.

Оператор return повинен бути обов'язково у функції, яка повертає значення.

Використовуємо нашу функцію:

class Program

{

   public static int GetMax (int [] array)

   {

     int max = array [0];

     for (int i = 1; i <array.Length; i ++)

     {

       if (array [i]> max)

         max = array [i];

     }

     return max;

   }

   static void Main (string [] args)

   {

     int [] numbers = {3, 32, 16, 27, 55, 43, 2, 34};

     int max;

     max = GetMax (numbers); // Виклик такої функції можна використовувати при привласненні значення

     Console.WriteLine (GetMax (numbers)); // Виклик функції також можна використовувати як аргумент при виклику іншої функції. WriteLine () - теж функція.

     Console.ReadKey ();

   }

}

Оператор return

Коли зустрічається цей оператор, відбувається вихід з функції і код нижче (якщо він є) виконуватися не буде (наприклад, у функцію переданий такий аргумент, при якому немає сенсу виконувати функцію). Він схожий на операторbreak, який використовується для виходу з циклів. Цей оператор також можна використовувати і в функціях, які не повертають значення. Оператор return допустимо використовувати кілька разів на функції, але цього робити не рекомендується.

Домашнє завдання

Завдання 1. Напишіть функцію, яка буде міняти в масиві цілих чисел всі елементи, які дорівнюють вказаною значенню (аргумент) на протилежне значення за знаком. Наприклад, всі елементи масиву які дорівнюють 5, будуть змінюватися на -5.

Завдання 2. Напишіть функцію, яка буде знаходити мінімальне число з трьох.

Завдання 3. Напишіть функцію, яка буде повертати зазначений елемент ряду Фібоначчі. Ряд Фібоначчі - це ряд, в якому кожен наступний елемент дорівнює сумі двох попередніх. 1 1 2 3 5 8 13 21 ... Функція приймає порядковий номер елемента, і повертає відповідний елемент.

 

Додати коментар

Захисний код
Оновити

   

Поділіться з друзями

 
   

Сайт для перевірки своїх знань з програмування на сайті:http://www.quizful.net/test


 Розробка сайтів, інтернет-магазинів під ключ. Створення програмного забезпечення для обліку в магазинах,

гуртовнях, ведення власного бізнесу та інших. Написання дипломних та курсових робіт з програмування, баз даних.

 

Звертайтесь за адресою email:kuzbyt@ukr.net

 

 

© (C) Sambir, I.Kuzbyt