Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Hed-kun

Программирование, т. 5.1.

Рекомендованные сообщения

(изменено)

 

#include<cmath>

#include <cstdio>

#include <cstdlib>

 

typedef double(*function)(double);

 

double integral(function f, double a, double b, unsigned step_count) {

double sum = .0, step;

size_t i;

if (0 == step_count) return sum;

 

step = (b - a) / (1.0 * step_count);

for ( i = 1 ; i < step_count ; ++i ) {

sum += f (a + i * step);

}

sum += (f(a) + f(b)) / 2;

sum *= step;

return sum;

}

 

double f (double x) {

return sin(2*x);

}

 

int main() {

printf ("\\sin(2x) = %f\n", integral(f, 0, 3.14, step ));

}

 

кто-нибудь может добавить, чтобы он считал до заданной точности. т.е мы задали точность , например, 10 в минус 4 и он считает до неё. :geys: Находим приближенное значение с точностью ε .


Изменено пользователем prostoYaKrytoy

 

4Ht5T.jpg

 

8FegEdj.jpg

Поделиться сообщением


Ссылка на сообщение

хелп с регулярками плез

А = +7(499) 639-13-35

Б = 499-6391335

 

как мне привести значение А в Б )

нихуя не понимаю регулярок k07116.gif

 

"+7(499) 639-13-35".replace(/\+7\(([0-9]{3})\) ([0-9]{3})-([0-9]{2})-([0-9]{2})/, "$1-$2$3$4")


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение

хелп с регулярками плез

А = +7(499) 639-13-35

Б = 499-6391335

 

как мне привести значение А в Б )

нихуя не понимаю регулярок k07116.gif

 

"+7(499) 639-13-35".replace(/\+7\(([0-9]{3})\) ([0-9]{3})-([0-9]{2})-([0-9]{2})/, "$1-$2$3$4")

я сделал проще чтобы не ебать мозг )

replace("+7", "").replace("(", "").replace(")", "").replace("-","").replace(" ", "-");

:trollface:

 

хотя в консоли он не то значение что мне нужно реплейсит))

"+7(499) 639-13-35".replace("+7", "").replace("(", "").replace(")", "").replace("-","").replace(" ", "-")

 

 

джавушка сделала так как мне надо

втф


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение

ну я не ебу как это делать правильно

а делать надо было )

dance.gif


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение
(изменено)

Ребят кто нибудь пользовался installshield limited edition? При установке сервиса запрашивает учетку из под которой будет запускать службу, как сделать чтобы он локальную использовал(из под которой устанавливают).

------- UPD -------

 

Не актуально. Проблема была не в установщике а в моих руках.


Изменено пользователем eGokku

Поделиться сообщением


Ссылка на сообщение

 

#include<cmath>

#include <cstdio>

#include <cstdlib>

 

typedef double(*function)(double);

 

double integral(function f, double a, double b, unsigned step_count) {

double sum = .0, step;

size_t i;

if (0 == step_count) return sum;

 

step = (b - a) / (1.0 * step_count);

for ( i = 1 ; i < step_count ; ++i ) {

sum += f (a + i * step);

}

sum += (f(a) + f(b)) / 2;

sum *= step;

return sum;

}

 

double f (double x) {

return sin(2*x);

}

 

int main() {

printf ("\\sin(2x) = %f\n", integral(f, 0, 3.14, step ));

}

 

кто-нибудь может добавить, чтобы он считал до заданной точности. т.е мы задали точность , например, 10 в минус 4 и он считает до неё. :geys: Находим приближенное значение с точностью ε .

:geys: :geys: :geys:


 

4Ht5T.jpg

 

8FegEdj.jpg

Поделиться сообщением


Ссылка на сообщение

либо все свои числа пропускаешь через округление round(number * 10000) / 10000d

либо тупо выводи свои числа в конце с фильтром %.4f, а не просто %f

 

ну и если надо вводить, то соответственно рассчитывать количество нулей для множителя\делителя, либо собирать из кусков строку формата

или вместо printf использовать iostream, раз уж ты на плюсах пишешь. и там будет std::setprecision(4)


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

ему нужна немного не эта точность, а точность вычисления интергала

Поделиться сообщением


Ссылка на сообщение

а епт, я даже не удосужился толком прочитать код

 

тогда тут вообще всё регулируется исключительно меньшим размером шага, или как у него, большим количеством шагов.

чем шаг меньше, тем выше точность.


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

а я думаю надо использовать метод бинарного поиска, и уменьшать до нужного эпсилона


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение

ебал attachments в шарепоинтовских списках )))

Поделиться сообщением


Ссылка на сообщение

скачивается флешплеер, запускаю, нихуя нет серая табличка :dunno:

помогите плз линкой или как фиксить


:guinsoo: >>>> :courier:

Поделиться сообщением


Ссылка на сообщение

кто-нибудь может добавить, чтобы он считал до заданной точности. т.е мы задали точность , например, 10 в минус 4 и он считает до неё. :geys: Находим приближенное значение с точностью ε .

Поменять входной параметр к-ва шагов на точность. Начиная с большого шага считать интеграл, потом в цикле уменьшать шаг, пока модуль разности значений интеграла на предыдущем шаге и на текущем не будет меньше точности.

Поделиться сообщением


Ссылка на сообщение

Мне нужно в маткаде найти точки пересечения двух функций. График я построил, как еще можно координаты найти?

Зачем тебе график? Реши уравнение, приравняв обе функции в аналитическом виде, и все


ASCFR.gif

Поделиться сообщением


Ссылка на сообщение

 

#include<cmath>

#include <cstdio>

#include <cstdlib>

 

typedef double(*function)(double);

 

double integral(function f, double a, double b, unsigned step_count) {

double sum = .0, step;

size_t i;

if (0 == step_count) return sum;

 

step = (b - a) / (1.0 * step_count);

for ( i = 1 ; i < step_count ; ++i ) {

sum += f (a + i * step);

}

sum += (f(a) + f(b)) / 2;

sum *= step;

return sum;

}

 

double f (double x) {

return sin(2*x);

}

 

int main() {

printf ("\\sin(2x) = %f\n", integral(f, 0, 3.14, step ));

}

 

кто-нибудь может добавить, чтобы он считал до заданной точности. т.е мы задали точность , например, 10 в минус 4 и он считает до неё. :geys: Находим приближенное значение с точностью ε .

 

for ( i = 1 ; i < step_count ; ++i ) {

->

for ( i = 1 ; i < step_count, abs(sum-previous_sum) < epsilon ; ++i ) {

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

#include<cmath>

#include <cstdio>

#include <cstdlib>

 

typedef double(*function)(double);

 

double integral(function f, double a, double b, unsigned step_count) {

double sum = .0, step;

size_t i;

if (0 == step_count) return sum;

 

step = (b - a) / (1.0 * step_count);

for ( i = 1 ; i < step_count ; ++i ) {

sum += f (a + i * step);

}

sum += (f(a) + f(b)) / 2;

sum *= step;

return sum;

}

 

double f (double x) {

return sin(2*x);

}

 

int main() {

printf ("\\sin(2x) = %f\n", integral(f, 0, 3.14, step ));

}

 

кто-нибудь может добавить, чтобы он считал до заданной точности. т.е мы задали точность , например, 10 в минус 4 и он считает до неё. :geys: Находим приближенное значение с точностью ε .

 

for( i =1; i < step_count ;++i ){

->

for( i =1; i < step_count, abs(sum-previous_sum) < epsilon ;++i ){

она сказала, что я должен посчитать step_count с помощью абсолютной погрешности. b00a973167.png


Изменено пользователем prostoYaKrytoy

 

4Ht5T.jpg

 

8FegEdj.jpg

Поделиться сообщением


Ссылка на сообщение

жаль только поиск максимума функции на промежутке тоже задача, которую нужно решить численно, даже с учетом того, что ты аналитически вычислишь вторую производную

а для поиска максимума тебе надо еще первая и вторая производная проверяемой функции, итого третья и четвертая первоначальной :trollface:

 

а ведь можно даже в 10 раз больше посчитать шагов и гарантированно получить нужную точность, чем высчитывать всё это.

Не 10^-25 же ищется


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...