Se consideră o funcție f(x) și se cere determinarea tuturor rădăcinilor reale situate în intervalul [a, b] ale ecuației f(x) = 0.
Programul vostru nu va cunoaște descrierea exactă a acestei funcții, în schimb ea va putea fi apelată prin intermediul unui modul extern. Programatorii în Pascal vor avea la dispoziție un unit numit FUNC.PAS. Acesta va conține doar funcția f(). Funcția va fi declarată astfel:
function f(x:Real):Real;
float f(float x){
Prima linie a fișierului de intrare conține numerele reale a și b, separate printr-un singur spațiu. Acestea reprezintă extremitățile intervalului în care se caută soluțiile.
Fișierul de ieșire va conține pe prima linie un număr întreg N care reprezintă numărul soluțiilor găsite.
Fiecare dintre următoarele N linii vor conține câte un număr real care reprezintă o soluție a ecuației (cu cinci zecimale exacte). În cazul în care există două soluții x1 și x2 care, afișate cu cinci zecimale exacte, sunt identice atunci numai una dintre ele va fi luată în considerare. Un număr x este considerat soluție a ecuației f(x) dacă |f(x)| < 0.00001.
· Ecuația are cel mult 20 de soluții în intervalul specificat.
· Funcția este continuă pe intervalul specificat. · -10000 <= a < b <= 10000;
Presupunem că funcția necunoscută este sin x.
Vom presupune că unui test îi corespunde un punctaj maxim de p puncte.
FUNCTION.IN
În cazul în care una dintre soluțiile determinate de programul vostru este incorectă, sau există soluții care apar de mai multe ori, nu veți primi nici un punct pentru testul respectiv. În cazul în care pogramul determină toate cele N soluții ale ecuației veți primi întregul punctaj. În cazul în care nu ați determinat toate soluțiile posibile, dar lipsesc cel mult jumătate dintre acestea, veți primi [2 · p / 3] puncte. În cazul în care nu ați determinat toate soluțiile posibile, dar lipsesc mai mult de jumătate dintre acestea, veți primi [p / 3] puncte.
|