Пример #1
0
void	exec_opc(t_proc_list **lst, t_proc_list **exec_proc, t_vm *vm)
{
	if (vm->cycles != 0 && vm->cycles == (*lst)->proc->wex)
	{
		if (ft_codage_erase(vm->mem, (*lst)->proc) ||
			ft_param_erase(vm->mem, (*lst)->proc))
		{
			if ((*lst)->proc->opc == 1 || (*lst)->proc->opc == 9 ||
				(*lst)->proc->opc == 12 || (*lst)->proc->opc == 15)
				(*lst)->proc->codage = read_value(vm->mem,
												(*lst)->proc->prevpc + 1, 1);
			else
				(*lst)->proc->codage = read_value(vm->mem,
												(*lst)->proc->prevpc + 2, 1);
			reset_param(&((*lst)->proc->par_list));
			(*lst)->proc->exec = 1;
			(*lst)->proc->pc = (*lst)->proc->prevpc;
			get_opc(lst, vm);
		}
		ft_exec(lst, exec_proc, vm);
		(*lst)->proc->exec = 1;
		reset_param(&((*lst)->proc->par_list));
		(*lst)->proc->opc = 0;
		(*lst)->proc->wex = 0;
		(*lst)->proc->codage = 0;
	}
}
int main(){
	
	printf("\n=================== CALCULAR PI ===================");
	
	int opc_metodo;
	
	printf("\n\n1 - Metodos de series infinitas");
	printf("\n2 - Metodos  estatisticos");
	
	opc_metodo = get_opc();
	
	switch(opc_metodo){
		case 1:
			metodos_series_infinitas();
			break;
		case 2:
			metodos_estatisticos();
			break;
		default:
			printf("ERRO");
			break;
	}
	
	return 0;
	
}
int metodos_estatisticos(){
	
	int opc_metodo;
	
	printf("\n================ Metodos estatisticos ================");
	
	printf("\n\n");
	
	printf("1 - Metodo de Monte Carlos");
	printf("\n2 - Metodo Agulha de Buffon");
	
	opc_metodo = get_opc();
	
	switch(opc_metodo){
		case 1:
			monte_carlos();
			break;
		case 2:
			agulha_buffon();
			break;
		default:
			printf("ERRO");
			break;
	}
	
	return 0;
	
}
int metodos_series_infinitas(){
	
	int opc_metodo;
	
	printf("\n================ Metodos de series infinitas ================");
	
	printf("\n\n");
	
	printf("1 - Metodo de John Wallis");
	printf("\n2 - Metodo de Francois Viete");
	printf("\n3 - Metodo de Leibniz/Taylor");
	printf("\n4 - Metodo de Newton-Rhapson");
	
	opc_metodo = get_opc();
	
	switch(opc_metodo){
		case 1:
			john_wallis();
			break;
		case 2:
			francois_viete();
			break;
		case 3:
			leibniz_taylor();
			break;
		case 4:
			newton_rhapson();
			break;
		default:
			printf("ERRO");
			break;
	}
	
	return 0;
	
}