Array
(
)

Sistema de Colégio

Rudá
   - 01 mar 2006

Um Colégio pediu para eu fazer um sistema para adminstrar as notas dos alunos.

Existe 7 unidades e 3 recupeção.
1ª Semestre tem 3 Unidades depois vem uma recuperação.
2ª Semestre tem 4 Unidades depois vem duas recuperação.

Nota Média é 6.0
Nota Max é 10.0

Exemplo 1
Citação:

1ª - 5.0
2ª - 5.0
3ª - 5.0
Total - 15.0

Ficou em recuperação precisava de no mínimo 18.0

Tirou 7 na prova da recuperação, ai vamos ao calculo: Soma as 3 Unidades (15.0) + a prova da recuperação (9.0) dividido por 4 = 6.0

A Nota da Recuperação é 6.0

Ai substituimos as notas das 3 unidades que tiverem abaixo da nota da recuperação, ficando assim:

1ª - 5.0 -> 6.0 (Nota da Recuperação maior por isso substitui)
2ª - 5.0 -> 6.0 (Nota da Recuperação maior por isso substitui)
3ª - 5.0 -> 6.0 (Nota da Recuperação maior por isso substitui)
Total - 18.0

Recuperou as notas.


Exemplo 2
Citação:

1ª - 7.0
2ª - 4.0
3ª - 4.0
Total - 15.0

Ficou em recuperação precisava de no mínimo 18.0

Tirou 7 na prova da recuperação, ai vamos ao calculo: Soma as 3 Unidades (15.0) + a prova da recuperação (7.0) dividido por 4 = 5.5

A Nota da Recuperação é 5.5

Ai substituimos as notas das 3 unidades que tiverem abaixo da nota da recuperação, ficando assim:

1ª - 7.0 -> 7.0 (Nota da Recuperação menor por isso não substitui)
2ª - 4.0 -> 5.5 (Nota da Recuperação maior por isso substitui)
3ª - 4.0 -> 5.5 (Nota da Recuperação maior por isso substitui)
Total - 18.0

Recuperou as notas.


Observando dois alunos com um total de 15 pontos tem que tirar valores diferentes para passar, já que depende de como foi as notas da 3 unidades.

O que eu quero saber é dando as notas das 3 unidades como faço para calcular quanto precisa??

Depois posto o 2ª Semestre é que praticamente igual só que com algumas coisas a mais.


Carlos Rausch
   - 04 mar 2006

Coloca em um form para teste :
2 labels , 3 edits , 1 button
no click do botão faça:

#Código

Var
a,b,c,nota1,nota2,nota3,MediaN,NotaN : real;
I : integer;
begin
I := 0;
a := strtofloat(edit1.text);
b := strtofloat(edit2.text);
c := strtofloat(edit3.text);
nota1 := strtofloat(edit1.text);
nota2 := strtofloat(edit2.text);
nota3 := strtofloat(edit3.text);
MediaN := 0;
NotaN := 0;
If a < 6 then
begin
I := I + 1;
a := 0;
end;
If b < 6 then
begin
I := I + 1;
b := 0;
end;
If c < 6 then
begin
I := I + 1;
c := 0;
end;
If I > 0 then
begin
MediaN := (18 - (a+b+c))/I;
NotaN := (MediaN * 4) - (nota1 + nota2 +nota3);
label1.caption := ´Média a ser substituída ´ +formatfloat(´0.00´,MediaN);
label2.Caption := ´Nota necessária na recuperação ´ + formatfloat(´0.00´,NotaN);
end
else
ShowMessage(´Aluno aprovado´);
end;


Faça um teste e veja se é isso q vc precisa...


Rudá
   - 05 mar 2006

Value cara vc me ajudou muito.

Agora a segunda periódica é assim:

Tem o Total da Primeiro Semestre, ex: 17.0

4ª - 6.0
5ª - 5.0
6ª - 7.0
7ª - 5.0
Total - 23.0

É igual ao 1ª Semestre só que agora soma com o 1ª Semestre.

A pessoa teria que tirar 4.5 para poder recuperar o 2ª Semestre, ficaria assim(23.0 + 4.5 / 5 = 5.5):

4ª - 6.0 -> 6.0 (Nota da Recuperação menor por isso não substitui)
5ª - 5.0 -> 5.5 (Nota da Recuperação maior por isso substitui)
6ª - 7.0 -> 7.0 (Nota da Recuperação menor por isso não substitui)
7ª - 5.0 -> 5.5 (Nota da Recuperação maior por isso substitui)
Total - 24.0

Total Geral - 41.0

Falta 1.0 para ficar na média que é 42(7 Unidades * 6 Média da Unidade).

Então a pessoa no 1ª Semestre não recuperou ficou faltando 1 ponto então precisa tirar 7.0, para ficar assim:

4ª - 6.0 -> 6.0 (Nota da Recuperação igual por isso não substitui)
5ª - 5.0 -> 6.0 (Nota da Recuperação maior por isso substitui)
6ª - 7.0 -> 7.0 (Nota da Recuperação menor por isso não substitui)
7ª - 5.0 -> 6.0 (Nota da Recuperação maior por isso substitui)
Total - 25.0

Agora não falta nada para ficar na média que é 42(17 do 1ª Semestre + 25 do 2ª Semestre = 42).

Se poder me ajudar agradeço!


Carlos Rausch
   - 05 mar 2006

além do q foi criado anteriormente, crie mais 4 edits e um botão

no clique do 2º botão digite :

#Código

var
a,b,c,d,nota1,nota2,nota3,nota4,MediaN,NotaN,soma1sem : real;
I : integer;
begin
I := 0;
a := strtofloat(edit4.text);
b := strtofloat(edit5.text);
c := strtofloat(edit6.text);
d := strtofloat(edit7.text);
nota1 := strtofloat(edit4.text);
nota2 := strtofloat(edit5.text);
nota3 := strtofloat(edit6.text);
nota4 := strtofloat(edit7.text);
soma1sem := strtofloat(edit1.text) + strtofloat(edit2.text)+ strtofloat(edit3.text);
MediaN := 0;
NotaN := 0;
If a < 6 then
begin
I := I + 1;
a := 0;
end;
If b < 6 then
begin
I := I + 1;
b := 0;
end;
If c < 6 then
begin
I := I + 1;
c := 0;
end;
If d < 6 then
begin
I := I + 1;
d := 0;
end;
If I > 0 then
begin
MediaN := ((42 - soma1sem) - (a+b+c+d))/I;
NotaN := (MediaN * 5) - (nota1 + nota2 +nota3 + nota4);
label1.caption := ´Média a ser substituída ´ +formatfloat(´0.00´,MediaN);
label2.Caption := ´Nota necessária na recuperação ´ + formatfloat(´0.00´,NotaN);
end
else
ShowMessage(´Aluno aprovado´);
end;


coloque valores q somem 17 nos 3 primeiros edits, e coloque os valores das outras notas nos outros edits...

deve funcionar...