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

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



Код: 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
05.02.2015, 07:36
    #38871869
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
Ой. Я тут код его решил изучить, думал ошибку найти.Так код вообще в этому алгоритму отношения никакого ни имеет..Не сам он делал 4 часа, а у сокурсника взял другой вариант и пытался его переделать. Чего тут думать то 4 часа.
Наверное мое решение нужно удалить
...
Рейтинг: 0 / 0
05.02.2015, 09:54
    #38871938
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
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
05.02.2015, 10:05
    #38871949
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
Марк, из-за лаконичности возник. Верно. А вот если целые числа, pow это не проверяет ? Есть смысл проверять и запускать другой алгоритм для целых чисел.
Насчёт exp не знал, но догадывался ;) Спасибо)
...
Рейтинг: 0 / 0
05.02.2015, 10:26
    #38871967
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
Можно погонять бенчмарки. В цикле поумножать вещественные без дробной части и то-же самое с pow(..).

И посмотреть разницу.
...
Рейтинг: 0 / 0
05.02.2015, 13:00
    #38872196
Илья Л.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
SashaMercury,
Скриншот скинул совсем другого задания. Просто показал что я перед эти делал. С выводами поторопился ты .
...
Рейтинг: 0 / 0
05.02.2015, 20:12
    #38872823
Илья Л.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
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
05.02.2015, 21:05
    #38872848
Илья Л.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
Илья Л.,

Код: 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
06.02.2015, 01:04
    #38872921
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
Илья Л.,

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

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

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

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

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

Код: 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
06.02.2015, 09:32
    #38873015
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
И кстати. Раз уже есть функция exp, то найдите в math.h макрозамену числа Эйлера и используйте её
...
Рейтинг: 0 / 0
06.02.2015, 09:32
    #38873017
П.С.М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
Илья Л.Как сделать что бы при сборке командное окно сразу не закрывалось ?
Добавь в конце функции main, например,
Код: plaintext
1.
system("pause");



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


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

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

нет
...
Рейтинг: 0 / 0
06.02.2015, 09:54
    #38873029
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
Машинальный рефакторинг.
- 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
06.02.2015, 09:59
    #38873038
П.С.М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
Илья Л.Ошибка 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
06.02.2015, 12:31
    #38873259
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
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
06.02.2015, 12:35
    #38873265
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Решить систему на языке С++ в visual studio
SashaMercury, верно.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Решить систему на языке С++ в visual studio / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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