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

Вычислить значение выражения

12.12.2016, 15:34. Показов 1620. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот условие задачи
"Даны действительные числа a, b, c. Вычислить https://www.cyberforum.ru/cgi-bin/latex.cgi?T=\frac{max(a, a+b)+max(a,b+c)}{1+max(a+bc, 1.15)}"
Я пыталась написать программу. Вот, что у меня получилось. Она не работает. Я знаю, что строки 23-27 неверны. Как их исправить?
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include<math.h>
#include<iostream>
using namespace std;
 
float a, b, c, d, e, f;
float T;
 
float Bilshe(float, float);
void Init();                  //ввод данных
void Max();                   //вызначаем максимальное
void Rozrachunok();           //рачет T
void Browse();                //вывод результата
 
int main()
{
    Init();
    Max();
    Rozrachunok();
    Browse();
    system("pause");
}
 
float Bilshe (float n, float m)
{
    return if (n > m) { n; }
    else { m; }
}
 
void Init()
{
    cout << "enter a="; cin >> a >> endl;
    cout << "enter b="; cin >> b >> endl;
    cout << "enter c="; cin >> c >> endl;
}
 
void Max()
{
    d = Bilshe(a, a + b);
    e = Bilshe(a, b + c);
    f = Bilshe(a + b*c, 1.15);
}
 
void Rozrachunok()
{
    T = (d + e) / (1 + f);
}
 
void Browse()
{
    cout << "T=" << T << endl;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.12.2016, 15:34
Ответы с готовыми решениями:

Вычислить значение выражения
Помогите пожалуйста выполнить данное задание.

Вычислить значение выражения
Вычислить значение выражения

Вычислить значение выражения
x-10sinx+|x4-x5|

30
53 / 42 / 31
Регистрация: 24.11.2016
Сообщений: 140
12.12.2016, 15:45
не смотрел все, но я так понимаю смысл в этих строках был
Цитата Сообщение от Juliann Посмотреть сообщение
float Bilshe (float n, float m)
{
* * return if (n > m) { n; }
* * else { m; }
}
такой
C++
1
return (n > m) ? n : m; //если n больше, то возвращаем n, если нет, то - m
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9006 / 4707 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
12.12.2016, 16:10
Juliann, Вы пытаетесь атаковать по всему фронту. Лучше бы по очереди, но если получается, - пробуйте.
Хотя я бы не торопился. Голову надо беречь. А программы не убегут. Они большие и их хватит на любую голову.
Сфокусируйте внимание на передаче аргументов и возврате значения. Лучше бы сначала попробовать познакомиться с передачей по значению.
А это передача по ссылке:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void Init(float &a, float &b, float &c)//по ссылке & чтобы в месте вызова изменились пирожки)
{
    cout << "enter a="; cin >> a >> endl;
    cout << "enter b="; cin >> b >> endl;
    cout << "enter c="; cin >> c >> endl;
}
 
//-----------------
//в месте вызова, в main например:
float a, b, c;
//------------------
Init(a, b, c);
//тут a, b, c уже будут определены тем что будет задано в функции
хотя у Вас там глобальные переменные. То есть должно работать и так. Только с глобальными - побочные эффекты при вычислении. То есть их нельзя изменять в функциях.
0
2 / 2 / 0
Регистрация: 04.12.2016
Сообщений: 41
12.12.2016, 16:22  [ТС]
Хорошо, IGPIGP, задайте мне задачки попроще. Я начала делать задание, которое идет после теории, и почему сразу сложное? Но эту, давайте все-таки доделаем. Ладно?
0
114 / 112 / 62
Регистрация: 15.03.2013
Сообщений: 561
Записей в блоге: 5
12.12.2016, 16:56
Как-то у Вас сложновато =)
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
double maxT(float a, float b, float c){
    return (max(a, a + b) + max(a, b + c)) / (1 + max(a + b*c, 1.15));
}
int main()
{
    setlocale(LC_ALL, "");
    float a = 0, b = 0, c = 0;
    cout << "enter a=";
    cin >> a;
    cout << "enter b=";
    cin >> b;
    cout << "enter c=";
    cin >> c;
    cout << "Result = " << maxT(a, b, c) << endl;
    system("pause");
    return 0;
}

Смотреть код или нет решать Вам. Функция max(a,b) уже существует, её переписывать не нужно.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9006 / 4707 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
12.12.2016, 17:31
Цитата Сообщение от Juliann Посмотреть сообщение
Ладно?
Ладно.
Juliann, я ближе к ночи к Вашим услугам.
Сейчас, - никак, просто.
0
2 / 2 / 0
Регистрация: 04.12.2016
Сообщений: 41
12.12.2016, 19:45  [ТС]
Цитата Сообщение от ящюр Посмотреть сообщение
Функция max(a,b) уже существует, её переписывать не нужно.
Это, конечно упрощает задачу)))

Добавлено через 5 минут
Цитата Сообщение от IGPIGP Посмотреть сообщение
Ладно.
Juliann, я ближе к ночи к Вашим услугам.
Сейчас, - никак, просто.
Конечно, как Вам удобно. Я еще раз попробую переписать программу. Раз Ящюр говорит, что операция max(a,b) уже описана, то это будет, как мне кажется, проще.

Добавлено через 1 час 27 минут
Я переписала программу. Выдает 4 ошибки
1) отсутствие ";" перед "}" (что-то совсем не могу найти места, где бы поставить ";")
2) С2679 бинарный ">>": не найден оператор, принимающий правый операнд типа "overloaded-function" (или приемлемое преобразование отсутствует)
Ошибка 3) и 4) аналогичны ко 2)
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
31
32
33
34
35
36
37
38
39
40
41
42
#include<math.h>
#include<iostream>
#include<Windows.h>
using namespace std;
 
float a, b, c, d;
float T;
 
float Bilshe(float, float, float);
void Init();                  //ввод данных
void Rozrachunok();           //рачет T
void Browse();                //вывод результата
 
int main()
{
    Init();
    Rozrachunok();
    Browse();
    system("pause");
}
 
float Bilshe(float &d)
{
    return d = (max(a, a + b) + max(a, b + c)) / (1 + max(a + b*c, 1.15));
}
 
void Init(float&a, float&b, float&c)
{
    cout << "enter a="; cin >> a;
    cout << "enter b="; cin >> b;
    cout << "enter c="; cin >> c;
}
 
void Rozrachunok(float&T)
{
    T = d;
}
 
void Browse()
{
    cout << "T=" << T << endl;
}
Добавлено через 17 минут
Зачем вообще морочить голову подпрограммами?????????!!!!!!!!!!!!
Если можно сделать так!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<math.h>
#include<iostream>
#include<Windows.h>
using namespace std;
int main()
{
float a, b, c, d;
float T;
cout << "a="; cin >> a;
cout << "b="; cin >> b;
cout << "c="; cin >> c;
d = (max(a, a + b) + max(a, b + c)) / (1 + max(a + b*c, 1.15));
cout << "T=" << d;
    system("pause");
}
Добавлено через 9 минут
Но если все-таки с подпрограммами, то я еще так придумала, но оно не работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<math.h>
#include<iostream>
#include<Windows.h>
using namespace std;
float maxT(float&a, float&b, float&c, float&d);
{
    return (max(a, a + b) + max(a, b + c)) / (1 + max(a + b*c, 1.15);)
}
int main(float&a,float&b,float&c)
{
cout << "a="; cin >> a;
cout << "b="; cin >> b;
cout << "c="; cin >> c;
cout << "T=" << maxT;
    system("pause");
}
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
12.12.2016, 19:49
Почему-то вспоминается нетленное произведение Крылова "Мартышка и кот очки". Может с приходом ночного рыцаря ситуация скорректируется
1
2 / 2 / 0
Регистрация: 04.12.2016
Сообщений: 41
12.12.2016, 20:05  [ТС]
Цитата Сообщение от _Ivana Посмотреть сообщение
Почему-то вспоминается нетленное произведение Крылова "Мартышка и кот очки".


Вообще последний мой код написан по мотивам кода Ящюра в 5 посте. Я только там не понимаю 11 строки, в этом и причина "неработы кода", как мне кажется...
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.12.2016, 20:13
Цитата Сообщение от Juliann Посмотреть сообщение
почему сразу сложное?
Да не сложное оно не разу! Простьо вы зачем-то пытаетсь использовать сложные конструкции, возможно, толком не понимая их смысла. А вы используйте конструкции попроще. Те, что понимаете.
Вот пример - ваши строчки 23-27. Чего накручено? Вот вам предложили
C++
1
return (n > m) ? n : m;
Понятно? Очень хорошо, поехали дальше! Не очень? Напишите
C++
1
2
3
4
float k;
if (n > m) k = n;
else          k = m;
return k;
И плюньте тернарному оператору в его бесстыжие глаза!

Добавлено через 3 минуты
Цитата Сообщение от Juliann Посмотреть сообщение
отсутствие ";" перед "}" (что-то совсем не могу найти места, где бы поставить ";")
Всегда указывай строчку, в которой индуцируется эта ошибка. Транслятор ведь ее говорит тебе?

Добавлено через 2 минуты
Цитата Сообщение от Juliann Посмотреть сообщение
Зачем вообще морочить голову подпрограммами?????????!!!!!!!!!!!!
Деточка, открою тебе маленький секрет нашего дремучего леса. Если бы не эти чертовы подпрограммы, мы бы все давно в соляные столбы обратились...
2
2 / 2 / 0
Регистрация: 04.12.2016
Сообщений: 41
12.12.2016, 20:57  [ТС]
Цитата Сообщение от Байт Посмотреть сообщение
Да не сложное оно не разу! Простьо вы зачем-то пытаетсь использовать сложные конструкции, возможно, толком не понимая их смысла. А вы используйте конструкции попроще. Те, что понимаете.
Я делала с примера с методички.
Цитата Сообщение от Байт Посмотреть сообщение
И плюньте тернарному оператору в его бесстыжие глаза!
С тернарным оператором я давно покончила. Оказывается существует описанная операция max(a,b). Но у меня такое предчувствие, что надо все-таки действовать без макса...а может и нет...
Цитата Сообщение от Байт Посмотреть сообщение
return (n > m) ? n : m;
Понятно? Очень хорошо, поехали дальше! Не очень? Напишите
Здесь без вопросов!
Цитата Сообщение от Байт Посмотреть сообщение
Деточка, открою тебе маленький секрет нашего дремучего леса. Если бы не эти чертовы подпрограммы, мы бы все давно в соляные столбы обратились...
Я имела ввиду эту программу...

Добавлено через 9 минут
Я в замешательстве... Запустила опять первую программу с 7 сообщения, чтобы посмотреть строку...а оно выдает другие ошибки, не те, что я писала... Как так?
Теперь
1)Ошибка LNK2019 ссылка на неразрешенный внешний символ "void __cdecl Init(void)" (?Init@@YAXXZ) в функции _main; строка 1
2) Ошибка LNK2019 ссылка на неразрешенный внешний символ "void __cdecl Rozrachunok(void)" (?Rozrachunok@@YAXXZ) в функции _main; строка 1
3) Ошибка LNK1120 неразрешенных внешних элементов: 2; строка 1

Добавлено через 9 минут
У меня предложение: давайте забудем обо всем множестве моих очков(кодов) и приведем в порядок третий с 7-го поста. Если в нем есть хоть что-то умное. Потому что в тех кодах и правда сложные и ненужные никому конструкции. Как Вы все считаете?
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
12.12.2016, 21:00
Цитата Сообщение от Juliann Посмотреть сообщение
float Bilshe(float, float, float);
Цитата Сообщение от Juliann Посмотреть сообщение
float Bilshe(float &d)
Это разные функции - в первой у Вас 3 параметра, а во второй почему-то один.

Цитата Сообщение от Juliann Посмотреть сообщение
void Rozrachunok();
Цитата Сообщение от Juliann Посмотреть сообщение
void Rozrachunok(float&T)
А тут - первая без параметров, а во второй один.
2
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9006 / 4707 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
12.12.2016, 22:45
Цитата Сообщение от _Ivana Посмотреть сообщение
Может с приходом ночного рыцаря ситуация скорректируется
Дон Гуан: О Донна Анна! Кто же его посадит? Ведь он же памятник... и дерево та-ко-е!
Мужик в спинжаке: Я на зов явился.

Не по теме:

Входит статуя крокодила.


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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
using namespace std;
 
float Maximus (float, float);
void  Input(float &a, float &b, float &c, float &d);                  //ввод данных
float Rozrachunok(float, float, float, float);           //расчет T
void  Browse(float);                //вывод результата
 
int main()
{
float a(0), b(0), c(0), d(0), T;
  Input(a,d,c,d);
    T=Rozrachunok(a, b, c, d);//d=1.15
    Browse(T);
    system("pause");
    return 0;
}
 
float Maximus(float l, float r)
{
    if(r>l)return r;
    return l;
}
 
void Input(float &a, float &b, float &c, float &d)
{
    const char *enter="enter ";
    cout<<enter<<"a= ";cin>>a;
    cout<<enter<<"b= ";cin>>b;
    cout<<enter<<"c= ";cin>>c;
    cout<<enter<<"d= ";cin>>d;  
}
 
float Rozrachunok(float a, float b, float c, float d)
{
    float chisl = Maximus(a,a+b)+Maximus(a,b+c);
    float znam = 1.+Maximus(a+b*c, d);
    return chisl/znam;
}
 
void Browse(float T)
{
    cout << "T=" << T << endl;
}


Добавлено через 2 минуты
Цитата Сообщение от Juliann Посмотреть сообщение
Ошибка LNK2019 ссылка на неразрешенный внешний символ "void __cdecl Init(void)" (?Init@@YAXXZ) в функции _main; строка 1
>> это два знака больше а << это два знака меньше.
1
2 / 2 / 0
Регистрация: 04.12.2016
Сообщений: 41
12.12.2016, 23:06  [ТС]
Мое спасение!!!
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
using namespace std;
 
float Maximus (float, float);
void  Input(float &a, float &b, float &c, float &d);                  //ввод данных
float Rozrachunok(float, float, float, float);           //расчет T
void  Browse(float);                //вывод результата
 
int main()
{
float a(0), b(0), c(0), d(0), T;
  Input(a,d,c,d);
    T=Rozrachunok(a, b, c, d);//d=1.15
    Browse(T);
    system("pause");
    return 0;
}
 
float Maximus(float l, float r)
{
    if(r>l)return r;
    return l;
}
 
void Input(float &a, float &b, float &c, float &d)
{
    const char *enter="enter ";
    cout<<enter<<"a= ";cin>>a;
    cout<<enter<<"b= ";cin>>b;
    cout<<enter<<"c= ";cin>>c;
    cout<<enter<<"d= ";cin>>d;  
}
 
float Rozrachunok(float a, float b, float c, float d)
{
    float chisl = Maximus(a,a+b)+Maximus(a,b+c);
    float znam = 1.+Maximus(a+b*c, d);
    return chisl/znam;
}
 
void Browse(float T)
{
    cout << "T=" << T << endl;
}
Я думала мы решили что-то попроще) Ну что ж, так, значит так) Мне даже все ясно кроме того, как работает с 19 по 23 строки. Очень прошу объяснить. А так, я поняла.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9006 / 4707 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
12.12.2016, 23:12
Juliann, Максимус Меридий - гладиатор. На арену выходят двое, а возвращается только один. Функция возвращает его. Одного из двух. В функции выясняется кто победитель. Там действует грубая сила, то есть кто больше, тот и победил. А если они равны, то не важно.
зы если срабатывает первый return то второй не работает, как будто его и нет. А если первый не сработает, то второй это сделает обязательно.
2
2 / 2 / 0
Регистрация: 04.12.2016
Сообщений: 41
12.12.2016, 23:34  [ТС]
Меня простоо смутила единица. Если я введу два числа, например, 2 и 3. |Они оба больше единицы. Вообше, не пойму при чем тут 1.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9006 / 4707 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
12.12.2016, 23:40
Цитата Сообщение от Juliann Посмотреть сообщение
Они оба ьюбольше единицы. Вообше, не пойму при чем тут 1.
Это буква Эл (lat.)
Единицу передать как float 1 нельзя.
В объявляемом параметре - тип и имя переменной, а имя не может начинаться с цифры.
1
2 / 2 / 0
Регистрация: 04.12.2016
Сообщений: 41
12.12.2016, 23:52  [ТС]
Все ясно. Мне пора спать) А то уже l от 1не могу отличить. А про двох силачей,которе сражаются, и так было понятно) Спасибо Вам большое, этот код теперь похож на код с методички - и я спокоен Спасибо всем!!!
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.12.2016, 23:55
Цитата Сообщение от IGPIGP Посмотреть сообщение
Это буква Эл (lat.)
Я вообще себе заказал где-то в кодах использовать одинокую букву "l'. Именно по этой причине. Так же стараюсь избегать одинокой буквы "c" ил "C" (по другой причине)
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9006 / 4707 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.12.2016, 01:40
Цитата Сообщение от Juliann Посмотреть сообщение
и я спокоен
Момент истины? Спи спокойно друг.

Добавлено через 5 минут
Цитата Сообщение от Байт Посмотреть сообщение
Я вообще себе заказал где-то в кодах использовать одинокую букву "l'. Именно по этой причине. Так же стараюсь избегать одинокой буквы "c" ил "C" (по другой причине)
С ними и с неодинокими весело может быть. Вероятность перевода языка невелика но есть. Особенно если с символа всё начинается. Л и Р иногда используют на деревьях. Хотя я тоже это делаю только в очень маленьких функциях.
Вот функция Init... - мелочь, а проще новую написать чем ковырять, что там с символами накручено.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2016, 01:40
Помогаю со студенческими работами здесь

Вычислить значение выражения
Помогите написать программу на С++ Вычислить значение выражения b=\begin{cases} tg(x)+f(x)^2 &amp; \text{ , } y \gt 2x \\ ...

Вычислить значение выражения
Помогите прописать решение на программе Borland: z = \frac{\log_{2 - x^2}\, (1 + y^2)}{\log_{2 + |y|} \,(1 + |x|)}

Вычислить значение выражения

Вычислить значение выражения
2. Написать программу для расчёта по формуле Z=(x2+2x-3+(x+1)√(x2-9))\(x2-2x-3+(x-1)√(x2-9))

Вычислить значение выражения
Нужно составить программу, вычисляющую значение этого выражения S=cos(1+cos(2+cos(3+...+cos(39+cos(40))..)))


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru