Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Пояснения к работе программы.

Читайте также:
  1. Безопасность при работе в воде и на льду.95
  2. Безопасность при работе с почтой
  3. Брака в работе) формы РБУ-3
  4. ВИДЫ КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ. ОРГАНИЗАЦИЯ И ОПИСАНИЕ ЭМПРИЧЕСКОГО ИССЛЕДОВАНИЯ В КУРСОВОЙ И ДИПЛОМНОЙ РАБОТЕ.
  5. Вооружение легких стрел и тяжеловестных стрел.Соблюдение ТБ при работе со стрелами.ПТЭ.
  6. Вопрос 2. ТБ при работе судов в открытом море.
  7. Вредные вещества, выбрасываемые при работе котельных установок, их влияние человека.
  8. Время на выполнение норматива или задачи определяется с момента команды «К работе — ПРИСТУПИТЬ» и до доклада обучаемого (проверяемого) «Задачу выполнил».
  9. Входные данные и пояснения
  10. Глава 24. Обеспечение безопасности при работе с компьютером

Программа начинает работать с функции main.

Первая исполняемая инструкция-выражение

сout << endl << "vvedite a, x1, x2 ";

выводит на экран подсказку.

Следующая инструкция-выражение вводит информацию с клавиатуры в три объекта a, x1, x2.Пользователь ввел a равное 1, x1 равное 2, x2 равное 3.

В инструкции-выражении

vir1 = countX ( x1*x1, x2, M_PI_2);

первым выполняется оператор ( )вызова функции.

При вызове функции countX эта функция принимает первый фактический параметр по значению ( получает результат вычисления выражения x1*x1,равное 4) и для хранения этого значения 4 в объекте–функции countX создается локальный объект с именем а, тип которого float (т.к. первый формальный параметр в списке формальных параметров функции float a). Полученное через параметр значение 4 записывается в этот локальный объект а. Так же передаются остальные два фактических параметра – значения 3 из объекта x2 и 1.57 из константы M_PI_2. Для записи этих значений создаются локальные объекты b и c. Значения, записанные в локальные объекты а, b и c используются при вычислении значения результата 0.02 в локальном объекте х функции countX. Этот результатинструкцией return x; возвращается в точку вызова функции countX в объекте main, когда функция countX заканчивает работу и передает управление снова в функцию main.

Последним в выражении

vir1 = countX ( x1*x1, x2, M_PI_2)

выполняется оператор =

Значение 0.02, которое возвращает функция countX, оператором присвоить =копируется в область локального объекта vir1 функции main.

Все локальные объекты, определенные в функции countX, «живы», пока функция выполняет работу. Функция countX закончила работу, его локальные объекты «умерли» вместе с функцией.

 

При втором вызове функции countX в инструкции-выражении

vir2 = countX( x2, x1 + 1.2, 0);

первым выполняется оператор () вызова функцииcountX.

Эта функция получает первый фактический параметр по значению ( получает значение 3). Для хранения этого значения 3 в объекте–функции вновь создается локальный объект а, тип которого float (т.к. первый формальный параметр в списке формальных параметров функции float a). Полученное через параметр значение 3 записывается в этот локальный объект а. Так же передаются остальные два фактических параметра – значения 3.2 и 0, для них создаются локальные объекты b и c. Эти значения используются при вычислении значения -0.09 объекта х в функции countX, которое инструкцией return x; возвращается в точку вызова функции countX в объекте main для продолжения вычисления выражения:



vir2 = countX( x2, x1 + 1.2, 0)

Последним в этом выражении выполняется оператор присвоить =,которыйкопирует в область локального объекта vir2 функции main то значение -0.09, которое вернула функция countX.

Выполняется инструкция определения объекта:

float x = 1./11 + a * vir1 + 1 / vir2;

Созданный этим оператором объект х, при создании инициализируется значением, вычисленным в выражении 1./11 + a * vir1 + 1 / vir2,тип которогоfloat.

Обратите внимание, что значение выражения 1/11,будучи вычисленым, равно 0, его тип int, так как оба операнда этого выражения имеют тип int. А значение выражения 1./11имеет тип float, так как один из операндов этого выражения, а именно 1.имеет тип float,поэтому результат получают в кодировке float и он равен0.090909 (смотрите неявное преобразование типов!).



Инструкции-выражения

cout << endl << "X = " << x;

getch();

организуют вывод результата на экран и задержку.


Дата добавления: 2015-01-01; просмотров: 16; Нарушение авторских прав


<== предыдущая лекция | следующая лекция ==>
Передача информации в функцию через параметры по значению. Возврат значения одного результата из функции через возвращаемое значение. | Передача параметров по ссылке.
lektsii.com - Лекции.Ком - 2014-2020 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты