Jump to content


Photo

Expressões Numéricas Em Php


  • Faça o login para participar
3 replies to this topic

#1 tux small

tux small

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 05/07/2011, 11:50

Olá Pessoal, tudo bem com todo mundo? Espero que sim!


To desenvolvendo um sistema de cálculo de médias bimestrais de notas escolares para um colégio. Só que esse colégio usa um sistema complicado para definir essas médias. Em um bimestre a escola faz duas provas e um simulado.

A fórmula é a seguinte:

PROVA1+PROVA2
RESULTADO DA PROVA1 + PROVA2 / 2
(RESULTADO DA PROVA1 + PROVA2 / 2) * 7
RESULTADO DO SIMULADO * 3
(RESULTADO DA PROVA1 + PROVA2 / 2 * 7) + (RESULTADO DO SIMULADO * 3) / 10

Complexo para conseguir uma média né?

Vou dar um exemplo pra ficar claro:

PROVA 1 = 8.0
PROVA 2 = 7.5
SIMULADO = 8.5

Passo 1 : PROVA1+PROVA2 = 15.5

Passo 2 : RESULTADO DA PROVA1 + PROVA2 / 2 = 7.75

Passo 3 : (RESULTADO DA PROVA1 + PROVA2 / 2) * 7 = 54.25

Passo 4 : RESULTADO DO SIMULADO * 3 = 25.5

Passo 5 : (RESULTADO DA PROVA1 + PROVA2 / 2 * 7) + (RESULTADO DO SIMULADO * 3) / 10 = 54.25 + 25.5 / 10 = 7.9

Minha pergunta é: como fazer tudo isso em PHP? Estou apanhando pra caramba. Eu tô fazendo assim(vejam os comentários em cada linha):


#######Começo Media 1B
$prova1 = 8;
$prova2 = 7.5;
$simulado = 8.5;

$passo1 = $prova1+$prova2; //(8+7.5 = 15.5)
$passo2 = $passo1/2; //(15.5 / 2 = 7.75)
$passo3 = $passo2*7; //(7.75 * 7 = 54.25)
$passo4 = $simulado*3; //(8.5 * 3 = 25.5) ATÉ AQUI TUDO CERTO
$passo5 = $passo3+$passo4; // (54.25 + 25.5 = 79.75) AQUI É QUE DÁ PAU. O resultado deveria ser 79.75 mas dá 25.5. Por quê???
$passo6 = $mG5/10;

$media = $passo6;


Claro que no sistema as váriaveis vem pelo banco de dados através de um loop. Veja o código fonte original desta pequena parte:
<?php
################Começo Media 1B
$gram1pm = $res_notas[16];
$gram2pm = $res_notas[17];
$gramS1 = $res_notas[205];

$mG1 = $gram1pm+$gram2pm;
$mG2 = $mG1/2;
$mG3 = $mG2*7;
$mG4 = $gramS1*3;
$mG5 = $mg3+$mG4 / 10;
$mG6 = $mG5/10;

$med1Gr = $mG5;


Alguém pode me ajudar?


Espero ter sido claro!

Até já!!!

#2 shayllis

shayllis

    12 Horas

  • Usuários
  • 152 posts
  • Sexo:Masculino
  • Localidade:Barueri - SP
  • Interesses:PHP, MySQL, ASP.NET C# e VB, DreamWeaver, VisualStudio, JavaScript

Posted 06/07/2011, 10:15

Bom pelo que eu entendi é bem cimples, você só precisa do último passo.
$MEDIA = ($RESULTADO_DA_PROVA1 + $PROVA2 / 2 * 7) + ($RESULTADO_DO_SIMULADO * 3) / 10;

Agora sobre o loop, bom considerando que você usa uma base de dados mysql, ficaria assim:

$query = mysql_query("SELECT * FROM sua_tabela");
$row = mysql_fetch_assoc($query);
$i = 0;

while($row = mysql_fetch_assoc($query)){
$MEDIA[$i] = ($row['RESULTADO_DA_PROVA1'] + $row['PROVA2'] / 2 * 7) + ($row['RESULTADO_DO_SIMULADO'] * 3) / 10;
$i++;
}

Neste caso, as notas serão armazenadas em um array associativo, mas é possível dar um echo direto, além disso, você pode alterar o código do select para melhorar a busca no banco de dados, ou também mexer no código dentro do while, aplicando os dados em uma tabela, ou mesmo aplicando um css.
Caso tenha ajudado colabore com um ponto :D

#3 tux small

tux small

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 06/07/2011, 16:39

Vou dar uma verificada aqui mais tarde com base nas sugestões e depois eu posto no que deu. Como eu colaboro com um ponto?

#4 shayllis

shayllis

    12 Horas

  • Usuários
  • 152 posts
  • Sexo:Masculino
  • Localidade:Barueri - SP
  • Interesses:PHP, MySQL, ASP.NET C# e VB, DreamWeaver, VisualStudio, JavaScript

Posted 07/07/2011, 16:17

É só apertar no maisinho em baixo do post, valew :D




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq