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

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

28.09.2017, 15:07. Показов 1000. Ответов 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
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,910
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
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru