Trabalho de Processamento de Dados
Análise
Identificação das variáveis
a - ( inteiro) total de alunos aprovados
t - ( inteiro) total de alunos da turma, inclusive com erro de processamento
tt - ( inteiro ) total de alunos, sem erro de processamento
r - ( inteiro) total de alunos reprovados
e - ( inteiro) total de alunos com erro de processamento
j - ( inteiro) verificador para erro de processamento
y - ( inteiro) verificador para ordem decrescente das médias
w - ( inteiro ) contador decrescente, para colocar as médias em ordem decrescente
k ( inteiro ) adquire o valor da média de cada aluno x 10
sit - ( string ) adquire a situação final de cada aluno
mat - ( vetor, inteiro ) armazena a matrícula de cada aluno
sf - ( vetor, inteiro ) indica o aluno aprovado e reprovado
tf - ( vetor, inteiro ) armazena o total de faltas de cada aluno
nts - ( matriz, real ) armazena os valores das notas e a média de cada aluno
Desenvolvimento
INÍCIO
INTEIRO tt, t,a,r,e,j,y,mat(50),tf(50),sf(50), k REAL nts(50,4)
a=0
t=0
r=0
e=0
p="s"
MOSTRE " Digite os valores pedidos."
ENQUANTO (p.eq."s")
t=t+1
MOSTRE "MAT N1 N2 N3 TF "
LEIA MAT(t),nts(t,1),nts(t,2),nts(t,3),TF(t)
j=e
SE ((mat(t)<=0)or(nts(t,1)<0)or(nts(t,2)<0)or(nts(t,3)<0)or(tf(t)<0)or
(nts(t,1)>10)or(nts(t,2)>10)or(nts(t,3)>10)) FAÇA
e=e+1
FIM SE
SE (e=j)FAÇA
nts(t,4)=(nts(t,1)+nts(t,2)+nts(t,3))/3
SE((TF(t)<=10)AND(nts(t,4)>=05))FAÇA
sf(t)=1
a=a+1
FIM SE
SE((TF(t)>10)AND(nts(t,4)>=07))FAÇA
sf(t)=1
a=a+1
FIM SE
SE((TF(t)>10)and(nts(t,4)<07))FAÇA
sf(t)=2
r=r+1
FIM SE
SE((TF(t)<=10)and(nts(t,4)<05))FAÇA
sf(t)=2
r=r+1
FIM SE
FIM SE
MOSTRE "Deseja continuar? ('s' para continuar )"
LEIA p
FIM ENQUANTO
w=100
ENQUANTO (w>=0)
y=t
ENQUANTO (y>0)
k=nts(y,4)*10
SE ((sf(y)=1)or(sf(y)=2))then
SE (sf(y).eq.1) FAÇA
sit="Ap"
FIM SE
SE (sf(y).eq.2) FAÇA
sit="Rep"
FIM SE
SE (w=k)then
MOSTRE mat(y),nts(y,1),nts(y,2),nts(y,3),nts(y,4),tf(y),sit
FIM SE
FIM SE
y=y-1
FIM ENQUANTO
w=w-1
FIM ENQUANTO
TT=T-E
MOSTRE "Total de alunos da turma ------------------>",TT
MOSTRE "Total de alunos aprovados ----------------->",A
MOSTRA "Total de alunos reprovados ---------------->",R
MOSTRE "Total de alunos com erro de processamento ->",E
FIM
Programa "notas.for"
integer t,tt,a,r,e,mat(50),tf(50),j,y,sf(50),w
real nts(50,4)
a=0
t=0
r=0
e=0
p="s"
print *,""
print *," ----------------------------------------------"
print *," | Programa para calculo de notas da turma. |"
print *," | Projeto final de Processamento de Dados |"
print *," ----------------------------------------------"
print *,""
print *,""
Print *," Digite os valores pedidos."
do while (p.eq."s")
c obtem os valore das notas,faltas e matricula
t=t+1
Print *,"MAT N1 N2 N3 TF "
read (*,5) MAT(t),nts(t,1),nts(t,2),nts(t,3),TF(t)
5 Format (i3,1x,3(f4.1,1x),i2)
c verifica valores com erro de processamento
j=e
if ((mat(t).le.0).or.(nts(t,1).lt.0).or.(nts(t,2).lt.0).or.(nts(
- t,3).lt.0).or.(tf(t).lt.0).or.(nts(t,1).gt.10).or.(nts(t,2).gt
- .10).or.(nts(t,3).gt.10)) then
e=e+1
endif
c calcula a media e diz se esta apovado ou reprovado
if (e.eq.j)then
nts(t,4)=(nts(t,1)+nts(t,2)+nts(t,3))/3
if((TF(t).le.10).AND.(nts(t,4).ge.05))then
sf(t)=1
a=a+1
endif
if((TF(t).gt.10).AND.(nts(t,4).ge.07))then
sf(t)=1
a=a+1
endif
if((TF(t).gt.10).and.(nts(t,4).lt.07))then
sf(t)=2
r=r+1
endif
if((TF(t).le.10).and.(nts(t,4).lt.05))then
sf(t)=2
r=r+1
endif
endif
print*,"Deseja continuar? ('s' para continuar)"
read (*,40)p
40 format (a1)
end do
print *,""
print *,""
print *," **** Resutado Final ****"
print *,""
print *,"MAT. N1 N2 N3 Med TF SF "
w=100
do while (w.ge.0)
y=t
do while (y.gt.0)
k=nts(y,4)*10
if ((sf(y).eq.1).or.(sf(y).eq.2))then
if (sf(y).eq.1) then
sit="Ap"
endif
if (sf(y).eq.2) then
sit="Rep"
endif
if (w.eq.k)then
write(*,45)mat(y),nts(y,1),nts(y,2),nts(y,3),nts(y,4),tf
- (y),sit
45 format(1x,i3,3x,4(f4.1,2x),i2,2x,a3)
endif
endif
y=y-1
enddo
w=w-1
enddo
print *,""
pause ' Aperte ENTER para continuar'
print *,""
tt=t-e
print *,""
print *," -----------------------------------"
print *," | Informacoes sobre a turma. |"
print *," -----------------------------------"
print *,""
print *,""
write (*,50)tt
50 format(5x,"Total de alunos da turma ------------------>",i3)
print *,""
write (*,51)a
print *,""
51 format(5x,"Total de alunos aprovados ----------------->",i3)
write (*,52)r
print *,""
52 format(5x,"Total de alunos reprovados ---------------->",i3)
write (*,53)e
print *,""
53 format(5x,"Total de alunos com erro de processamento ->",i3)
print *,""
end