1. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 11
Introducción a la ComputaciónIntroducción a la Computación
Programa: Análisis de SistemasPrograma: Análisis de Sistemas
Profesores: Erys PiñeroProfesores: Erys Piñero
Vladimir CamacaroVladimir Camacaro
3. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 33
De igual forma que se pueden anidarDe igual forma que se pueden anidar
estructuras selectivas, es posible incluir unestructuras selectivas, es posible incluir un
ciclo dentro de otro. En este caso, cadaciclo dentro de otro. En este caso, cada
vez que se produzca una alteración delvez que se produzca una alteración del
valor del bucle externo, deberá ejecutarsevalor del bucle externo, deberá ejecutarse
completamente el bucle interno.completamente el bucle interno.
Las reglas para construir estructurasLas reglas para construir estructuras
repetitivas anidadas son iguales en ambosrepetitivas anidadas son iguales en ambos
casos: la estructura interna debe estarcasos: la estructura interna debe estar
incluida totalmente dentro de la externa yincluida totalmente dentro de la externa y
no puede existir solapamiento.no puede existir solapamiento.
4. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 44
Ejercicio 1Ejercicio 1
Por cada uno de los alumnos de las 7 seccionesPor cada uno de los alumnos de las 7 secciones
de la asignatura Introducción a la Computaciónde la asignatura Introducción a la Computación
se conoce el número de la cédula y la nota dese conoce el número de la cédula y la nota de
los 30 alumnos de cada sección.los 30 alumnos de cada sección.
Calcular:Calcular:
Por cada sección:Por cada sección:
Promedio de notasPromedio de notas
Por asignaturaPor asignatura
a.- Promedio de notasa.- Promedio de notas
b.- Mayor Promediob.- Mayor Promedio
5. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 55
SoluciónSolución
Análisis del problema:Análisis del problema:
ListaLista ClasificaciónClasificación
Alumno -------------------------------------Alumno ------------------------------------- ClaseClase
Cédula --------------------------------------Cédula -------------------------------------- Atributo/AlumnoAtributo/Alumno
Nota------------------------------------------Nota------------------------------------------ Atributo/AlumnoAtributo/Alumno
Sección--------------------------------------Sección-------------------------------------- ClaseClase
Calcular promedio de notas -----------Calcular promedio de notas ----------- Método/SecciónMétodo/Sección
Asignatura----------------------------------Asignatura---------------------------------- ClaseClase
Calcular promedio de notas-----------Calcular promedio de notas----------- Método/AsignaturaMétodo/Asignatura
Determinar mayor promedio----------Determinar mayor promedio---------- Método/AsignaturaMétodo/Asignatura
6. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 66
f.u.(1) 1) Inicializar (AcumProm, MayorProm)f.u.(1) 1) Inicializar (AcumProm, MayorProm)
f.m.(2) 2) Inicializar (AcumNota)f.m.(2) 2) Inicializar (AcumNota)
f.m.(3) 3) Leer (Cédula, Nota)f.m.(3) 3) Leer (Cédula, Nota)
f.m.(3) 4) Acumular nota: Acumnotaf.m.(3) 4) Acumular nota: Acumnota Acumnota + NotaAcumnota + Nota
f.m.(4) 5) Calcula e imprime Promedio de notas de la secciónf.m.(4) 5) Calcula e imprime Promedio de notas de la sección
Promedio ← AcumNota/30Promedio ← AcumNota/30
f.m.(4) 6) Acumular promedio de la secciónf.m.(4) 6) Acumular promedio de la sección
AcumProm ← AcumProm + PromedioAcumProm ← AcumProm + Promedio
f.m.(4) 7) Determinar mayor promediof.m.(4) 7) Determinar mayor promedio
si (Promedio>MayorProm)si (Promedio>MayorProm)
MayorProm ← PromedioMayorProm ← Promedio
f.u. (5) 8) Calcular e imprimir promedio de la asignatura:f.u. (5) 8) Calcular e imprimir promedio de la asignatura:
PromedioAsig ←AcumProm/7PromedioAsig ←AcumProm/7
f.u. (5) 9) Imprimir mayor promediof.u. (5) 9) Imprimir mayor promedio
(MayorProm)(MayorProm)
8. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 88
AlumnoAlumno
alfanumérico Cédulaalfanumérico Cédula
real Notareal Nota
AsignarCedula(alfanumérico ↓Ced)AsignarCedula(alfanumérico ↓Ced)
AsignarNota(real ↓ NT)AsignarNota(real ↓ NT)
real SacarNota()real SacarNota()
alfanumérico SacarCedula()alfanumérico SacarCedula()
9. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 99
SecciónSección
real AcumNotareal AcumNota
Inic()Inic()
real SacarAcumNota()real SacarAcumNota()
AcumularNota(Alumno ↓Alu)AcumularNota(Alumno ↓Alu)
real DetPromSecc()real DetPromSecc()
10. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 1010
AsignaturaAsignatura
real AcumPromreal AcumProm
real MayorPromreal MayorProm
Inicializar()Inicializar()
real SacarAcumProm()real SacarAcumProm()
real SacarMayorProm()real SacarMayorProm()
AcumularProm(Sección ↓ Secc)AcumularProm(Sección ↓ Secc)
DetMayorProm(Sección ↓ Secc)DetMayorProm(Sección ↓ Secc)
real DetPromAsig()real DetPromAsig()
11. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 1111
//// Definición de la estructura de la clase AlumnoDefinición de la estructura de la clase Alumno
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
clase Alumnoclase Alumno
inicioinicio
privado:privado:
alfanumérico Cédulaalfanumérico Cédula
real Notareal Nota
público:público:
//Métodos para asignar o meter datos//Métodos para asignar o meter datos
AsignarCedula (alfanumérico ↓Ced )AsignarCedula (alfanumérico ↓Ced )
AsignarNota(real ↓ NT)AsignarNota(real ↓ NT)
//Métodos para sacar datos//Métodos para sacar datos
alfanumérico SacarCedula()alfanumérico SacarCedula()
real SacarNota()real SacarNota()
fin //Alumnofin //Alumno
12. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 1212
//Desarrollo de los métodos de la clase Alumno//Desarrollo de los métodos de la clase Alumno
Alumno AsignarCedula(alfanumerico ↓ Ced)Alumno AsignarCedula(alfanumerico ↓ Ced)
inicioinicio
Cedula ← CedCedula ← Ced
finfin
Alumno AsignarNota(real ↓ NT)Alumno AsignarNota(real ↓ NT)
inicioinicio
Nota ← NTNota ← NT
finfin
alfanumérico Alumno SacarCedula()alfanumérico Alumno SacarCedula()
inicioinicio
retornar Cédularetornar Cédula
finfin
real Alumno SacarNota()real Alumno SacarNota()
inicioinicio
retornar Notaretornar Nota
finfin
13. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 1313
// Definición de la estructura de la clase Sección// Definición de la estructura de la clase Sección
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
clase Secciónclase Sección
inicio privado:inicio privado:
real AcumNota,Mayorreal AcumNota,Mayor
público:público:
//Métodos para inicializar datos//Métodos para inicializar datos
Inic()Inic()
//Métodos para sacar datos//Métodos para sacar datos
real SacarAcumNota()real SacarAcumNota()
// Otros métodos propios del objeto// Otros métodos propios del objeto
AcumularNota(Alumno↓ Alum)AcumularNota(Alumno↓ Alum)
real DetPromSecc()real DetPromSecc()
fin // Secciónfin // Sección
14. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 1414
//Métodos propios de la clase Sección//Métodos propios de la clase Sección
Sección Inic()Sección Inic()
inicioinicio
AcumNota ← 0AcumNota ← 0
finfin
15. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 1515
real Sección SacarAcumNota()real Sección SacarAcumNota()
inicioinicio
retornar AcumNotaretornar AcumNota
finfin
Seccion AcumularNota(Alumno ↓ Alu )Seccion AcumularNota(Alumno ↓ Alu )
inicioinicio
AcumNota←AcumNota+Alu.SacarNota()AcumNota←AcumNota+Alu.SacarNota()
finfin
16. Profs. Vladimir Camacaro y ErysProfs. Vladimir Camacaro y Erys
Piñero.Piñero. 1616
real Seccion DetPromSecc()real Seccion DetPromSecc()
inicioinicio
real Promreal Prom
Prom ← AcumNota/30Prom ← AcumNota/30
retornar Promretornar Prom
finfin
17. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 1717
//Definición de la estructura de la clase Asignatura//Definición de la estructura de la clase Asignatura
clase Asignaturaclase Asignatura
inicioinicio
privado:privado:
real AcumProm,MayorPromreal AcumProm,MayorProm
publico:publico:
Inicializar ()Inicializar ()
real SacarAcumProm()real SacarAcumProm()
real SacarMayorProm()real SacarMayorProm()
AcumularProm(Seccion↓ Secc)AcumularProm(Seccion↓ Secc)
DelMayorProm(Seccion↓ Secc)DelMayorProm(Seccion↓ Secc)
real DetPromAsig()real DetPromAsig()
fin // Asignaturafin // Asignatura
18. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 1818
//Métodos propios de la clase Asignatura//Métodos propios de la clase Asignatura
Asignatura Inicializar ()Asignatura Inicializar ()
inicioinicio
AcumProm ← 0AcumProm ← 0
MayorProm ← 0MayorProm ← 0
finfin
19. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 1919
real Asignatura SacarAcumProm()real Asignatura SacarAcumProm()
iInicioiInicio
retornar AcumPromretornar AcumProm
finfin
real Asignatura SacarMayorProm()real Asignatura SacarMayorProm()
inicioinicio
retornar MayorPromretornar MayorProm
finfin
21. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 2121
//Programa de aplicación//Programa de aplicación
principal()principal()
inicioinicio
Alumno AluAlumno Alu
Seccion SeccSeccion Secc
Asignatura AsigAsignatura Asig
Asig.Inicializar()Asig.Inicializar()
repetir para (entero Secci ←1; Secci <= 7; Secci ← Secci + 1)repetir para (entero Secci ←1; Secci <= 7; Secci ← Secci + 1)
inicioinicio
Secc.Inic()Secc.Inic()
repita para (repita para (entero Alum ←1; Alum <= 30 ; Alum ← Alum + 1entero Alum ←1; Alum <= 30 ; Alum ← Alum + 1))
inicioinicio
InterfazEntrada(Alu)InterfazEntrada(Alu)
Secc.AcumularNota(Alu)Secc.AcumularNota(Alu)
finfin
InterfazSalidaSeccion(Alum)InterfazSalidaSeccion(Alum)
Asig.AcumularProm(Secc)Asig.AcumularProm(Secc)
Asig.DetMayorProm(Secc)Asig.DetMayorProm(Secc)
finfin
InterfazSalidaAsig (Alum)InterfazSalidaAsig (Alum)
finfin
22. Profs. Vladimir Camacaro y Erys Piñero.Profs. Vladimir Camacaro y Erys Piñero. 2222
InterfazEntrada(AlumnoInterfazEntrada(Alumno ↑↑ Alum)Alum)
inicioinicio
real NTreal NT
alfanumérico cedalfanumérico ced
escribir “Escriba su numero de cedula “)escribir “Escriba su numero de cedula “)
leer cedleer ced
Alu.AsignarCedula(Ced)Alu.AsignarCedula(Ced)
escribir “Escriba su nota final)escribir “Escriba su nota final)
leer NTleer NT
Alu.AsignarNota(NT)Alu.AsignarNota(NT)
finfin
InterfazSalidaSeccion(SeccionInterfazSalidaSeccion(Seccion↓↓ Secc)Secc)
inicioinicio
escribir”El promedio de la sección es:” Secc. DetPromSecc()escribir”El promedio de la sección es:” Secc. DetPromSecc()
finfin
InterfazSalidaAsig (Asignatura ↓ Asig)InterfazSalidaAsig (Asignatura ↓ Asig)
inicioinicio
escribir “El promedio de la Asignatura es: “Asig. DetPromAsig ()escribir “El promedio de la Asignatura es: “Asig. DetPromAsig ()
escribir “El mayor promedio es: “Asig. SacarMayorprom()escribir “El mayor promedio es: “Asig. SacarMayorprom()
finfin