Size: a a a

2021 February 21

ВР

Вадим Радзіх... in supapro.cxx
Здравствуйте, вот написал код для вычисления корня уравнения на промежутке методом хорд, не могу понять почему при изменении промежутка(корень в нём остаётся) выдает другое значение, хотя должно выдавать тот самый корень
источник

ВР

Вадим Радзіх... in supapro.cxx
#include <stdio.h>
#include <math.h>

int main(void){
 double getF( double x){
  double f;//результат вычисления уравнения
 f=2.1*pow(x, 3)- 6.4*pow(x, 2)-3.2*x+15.1;//уравнение
 return f;}
 double derF( double x){
 double d;
d = 12.6*x - 12.8;// вторая производная
return d;
}
 double x0, x1;//промежуток на котором ищем
 double h;//погрешность вычисления
 double f;//результат уравнения
 double d;
 double a, b, x, y;
x0 = 0;
x1 = 5;
h = 0.01;
x=x0;f=getF(x); a=f;
x=x0;d=derF(x); b=d;
if (a * b < 0){ //вычисляем опуклость вверх или низ
 do{
  x=x0;f=getF(x);
  a=f;x=x1;f=getF(x);
  b=f;y=x0-a*(x1-x0)/(b-a);
  x0=x1;x1=y;
  }while(fabs(x1-x0)>h);
  printf(" %f ",f);}
else{
 do{
  x=x1;f=getF(x);
  a=f;x=x0;f=getF(x);
  b=f;y=x1-b*(x1-x0)/(a-b);
  x0=x1;x1=y;
  }while(fabs(x1-x0)<h);
  printf(" %f ",f);}
return 0;
}
источник

ВР

Вадим Радзіх... in supapro.cxx
Корень 1.88
источник

MK

Mikhail Kalugin in supapro.cxx
Liber Azerate
Фп пригодится в любом случае
Сейчас ФП в плюсах получше, чем во времена C++03, но, все равно по большей части смертоубийство, может в С++26 или C++30 станет удобней, а может появится что-то еще и мода на ФП пройдет. Просто для справки: 1 что есть из ФП в C++ - Функции как объект первого класса (а значит, функции высшего порядка), декомпозиция POD, лямбды, автоматический вывод типов (но синтаксис многословный аки java, раньше везде был явный тип теперь везде auto, видел сравнение плюсов с каким то ФП языком (кажется, Scala - auto вместо val просто убило). Чего нет из ФП - тайпклассы (можно организовать похожее поведение, но в большинстве случаев вынос мозга гарантирован), паттерн-матчинг (Страуструп и студенты пытаются придумать, последнее что я видел, мозг не выносит, но делает очень много лишних движений), каррирование (если очень хочется, то можно, но сложно).
источник

LA

Liber Azerate in supapro.cxx
Mikhail Kalugin
Сейчас ФП в плюсах получше, чем во времена C++03, но, все равно по большей части смертоубийство, может в С++26 или C++30 станет удобней, а может появится что-то еще и мода на ФП пройдет. Просто для справки: 1 что есть из ФП в C++ - Функции как объект первого класса (а значит, функции высшего порядка), декомпозиция POD, лямбды, автоматический вывод типов (но синтаксис многословный аки java, раньше везде был явный тип теперь везде auto, видел сравнение плюсов с каким то ФП языком (кажется, Scala - auto вместо val просто убило). Чего нет из ФП - тайпклассы (можно организовать похожее поведение, но в большинстве случаев вынос мозга гарантирован), паттерн-матчинг (Страуструп и студенты пытаются придумать, последнее что я видел, мозг не выносит, но делает очень много лишних движений), каррирование (если очень хочется, то можно, но сложно).
Я бы добавил сюда ленивость и шаблоны. Да и тайпклассы действительно можно организовать, но да, не хватает, конечно
источник

MK

Mikhail Kalugin in supapro.cxx
Liber Azerate
Я бы добавил сюда ленивость и шаблоны. Да и тайпклассы действительно можно организовать, но да, не хватает, конечно
Вот кстати, интересно стало: в C++ шаблоны всегда инвариантны или есть какой-то способ это обойти?
источник

LA

Liber Azerate in supapro.cxx
Mikhail Kalugin
Вот кстати, интересно стало: в C++ шаблоны всегда инвариантны или есть какой-то способ это обойти?
Если я правильно понимаю, то не знаю как обойти, по крайней мере
источник

AW

Alexander Wizaral in supapro.cxx
Всем привет. Возник вопрос. Вот кусок кода:

// header.hpp
class Class {
   // ...
public:
   static const Class var;
   Class(int x, int y);
   // ...
};

// source.cpp
const Class Class::var{-1, -1};

Я знаю, что начиная с C++17 есть возможность не писать в отдельном файле инициализацию переменной, а сделать это сразу в header.hpp, но только при добавлении слова inline перед именем переменной. Проблема в том, что почему-то не получается это сделать, если тип переменной в классе совпадает с типом самого класса. Вопрос: можно ли как-то этого добиться, чтобы прописать инициализацию в одном файле?
источник

LA

Liber Azerate in supapro.cxx
Mikhail Kalugin
Вот кстати, интересно стало: в C++ шаблоны всегда инвариантны или есть какой-то способ это обойти?
Тот же shared_ptr или аллокаторы это обходит всё же как-то, если подумать
источник

Е

Егор in supapro.cxx
Alexander Wizaral
Всем привет. Возник вопрос. Вот кусок кода:

// header.hpp
class Class {
   // ...
public:
   static const Class var;
   Class(int x, int y);
   // ...
};

// source.cpp
const Class Class::var{-1, -1};

Я знаю, что начиная с C++17 есть возможность не писать в отдельном файле инициализацию переменной, а сделать это сразу в header.hpp, но только при добавлении слова inline перед именем переменной. Проблема в том, что почему-то не получается это сделать, если тип переменной в классе совпадает с типом самого класса. Вопрос: можно ли как-то этого добиться, чтобы прописать инициализацию в одном файле?
а зачем
источник

AW

Alexander Wizaral in supapro.cxx
Егор
а зачем
"чтобы прописать инициализацию в одном файле?"
источник

Е

Егор in supapro.cxx
Alexander Wizaral
"чтобы прописать инициализацию в одном файле?"
статик. инстанс класса внутри класса
источник

LA

Liber Azerate in supapro.cxx
Liber Azerate
Тот же shared_ptr или аллокаторы это обходит всё же как-то, если подумать
С другой стороны, типы-то всё равно инвариантны
источник

O

Ofee in supapro.cxx
Alexander Wizaral
"чтобы прописать инициализацию в одном файле?"
источник

MK

Mikhail Kalugin in supapro.cxx
Liber Azerate
С другой стороны, типы-то всё равно инвариантны
Ну вот и мне так кажется, похожего поведения можно добиться определя приведения типов явно, но обобщенного способа пока нет...
источник

O

Ofee in supapro.cxx
Mikhail Kalugin
Вот кстати, интересно стало: в C++ шаблоны всегда инвариантны или есть какой-то способ это обойти?
А можно небольшое пояснение, что имеется ввиду под инвариантностью шаблонов?
источник

MK

Mikhail Kalugin in supapro.cxx
Ofee
А можно небольшое пояснение, что имеется ввиду под инвариантностью шаблонов?
Scala List[+T]
источник

MK

Mikhail Kornaukhov in supapro.cxx
Mikhail Kalugin
Scala List[+T]
если как нибудь оператор приведения написать используя метапрогу, вроде должно выйти не?
источник

MK

Mikhail Kalugin in supapro.cxx
Mikhail Kornaukhov
если как нибудь оператор приведения написать используя метапрогу, вроде должно выйти не?
Да, я вроде выше так и написал - выводить приведение самому как-то.
источник

MK

Mikhail Kalugin in supapro.cxx
Ofee
А можно небольшое пояснение, что имеется ввиду под инвариантностью шаблонов?
Извини, сейчас немного занят, если нужны детали - чуть позже, или кто-то еще сможет ответить.
источник