🚬
C++ Learning
  • 📚Ссылки/медиа
  • 💼Создание проекта. Основы
  • 🔙Escape последовательности
  • 🔥Типы данных
  • 🛡️Переменные
  • 🔒Константы Const
  • 📥Ввод данных в консоль cin. Приведение типов.
    • ✅Задача с операторами
  • 🔖Инкремент и Декремент
  • ♻️Сокращенные арифметические действия
  • ⚖️Логические Операции
  • ‼️if - else
    • ✅Проверка на четность
  • 3️⃣Тернарный оператор
  • 🔀Switch
    • ✅Простой калькулятор на switch
  • 🔄Цикл While
    • ✅Линия из символов
    • ✅Нахождение всех целых нечетных чисел
  • ♾️Цикл For
  • 🛑Оператор break
  • ⏭️Оператор continue
  • 🦽Оператор goto
  • 🗃️Вложенный Цикл / Вложенная конструкция
    • ✅Задача с прямоугольником
  • 📦Массив
    • ✅Нахождение минимального элемента массива
  • 📏функция sizeof()
  • 🎲функция rand()
    • ✅Заполнение массива случайными неповторяющимися числами
  • 🗓️Двумерный массив
    • ✅Заполнение двумерного массива случайными неповторяющимися числами
  • ⚙️Функции
    • 🔩Прототипы функции
    • 🔩Параметры по умолчанию
    • 🔩Перегрузка функций
    • 🔩Шаблоны функции
    • ✅Игра "угадай число"
  • 👁️Область видимости
  • 📚Стек
  • 🪞Рекурсия
  • 👉Указатели
    • *️⃣Разыменование
    • 📦Массив это указатель
    • 🔩Передача параметров функции через указатели
    • ✅Обмен значениями переменных с помощью указателей
  • 📎Ссылки (reference)
    • ✅Обмен значениями между переменными
    • ✅Шаблонная функция обмена значениями
  • 💾new, delete. Выделение / Удаление памяти
    • ⭕NULL / nullptr
  • 📦Динамический массив
    • 💊Двумерный динамический массив
    • 💿Копирование динамического массива
    • Управление массивом. Добавление элемента (push-back)
    • Управление массивом. Удаление элемента (pop-back)
  • 📝Строки
    • 🧩string / конкатенация строк
    • 📏функция strlen()
    • ✅Написать функцию strlen() самому
  • 📩Указатель на функцию
  • 💽Препроцессор #define
    • Макрос
    • Условная компиляция #ifdef #endif #else #ifndef #if
  • 🌐ООП
  • Class / класс, объект класса
    • Методы класса
    • Модификаторы доступа класса. ИНКАПСУЛЯЦИЯ
    • Геттеры и Сеттеры. ИНКАПСУЛЯЦИЯ.
    • Конструктор класса
      • Перегрузка конструктора класса
    • Деструктор класса
    • this / конструктор копирования
    • operator / Перегрузка операторов
      • Перегрузка операторов сравнения ><
      • Перегрузка операторов сложения, вычитания +-
      • Пример класса с конструкторами и перегрузками
  • 😎Friend / дружественные функции, классы
    • ✅Обмен значениями между объектами класса Swap
    • Дружественный метод класса.
  • Методы вне класса
  • ⁉️Ошибки
    • ❌Ошибка с моментальным закрытием консоли из .exe
  • LEETCODE
    • 🟩1.TwoSum
    • 🟩1108. Defanging an IP Address
    • 🟩2011. Final Value of Variable After Performing Operations
    • 🟩9. Palindrome Number
Powered by GitBook
On this page

Функции

Повторное использование кода, улучшение читаемости кода.

Функция - набор инструкций, которые можно использовать много раз, не повторяя их каждый раз заново.

Синтаксис
int function()
{
    
    return;
{

// int - тип данных возвращаемый функцией
// () - операторы которые функция принимает
// return - то, что функция будет возвращать. Переменные или сразу действие.

Простые примеры функций:

Функция суммы чисел
int sum(int a,int b) // функция возвращающая целочисленное число
{

	int result = a + b; // сумма

	return result;  // то, что будет возвращать функция
	                // либо можно сразу написать return a + b;
}



int main()
{

	cout << sum(2,5) << endl; // 2,5 - a,b  
	                          // вместо 2,5 могут быть любые int переменные

}
Функция случайного числа
int get_random_number() {

 return rand() % 10; // Возвращает случайное число от 0 до 9
 
}
Функция проверяющая число на четность
bool isEven(int number) 
{

  if (number % 2 == 0) 
  {
    return true; 
  } 
  else 
  {
    return false; 
  }
  
}

int main() {

  int num = 8;
  isEven(num);
  
{

Интересная особенность передачи параметров в функцию связана с инкрементом. Если мы хотим вывести через функцию инкремент числа, то нам следует использовать именно префиксный инкремент, т.к постфиксный может увеличить переменную после условного вывода.

int increment(int a)
{
	return ++a; // префиксный инкремент, иначе результат будет неправильный
}


int main()
{
	
	int x = 1;
	cout << increment(x) << endl;
	
}


Передача массива в функцию. Мы не можем изменять напрямую переменные нашей программы с помощью функции т.к передаем в нее через параметры только значения, а не саму переменную. Однако когда мы передаем в параметр функции массив, то это расценивается как указатель поэтому мы можем напрямую заполнять массив.

void FillArray(int array[], const int ARRAY_SIZE) // функция заполнения массива
{

	for (int i = 0; i < ARRAY_SIZE; i++)  
	{
		array[i] = rand() % 10;
	}

}

void PrintArray(int array[], const int ARRAY_SIZE) // функция вывода массива
{

	for (int i = 0; i < ARRAY_SIZE; i++)
	{
		cout << array[i] << endl;
	}

}


int main()
{
	const int SIZE = 10; 
	int arr[SIZE];       // наш массив
	 

	FillArray(arr, SIZE); // в функции передаем сам массив и его размер
	PrintArray(arr, SIZE); 

}
PreviousЗаполнение двумерного массива случайными неповторяющимися числамиNextПрототипы функции

Last updated 7 months ago

⚙️
Page cover image