From 6592571131a8afc41b086b0db95bbf96c7e31882 Mon Sep 17 00:00:00 2001 From: Ruben Carlo Benante Date: Mon, 29 Jun 2026 13:13:20 -0300 Subject: [PATCH] simulador mob-out como plugin, primeiro commit, v1.0 --- README.md | 12 + simuladormobout.php | 710 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 722 insertions(+) create mode 100644 README.md create mode 100644 simuladormobout.php diff --git a/README.md b/README.md new file mode 100644 index 0000000..c1afe00 --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +# Simulador Mob-Out ARI-POLI-UPE + +- Autor do Plugin wordpress - Copyright (C) 2026, Versão 1.0.20260629 +> Ruben Carlo Benante +> Data: 2026-06-29 + +- Autores do Simulador Mob Out - Copyright (C) 2022-2026 - Versão 1.0.20220701 +> Prof. Dr. Ruben Carlo Benante +> Pedro Henrique Azevedo Vanderlei de Mendonça +> Data: 2022-07-01 + + diff --git a/simuladormobout.php b/simuladormobout.php new file mode 100644 index 0000000..04ab8e7 --- /dev/null +++ b/simuladormobout.php @@ -0,0 +1,710 @@ + +// * Pedro Henrique Azevedo Vanderlei de Mendonça +// Data: 2022-07-01 +/* ------------------------------------------------------------------------ */ + + + +/* ------------------------------------------------------------------------ */ +//Função max = 10 +function maximo_dez($nota){ + if ($nota > 10) { + $nota = 10; + return $nota; + } else { + return $nota; + } +} + +/* ------------------------------------------------------------------------ */ +//Função nota de reprovações +function nota_reprovacoes($nrec, $nnrec){ + $ro = (40-(2*$nnrec)-$nrec)/4; + if ($ro < 0){ + $ro = 0; + return $ro; + } + return $ro; +} + +/* ------------------------------------------------------------------------ */ +//Função nota do histórico +function nota_historico($po, $ro, $mo){ + if ($mo == 0){ + $o = 0; + return $o; + } else{ + $o = (($po*10)*1+$ro*3+$mo*5)/(1+3+5); + return $o; + } + +} + +/* ------------------------------------------------------------------------ */ +//Função nota de atividades desenvolvidas +function nota_atividades($ps, $es, $ms){ + $s = ($ps+$es+$ms)*2; + $s = maximo_dez($s); + return $s; +} + +/* ------------------------------------------------------------------------ */ +//Função nota publicações +function nota_lattes($apy, $acy, $cy, $ly, $ry){ + $y = ($apy*2*2 + $acy*2*1 + $cy*2*2 + $ly*2*3 + $ry*2*1)/(2+1+2+3+1); + $y = maximo_dez($y); + return $y; +} + +/* ------------------------------------------------------------------------ */ +//Função nota dos eventos +function nota_eventos($ea, $pa, $ca){ + $a = ($ea+$pa+$ca)*2; + $a = maximo_dez($a); + return $a; +} + +/* ------------------------------------------------------------------------ */ +//Função nota geral +function nota_geral($o, $s, $y, $a){ + global $entradas; + global $h; + if ($entradas['programa'] == 1) { + if ($entradas['mobilidade'] == 1) { + if ($entradas['lingua'] <= 3 && $entradas['lingua2'] <= 2) { + $h = "Declassificado por não possuir proficiência superior a A2 em italiano ou B1 em inglês."; + return $h; + } else { + $h = ($o*5 + $s*2 + $y*3 + $a*2)/ (5+2+3+2); + $h = number_format($h, 2); + return "Sua nota é: $h"; + } + } elseif ($entradas['mobilidade'] == 2) { + if ($entradas['lingua'] <= 3) { + $h = "Desclassificado por não possuir proficiência superior a B1 em inglês."; + return $h; + } else { + $h = ($o*5 + $s*2 + $y*3 + $a*2)/ (5+2+3+2); + $h = number_format($h, 2); + return "Sua nota é: $h"; + } + } + } else { + $h = ($o*5 + $s*2 + $y*3 + $a*2)/ (5+2+3+2); + $h = number_format($h, 2); + return "Sua nota é: $h"; + } +} + +/* ------------------------------------------------------------------------ */ +//Função tratamento de entrada +function limpaPost($valor){ + $valor = trim($valor); + $valor = stripslashes($valor); + $valor = htmlspecialchars($valor); + return $valor; +} + +/* ------------------------------------------------------------------------ */ +//Função para pegar a entrada +function validar_entrada(){ + global $entradas; + $entradas = array("lingua2" => 0, "lingua" => 0, "porcentagem" => 0, "repro_rec" => 0, "repro_nrec" => 0, "estagio" => 0, "estagio_exterior" => 0); + foreach ($_POST as $chave => $valor){ + if (empty($valor)){ + $item = 0; + $entradas[$chave] = $item; + } else { + $item = limpaPost($valor); + $entradas[$chave] = $item; + } + } +} + +/* ------------------------------------------------------------------------ */ +//Função para mudar a tela dependendo do programa de mobilidade escolhido pelo estudante +function imprime($string1, $brafitec='', $polito='') { + $fgeral = array(1, 2, 3); + + if (!isset($_POST['programa']) || in_array($_POST['programa'], $fgeral)){ + echo $string1; + if (!isset($_POST['programa']) || $_POST['programa'] == 1){ + echo $polito; + } + } + elseif (isset($_POST['programa']) && $_POST['programa'] == 4) { + echo $brafitec; + } +} + +/* ------------------------------------------------------------------------ */ +//Função para calcular a nota do BRAFITEC +function nota_brafitec($mo, $est_ext, $ps, $outros){ + global $entradas; + if (isset($entradas['lingua']) && $entradas['lingua'] <= 2){ + $h_brafitec = "Declassificado por não possuir proficiência em francês maior ou igual a B1."; + return $h_brafitec; + } + if (isset($entradas['porcentagem']) && $entradas["porcentagem"] == 0) { + $h_brafitec = "Desclassificado por não estar entre 40% e 80% do seu curso."; + return $h_brafitec; + } elseif (isset($entradas['repro_nrec']) && $entradas["repro_nrec"] > 0) { + if ($entradas['repro_nrec'] == 1) { + $h_brafitec = "Desclassificado por ter reprovação não recuperada"; + return $h_brafitec; + } else { + $h_brafitec = "Desclassificado por ter reprovações não recuperadas"; + return $h_brafitec; + } + } elseif (isset($entradas['repro_rec']) && $entradas["repro_rec"] > 2) { + $h_brafitec = "Desclassificado por ter mais de 2 reprovações recuperadas"; + return $h_brafitec; + } else { + $est_ext = maximo_dez($est_ext); + $ps = maximo_dez($ps); + $h_brafitec = (($mo*7) + ($est_ext*0.5) + ($ps*1.5) + ($outros*1))/10; + $h_brafitec = number_format($h_brafitec, 2); + return "Sua nota é: $h_brafitec"; + } +} + + +/* ------------------------------------------------------------------------ */ +//Função para calcular outras atividades do BRAFITEC +function outras_brafitec($es, $ms, $est, $apy, $acy, $cy, $ly, $ry, $ea, $pa, $ca){ + $outros = $es + $ms + $est + $apy + $acy + $cy + $ly + $ry + $ea + $pa +$ca; + $outros = maximo_dez($outros); + return $outros; + +} + +if ($_SERVER['REQUEST_METHOD'] == 'POST'){ + //var_dump($_POST); + if (isset($_POST["calcular"])) { + validar_entrada(); + global $entradas; + if ($entradas["programa"] != 4){ + global $o, $ro, $s, $y, $a, $h, $entradas; + $ro = nota_reprovacoes($entradas["repro_rec"], $entradas["repro_nrec"]); + $o = nota_historico($entradas["porcentagem"], $ro, $entradas["media"]); + $s = nota_atividades($entradas ["ic"], $entradas["extensao"], $entradas["monitoria"]); + $y = nota_lattes($entradas["art_periodicos"], $entradas["art_congresso"], $entradas["cap_livros"], $entradas["livros"], $entradas["resumos"]); + $a = nota_eventos($entradas["evento_extensao"], $entradas["evento_pesquisa"], $entradas["congresso"]); + $h = nota_geral($o, $s, $y, $a); + $o = number_format($o, 2); + $s = number_format($s, 2); + $y = number_format($y, 2); + $a = number_format($a, 2); + } elseif ($entradas["programa"] == 4) { + global $entradas, $h_brafitec, $outros; + $outros = outras_brafitec($entradas["extensao"], $entradas["monitoria"], $entradas["estagio"], $entradas["art_periodicos"], $entradas["art_congresso"], $entradas["cap_livros"], $entradas["livros"], $entradas["resumos"], $entradas["evento_extensao"], $entradas["evento_pesquisa"], $entradas["congresso"]); + $h_brafitec = nota_brafitec($entradas["media"], $entradas["estagio_exterior"], $entradas["ic"], $outros); + } + } +} + + + + +?> + + + + + + + Simulador MOB OUT + + + + +
+
+
+

Esta página segue os pesos e critérios da pré-seleção para mobilidade OUT da ARI/POLI encontradas no Formulário de Mobilidade OUT, disponível no link https://ari.poli.br/document/form-mob-out/.

+

+
+ + + + + + + + + + + + +
"); ?> +Tipo de mobilidade:"); ?> +"); ?> +Mobilidade Simples"); ?> +"); ?> +Dupla Diplomação
"); ?> +

+ +
+ +
+
+ +
+ +
+
+ + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
") ?> + + + + + + + + + + + + +"); ?> +
"); ?> +"); ?> + + +"); ?> + A nota do seu histórico escolar é: "); global $o; imprime($o); imprime("");?> +"); ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"); ?> + +"); ?> +");?> +(Peso 0,5) "); ?> +") ?> +"); ?> + +"); ?> +");?> +(Peso 1) "); ?> +") ?> +"); ?> +
"); ?> +"); ?> + + + + + + + + +"); ?> +
"); ?> +"); ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"); ?> +
"); ?> +"); ?> + + + + + + + + +"); ?> +
"); ?> +"); ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"); ?> +
"); ?> +"); ?> + + + + + + + + +"); ?> +
"); ?> +"); ?> + + + + + + + + + + +", ""); ?> +", ""); ?> + +",""); ?> +
", ""); ?> +", ""); ?> + +", ""); ?> +", ""); ?> +", ""); ?> +", ""); ?> + + + +") ?> +") ?> +") ?> +") ?> +") ?> +A1") ?> +") ?> +A2") ?> +") ?> +B1") ?> +") ?> +B2") ?> +") ?> +C1") ?> +") ?> +C2") ?> +", "") ?> +", "") ?> + +", "") ?> +

", "") ?> +", "") ?> + + + + + + + + + +


+

Histórico Escolar

+

+ + +
+
+"); ?> +"); ?> + "); ?> + +n = Reprovações não recuperadas
"); ?> +r = Reprovações recuperadas
"); ?> +


+

Atividades Desenvolvidas

+
(número de semestres)

+"); ?> +"); ?> +"); ?> +


+

Publicações

+

+
+"); ?> +"); ?> +"); ?> +"); ?> +"); ?> +


+

Participação em Eventos

+

+"); ?> +"); ?> +"); ?> +


"); ?> +Nível de Proficiência", "

Nível de Proficiência

"); ?> +", "
(Classificatório)
(Classificatório)

"); ?> +", ""); ?> +A1", ""); ?> +", ""); ?> +A2", ""); ?> +", ""); ?> +B1", ""); ?> +", ""); ?> +B2", ""); ?> +", ""); ?> +C1", " "); ?> +", ""); ?> +C2", " "); ?> +", "


Nota final H = [0,10]. Fórmula:

+", "O = Média Curricular (Peso 7)
"); ?> +", "E = Nota de experiência em estágio no exterior [0,10] (Peso 0,5)
"); ?> +", "I = Nota de participação em Iniciação Científica [0,10] (Peso 1,5)
"); ?> +", "S = Outros(monitoria, estágio, projetos de extensão, publicações, etc.) [0,10] (Peso 1)
"); ?> +
+

+ +

+ + +
+ +
+ + + + + +