Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 27.09.2017
Сообщений: 55

Вычислить математическую формулу

28.09.2017, 15:07. Показов 988. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При написании кода программы столкнулся с проблемой. Программа выводит неправильное число. Скорее всего ошибки в формуле,но как таковых я их не обнаружил. При выводе Esv оно должно равняться примерно 346 , а на самом деле выводит число -11537.Помогите разобраться в чём дело.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <math.h>
#include <conio.h>
#include <windows.h>
#include <iomanip>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE,"rus");
    double Alpfa=15.75, Betta=17.8, Gamma=0.71, Psi=23.7; // коэфициенты.
    double Esv;
    int A, Z;// 
    double Y1=2.0, Y2=3.0;//массовое и зарядовое число
    int N;//число нейтронов
    
    cout<<" 1.Определение энергии связи ядра\n";
    cout<<"Для вычисления энергии связи введите:\n";
    cout<<"Массовое число A :"; cin>>A;
    cout<<"Зарядовое число Z :"; cin>>Z;
    
    
       Esv=Alpfa*A - Betta*( A=pow((A*A), 1.0 / Y2 )) - Gamma * ( (Z*Z) / (A=pow(A, 1.0 / Y2)))- Psi * ( A=pow(A - 2 * Z, Y1) / A ) + 12/(A=pow(A, Y1));
      cout<<"Энергия связи равна "<<Esv<<" МэВ."<<endl;
    } 
    
    _getch();
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.09.2017, 15:07
Ответы с готовыми решениями:

Перевести математическую формулу в С++
Ребят помогите.... очень нужно. Всю программу написал, а вот формулу одну не могу вывести ...

Записать математическую формулу
Доброго времени суток. Помогите записать формулу: заранее спасибо)))

Написать математическую формулу
Помогите написать математическую формулу в c++

8
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
28.09.2017, 15:23
Цитата Сообщение от BladeMaster Посмотреть сообщение
Скорее всего ошибки в формуле,но как таковых я их не обнаружил.
Формула записана весьма странно. Ты меняешь значение А по ходу вычисления. А его начальное значение вообще не определено.
Ну и операторные скобки ({, } )расставлены неверно.

Добавлено через 2 минуты
Цитата Сообщение от Байт Посмотреть сообщение
меняешь значение А по ходу вычисления.
В принципе это не запрещено, синтаксической ошибки нет. Но чтобы пользоваться таким изощренным приемом, надо довольно много знать. А этого знания, скорее всего, и нет
0
0 / 0 / 0
Регистрация: 27.09.2017
Сообщений: 55
28.09.2017, 15:36  [ТС]
Будьте добры,подскажите как необходимо записать формулу и расставить знаки
0
 Аватар для COKPOWEHEU
4079 / 2677 / 432
Регистрация: 09.09.2017
Сообщений: 11,888
28.09.2017, 15:42
Цитата Сообщение от Байт Посмотреть сообщение
А его начальное значение вообще не определено
вот же оно
Цитата Сообщение от BladeMaster Посмотреть сообщение
cout<<"Массовое число A :"; cin>>A;
Цитата Сообщение от BladeMaster Посмотреть сообщение
Программа выводит неправильное число
Значит, выложили не тот код, который проверяли. Потому что этот собраться не может.
0
0 / 0 / 0
Регистрация: 27.09.2017
Сообщений: 55
28.09.2017, 16:05  [ТС]
Убрал лишние действия,для того ,чтобы понять почему неправильно считает .
Не убрал { под формулой,а без него должно собраться

Добавлено через 13 минут
Формула имеет вид
https://www.cyberforum.ru/cgi-bin/latex.cgi?E=\alpha * A - \beta * \sqrt[3]{{A}^{2}} - \gamma * {Z}^{2} / \sqrt[3]{A}-\left(\zeta * {\left(A-2*Z \right)}^{2} / A \right)  +12/\sqrt[2]{A}

Помогите правильно написать формулу на С++
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,237
28.09.2017, 16:11
Думаю, надо так:
C++
1
2
3
4
5
double tmp= A - 2. * Z;    
Esv=Alpfa*A-Betta*pow( A, 2. / 3. ) 
   - Gamma*Z*Z/pow(A, 1. / 3.) 
   - Psi*tmp*tmp/A  
   + 12./sqrt(A);
2
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
28.09.2017, 18:48
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
вот же оно
Да, не заметил. Чему виной или неаккуратная форматизация кода или мои плохие глаза. А возможно, они наложились друг на друга...
Цитата Сообщение от BladeMaster Посмотреть сообщение
Формула имеет вид
Дык, а зачем ты пишешь
Цитата Сообщение от BladeMaster Посмотреть сообщение
A=pow(A, 1.0 / Y2)
Кто тебя этому учил?
Впрочем, смотри код уважаемого zss, и скажи ему спасибо
0
0 / 0 / 0
Регистрация: 27.09.2017
Сообщений: 55
29.09.2017, 11:35  [ТС]
Меня никто не учил. Я самоучка,от этого и ошибки.Недостаточно опытами знаний,пока что. Просто посмотрел,как выполняется возведение в степень и извлечение корня,а после записал формулу.

Большой спасибо zss!!!
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
29.09.2017, 12:18
Цитата Сообщение от BladeMaster Посмотреть сообщение
Большой спасибо zss!!!
Я думаю, что уважаемый zss будет еще больше рад твоей благодарности, если ты щелкнешь на кружок с плюсиком в поле его сообщения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.09.2017, 12:18
Помогаю со студенческими работами здесь

Преобраовать строку в математическую формулу
Здравствуйте! Задание собственно такое, я ввожу строку 2+9+0-5-7 ее я должен преобразовать так, чтобы вычислить результат того, что я ввел ...

Записать математическую формулу на языке C++
Доброго времени суток. Помогите записать формулу. Заранее благодарю!

Преобразование строки в математическую формулу
День добрый. Имеем строку, например - &quot;(30+X)-10*lg(100)&quot;. Если было бы без математических формул, то я бы наверное преобразовал...

Записать математическую формулу на языке C++
Доброго времени суток. Помогите записать формулу zzz=\frac{{e}^{\frac{3}{x}}*\pi x-lg {x}^{0.5}}{{e}^{x}-{e}^{2x}} заранее благодарю.

Как правильно записать математическую формулу на C++?
Формулы с ОДЗ ввод х, определение есть ли ошибка, считать y Y = 1/x Как правильно делать и записывать такое задание?


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru