- •Понятия алгоритма и программы. Свойства алгоритмов. Составление алгоритмов различной структуры.
- •Описание и типы алгоритмов поиска. Примеры.
- •Арифметические операции. Операции отношения. Операции инкремента и декремента в языке программирования с.
- •6)Понятие указателя, объявление указателя. Операции над указателями.
- •7.Описание и определение пользовательских функций в языке программирования с.
- •8. Строковый тип данных и функции работы с ними в языке программирования с.
- •9. Организация работы с файлами. Функции работы с файлами в языке программирования с.
- •10)Динамические структуры данных в с. Абстрактные типы данных.
7.Описание и определение пользовательских функций в языке программирования с.
Функция пользователя – группа команд, имеющая уникальное имя, объявлена в заголовке файлов или в основной программе, а так же описанная в модуле или в основной программе.
Перед вызовом функции её нужно объявить, для этого:
<тип функции><название функции> (<список формальных параметров>);
Тип функции – тип возвращаемого значения, если функция не возвращает результат, то она объявляется типом void .
В списке формальных параметров для каждой переменной нужно отдельно указывать тип. Указывать имена переменных не обязательно (например, (float, float, int);). Переменным при их перечислении можно сразу присваивать исходные значения.
Описание функции пользователя
<тип функции><название функции>(<список формальных параметров>)
{
<тело функции>;
Return (<название переменной, значение которой нужно вернуть>):
}
Функцию можно описать и до основной функции, тогда объявлять ее не обязательно
Вызов функции
<название функции>(<список фактических параметров>);
Типы фактических переменных должны совпадать с типами формальных переменных.
Прототипы функции
Так же можно использовать прототип функции, это объявление функции без их определения. Т.е. перед главной функцией идет объявление функции, в главной функции ее использование, а после главной функции само описание.
Что означает пользовательская функция? Это функция, которая создана пользователем.
void swap (int x, int y){ int z = x; x = y; y = z; }
Как вы, наверное, догадались - это пользовательская функция, которая меняет местами значения у элементов
void GetError (){ pritnf ("Ошибка\n"); }
Пользовательская функция, выбрасывающая сообщение об ошибке
int max (int a, int b, int c){ if (a > b && a > c) return a; if (b > a && b > c) return b; if (c > a && c > b) return c; }
Эта созданная пользовательская функция определяет наибольшее число из трех. Но есть одно важное замечание. В нашей пользовательской функции swap, которая меняет местами значения у элементов. На самом деле значения, после выполнении функции останутся на своем месте, так как в саму функцию передаются копии объектов. Как передавать в функцию сам объект мы рассмотрим позднее
что такое рекурсия
Многие задаются вопросом что такое рекурсия? Давайте с вами постараемся дать определение. Рекурсия - это вид функции, которая вызывает саму себя. Давайте для начала рассмотрим пример рекурсии:
#include <conio.h> #include <stdio.h> int sum (int temp){ int i=0; if (temp == 0) return temp; else return temp+sum(temp-1); } int main() { printf ("%d", sum(5)); getch(); return 0; }
Этот пример рекурсивной функции ( рекурсии ) выводит сумму чисел до введенной в аргументе. Суть рекурсивной функции ( рекурсии ) тут состоит в том, что пока наше число не равно нулю, мы будем накапливать полученное число в аргументе и передавать в эту же функцию число, но на единицу меньшее. Т.е. на первом шаге мы в накоплении оставим 5, а передадим 4, далее мы к 5 прибавляем 4, а передаем 3. Вот как действует наша рекурсия.
