Среда, 15.08.2018, 06:37
Discovery
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Форма входа
Категории раздела
PHP [1]
Уроки по PHP для начинающих
C++ [18]
Статьи посвященные С++
XML [2]
Статьи по XML
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
     Каталог статей
    -->
    Главная » Статьи » Программирование » C++

    Функции: первое знакомство

    Функции: первое знакомство.

    Прежде чем перейти к изучению функций я хотел бы дать несколько определений функций, которые я взял с нескольких интернет ресурсов…

    1. Функция – это именованная часть программы, к которой можно обращаться из других частей программы столько раз, сколько потребуется.
    2. Функция (в программировании) — это фрагмент кода или алгоритм, реализованный на каком-то языке программирования, с целью выполнения определённой последовательности операций.
    3. Функции используются для того, чтобы организовать программу в виде совокупности небольших и не зависящих друг от друга частей.
    4. Функции это модули в С/С++.
    5. Функции — одна из самых важных компонентов языка C++.
    6. Функция - это самостоятельный элемент кода программы, иными словами фрагмент или кусок кода программы (как вам удобнее, так и называйте - не в этом суть), который выполняет свою отдельную небольшую задачу.

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

    Кроме артистов, которые принимают участие в концерте, есть артист, который ведет концерт. Его называют ведущий или конферансье. Обычно конферансье начинает концерт, и он же его заканчивает, объявляя (вызывая) артистов на сцену. В любой программе на С++ есть свой конферансье. Это функция main(), что в переводе с английского означает «главная». Вот как она выглядит:

    int main()
    {
        return 0;
    }

    Без нее программа на С++ не скомпилируется, а значит и исполняемый файл не будет создан. Именно с нее начинается выполнение программы, и ей же она закончится. Еще ее называют точкой входа. Теперь давайте вызовем из функции main( ) другую функцию. Например, get_message( ):

    #include <iostream>
    #include <windows.h>
    using namespace std;

    void get_message();

    int main()
    {
        get_message();

        cout << "\n\n";
        system("PAUSE");
        return 0;
    }

    void get_message()
    {
        char str[] = "Наше сообщение...";

        cout << str << "\n\n";
    }

    Теперь на примере этой программы я объясню, что такое прототип функции, вызов и реализация. А также что такое возвращаемое значение и аргументы функции.

    И так начнем с прототипа. В нашем случае это следующая строчка:

    void get_message();

    Функция это своеобразная программа внутри программы. Подпрограмма еще одно название функции. Она вызывается из другой функции. Для этого достаточно написать название функции с круглыми скобками и точкой с запятой после них. В нашей программе это строчка:

    get_message();

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

    multiply(num1, num2);

    Для того чтоб функция могла перемножить два числа, в круглых скобках указываем, какие переменные (их еще называют аргументами функции) мы передаем функции  multiply(). Важно помнить, что в этот момент не происходит подстановка кода функции multiply() в код функции main().

    В этот момент функция multiply() берет управление программой на себя. После того, как функция multiply() перемножит два числа, она должна передать результат обратно в функцию, из которой она была вызвана, т. е. вернуть какое-то значение обратно. Делается это при помощи инструкции:

    return sum;

    После этого функция завершает свою работу и передает управление программой вызвавшей ее функции.

    А теперь давайте представим, что произойдет, если мы передадим функции переменные не того типа, или не полностью? Или вернем значение не того типа? В первом случае функция не сможет взять управление на себя, во втором данные будут испорчены или потеряны. Чтобы этого не случилось и нужен прототип функции, если сам код функции не предшествует ее первому вызову. Вот как будет выглядеть прототип функции multiply():

    int multiply(int num1, int num2);

    Здесь перед названием функции стоит тип возвращаемого значения. В нашем случае int. А в круглых скобках мы записываем имена переменных с указанием их типов, которые мы хотим передать нашей функции. Точно так же, как и при объявлении переменных. Прототип функции должен быть записан до ее первого вызова. Т. к. наши функции вызываются в функции main(), то прототип должен быть перед функций main(). Единственной функцией, которая не нуждается в прототипе – функция main(), т. к. она встроена в язык С++.

    Теперь перейдем к коду самой функции. Его еще называют реализацией. Для этого достаточно написать прототип функции, только вместо точки с запятой пару фигурных скобок. Между ними мы записываем код, который будет выполняться при вызове функции. Переменные, которые располагаются между круглыми скобками, называются параметрами. В них будут записаны значения переменных передаваемых функции. Единственное, что у них должны совпадать это тип, и порядок следования переменных. Например, если первая переменная прототипа (первый аргумент функции) будет иметь тип int, а вторая тип char, то первый параметр должен быть типа int, а второй типа char.

    А что делать, если мы не передаем функции, которую мы вызываем никаких данных, и никаких данных не передаем в функцию, из которой мы ее вызвали? Для этого достаточно оставить скобки пустыми, а перед названием функции поставить слово void, что мы и сделали, написав следующий прототип:

    void get_message();

    Теперь, чтоб закрепить материал напишем программу, которая умножает два числа введенных с клавиатуру, и выводит результат умножения на экран:

    #include <iostream>
    #include <windows.h>
    using namespace std;

    int multiply(int num1, int num2);

    int main()
    {
        int num1, num2, sum;

        cout << "Введите первое число: \n\n";
        cin >> num1;
        cout << "\n";

        cout << "Введите второе число: \n\n";
        cin >> num2;
        cout << "\n";

        sum = multiply(num1, num2);

        cout << "Произведение чисел " << num1
               << " и " << num2 << " равно "
               << sum << ".";

        cout << "\n\n";
        system("PAUSE");
        return 0;
    }

    int multiply(int x, int y)
    {
        int total;

        total = x * y;

        return total;
    }

    Обратите на следующую строку в функции main():

    sum = multiply(num1, num2);

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

    Категория: C++ | Добавил: stranger140569 (08.06.2013)
    Просмотров: 1741 | Комментарии: 4 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:
    Copyright MyCorp © 2018
    Конструктор сайтов - uCoz