Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marxrj

Média - Substituir Média final por nota de recuperação

Recommended Posts

Pessoal, tenho essa formula, aonde as notas n1, n2, n3, n4 são as notas bimestrais,

e a nota n5 a de recuperação. Do jeito que está ele calcula as notas lançadas e divide

pelo mesmo. Se lançou três notas ele divide por três, se lançou quatro divide por quatro

. No caso a média estou setando 5. então por exemplo se o aluno tiver uma

média abaixo eu lanço a nota n5 que é recuperação, e ela substitui a menor nota

e recalcula a média final. Até aí funciona. Mas eu queria é que ao lançar a nota de

recuperação, essa nota substituísse a média. que seria dos quatro bimestres

<?php

$n1 = $data["n1"];
$n2 = $data["n2"];
$n3 = $data["n3"];
$n4 = $data["n4"];
$n5 = $data["n5"];#recuperacao / nota extra

$notas = [ $n1, $n2, $n3, $n4, $n5 ];

$notas = array_filter($notas, function( $nota ) {
return !is_null($nota);
 });
//ordenamos em ordem crescente
sort($notas, SORT_NUMERIC);

//removemos a primeira nota do array ordenado, no caso a mais baixa
$nota_mais_baixa = array_shift($notas);

$fator_divisao = count($notas);
 if ($fator_divisao) {
//calculamos a media aritmética
$media = array_sum($notas) / $fator_divisao;
 //exibimos
 printf(
'Nota mais baixa: %.2f<br>Media: %.2f', $nota_mais_baixa, $media
 );
 }
 ?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Marxrj,

 

Se entendi seria algo como:

if(!isset($notas[$n5])){
	$media = $notas[$n5];
    //exibimos
    printf('Nota mais baixa: %.2f<br>Media: %.2f', $nota_mais_baixa, $media);
}else{
	$fator_divisao = count($notas);
 	if ($fator_divisao) {
		//calculamos a media aritmética
		$media = array_sum($notas) / $fator_divisao;
 		//exibimos
 		printf('Nota mais baixa: %.2f<br>Media: %.2f', $nota_mais_baixa, $media);
 	}
}

Espero ter conseguido contribuir.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
14 horas atrás, Josemir Dias disse:

Boa noite Marxrj,

 

Se entendi seria algo como:


if(!isset($notas[$n5])){
	$media = $notas[$n5];
    //exibimos
    printf('Nota mais baixa: %.2f<br>Media: %.2f', $nota_mais_baixa, $media);
}else{
	$fator_divisao = count($notas);
 	if ($fator_divisao) {
		//calculamos a media aritmética
		$media = array_sum($notas) / $fator_divisao;
 		//exibimos
 		printf('Nota mais baixa: %.2f<br>Media: %.2f', $nota_mais_baixa, $media);
 	}
}

Espero ter conseguido contribuir.

 

Não deu certo, a média está saindo 0.00. Não sei também se juntei a formula passada por você corretamente com a que postei

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!
Se o sr. precisa que "ao lançar a nota de recuperação, essa nota substituísse a média", faça assim:

php7:
$media = $notas[4] ??  array_sum($notas) / $fator_divisao;
php5:
$media = isset($notas[4]) ? $notas[4] :  array_sum($notas) / $fator_divisao;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, não alterou nada, continuou dando o mesmo resultado. Não sei também se deixei bem claro.

No caso havendo recuperação, a nota mais baixa seria a média e a média seria a nota n5 que seria a nota de recuperação

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia @Marxrj,

 

Agora ficou confuso hehehehe, veja bem:

8 horas atrás, Marxrj disse:

No caso havendo recuperação, a nota mais baixa seria a média e a média seria a nota n5 que seria a nota de recuperação

Ou seja, digamos que temos:

N1:7; N2:6; N3:5; N4:7;

 

Se a média for 7, este indivíduo está de recuperação, logo, pela sua explicação acima, "a nota mais baixa seria a média", a nota mais baixa deveria resultar em 6,25 (média das quatro notas) e esta mesma média, ainda segundo sua explicação, "e a média seria a nota n5 que seria a nota de recuperação" seria a N5. É isso?

 

Se conseguir esclarecer isso tenho certeza de que conseguimos te ajudar.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Josenir,

Sim, na fórmula que eu postei ele substitui a nota mais baixa que é uma das citadas. n1, n2, n3 ou n4, porém ali eu quero que se não for lançada a nota n5 (recuperação), ele de na nota mais baixa a média das quatro notas, e no resultado da média o mesmo valor que seria claro que a média.

 

Mas seu eu lançar a nota n5 (recuperação) ele na média deixasse a nota da recuperação e não mais a média, e a media apareceria somente na nota mais baixa.

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Marxrj disse:

[...]se não for lançada a nota n5 (recuperação), ele de na nota mais baixa a média das quatro notas, e no resultado da média o mesmo valor que seria claro que a média.[...]

 

Essa parte está difícil de entender. Por favor, nos dê alguns exemplos práticos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá. Abaixo meu código novamente.

<?php

$n1 = $data["n1"];
$n2 = $data["n2"];
$n3 = $data["n3"];
$n4 = $data["n4"];
$n5 = $data["n5"];#recuperacao / nota extra

$notas = [ $n1, $n2, $n3, $n4, $n5 ];

$notas = array_filter($notas, function( $nota ) {
return !is_null($nota);
 });
//ordenamos em ordem crescente
sort($notas, SORT_NUMERIC);

//removemos a primeira nota do array ordenado, no caso a mais baixa
$nota_mais_baixa = array_shift($notas);

$fator_divisao = count($notas);
 if ($fator_divisao) {
//calculamos a media aritmética
$media = array_sum($notas) / $fator_divisao;
 //exibimos
 printf(
'Nota mais baixa: %.2f<br>Media: %.2f', $nota_mais_baixa, $media
 );
 }
 ?>

Vamos supor que em lancei notas para 4 bimestres.

Exemplo 1

n1 = 7, n2 = 8, n3 = 6, n4 = 8

Neste caso a média foi 7,25 então vamos dizer que eu não lance a nota para n5, neste caso no printf a nota mais baixa ele vai deixar como 0.00 e a média ele vai deixar 7,25 (até aí tudo bem.)

 

Exemplo 2

No caso eu lançando uma nota de recuperação a n5, por exemplo nota 9, ele no printf vai dar nota mais baixa 6 e a média 7,50. Pois ele neste caso descartou a nota mais baixa que foi a n2 e somou a n5 recuperação com as outras 3 notas e dividiu por 4. Até aí beleza, e é como ele está fazendo.

 

Mas no caso eu preciso que ele se comporte como no exemplo 1, e no caso do exemplo 2 ele faça diferente se eu precisar lançar a nota de recuperação. Neste caso eu precisaria que a nota mais baixa fosse a média das 4 notas bimestrais, e a média passasse a ser a nota n5 de recuperação.

 

Resumindo: Se eu lançar a nota n5, ele substituísse a média por essa, e descartasse a média das 4 notas bimestrais.

Não sei se é possível com está fórmula que está funcionado bem como nos exemplos 1 e 2

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso.

      Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa.
       
      Minha dúvida, que preciso muito entender:
      - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo.
       
      tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação.

      Preciso de ajuda.

      Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ?

      tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias.

      Alguns do amigo tem algum vídeo, leitura explicando essa parte ?

      Grato,

      Cesar.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.