Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2019, 18:36   #1
Enkz
Новичок
Джуниор
 
Регистрация: 17.10.2019
Сообщений: 1
По умолчанию Перевод математического выражения

Здравствуйте, только начал изучать программирование и язык C++.
Не могу толком понять, правильно ли я делаю.

//вычислить значение функции
Код:
#include <iostream>
#include <cmath>
using namespace std;

int main() {
	setlocale(LC_ALL, "RUS");
	float x, y;
	cout << "x = ";
	cin >> x;
	cout << "y = ";
	cin >> y;
	float c = 1.0 * sqrt(exp(x * x + y * y) - y * x) / (x * x + y * y) + log(sqrt(x * x * x * x) / (y * y * y * y));
	cout << "Результат: " << c << endl;
	system("pause");
	return 0;
}
______________________
Форматируйте код и используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ
Изображения
Тип файла: png Безымянный.png (6.3 Кб, 25 просмотров)

Последний раз редактировалось Вадим Мошев; 17.10.2019 в 19:58.
Enkz вне форума Ответить с цитированием
Старый 17.10.2019, 19:40   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Конечно, нет. По условию перед дробью 1/2, корень в числителе не задевает yx и у второй дроби в знаменателе тоже корень.
p51x вне форума Ответить с цитированием
Старый 17.10.2019, 20:37   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Следовало бы, особенно попервоначалу, не выстраивать монстрообразные "паровозы", а завести вспомогательную переменную (-ые), в которых выражение по частям легко расписывается и читается, а уж пото'м объединять их в основную формулу. Смотришь - и общая часть бы нарисовалась x^2 + y^2, чтоб 2 раза не вычислять. А включив на секунду голову, можно было бы и сообразить, что
Код:
sqrt((x * x * x * x) / (y * y * y * y))
не что иное как
Код:
(x * x / y * y)
. Ну а поколдовав с логарифмом, вышло бы что-то вроде
Код:
 2 * log (x/y)
.
Но сейчас, в эпоху гигабайтов и терафлопсов оптимизация не в чести, разве что понадеяться на умный компилятор.
Такое моё правильное мнение

Последний раз редактировалось digitalis; 17.10.2019 в 20:49.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запись математического выражения на C++ DesQ Помощь студентам 3 18.09.2014 00:21
Обработка и вычисление математического выражения wol4aravio C# (си шарп) 14 19.09.2012 13:38
Решение математического выражения DeadWarlock Паскаль, Turbo Pascal, PascalABC.NET 2 18.09.2012 18:23
вычисление математического выражения Gunina Помощь студентам 4 12.09.2012 17:34
решение математического выражения akum905 Общие вопросы C/C++ 0 12.11.2011 00:04