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; }