Skip to content

Program yang ditulis dalam bahasa c yang berfungsi untuk mencetak sekuens Fibonacci dari 1 hingga bilangan yang diinginkan dengan mengunakan multithred processing

Notifications You must be signed in to change notification settings

inQuacknito/projekSO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

Projek SO - Kelompok 6

Nama NIM
Alfian Arief Santoso G64180061
Muhammad Rayhan Adyatma G64180064
Muhammad Khoiru Tobi Albertino G64180065
Muhammad Faris Waliyuddin G64180067

Topik 17 : Multithread Sekuens Fibonacci

Programming Problem soal #4.26

The Fibonacci sequence is the series of numbers 0, 1, 1, 2, 3, 5, 8, .... Formally, it can be expressed as:

- fib(0) = 0 
- fib(1) = 1 
- fib(n) = fib(n−1) + fib(n−2) 

Write a multithreaded program that generates the Fibonacci sequence. This program should work as follows: On the command line, the user will enter the number of Fibonacci numbers that the program is to generate. The program will then create a separate thread that will generate the Fibonacci numbers, placing the sequence in data that can be shared by the threads (an array is probably the most convenient data structure). When the thread finishes execution, the parent thread will output the sequence generated by the child thread. Because the parent thread cannot begin outputting the Fibonacci sequence until the child thread finishes, the parent thread will have to wait for the child thread to finish. Use the techniques described in Section 4.4 to meet this requirement.

Implementasi Algoritma

#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>

int N;

void *fibonacci(void *arg){
	int *A = (int*)arg;				// cast void* --> int*
	int i;
	
	for(i = 0; i <= N; i++){
		A[i] = A[i-1] + A[i-2]; 
	}
	pthread_exit(NULL);
}

int main(){
	pthread_t child;
	scanf("%d",&N);	// input bilangan fibonacci ke-N
	
	int A[N+2], i;
	A[0] = 0; 
	A[1] = 1; 
	
	//Thread child memproses bilangan fibonacci
	pthread_create(&child, NULL, fibonacci, &A[2]);
	pthread_join(child, NULL);

	//Thread parent mencetak baris fibonacci
	for (i=1; i<N; i++){
		printf("%d, ",A[i]);
	}
	printf("%d\n",A[N]);
	
	return 0;
}

Penjelasan Implementasi :

https://ipb.link/so-kelompok6

About

Program yang ditulis dalam bahasa c yang berfungsi untuk mencetak sekuens Fibonacci dari 1 hingga bilangan yang diinginkan dengan mengunakan multithred processing

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors 4

  •  
  •  
  •  
  •  

Languages