
- •Конспект лекций по дисциплине «алгоритмизация и программирование»
- •Лекция № 1. Основные понятия
- •Использование ключевого слова using
- •2: Int main()
- •4: Using std::cout; // Вместо этих двух строк можно записать
- •5: Using std::endl; /* одну: using namespace std;*/
- •20: Return 0;
- •Комментарии
- •Функции
- •Переменные
- •Лекция № 3. Операторы
- •Математические операторы
- •Математические функции
- •Логические операторы
- •Операторы отношения
- •Операторы переходов по условию
- •Лекция № 4. Циклы
- •Оператор goto
- •Оператор цикла while
- •Операторы break и continue
- •Оператор цикла do..While
- •Оператор цикла for
- •Int main ()
- •Лекция № 5. Массивы
- •Одномерные массивы
- •Int main()
- •Многомерные массивы
- •Массивы символов (строки)
- •Int main()
- •Лекция № 6. Некоторые простые алгоритмы
- •Поиск максимального (или минимального) числа из выборки чисел
- •Int main()
- •Пузырьковая сортировка (bubble sort)
- •Void exch(double &a, double &b)
- •Лекция № 7. Численное решение уравнений
- •Теоретические основы
- •Метод простого перебора
- •Int RootSearch (double p[], int n, double a, double b, double dx);
- •Int main ()
- •Int RootSearch (double p[], int n, double a, double b, double dx)
- •Метод половинного деления
- •Метод Ньютона-Рафсона
- •Лекция № 8. Основы объектно-ориентированного программирования
- •Введение
- •Void Meow();
- •Закрытые и открытые члены класса
- •Void Meow();
- •Int main()
- •Void Meow();
- •Лекция № 9. Конструкторы и деструкторы
- •Определение
- •Int Weight;
- •Файлы заголовков
- •Встраиваемые функции
- •Лекция № 10. Классы, содержащие другие классы как данные-члены
- •Сложные классы
- •Структуры
-
Функции
Теперь обратимся к функциям. Хотя main() и является функцией, но она нетипична. Функцию необходимо вызывать (или обращаться к ней) программно, в ходе выполнения кода. Функцию main() вызывает операционная система, и обратиться к ней из кода программы невозможно.
Программа выполняется по строкам в порядке их расположения в исходном коде до тех пор, пока не встретит вызов какой-нибудь функции. После выполнения функции управление возвращается той строке программы, которая следует за вызовом функции.
Функции возвращают либо некоторое реальное значение, либо значение типа void, т.е. не возвращают ничего. Функцию, которая складывает два целых числа и возвращает значение суммы, следует определить как возвращающую целочисленное значение. Функции, которая только выводит сообщение, возвращать нечего, возвращать нечего, поэтому для нее задается возвращаемый тип void.
Функции состоят из заголовка и тела. Заголовок содержит объявление типа возвращаемого значения, имени и параметров функции. Параметры позволяют передавать в функцию данные. Следовательно, если функция предназначена для сложения двух чисел, то их необходимо передать в функцию как параметры. Вот как будет выглядеть заголовок возвращающей целочисленное значение функции Sum(), которой передаются два целых числа (first и second):
Int Sum(int first, int second).
Параметр – это объявление типа данных, передаваемых функции. Реальное значение, передаваемое при вызове функции, называется аргументом. Некоторые программисты рассматривают эти понятия как синонимы. Другие считают смешение терминов признаком непрофессионализма.
Тело функции состоит из открывающейся фигурной скобки, любого количества операторов и закрывающейся фигурной скобки. Функция может возвращать значение в программу при помощи оператора return. Этот оператор также означает выход из функции. Если не поместить в функцию оператор return, то по завершении функция автоматически возвратит значение типа void. Значение, возвращаемое функцией, должно иметь тип, объявленный в заголовке функции. Если функция, как и положено, возвращает значение, но оператора return не содержит, то некоторые компиляторы передают предупреждение или сообщение об ошибке.
В листинге 2.2 приведена функция, которая получает два целочисленных параметра и возвращает целочисленное значение.
Листинг 2.2. Пример простой функции
1: #include <iostream>
2: int Add (int first, int second)
3: {
4: std::cout << “In Add(), received “ <<first << “and” << second << std::endl;
5: return (first+second);
6: }
7:
8: int main()
9: {
10: using std::cout;
11: using std::cin;
12:
13: cout << “I am in main()!\n”;
14: int a, b, c;
15: cout << “Enter two numbers: “;
16: cin >> a;
17: cin >> b;
18: cout << “\nCalling Add()\n”;
19: c=Add(a, b);
20: cout << “\nBack in main().\n”;
21: cout << “c was set to “ << c;
22: cout << “\nExiting…\n\n”;
23: char response;
24: cin >> response;
25: return 0;
26: }
РЕЗУЛЬТАТ
I am in main()!
Enter two numbers: 3 5
Calling Add()
In Add(), received 3 and 5
Back in main()
C was set to 8
Exiting…