Fórmulas padrões de cálculo de resultados dos períodos
Fórmulas padrões de cálculo de resultados dos períodos
Para auxiliar nossos usuários a compreenderem as fórmulas padrões dos cálculos dos resultados dos períodos no sistema Educação, estamos disponibilizando o script das fórmulas.
Resultado do período avaliativo
mediaMinima = 7;
mediaFinal = 0;
notaParaExame = 0;
somaNotas = 0;
qtdPeriodos = 0;
status = "APROVADO";
qtdExamesTurma = enturmacao.turma.qtdExames;
possuiNotasNumericas = false;
possuiNotasNaoNumericas = false;
// Percorre os registros de avaliação do aluno
percorrer (enturmacao.registrosAvaliacao) {
notaNumerica = item.notaNumerica;
se(item.notaNumerica == nulo){
notaNumerica = 0;
}
se (item.modoAvaliacao != "Não oferece"){
se (item.modoAvaliacao == "Avaliação numérica") {
qtdPeriodos = qtdPeriodos + 1;
somaNotas = somaNotas + notaNumerica;
possuiNotasNumericas = true;
}
se (item.modoAvaliacao == "Avaliação conceitual com correspondente numérico" && item.notaConceito) {
qtdPeriodos = qtdPeriodos + 1;
somaNotas = somaNotas + item.notaConceito.valorCalculo;
possuiNotasNumericas = true;
}
se (item.modoAvaliacao == "Descritiva" || item.modoAvaliacao == "Avaliação conceitual sem correspondente numérico") {
possuiNotasNaoNumericas = true;
}
}
}
se (possuiNotasNumericas == true) {
notaMaxima = enturmacao.turma.configuracaoAvaliacao.notaMaxima;
numDecimais = enturmacao.turma.configuracaoAvaliacao.quantidadesDecimais;
mediaFinal = Numeros.arredonda(somaNotas / qtdPeriodos, numDecimais);
notaParaExame = Numeros.arredonda(((50 - (mediaFinal * 6)) / 4), numDecimais);
se(enturmacao.turma.configuracaoAvaliacao.quantidadesDecimais != 0 && enturmacao.turma.configuracaoAvaliacao.tipoDecimais == "0 ou 5") {
mediaFinal = Numeros.arredonda(DecimaisUtil.arredondar(numDecimais, mediaFinal), numDecimais);
notaParaExame = Numeros.arredonda(DecimaisUtil.arredondar(numDecimais, notaParaExame), numDecimais);
}
se (mediaFinal < mediaMinima) {
se (notaParaExame > notaMaxima || qtdExamesTurma == 0) {
status = "REPROVADO";
} senao {
se(enturmacao.modoAvaliacaoExameFinal != "Não oferece") {
status = "EM_EXAME";
} senao {
status = "REPROVADO";
}
}
}
} senao {
se (possuiNotasNaoNumericas == true) {
status = "APROVADO";
} senao {
status = "REPROVADO";
}
mediaFinal = Numeros.arredonda(0, 1);
notaParaExame = Numeros.arredonda(0, 1);
}
//Retorna os resultados
retornar "resultado": mediaFinal, "situacao": status, "notaExameFinal": notaParaExame;
Resultado do exame final
mediaFinal = 0
situacao = "APROVADO";
notaParaExame = 0;
notaExameRealizado = 0;
notaParaExameAnterior = 0;
qtdExamesTurma = enturmacao.turma.qtdExames;
possuiRegistrosAvaliacoes = false;
ultimoExame = enturmacao.encerramento.identificador == qtdExamesTurma;
possuiExameFinal = false;
possuiNotasNumericas = false
possuiNotasNaoNumericas = false
percorrer(enturmacao.registrosAvaliacao) {
notaNumerica = item.notaNumerica;
se(item.notaNumerica == nulo) {
notaNumerica = 0;
}
possuiRegistrosAvaliacoes = true;
se(item.tipoPeriodo == "Exame final" && item.identificador == enturmacao.encerramento.identificador) {
possuiExameFinal = true
se(item.modoAvaliacao == "Avaliação numérica") {
notaExameRealizado = notaNumerica;
possuiNotasNumericas = true;
}
se(item.modoAvaliacao == "Avaliação conceitual com correspondente numérico" && item.notaConceito) {
notaExameRealizado = item.notaConceito.valorCalculo;
possuiNotasNumericas = true;
}
} senao {
se(item.tipoPeriodo == "Nota para exame") {
se(item.modoAvaliacao == "Avaliação numérica") {
notaParaExameAnterior = notaNumerica;
possuiNotasNumericas = true;
}
se(item.modoAvaliacao == "Avaliação conceitual com correspondente numérico" && item.notaConceito) {
notaParaExameAnterior = item.notaConceito.valorCalculo;
possuiNotasNumericas = true;
}
}
}
se(item.modoAvaliacao == "Descritiva") {
possuiNotasNaoNumericas = true
}
se(item.modoAvaliacao == "Avaliação conceitual sem correspondente numérico" && item.notaConceito) {
possuiNotasNaoNumericas = true
}
}
se(possuiRegistrosAvaliacoes == false || possuiExameFinal == false) {
situacao = "REPROVADO";
numDecimais = enturmacao.turma.configuracaoAvaliacao.quantidadesDecimais;
mediaFinal = Numeros.arredonda(0, numDecimais);
} senao {
se(possuiNotasNumericas == true) {
notaMaximaTurma = enturmacao.turma.configuracaoAvaliacao.notaMaxima;
numDecimais = enturmacao.turma.configuracaoAvaliacao.quantidadesDecimais;
notaParaExameAnterior = Numeros.arredonda(notaParaExameAnterior, numDecimais);
notaExameRealizado = Numeros.arredonda(notaExameRealizado, numDecimais);
se(notaExameRealizado < notaParaExameAnterior) {
imprimir "Realizado " + notaExameRealizado
imprimir "NotaAnterior " + notaParaExameAnterior
se(ultimoExame == true)
{
situacao = "REPROVADO";
} senao {
situacao = "EM_EXAME";
}
notaParaExame = Numeros.arredonda(notaParaExameAnterior, numDecimais);
mediaFinal = Numeros.arredonda(((50 - (notaParaExameAnterior 4)) / 6), numDecimais);
} senao {
mediaFinalAnterior = Numeros.arredonda(((50 - (notaParaExameAnterior 4)) / 6), numDecimais)
mediaFinal = Numeros.arredonda(((mediaFinalAnterior 6) + (notaExameRealizado 4)) / 10, numDecimais)
notaParaExame = Numeros.arredonda(0, numDecimais)
situacao = "APROVADO"
}
se(enturmacao.turma.configuracaoAvaliacao.quantidadesDecimais != 0 && enturmacao.turma.configuracaoAvaliacao.tipoDecimais == "0 ou 5")
{
mediaFinal = Numeros.arredonda(DecimaisUtil.arredondar(numDecimais, mediaFinal), numDecimais);
notaParaExame = Numeros.arredonda(DecimaisUtil.arredondar(numDecimais, notaParaExame), numDecimais);
}
} senao {
se(possuiNotasNaoNumericas == true) {
status = "APROVADO";
notaParaExame = Numeros.arredonda(0, 1);
mediaFinal = Numeros.arredonda(0, 1);
}
}
}
retornar "resultado": mediaFinal, "situacao": situacao, "notaExameFinal": notaParaExame;
Resultado da área do conhecimento
mediaArea = 0;
somaNotas = 0;
qtdeComponentes = 0;
possuiNotasNumericas = false;
percorrer (enturmacao.registrosAvaliacao) {
notaNumerica = item.notaNumerica;
se(item.notaNumerica == nulo){
notaNumerica = 0;
}
se (item.modoAvaliacao != "Não oferece"){
se (item.modoAvaliacao == "Avaliação numérica") {
qtdeComponentes = qtdeComponentes + 1;
somaNotas = somaNotas + notaNumerica;
possuiNotasNumericas = true;
}
se (item.modoAvaliacao == "Avaliação conceitual com correspondente numérico" && item.notaConceito) {
qtdeComponentes = qtdeComponentes + 1;
somaNotas = somaNotas + item.notaConceito.valorCalculo;
possuiNotasNumericas = true;
}
}
}
se (possuiNotasNumericas == true) {
numDecimais = enturmacao.turma.configuracaoAvaliacao.quantidadesDecimais;
mediaArea = Numeros.arredonda(somaNotas / qtdeComponentes, numDecimais);
se(enturmacao.turma.configuracaoAvaliacao.quantidadesDecimais != 0 && enturmacao.turma.configuracaoAvaliacao.tipoDecimais == "0 ou 5") {
mediaArea = Numeros.arredonda(DecimaisUtil.arredondar(numDecimais, mediaArea), numDecimais);
}
}
retornar "resultado": mediaArea;
Resultado do período letivo
mediaMinima = 7;
notaConselhoClasse = 0;
mediaFinal = 0;
mediaFinalJaRegistrada = 0;
status = "APROVADO"
possuiNotaConselhoClasse = false;
possuiNotaNumerica = false;
possuiNotasNaoNumericas = false;
// Percorre os registros de avaliação do aluno
percorrer (enturmacao.registrosAvaliacao) {
notaNumerica = item.notaNumerica;
se(item.notaNumerica == nulo){
notaNumerica = 0;
}
se (item.modoAvaliacao != "Não oferece" && item.tipoPeriodo == "Conselho de classe"){
possuiNotaConselhoClasse = true
se (item.modoAvaliacao == "Avaliação numérica") {
notaConselhoClasse = notaNumerica
possuiNotaNumerica = true;
}
se (item.modoAvaliacao == "Avaliação conceitual com correspondente numérico" && item.notaConceito) {
notaConselhoClasse = item.notaConceito.valorCalculo
possuiNotaNumerica = true;
}
}
se (item.modoAvaliacao != "Não oferece" && item.tipoPeriodo == "Média final"){
se (item.modoAvaliacao == "Avaliação numérica") {
mediaFinalJaRegistrada = notaNumerica;
possuiNotaNumerica = true;
}
se (item.modoAvaliacao == "Avaliação conceitual com correspondente numérico" && item.notaConceito) {
mediaFinalJaRegistrada = item.notaConceito.valorCalculo;
possuiNotaNumerica = true;
}
}
se (item.modoAvaliacao == "Descritiva") {
possuiNotasNaoNumericas = true;
}
se (item.modoAvaliacao == "Avaliação conceitual sem correspondente numérico" && item.notaConceito) {
possuiNotasNaoNumericas = true;
}
}
se (possuiNotaConselhoClasse == true) {
se (possuiNotaNumerica == true) {
numDecimais = enturmacao.turma.configuracaoAvaliacao.quantidadesDecimais;
mediaFinal = Numeros.arredonda(notaConselhoClasse, numDecimais);
se(enturmacao.turma.configuracaoAvaliacao.quantidadesDecimais != 0 && enturmacao.turma.configuracaoAvaliacao.tipoDecimais == "0 ou 5") {
mediaFinal = Numeros.arredonda(DecimaisUtil.arredondar(numDecimais, mediaFinal), numDecimais);
}
}
se(mediaFinal >= mediaMinima) {
status = "APROVADO";
} senao {
status = "REPROVADO";
}
} senao {
se (possuiNotasNaoNumericas == true) {
status = "APROVADO";
mediaFinal = Numeros.arredonda(0, 1);
} senao {
status = "REPROVADO";
numDecimais = enturmacao.turma.configuracaoAvaliacao.quantidadesDecimais;
mediaFinal = Numeros.arredonda(mediaFinalJaRegistrada, numDecimais);
}
}
//Retorna os resultados
retornar "resultado": mediaFinal, "situacao": status;