Está en la página 1de 2

Vargas Guerrero Armando Grupo: 4

Tarea 3 - Creación de procesos con fork ()

Código fuente:
/*
Autor: Armando Vargas Guerrero
Fecha de creación: 5 de febrero de 2020
*/

#include <stdio.h>
#include <unistd.h>

void fibonacciIterativo(int n); //Programa a ejecutar por el primer proceso hijo


int factorialRecursivo(int n); //Programa a ejecutar por el segundo proceso hijo

void main(){
pid_t hijo1;
pid_t hijo2;
int n = 0;

printf("\nIngrese un numero entero entre 1 - 10: \t");


scanf("%d", &n);
hijo1 = fork(); //Creación del primer proceso hijo
if(hijo1 == 0){ //Se corrobora que sea un proceso hijo
fibonacciIterativo(n);
} else{
hijo2 = fork(); //Si no se identifica al primer proceso hijo, se crea el segundo proceso
hijo

if (hijo2 == 0){ //Se comprueba que sea otro proceso hijo


int resFactorial = factorialRecursivo(n);
printf("\nEl factorial de %d es: %d \n", n, resFactorial);
}
}

void fibonacciIterativo(int n){


int primerTermino = 0;
int segundoTermino = 1;

printf("\n");
printf("La sucesion de Fibonacci hasta el termino numero %d es: \n", n);
for(int i = 0; i < n; i++){
Vargas Guerrero Armando Grupo: 4

int temporal = primerTermino + segundoTermino; //Uso de variable auxiliar de la suma


de términos
primerTermino = segundoTermino;
segundoTermino = temporal;
printf("%d , ", segundoTermino);
}
printf("\n");
}

int factorialRecursivo(int n){


if (n >= 1)
return n*factorialRecursivo(n - 1); //Llamadas recursivas para el factorial del número
anterior
else
return 1;
}

Ejecución:

También podría gustarte