Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Итог_Пособие C++.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.03 Mб
Скачать

1.10.1 Понятие функции

Понятие функции является фундаментальным при изучении основ С++, поэтому оно было представлено в самом первом разделе пособия (вместе с примером 1.1, демонстрирующим применение вспомогательной функции). В данном разделе уточним некоторые важные моменты, касающиеся описания и использования функций.

Сначала вспомним и систематизируем основы.

Функция – именованная часть программы (единица программного кода), к которой можно обращаться многократно из различных частей программы, а также из других программ. Иногда функцию определяют как операцию, определяемую пользователем. Подход к разработке программного обеспечения, основанный на разбиении программы на отдельные функции, называют процедурно-ориентированным программированием. Имеется и более общий термин – модульное программирование, который включает и процедурно-ориентированный, и объектно-ориентированный подходы.

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

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

Выделение функций при разработке собственной программы – далеко не простая задача. Для начала напомним основные принципы, которые следует соблюдать. Далее в пособии эта тема будет развиваться.

  • Каждая функция должна выполнять завершённое элементарное действие, смысл которого всем понятен. Примеры из стандартной библиотеки: возведение числа в заданную степень, сортировка массива, удаление фрагмента из строки текста. Имя функции должно кратко отображать суть выполняемого действия (pow, sort, erase).

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

  • Функции должны быть небольшого размера – всего несколько строк программного кода. Если действие, которое выполняет функция, требует написания более объёмного кода, следует подумать о выделении в ней вспомогательных функций. Например, в функции сортировки массива можно использовать функцию сравнения и функцию перестановки элементов, причём каждую из этих функций можно будет использовать и в других ситуациях, поэтому программа от этого только выиграет.

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

  • Вообще, при выделении функций следует постоянно помнить о возможности их многократного использования – это не просто сокращает размер программного кода, но и повышает его надёжность и сопровождаемость.

Для того, чтобы научиться реальному воплощению этих принципов, требуется как можно больше практики программирования. Даже в небольшой учебной программе стоит выделять функции – со временем и рука набьётся, и преимущества модульного программирования станут ощутимыми.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]