Урок 7 - процедуры
Что такое процедуры?
Процедура - подпрограмма, содержащая описание определённого набора действий. Подпрограмма может быть многократно вызвана из разных частей программы.
Позволяет выносить повторяющиеся куски кода в отдельные подпрограммы.
Как создавать и использовать процедуры?
#include <iostream>
using namespace std;
void print_endl(string text) {
cout << text << endl;
}
int main() {
print_endl("hello");
print_endl("world");
}
Вывод:
hello
world
Разбираем как объявлять процедуры
void название_процедуры(тип_данных_параметра1 название_параметра1, тип_данных_параметра2 название_параметра2) {
код_который_выполняет_процедура
}
void
- тип данных, который возвращает процедура. Void переводится с английского как пустота.название_процедуры
- название процедуры, которое мы будем использовать для её вызова.тип_данных_параметра название_параметра
- параметры, которые мы передаем в процедуру. Работают они также, как и обычные переменные. Можно сделать несколько параметров, перечислив их через запятую.
Рекурсивные процедуры
Процедуры могут вызывать сами себя, что позволяет их использовать вместо циклов.
Разберу решение на C++ №6990 с сайта СДАМГИА
#include <iostream>
using namespace std;
void f(int n) {
cout << n;
n = n - 1;
if (n > 0) f(n);
}
int main() {
cout << f(4) << endl;
}
Вывод:
4
3
2
1
Как изменять переменные вне процедуры
Возможно вам стоит использовать функции из 8 урока? Если вы уверенны что вам нужны именно процедуры - то вот:
#include <iostream>
using namespace std;
void swap (int &a, int &b) {
int c;
c = a;
a = b;
b = c;
}
int main() {
int a, b;
cin >> a >> b;
swap(a, b);
cout << a << b; // Переменные поменялись местами!
}
Ввод:
123 456
Вывод:
456 123
Посмотрим в аргументы у процедуры swap. Что за &a
спросите вы? Указание &
перед переменной позволит взять ее оригинал вместо копии. Это и позволит нам
изменить переменную вне процедуры. Подробнее мы разберем это на 9 уроке.