Fórum Como calcular média em delphi ou sql ? #190838

27/10/2003

0

:shock:
Campos da tabela Nota1 Nota2 Nota3 Nota4 Media
Tenho 4 campos numéricos em uma tabela Paradox, desejo tirar a média das notas, sendo que dependendo da disciplina o número de notas pode ser 3 ou 2, o que quero é uma forma de fazer como no excel(lá seria média(a2:a5), ai ele soma o número de notas existentes e divide pelo número de notas existentes, não quero somar 4 e dividir por 4, pois a quantidade de notas variam, por gentileza caso alguém realmente saiba como fazer me ajude, caso contrário não escreva nada.


Carlosdarienzo

Carlosdarienzo

Responder

Posts

27/10/2003

Joefferson

criar um campo ´NumNotas´ nao ajudaria???

ou entao,

dependendo da materia tu faz o seguinte,
quando tiver cadastrando as notas, se a materia tiver duas notas p ex. tu preenche as outras duas com valor -1. dai no delphi tu faz


procedure TForm1.Button1Click(Sender: TObject);
var
NumNotas, i : Integer;
SumNotas, Media : Real;
Begin
NumNotas:=0;
SumNotas:=0;
Query1.SQL.Clear;
Query1.SQL.Add(´select nota1,nota2,nota3,nota4 from notas where materia=´matematica´´);
with Query1.fields do
for i:=0 to 3 do
begin
if field[i].asfloat>=0 then
begin
Inc(NumNotas);
SumNotas:= SumNotas + field[i].asfloat;
end;
end;
Media:=SumNotas/NumNotas;
ShowMessage(´Tua Media foi ==> ´ + FloatToStr(Media));
end;

Nao tenho certeza se o codigo tem algum erro de sintaxe, mas acho q eh assim mesmo, espero q resolva!!!.

Valew.


:shock: Campos da tabela Nota1 Nota2 Nota3 Nota4 Media Tenho 4 campos numéricos em uma tabela Paradox, desejo tirar a média das notas, sendo que dependendo da disciplina o número de notas pode ser 3 ou 2, o que quero é uma forma de fazer como no excel(lá seria média(a2:a5), ai ele soma o número de notas existentes e divide pelo número de notas existentes, não quero somar 4 e dividir por 4, pois a quantidade de notas variam, por gentileza caso alguém realmente saiba como fazer me ajude, caso contrário não escreva nada.



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar