Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все вопросы..docx
Скачиваний:
11
Добавлен:
25.09.2019
Размер:
158.31 Кб
Скачать

10.Функции

Функции – это удобный способ оформить вычисления и пользоваться ими далее. После написания функции можно забыть, как она реализована, важно помнить лишь то, что она делает. Пример функции:

# include <stdio.h>

int power(int base, int n); //прототип функции power, должен быть объявлен перед main, сама функция в таком случае может располагаться где угодно

void main(void)//пример того, как функция будет вызвана

{

printf("input digit and stepen\n");

int digit, st;

scanf("%d %d",&digit, &st);//вводим число и степень

printf("%d^%d=%d\n",digit, st,power(digit,st));//здесь мы power(digit,st) - вызов функции, где ей передаются копии digit, st- аргументы

}

int power(int base, int n)//int power - обозначает, что результатом работы функции, который она вернет, будет число типа

int. power - имя функции//(int base, int n) - список параметров. Грубо говоря, эти значения передаются из главной функции, чтобы power c ними работала

//функция возводит число base в степень n

{

int i,p;//i-счетчик цикла, p- результирующее значение

p=1;

for (i=1; i<=n; i++)

p=p*base;

return p;

}

11.Методы передачи параметров в функциях

Имена параметров локальны внутри функции, а значит скрыты для любой другой функции. Остальные подпрограммы могут пользоваться теми же именами для своих целей. Параметр – переменная списка параметров. Аргумент – значение, используемое при обращении функции. За return может

следовать выражение. Return может использоваться и в main, и тогда вернет результирующее значение тому, кто ее вызвал. Обычно 0 – значение корректного завершения программы. Функция перестает работать, когда что-то вернула.

Прототип функции – тип результатов и аргументов должен быть согласован с определением и всеми power. В СИ передача аргументов осуществляется только по значению, т.е. перед вызовом функции создаются копии аргументов, с которыми будет работать функция. Функции можно передавать адрес элемента, при этом не будет создана копия элемента, а работа будет проводиться с самим элементов. После завершения работы функции элемент будет изменен, если он изменялся в теле функции. Так же функция не копирует массивы, а берет адреса первых элементов, и далее работает на самих массивах. Т.е. они тоже могут быть изменены.

12.Заполнение массива одинаковыми значениями.

void main(void)

{

int i=0;

int mas[10];

int count;//просто число, которому будут равны все элементы массива

count=5;

for (i=0; i<10; i++)

mas[i]=count;

}