praS12practicaPFAv1.2 Alu
praS12practicaPFAv1.2 Alu
praS12practicaPFAv1.2 Alu
Practica dirigida
Diagrama de flujo
Practicas.txt
Promedio de
practicas
Promedios
1
NUMP 10,9,8,7, ..
REGISTRO PRACTICAS
ENTERO cod
ENTERO pc[NUMP]
FIN_REGISTRO
ACCION promPractica ()
PRACTICAS vp
ENTERO pi, spi
REAL ppi
FILE *f1
ABRIR(f1)
SI(f1=NULL)
ESCRIBIR(“ERROR: No se puede abril el file\n”)
EXIT(1)
FIN_SI
TOMAR(f1, vp) //fscanf(f1,”%d”, &vp.cod)
MIENTRAS(NO ULTIMO(f1))
pcod vp.cod
spi 0
PARA i 0 HASTA NUMP -1
pi vp.pc[i] //scanf(f1,”%d”, &pi)
spi spi+pi
i i+1
FIN_PARA
ppi (REAL)spi/NUMP //Promedio de practicas
ESCRIBIR(pcod, “promedio”, ppi)
TOMAR(f1,vp)
FIN_MIENTRAS
MARCAR(f1)
FIN_ACCION
2
Practica dirigida.
Diagrama de flujo
Practicas.txt Examen1.txt
Promedio practicas
y examen
Promedios
Se tiene un archivo de texto examen1.txt con los datos de código y examen. Cree el file texto en
el block de notas.
=================
Código NOTA
----------------------------
102 12
104 15
…
190 19
---------------------------
Se ha determinado el promedio de prácticas de los alumnos, ahora que tenemos las notas de
examen, se debe calcular el promedio de prácticas y examen:
prom=(promPracticas+examen)/2.
3
Determinar promedio
ACCION promPracticaExamen1() REGISTRO PRACTICAS
PRACTICAS vp ENTERO cod
EXAMEN1 ex1 ENTERO pc[NUMP]
ENTERO pi, spi FIN_REGISTRO
ENTERO x1cod, nx1, snx1,
BOOL hallado FALSO
REGISTRO EXAMEN1
REAL ppi, pxf
FILE f1, f2 ENTERO cod
ABRIR(f2, ex1) ENTERO nota
SI(f2 = NULL) FIN_REGISTRO
ESCRIBIR(“ERROR: No se puede abril el file\n”)
EXIT(1)
FIN_SI
ABRIR(f1, vp)
SI(f1 = NULL)
ESCRIBIR(“ERROR: No se puede abril el file\n”)
EXIT(1)
FIN_SI
//RUTINA CALCULO DEL PROMEDIO PRACTICAS
TOMAR(f1, vp) //fscanf(f1,”%d”, &vp.cod)
MIENTRAS(NO ULTIMO(f1))
pcod vp.cod
spi 0
PARA i 0 HASTA NUMP -1
pi vp.pc[i] //scanf(f1,”%d”, &pi)
spi spi+pi
i i+1
FIN_PARA
ppi (REAL)spi/NUMP
ESCRIBIR(pcod, “promedio”, ppi)
TOMAR(f2, ex1)
FIN_MIENTRAS
TOMAR(f1, vp)
FIN_MIENTRAS
MARCAR(f1)
MARCAR(f2)
FIN_ACCION
4
Para resolver esta practica sin contratiempos deben haber analizado e implementado los
programas de lab12GuiaLabArchivos.pdf, también son necesarias las operaciones básicas de
arreglos y de vectores de registros.
Cuestiones:
• ¿Qué ocurre si el código de un determinado alumno no está en la lista de file examen o
viceversa?
• ¿Cómo saber si se han procesado todos los alumnos en ambos files?
• ¿Debe estar ordenados ambos files? Porque