КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Передача информации в функцию через параметры по значению. Возврат значения одного результата из функции через возвращаемое значение
Этот механизм обмена информацией заложен в самом синтаксисе определения объекта типа функции: тип_возвращаемого_значения имя_объекта_функции ( список_формальных_параметров ) { /* Здесь пишутся инструкции, которые определяют объекты, создаваемые внутри функции – локальные объекты. Здесь пишутся инструкции, задающие действия над этими объектами - алгоритм работы функции */ // инструкция return вернет значение-результат в точку вызова этой функции // этот результат надо будет «поймать» (сохранить) в точке вызова // иначе он будет потерян return выражение; }
список_формальных_параметров (записывается в скобках) – это последовательность параметров, разделенных запятыми. Для каждого параметра, передаваемого по значению, указывается тип и имя. Тип определяет типы тех значений, которые требуется передать в функцию при ее вызове. Имя – определяет имя локального объекта указанного типа, который в момент выполнения этой функции будет определен (создан) в ней для хранения полученного при вызове этой функции фактического значения. Часто такой локальный объект, создаваемый в функции на основе параметра, передаваемого по значению, называется копией объекта, созданного для хранения переданного ей значения. тип_возвращаемого_значения - это тип того значения, которое будет одним из результатов работы функции и которое вернет инструкция return выражение; в точку вызова функции. Если функция не будет возвращать результат своей работы через возвращаемое значение, потому что будет использован другой механизм возвращения результатов ее работы или его просто не надо будет возвращать в вызывающую функцию, то в качестве типа возвращаемого значения указывается тип пустой void. Такой вари ант вы видели при организации функции main.
Вызывается функция в той функции, где требуется ее выполнение. Такая функция называется вызывающей функцией. Вызов осуществляется оператором (), следующим после имени вызываемой функции. В скобках этого оператора указывается список фактических параметров. имя_вызываемой_функции ( список_фактических_параметров ) список_фактических_параметров – это последовательность имен объектов или выражений или констант, разделенных запятыми, значения которых передаются в вызываемую функцию. Между списком формальных параметров в определении или описании функции и списком фактических параметров при ее вызове должно соблюдаться соответствие по их количеству и типам.
Рассмотрим пример1. Составить функцию countX, которая, получив а, b и с через параметры по значению, вычисляет х и возвращает результат его вычисления через возвращаемое значение.
В функции main необходимо ввести значения a, , . Используя функцию countX, вычислить значение X и выдать его на экран. В функции main не использовать стандартные математические функции cos и sin, а использовать только свою функцию countX, которая будет их использовать.
Для того, чтобы вычислить требуемый результат, функция countX должна получить по значению три параметра а, b и с, тип каждого значения float. Результат функция вернет через возвращаемое значение, тип которого float.
float а
float b float
float c
Заголовок функции countX должен быть таким: float countX (float a, float b, float c)
В функции countX необходимо вычислить значения математических функций. Их вычисление могут обеспечить стандартные математические функции. Описания (прототипы) этих функций находятся в хэдерном файле math.h. Для того чтобы воспользоваться этими функциями, необходимо подключить этот файл директивой #include к тексту разрабатываемой функции.
// Текст функции в файле example1.cpp #include <math.h> float countX (float a, float b, float c) { float x; x = (a * cos(b + c) - b * sin(a + c)) / (pow(a,3) + b * b); return x; }
Этот текст нужно компилировать, для выявления синтактических ошибок.
Попытка этот текст выполнить, приводит на этапе редактирования (линковки! LNK) к появлению сообщений. Error 1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup Error 2 fatal error LNK1120: 1 unresolved externals Это сообщения о том, что нет main!!! Без main программа не работает!
В функции main нужно вычислить результат как сумму 1 + а выр1 + 1 / выр2, где
выр1 можно вычислить с помощью разрабатываемой функции countX, если вместо а использовать значение , вместь b значение , а вместо c значение .
выр2 также можно вычислить с помощью разрабатываемой функции countX, но вместо а необходимо использовать значение , вместь b значение , а вместо c значение .
При решении задачи необходимо знать число pi. Эту константу можно задать самим, но грамотней воспользоваться стандартными математическими константами, которые заданы в хэдерном файле math.h
Для того, чтобы использовать в программе эти стандартные математические константы, необходимо прописать в тексте программы в указанном порядке следующие директивы препроцессора:
Дата добавления: 2015-06-29; Просмотров: 552; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |