Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
lab7OOP 0.1
Language:
Ada
Assembly
Bash
C#
C++ (gcc)
C++ (clang)
C++ (vc++)
C (gcc)
C (clang)
C (vc)
Client Side
Clojure
Common Lisp
D
Elixir
Erlang
F#
Fortran
Go
Haskell
Java
Javascript
Kotlin
Lua
MySql
Node.js
Ocaml
Octave
Objective-C
Oracle
Pascal
Perl
Php
PostgreSQL
Prolog
Python
Python 3
R
Rust
Ruby
Scala
Scheme
Sql Server
Swift
Tcl
Visual Basic
Layout:
Vertical
Horizontal
/*Compilation time: 0.13 sec, absolute running time: 0.14 sec, cpu time: 0 sec, memory peak: 3 Mb, absolute service time: 0.38 sec*/ #include <stdlib.h> #include <stdio.h> #include <math.h> #include <float.h> double f1 (double x, double t) { if (x != 0.0) { return cos(t/x) - 2.0*sin(1.0/x) + 1.0/x; } else { printf("Помилка. Ділення на нуль. f1(%lf, %lf)\n", x, t); exit(-1); } } double newton (double (*f)(double, double), double a, double b, double t, double eps ) { if (f != NULL) { double x = b; double delta = DBL_MAX; int iterations = 0; for (; fabs(delta) >= eps && iterations <= 1000; ++iterations) { double diff = (f(x + 1e-10, t)-f(x, t))/1e-10; if (diff != 0.0) { delta = f(x, t)/diff; x -= delta; } else { printf("Помилка. Похідна дорівнює нулю. newton(%p, %lf, %lf, %lf, %lf)\n", f, a, b, t, eps); exit(-1); } } if (iterations > 1000) { printf("Помилка. Кількість ітерацій перевищила 1000. newton(%p, %lf, %lf, %lf, %lf)\n", f, a, b, t, eps); exit(-1); } return x; } else { printf("Помилка. Нульовий покажчик на функцію. newton(%p, %lf, %lf, %lf, %lf)\n", f, a, b, t, eps); exit(-1); } } int main(void) { printf("%lf", newton(f1, /*Цільова функція*/ 0.41, /*Перше обмеження, a*/ 1, /*Друге обмеження, b*/ 110.0, /*Параметер, t*/ 0.0001 /*Точність*/ )); return 0; }
clang
Show compiler warnings
[
+
] Compiler args
[
+
]
Show input
Compilation time: 0.13 sec, absolute running time: 0.14 sec, cpu time: 0 sec, memory peak: 3 Mb, absolute service time: 0.38 sec
edit mode
|
history
|
discussion
0.724907