1. Introducción a la Computación
Profesores: Erys Piñero
Vladimir Camacaro
Lapso 2012/2
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 1
2. UNIDAD VI
Desarrollo de algoritmos orientados a
objetos con estructuras iterativas o
repetitivas simples.
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 2
3. Ejercicio
Se tiene el nombre y edad de 40 alumnos
de una sección. Calcular
a.- Cantidad de alumnos menores de edad
b.- Promedio de edad de la sección.
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 3
4. Análisis del problema
Lista Clasificación
Edad------------------------------------------ Atributo/Alumno
Nombre-------------------------------------- Atributo/Alumno
Alumno-------------------------------------- Clase
Sección------------------------------------------- Clase
Calcule cantidad de alumnos menores-- Método/Sección
Calcular el Promedio de edad ------------- Método/Sección
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 4
5. Análisis del problema
Observe que la
Se inicializa en
frecuencia es
cero el contador y
única, solo se
el acumulador
realiza una vez
f.u. 1) Inicializar( ContMenores, AcumEdad)
Observe que la
frecuencia es
múltiple, se realiza
40 veces, que es la
cantidad de
alumnos por Se leen por
sección. teclado: Nombre y
Edad del alumno
f.m. 2)Leer(Nombre, Edad)
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 5
6. Es frecuencia
múltiple. A cada
edad leída se
verifica si es menor
de edad
Si es menor de
edad, se
f.m. 3) Contar_Menores: incrementa el
contador
si (Edad<18)
ContMenoresContMenores+1
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 6
7. Es frecuencia
múltiple. Cada edad
leída se acumula, para
luego calcular el
f.m. 4)Acumular edad: promedio
AcumEdad←AcumEdad+Edad
Es frecuencia única.
Se imprime una vez
la cantidad de
f.u 5) Escribir (ContMenores) menores de edad.
f.u. 6) Calcular e imprimir Promedio de edad:
PromedioEdad←AcumEdad/40 Es frecuencia única.
Se calcula una vez el
promedio de edad de
los 40 estudiantes
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 7
8. Diagrama
1 Repetir para(entero Cont 0; Cont<40; Cont Cont+1)
2
2
3
3
4
4
5
6
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 8
10. Clase Sección
Seccion
ContMenores y
entero ContMenores AcumEdad son
atributos de la
entero AcumEdad clase Seccion
Inicializar()
entero SacarContMenores()
enteroSacarAcumEdad()
ContarMenores(Alumno↓ Alum)
Los métodos ContarMenores
y. AcumularEdad utilizan Edad,
que no es un atributo de la clase
AcumularEdad(Alumno↓ Alum)
Sección por tanto el objeto Alum
es un parámetro de estos
métodos.
real CalcularProm()
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 10
11. // Definición de la estructura de la clase Alumno
clase Alumno
inicio
privado:
alfanumérico Nombre
entero Edad
público:
//Métodos para asignar o meter datos
AsignarNombre (alfanumerico ↓Nom )
AsignarEdad(entero ↓ Ed)
//Métodos para sacar datos
alfanumerico SacarNombre()
entero SacarEdad()
fin // Alumno
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 11
12. //Desarrollo de los métodos de la clase Alumno
Alumno AsignarNombre(alfanumerico ↓ Nom)
inicio
Nombre ← Nom
fin
Alumno AsignarEdad(entero ↓ Ed)
inicio
Edad ← Ed
fin
alfanumerico Alumno SacarNombre()
inicio
retornar Nombre
fin
entero Alumno SacarEdad()
inicio
retornar Edad
fin
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 12
13. // Definición de la estructura de la clase Sección
clase Sección
inicio
privado:
entero ContMenores, AcumEdad
público:
//Métodos para inicializar datos
Inicializar()
//Métodos para sacar datos
entero SacarContMenores()
entero SacarAcumEdad()
// Otros métodos propios del objeto
ContarMenores(Alumno↓ Alum)
AcumularEdad(Alumno↓ Alum)
real CalcularProm()
fin // Sección
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 13
14. //Desarrollo de los métodos de la clase Sección
Sección InicContMenores ()
inicio
ContMenores ← 0
AcumEdad← 0
fin
entero Sección SacarContMenores()
inicio
retornar ContMenores
fin
entero Seccion SacarAcumEdad()
inicio
retornar AcumEdad
fin
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 14
15. Sección ContarMenores(Alumno ↓ Alum)
inicio
si (Alum.SacarEdad()<18)
entonces
ContMenores ← ContMenores + 1
fin
Seccion AcumularEdad(Alumno ↓ Alum)
inicio
AcumEdad ← AcumEdad + Alum.SacarEdad()
fin
real Seccion CalcularProm()
inicio
retornar AcumEdad/40
fin
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 15
16. // Programa de aplicación
principal( )
inicio
Alumno Alum
Seccion Secc
//Inicializar contadores y acumuladores
Secc.Inicializar()
// ciclo repetitivo
repita para (entero Cont←0 ; Cont<40 ; Cont←Cont+1)
inicio
InterfazEntrada(Alum)
Secc.ContMenores(Alum)
Secc.AcumEdad(Alum)
fin
// Impresión de resultados
InterfazSalida()
fin
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 16
17. InterfazEntrada(Alumno ↑ Alum)
inicio
entero Ed
alfanumerico Nom
escribir “Indique el nombre del alumno”
leer Nom
Alum.AsignarNombre(Nom)
escribir “Indique la edad del alumno”
leer Ed
Alum.AsignarEdad(Ed)
fin
InterfazSalida(Seccion ↓ Secc)
inicio
escribir “ Cantidad de alumnos menores de edad “
Secc.SacarContMenores()
escribir “ El promedio de edad de la sección es “
Secc.CalcularProm()
fin
06/02/13 Profs: Camacaro Vladimir y Erys Piñero 17