praS12practicaPFAv1.2 Alu

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

UNMSM-FISI.

programación y fundamentos de algoritmos


Prof. G. A. Salinas

Practica dirigida

Determinar el promedio de prácticas. Leer el capítulo de Entradas y Salidas por Archivos de


(Joyanes y Zahonero. 2005).

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.

Determinar el promedio de prácticas y el examen1


Previamente necesitamos determinar el promedio de prácticas.

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.

Archivo de texto: examen1.txt

=================
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.

Continuando con la implementación, después de calcular el promedio de un alumno, pasamos a


calcular el promedio de la practica y el examen1 de este alumno, luego pasamos a determinar el
promedio del siguiente alumno y así sucesivamente hasta terminar con todos los alumnos del
archivo de práctica.

Véase el modelo del programa, desarrolle la implementación en seudo y C/C++ entregarlo la


próxima clase.

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)

//RUTINA CALCULO PROMEDIO PRACTICAS Y EXAMEN1


REWING(F2)
TOMAR(f2, ex1)
MIENTRAS (NO ULTIMO(f2) y NO Hallado)

//Analice y complete el seudo y luego C/C++

TOMAR(f2, ex1)
FIN_MIENTRAS
TOMAR(f1, vp)
FIN_MIENTRAS

MARCAR(f1)
MARCAR(f2)
FIN_ACCION

Analice, implemente y anote todas sus dudas.

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

JOYANES L. y ZAHONERO I. (2005) PROGRAMACION EN C. Metodología, algoritmos y


estructura de datos Madrid, España: McGraw-Hill.

También podría gustarte