КАТЕГОРИИ: Архитектура-(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) |
Пояснения к работе программы
Имен объектов тот, что указан в строке-подсказке В инструкции их определения любой Define _USE_MATH_DEFINES Define _USE_MATH_DEFINES #include <math.h>
// Добавили в файл example1.cpp функцию main #include <math.h> #include <iostream> #include <conio.h> using namespace std; 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; } void main (void) { сout << endl << "vvedite a, x1, x2 "; // вывод строки-подсказки float x1, a, x2; // порядок перечисления имен объектов cin>>a>>x1>>x2; // в инструкции-выражении порядок перечисления float vir1; vir1 = countX (x1*x1, x2, M_PI_2); float vir2; vir2 = countX(x2, x1 + 1.2, 0); float x = 1./11 + a * vir1 + 1 / vir2; // обратите внимание 1./11, а не 1/11 cout << endl << "X = " << x; getch(); }
Так выглядит ввод и вывод на экране при работе программы.
Программа начинает работать с функции 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-06-29; Просмотров: 372; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |