Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
cosmastar
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 17
#1

Перевод формулы на язык C++ - C++

18.11.2014, 10:22. Просмотров 1688. Ответов 19
Метки нет (Все метки)

Здравствуйте!
Прошу помочь мне с переводом формулы на язык c++ . Сам пробовал, но постояно выходят ошибки. С виду программа несложная, но одолеть ее не получается
Миниатюры
Перевод формулы на язык C++  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5275 / 4595 / 1540
Регистрация: 14.04.2014
Сообщений: 18,249
18.11.2014, 10:29     Перевод формулы на язык C++ #2
C++
1
2
z1 = (5 - 2 * a * a) / ((1 + a + a * a) / (2 * a + a) + 2 - (1 - a + a * a) / (2 * a - a * a));
z2 = (4 - a * a) / 2;
Dennis Ritchie
546 / 138 / 29
Регистрация: 27.07.2014
Сообщений: 2,445
18.11.2014, 10:31     Перевод формулы на язык C++ #3
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
int main()
{
    double a, z1, z2;
    scanf("%lf", &a);
    z1 = 1.0 / ((1 + a + a * a) / (2 * a + a) + 2 - (1 - a  + a * a) / (2 * a - a * a)) * (5 - 2 * a * a);
    z2 = (4 - a * a) / 2;
    printf("z1 = %lf\nz2 = %lf\n", z1, z2);
    return 0;
}
HighPredator
5476 / 1842 / 342
Регистрация: 10.12.2010
Сообщений: 5,433
Записей в блоге: 3
18.11.2014, 10:32     Перевод формулы на язык C++ #4
Поскольку я из-за вас чуть голову не свернул, то объяснять почему так я не буду.
C++
1
2
3
4
5
6
double nominator = a * (2 + a) * (2 - a) * (5 - 2*a*a);
double denominator = (1 + a + a*a) * (2 - a) + 2*a * (a + 2) * (2 - a) - (1 - a - a*a) * (2 + a);
double z1 = nominator / denominator;
nominator = 4 - a*a;
denominator = 2;
double z2 = nominator / denominator;
Dennis Ritchie
546 / 138 / 29
Регистрация: 27.07.2014
Сообщений: 2,445
18.11.2014, 10:38     Перевод формулы на язык C++ #5
Цитата Сообщение от HighPredator Посмотреть сообщение
Поскольку я из-за вас чуть голову не свернул, то объяснять почему так я не буду.
Это намёк на то, что формулы, которые написаны выше мной и nmcf, неправильно считают значение z1.
HighPredator
5476 / 1842 / 342
Регистрация: 10.12.2010
Сообщений: 5,433
Записей в блоге: 3
18.11.2014, 10:41     Перевод формулы на язык C++ #6
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Это намёк на то, что формулы, которые написаны выше мной и nmcf, неправильно считают значение z1.
Нет, я ваши формулы не проверял Намек на другое.
nmcf
5275 / 4595 / 1540
Регистрация: 14.04.2014
Сообщений: 18,249
18.11.2014, 10:42     Перевод формулы на язык C++ #7
Какой ещё намёк? Что выражение можно упростить? Автор об этом не просил.
Dennis Ritchie
546 / 138 / 29
Регистрация: 27.07.2014
Сообщений: 2,445
18.11.2014, 10:44     Перевод формулы на язык C++ #8
Цитата Сообщение от HighPredator Посмотреть сообщение
Нет, я ваши формулы не проверял
Зато я проверял.
KitoChimoto
85 / 42 / 7
Регистрация: 19.10.2013
Сообщений: 157
18.11.2014, 10:55     Перевод формулы на язык C++ #9
А мне вот интересно почему никто не использовал для возведения в степень функцию pow()?
nmcf
5275 / 4595 / 1540
Регистрация: 14.04.2014
Сообщений: 18,249
18.11.2014, 11:02     Перевод формулы на язык C++ #10
Потому что возведение в квадрат проще умножением сделать. pow() будет через логарифмы считать (насколько я помню).
Dennis Ritchie
546 / 138 / 29
Регистрация: 27.07.2014
Сообщений: 2,445
18.11.2014, 11:06     Перевод формулы на язык C++ #11
Ха. Ни у кого из нас значение z1 не считается правильно. Попробуйте проверить ваши формулы при a = 3 и свериться с результатом, подсчитанным от руки.
KitoChimoto
85 / 42 / 7
Регистрация: 19.10.2013
Сообщений: 157
18.11.2014, 11:09     Перевод формулы на язык C++ #12
Цитата Сообщение от nmcf Посмотреть сообщение
проще умножением сделать
ну в квадрат да, но я всегда стараюсь как-то более универсальной формулу сделать, вдруг там была бы 5-я или 10-я степень.
Dennis Ritchie
546 / 138 / 29
Регистрация: 27.07.2014
Сообщений: 2,445
18.11.2014, 11:11     Перевод формулы на язык C++ #13
Цитата Сообщение от KitoChimoto Посмотреть сообщение
ну в квадрат да, но я всегда стараюсь как-то более универсальной формулу сделать, вдруг там была бы 5-я или 10-я степень.
Вот когда будет 5-я или 10-я степень, тогда и сделаешь.
HighPredator
5476 / 1842 / 342
Регистрация: 10.12.2010
Сообщений: 5,433
Записей в блоге: 3
18.11.2014, 11:12     Перевод формулы на язык C++ #14
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Ни у кого из нас значение z1 не считается правильно. Попробуйте проверить ваши формулы при a = 3 и свериться с результатом, подсчитанным от руки.
Лично я исходил из того, что в выражении на z1 есть опечатка. С ее учетом и писал.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2014, 13:13     Перевод формулы на язык C++
Еще ссылки по теме:
Перевод дроби на язык СИ C++
Перевод из Basic на язык С. C++
Перевод текста в формальный язык C++
Перевод формулы на C# C#
Delphi 7 перевод формулы Delphi

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Dennis Ritchie
546 / 138 / 29
Регистрация: 27.07.2014
Сообщений: 2,445
18.11.2014, 13:13     Перевод формулы на язык C++ #15
Цитата Сообщение от HighPredator Посмотреть сообщение
Лично я исходил из того, что в выражении на z1 есть опечатка. С ее учетом и писал.
2a + a, а должно быть так: 2a + a2?
Yandex
Объявления
18.11.2014, 13:13     Перевод формулы на язык C++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru