powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Решить систему на языке С++ в visual studio
25 сообщений из 26, страница 1 из 2
Решить систему на языке С++ в visual studio
    #38871762
Илья Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38871764
Илья Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вариант 3
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38871767
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38871774
Илья Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Я понял , объясню .
Разбираться я готов . Вот задачку сам сделал часа за 4 ((
Тут что очень туго доходит с математикой . Подскажите пожалуйста
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38871816
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья Л., не нужно приаттачивать огромные скриншоты. Приведи исходник используя теги SRC.
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38871867
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде-бы человек сам делал :) Сейчас поможем
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38871868
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья Л., проверяйте :)



Код: plaintext
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.
#include <stdio.h>
#include <math.h>

#define EXP 2.718281828

double min2(double a, double b)
{
	return (a < b) ? a : b;
}

double max2(double a, double b)
{
	return (a > b) ? a : b;
}

double min3(double a, double b, double c)
{
	double temp = min2(a, b);
	return (temp < c) ? temp : c;
}

double z(double a, double b, double c)
{
	if (a*a - b*b + c >= 0)
	{
		return a + min3(a, b, c);
	}
	else if (b >= 0)
	{
		return 0.2*pow(a + b, 2) + powf(EXP, 0.1*c);
	}
	else
	{
		return max2(a, b) + a*a;
	}
}
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38871869
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой. Я тут код его решил изучить, думал ошибку найти.Так код вообще в этому алгоритму отношения никакого ни имеет..Не сам он делал 4 часа, а у сокурсника взял другой вариант и пытался его переделать. Чего тут думать то 4 часа.
Наверное мое решение нужно удалить
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38871938
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury, не надо. Мы твой код тоже "проворчим".

Ворчалка №1. Для е в степени икс сущестует готовая функция.
http://www.cplusplus.com/reference/cmath/exp/
Более того. Эта функция является строительным атомом для других показательных
функций таких как pow(x,y).

Ворчалка №2 . Для расчёта квадрата вещественного числа (double)
его желательно просто перемножить с самим собой.

Код: plaintext
1.
(a+b)*(a+b)



В данном конкретном случае можно оставить и pow (насколько я понимаю
он возник из-за лаконичности формы. Но pow обычно использует внутри
себя exp(..) и ряды тейлора даже для расчётов целочисленых возведений.

Это важно для скорости отклика численного метода.
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38871949
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марк, из-за лаконичности возник. Верно. А вот если целые числа, pow это не проверяет ? Есть смысл проверять и запускать другой алгоритм для целых чисел.
Насчёт exp не знал, но догадывался ;) Спасибо)
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38871967
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно погонять бенчмарки. В цикле поумножать вещественные без дробной части и то-же самое с pow(..).

И посмотреть разницу.
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38872196
Илья Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SashaMercury,
Скриншот скинул совсем другого задания. Просто показал что я перед эти делал. С выводами поторопился ты .
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38872823
Илья Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SashaMercury, ошибку выдает
Предупреждение 1 warning C4244: аргумент: преобразование "double" в "float", возможна потеря данных d:\лабыинф\consoleapplication1\consoleapplication1\исходный код.cpp 30 1 ConsoleApplication1
Предупреждение 2 warning C4305: аргумент: усечение из "double" к "float" d:\лабыинф\consoleapplication1\consoleapplication1\исходный код.cpp 30 1 ConsoleApplication1
Ошибка 3 error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup D:\лабыИнФ\ConsoleApplication1\ConsoleApplication1\MSVCRTD.lib(crtexe.obj) ConsoleApplication1
Ошибка 4 error LNK1120: неразрешенных внешних элементов: 1 D:\лабыИнФ\ConsoleApplication1\Debug\ConsoleApplication1.exe 1 1 ConsoleApplication1
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38872848
Илья Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Илья Л.,

Код: plaintext
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.
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <ctime>

using namespace std;

#define _E 2.71828182845

float min(float a, float b, float c)
{
	if (a < b && a < c) return a;
	if (b < a && b < c) return b;
	if (c < a && c < b) return c;
}

float max(float b, float c)
{
	if (b>c) return b;
	else return c;
}


void f3()
{
	float a, b, c, z;
	a = 1.0; b = 2.0; c = 3.0;
	if (a*a - b*b + c >= 0) { z = a + min(a, b, c); }
	else if (a*a - b*b + c < 0 && b >= 0) { z = 0.2 * (a + b)*(a + b) + exp(0.1*c); }
	else if (a*a - b*b + c < 0 && b < 0) { z = max(b, c) + a*a; }
	cout << "f3: " << z << "\n";
}



void main()
{

	(f3);

}


Как сделать что бы при сборке командное окно сразу не закрывалось ?
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38872921
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья Л.,

При сборке оно и не открывается.

А при запуске -- поставь точку прерывания на последнюю закрывающую скобочку в main.
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38872926
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья Л.SashaMercury,
Скриншот скинул совсем другого задания. Просто показал что я перед эти делал. С выводами поторопился ты .

Мне может быть извиниться перед вами ?

Ваш код сейчас, и то что вы приводили ранее абсолютно разные вещи. Потому я и сейчас сомневаюсь что вы что-то делали 4 часа. Тем более то, что делается 10 минут. Вы могли сделать кучу синтаксических ошибок, но на уровне псевдокода всё должно быть ок.

PS
ваши споры и возражения ко мне по поводу моих выводов(и возможно к тем кто вам помогает в Сообществе) оставьте при себе в следующий раз.
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38873012
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья Л.Илья Л.,

Код: plaintext
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.
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <ctime>

using namespace std;

#define _E 2.71828182845

float min(float a, float b, float c)
{
	if (a < b && a < c) return a;
	if (b < a && b < c) return b;
	if (c < a && c < b) return c;
}

float max(float b, float c)
{
	if (b>c) return b;
	else return c;
}


void f3()
{
	float a, b, c, z;
	a = 1.0; b = 2.0; c = 3.0;
	if (a*a - b*b + c >= 0) { z = a + min(a, b, c); }
	else if (a*a - b*b + c < 0 && b >= 0) { z = 0.2 * (a + b)*(a + b) + exp(0.1*c); }
	else if (a*a - b*b + c < 0 && b < 0) { z = max(b, c) + a*a; }
	cout << "f3: " << z << "\n";
}



void main()
{

	(f3);

}




1) не рекомендуется именовать переменные и препроцессорные директивы с символа _
Такие имена используются в стандартных библиотеках.
2) вы уже проверили квадратный многочлен на 0, проверку на 0 во втором и третьем условии нужно опустить. Проверку третьего нужно полностью убрать.
3) f3 должна возвращать значение, по хорошему.
4) что значит
Код: plaintext
1.
(f3)
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38873015
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И кстати. Раз уже есть функция exp, то найдите в math.h макрозамену числа Эйлера и используйте её
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38873017
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья Л.Как сделать что бы при сборке командное окно сразу не закрывалось ?
Добавь в конце функции main, например,
Код: plaintext
1.
system("pause");



P.S.:
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38873019
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury4) что значит
Код: plaintext
1.
(f3)


Вот, хотел тоже самое спросить :)

P.S.: На этой неделе я занялся перечитыванием книг по C++ ну и восстановление знаний по языку. Господа, поясните пожалуйста такой синтаксис (см. выше), насколько он правомочен? нормальным ли является опускание скобок при вызове функции (в случаях если функция не принимает и принимает аргументы (но у них значения по-умолчанию))?
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38873023
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П.С.М.нормальным ли является опускание скобок при вызове функции (в случаях если функция не принимает и принимает аргументы (но у них значения по-умолчанию))?[/

нет
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38873029
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Машинальный рефакторинг.
- float наверное выкинем. Нет никаких мотиваций его использовать
- отрефакторим повторяющиеся вычисления в предикатах
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        double a, b, c, z;
	a = 1.0; b = 2.0; c = 3.0;
        double p = a*a - b*b + c;
	if (p >= 0) { 
               z = a + min(a, b, c); 
        } else if (p < 0 && b >= 0) { 
               z = 0.2 * (a + b)*(a + b) + exp(0.1*c); 
        } else if (p < 0 && b < 0) { 
               z = max(b, c) + a*a; 
        }
	cout << "f3: " << z << "\n";
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38873038
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья Л.Ошибка 4 error LNK1120: неразрешенных внешних элементов: 1 D:\лабыИнФ\ConsoleApplication1\Debug\ConsoleApplication1.exe 1 1 ConsoleApplication1
В данном случае не нужно создавать проект Console Application. Создаете просто пустой проект :
Visual Studio -> New Project -> Visual C++ -> Empty Project
Создаете пустой проект, затем:
Project -> Add New Item -> C++ File (.cpp)
И во вновь созданный файл вставляете тот код, что Вы привели выше.
Нажимаете кнопку "скомпилировать"!!!

P.S.:
Илья Л.С выводами поторопился ты .
Да, и не очень-то хорошо хамить тому человеку, который Вам помогает. Да и тыкать незнакомому человеку тоже не очень красиво. Нужно ведь иметь хоть малейшие представления о культуре общения и правилах поведения в обществе.
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38873259
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМашинальный рефакторинг.
- float наверное выкинем. Нет никаких мотиваций его использовать
- отрефакторим повторяющиеся вычисления в предикатах
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        double a, b, c, z;
	a = 1.0; b = 2.0; c = 3.0;
        double p = a*a - b*b + c;
	if (p >= 0) { 
               z = a + min(a, b, c); 
        } else if (p < 0 && b >= 0) { 
               z = 0.2 * (a + b)*(a + b) + exp(0.1*c); 
        } else if (p < 0 && b < 0) { 
               z = max(b, c) + a*a; 
        }
	cout << "f3: " << z << "\n";



ну тогда вот так :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        double a, b, c, z;
	a = 1.0; b = 2.0; c = 3.0;
        double p = a*a - b*b + c;
	if (p >= 0) { 
               z = a + min(a, b, c); 
        } else if (b >= 0) { 
               z = 0.2 * (a + b)*(a + b) + exp(0.1*c); 
        } else { 
               z = max(b, c) + a*a; 
        }
	cout << "f3: " << z << "\n";
...
Рейтинг: 0 / 0
Решить систему на языке С++ в visual studio
    #38873265
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury, верно.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Решить систему на языке С++ в visual studio
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]