Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- float f1,f2,f3,f4,f5;
- bool rozwiazanie;
- float val(float x);
- float bisekcja(float lewy, float prawy);
- main()
- {
- float P, K;
- scanf("%f",&f1);
- scanf("%f",&f2);
- scanf("%f",&f3);
- scanf("%f",&f4);
- scanf("%f",&f5);
- scanf("%f %f",&P,&K);
- float x = bisekcja(P,K);
- if(rozwiazanie == true)
- printf("%0.4f", x);
- return 0;
- }
- float val(float x)
- {
- return f1*x*x*x + f2*x*x+ f3*x + f4 + f5/x;
- }
- float bisekcja(float lewy, float prawy)
- {
- float srodek;
- while(1)
- {
- srodek = (prawy+lewy)/2.0f;
- if(srodek - lewy < 0.00001 || prawy - srodek < 0.00001)
- {
- rozwiazanie = true;
- return srodek;
- }
- if(f5 != 0 && srodek == 0)
- {
- if(f5*val(lewy) < 0)
- prawy = srodek;
- else if(val(prawy) * val(srodek) < 0)
- lewy = srodek;
- else
- {
- printf("NIE");
- rozwiazanie = false;
- return 0;
- }
- }
- else
- {
- if(val(srodek)*val(lewy) < 0)
- prawy = srodek;
- else if(val(prawy) * val(srodek) < 0)
- lewy = srodek;
- else
- {
- printf("NIE");
- rozwiazanie = false;
- return 0;
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment