Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <unistd.h>
- int a[10005];
- int horner(int nivel, int n, int x) {
- //printf("%d\n", nivel);
- if(nivel == n) {
- return a[n];
- exit(a[n]);
- }
- int pid = fork();
- if(pid == 0) {
- //return a[nivel]+x*horner(nivel+1,n,x);
- printf("FIU: %d %d\n", x, horner(nivel+1,n,x));
- int val = x*horner(nivel+1,n,x);
- printf("%d\n", val);
- exit(val);
- }
- else {
- int returnat;
- wait(&returnat);
- returnat /= 256;
- printf("TATA: %d, %d\n", a[nivel], returnat);
- return a[nivel] + returnat;
- int val = a[nivel] + returnat;
- exit(val);
- }
- }
- int main() {
- int i,n,x,nivel=0;
- printf("Inceputul programului:\n");
- printf("gradul polinomului: ");
- scanf("%d", &n);
- printf("Coeficientii incepand cu cel mai nesemnificativ: ");
- for(i=0;i<=n;++i)
- scanf("%d", &a[i]);
- printf("Valoarea lui X: ");
- scanf("%d", &x);
- printf("%d\n", horner(0,n,x));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement