Практикум по курсу "Алгоритмизация и программирование". Часть 2. Андрианова А.А - 8 стр.

UptoLike

А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
ров) список типов объектов, представляющих собой входные данные функ-
ции:
СписокТиповФормПараметров::=Тип1, Тип2, … ТипN
В список типов формальных параметров можно также добавить и имена
объектов. Тогда конструкция объявления совпадает с заголовком самой функ-
ции.
Иногда возникают ситуации, когда необходимо изменить значение фак-
тических параметров внутри функции. Поэтому в некоторых языках суще-
ствует способ передачи параметров по ссылке на переменную, т. е. в функ-
цию передается не само значение переменной-параметра, а адрес памяти, по
которому находится эта переменная. Тогда работа внутри функции происхо-
дит непосредственно с этой областью памяти. В разных языках программиро-
вания параметр-ссылка обозначается по-разному. В языке С++ для обозначе-
ния ссылки используется знак '&', в C# ref, в Pascal – var.
Например, требуется написать функцию, которая меняет местами значе-
ния двух переменных. Приведем два варианта функции:
1) параметры передаются по значению
void Change1 (int a, int b)
{
int t=a; a=b; b=t;
}
2) параметры передаются по ссылке
void Change2 (int& a, int& b)
{
int t=a; a=b; b=t;
}
При вызове первый вариант функции не решает требуемую задачу.
void main(void)
{
int x=10, y=40;
Change1(x,y); // результат - x=10, y=40
Change2(x,y); // результат - x=40, y=10;
. . .
}
Параметрами функции (входными и выходными данными) могут являть-
ся массивы и матрицы. Напомним, что массив – это набор переменных одина-
8
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова                     .
ров) – список типов объектов, представляющих собой входные данные функ-
ции:
               СписокТиповФормПараметров::=Тип1, Тип2, … ТипN

     В список типов формальных параметров можно также добавить и имена
объектов. Тогда конструкция объявления совпадает с заголовком самой функ-
ции.
    Иногда возникают ситуации, когда необходимо изменить значение фак-
тических параметров внутри функции. Поэтому в некоторых языках суще-
ствует способ передачи параметров по ссылке на переменную, т. е. в функ-
цию передается не само значение переменной-параметра, а адрес памяти, по
которому находится эта переменная. Тогда работа внутри функции происхо-
дит непосредственно с этой областью памяти. В разных языках программиро-
вания параметр-ссылка обозначается по-разному. В языке С++ для обозначе-
ния ссылки используется знак '&', в C# – ref, в Pascal – var.
    Например, требуется написать функцию, которая меняет местами значе-
ния двух переменных. Приведем два варианта функции:
    1) параметры передаются по значению
    void Change1 (int a, int b)
    {
          int t=a; a=b; b=t;
    }

    2) параметры передаются по ссылке
    void Change2 (int& a, int& b)
    {
          int t=a; a=b; b=t;
    }

    При вызове первый вариант функции не решает требуемую задачу.
    void main(void)
    {
          int x=10, y=40;
          Change1(x,y);               // результат - x=10, y=40
          Change2(x,y);               // результат - x=40, y=10;
          . . .
    }

    Параметрами функции (входными и выходными данными) могут являть-
ся массивы и матрицы. Напомним, что массив – это набор переменных одина-
                                            8