Скачать 1.94 Mb.
|
8.3 Расширенная таблица символов ASCII для кодовой страницы DOS-866
30 ЛЕКЦИЯ 3. Функции и процедурная абстракция 1. Назначение подпрограмм Естественный и интуитивно понятный подход к решению больших сложных задач состоит в том, чтобы разбить большую задачу на набор меньших, которые можно решить более или менее независимо и затем скомбинировать полученные решения для получения полного решения. На таком подходе основана методология структурного программирования, которое господствовало в разработке программного обеспечения до появления объектно-ориентированного подхода. При структурном программировании большая программа разделяется на набор более или менее независимых подпрограмм. В Си++ подпрограммы называются функциями (в Паскале и некоторых других языках программирования есть два типа подпрограмм - "процедуры" и "функции"). Подпрограммы уже неоднократно встречались в предыдущих лекциях. Например, в программе 2.3.2 для построения таблицы квадратных корней был применен следующий цикл for: #include for ( number=1 ; number<=10 ; number=number+1 ) { cout.width(2 0); cout « number « sqrt(number) « "\n"; Функция "sqrt (...)" — это подпрограмма, описание которой хранится в заголовочном файле "math.h", а реализация - в библиотечном файле "math.lib". При вызове функции "sqrt (...)" ей передается числовой параметр "number", функция применяет алгоритм вычисления квадратного корня из этого числа, и затем возвращает вычисленное значение обратно в место вызова. Для применения этой функции программисту совсем необязательно знать, какой именно алгоритм реализован внутри нее. Главное, чтобы функция гарантированно возвращала верный результат. Было бы довольно нелепо включать в явном виде алгоритм извлечения квадратного корня (и, возможно, делать это неоднократно) в главную функцию программы "main". В данной лекции описывается, как программист может определять свои собственные функции. Сначала предполагается, что эти функции размещаются в одном файле с функцией "main". В конце лекции показывается, как распределять функции программы по нескольким файлам. 2. Определение новых функций Простым примером определения и использования новой функции является программа 2.1 (в ней пользовательская функция называется "area (...)"). Эта программа вычисляет площадь прямоугольника заданной длины и ширины. #include int area(int length, int width); /* Описание функции */ 31 // ГЛАВНАЯ ФУНКЦИЯ: int main () { int this_length, this_width; cout « "Введите длину: "; /* < строка 10 */ cin » this_length; cout << "Введите ширину: "; cin » this width; cout « "\n"; /* < строка 14 */ cout « "Площадь прямоугольника с размерами "; cout « this_length « "x" « this_width; cout « " равна " « area(this_length, this_width) « "\n"; return 0; } // КОНЕЦ ГЛАВНОЙ ФУНКЦИИ // ФУНКЦИЯ ВЫЧИСЛЕНИЯ ПЛОЩАДИ: int area (int length, int width) /* Начало определения функции */ { int number; number = length * width; return number; } /* Конец определения функции */ // КОНЕЦ ФУНКЦИИ |
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной... Цели: 1 продолжить знакомство с героями поэмы «Полтава»; познакомиться с изображением Полтавской битвы в поэме | И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной... ... | ||
Методические рекомендации по подготовке, оформлению, предзащите и... В. А. Усков, заместитель декана естественно-географического факультета по развитию, доцент кафедры физической географии и методики... | Проблемы коммуникации М. Е. Евсевьева (зав кафедрой, доцент А. А. Ветошкин); С. А. Борисова, директор Института международных отношений Ульяновского государственного... | ||
Программа по формированию навыков безопасного поведения на дорогах... Елена Святославовна Симакова, кандидат педагогических наук, доцент кафедры гуманитарных и естественнонаучных дисциплин Рязанского... | Программа курса по выбору «Орнитология» предназначена для студентов... Автор программы: к б н., доцент, зав кафедрой биологии и химии Марина Николаевна Харламова | ||
Российской Федерации Федеральное государственное образовательное... Петренко И. М., зав кафедрой экономической теории, д-р экон наук профессор Дулин М. П., зав кафедрой педагогики и психологии, д-р... | Рахманкулова Людмила Кузьминична, кандидат филологических наук, доцент... Автор программы: С. А. Виноградова, кандидат филологических наук, доцент, зав кафедрой английского языка и английской филологии | ||
Протокол №5 От 12 января 2012 г Заседания кафедры электроники и вычислительной... Зав кафедрой Хакимова Г. Г. сообщила, что кафедра проводит 2-й Чемпионат по цифровой схемотехнике | Лингвистические проблемы Московского государственного педагогического института иностранных языков им. М. Тореза (зав кафедрой доцент Ю. А. Денисенко); д-р... | ||
Мгпу учебно-методический комплекс дисциплины А. В. Прялухина, кандидат психологических наук, доцент, зав кафедрой психологии Российского государственного социального университета... | Рабочая программа по дисциплине «теория экономического анализа» Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического... | ||
Рабочая программа по дисциплине «международный менеджмент» Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического... | Методические рекомендации по написанию курсовых работ дисциплине Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического... | ||
Учебное пособие Краснодар 2008 В. А. Оробец); кафедра паразитологии и ветсанэкспертизы Донского государственного аграрного университета (зав кафедрой, проф., к... | Рабочая программа по дисциплине «Экономика организаций (предприятий)... Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического... |