Ejercicio 4 
Se tiene el nombre y edad de 40 alumnos 
de una sección. Calcular 
a.- Cantidad de alumnos menores de edad 
b...
Análisis del problema 
Lista Clasificación 
Edad------------------------------------------ Atributo/Alumno 
Nombre-------...
Análisis del problema 
f.u. 1) Inicializar( ContMenores, AcumEdad) 
f.m. 2)Leer(Nombre, Edad) 
f.m. 3)Contar_Menores: 
si ...
Diagrama 
1 
2 
3 
4 
5 
6 
3 
4 
5 
Repetir para(entero Cont 0, Cont<40, Cont Cont+1)
Clase alumno 
Alumno 
alfanumerico Nombre 
entero Edad 
AsignarNombre(Nom) 
AsignarEdad(Ed) 
alfanumericoSacarNombre() 
en...
Clase Sección 
entero ContMenores 
entero AcumEdad 
Inicializar() 
entero SacarContMenores() 
enteroSacarAcumEdad() 
Conta...
Nota: Los métodos ContarMenores y 
AcumularEdad utilizan el atributo Edad, 
Edad no es un atributo de la clase 
Sección po...
// Definición de la estructura de la clase Alumno 
clase Alumno 
inicio 
privado: 
alfanumérico Nombre 
entero Edad 
públi...
//Desarrollo de los métodos de la clase Alumno 
Alumno AsignarNombre(alfanumerico ↓ Nom) 
inicio 
Nombre ← Nom 
fin 
Alumn...
// Definición de la estructura de la clase Sección 
clase Sección 
inicio 
privado: 
entero ContMenores, AcumEdad 
público...
//Desarrollo de los métodos de la clase Sección 
Sección InicContMenores () 
inicio 
ContMenores ← 0 
AcumEdad← 0 
fin 
en...
Sección ContarMenores(Alumno ↓ Alum) 
inicio 
si (Alum.SacarEdad()<18) 
entonces 
ContMenores ← ContMenores + 1 
fin 
Secc...
// Programa de aplicación 
principal( ) 
inicio 
Alumno Alum 
Seccion Secc 
entero Ed 
alfanumerico Nom 
//Inicializar con...
Ejercicio 5 
Se tiene el nombre y edad de un grupo 
de alumnos de una sección. Calcular 
a.- Cantidad de alumnos menores d...
Ejercicio 5 
Además para calcular el promedio seria 
AcumEdad entre un contador de alumnos. 
Observe que ya no es 40. Se t...
Ejercicio 5 
Por otra parte el método CalcularProm() 
quedaría: 
real Sección CalcularProm() 
inicio 
retornar AcumEdad/Co...
// Programa de aplicación 
principal( ) 
inicio 
Alumno Alum 
Seccion Secc 
entero Ed 
alfanumerico Nom 
//Inicializar con...
Próxima SlideShare
Cargando en…5
×

Unidad VI. Ciclo B

307 visualizaciones

Publicado el

Ejercicio de aplicacion de las estructuras repetitivas.

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
307
En SlideShare
0
De insertados
0
Número de insertados
104
Acciones
Compartido
0
Descargas
14
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Unidad VI. Ciclo B

  1. 1. Ejercicio 4 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.
  2. 2. 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
  3. 3. Análisis del problema f.u. 1) Inicializar( ContMenores, AcumEdad) f.m. 2)Leer(Nombre, Edad) f.m. 3)Contar_Menores: si (Edad<18) ContMenoresContMenores+1 f.m. 4)Acumular edad: AcumEdad←AcumEdad+Edad f.u 5) Escribir (ContMenores) f.u. 6) Calcular e imprimir Promedio de edad: PromedioEdad←AcumEdad/40
  4. 4. Diagrama 1 2 3 4 5 6 3 4 5 Repetir para(entero Cont 0, Cont<40, Cont Cont+1)
  5. 5. Clase alumno Alumno alfanumerico Nombre entero Edad AsignarNombre(Nom) AsignarEdad(Ed) alfanumericoSacarNombre() entero SacarEdad()
  6. 6. Clase Sección entero ContMenores entero AcumEdad Inicializar() entero SacarContMenores() enteroSacarAcumEdad() ContarMenores(Alumno↓ Alum) AcumularEdad(Alumno↓ Alum) real CalcularProm()
  7. 7. Nota: Los métodos ContarMenores y AcumularEdad utilizan el atributo Edad, Edad no es un atributo de la clase Sección por tanto el objeto Alum es un parámetro de estos métodos.
  8. 8. // 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
  9. 9. //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
  10. 10. // 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
  11. 11. //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
  12. 12. 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
  13. 13. // Programa de aplicación principal( ) inicio Alumno Alum Seccion Secc entero Ed alfanumerico Nom //Inicializar contadores y acumuladores Secc.Inicializar() // ciclo repetitivo repita para (entero Cont←0 , Cont<40 , Cont←Cont+1) inicio escribir “Indique el nombre del alumno” leer Nom Alum.AsignarNombre(Nom) escribir “Indique la edad del alumno” leer Ed Alum.AsignarEdad(Ed) Secc.ContMenores(Alum) Secc.AcumEdad(Alum) fin // Impresión de resultados escribir “ Cantidad de alumnos menores de edad “ Secc.SacarContMenores() escribir “ El promedio de edad de la sección es “ Secc.CalcularProm() fin
  14. 14. Ejercicio 5 Se tiene el nombre y edad de un grupo de alumnos de una sección. Calcular a.- Cantidad de alumnos menores de edad b.- Promedio de edad de la sección. Observe que este ejercicio procesa una cantidad desconocida de alumnos. Si se conoce que la cantidad de datos a procesar es relativamente pequeña, se puede resolver usando la instrucción: repetir mientras-Interacción con el usuario. Así la solución es semejante al ejercicio anterior, solo cambia el ciclo repetitivo a usar.
  15. 15. Ejercicio 5 Además para calcular el promedio seria AcumEdad entre un contador de alumnos. Observe que ya no es 40. Se tendría que declarar un nuevo atributo en la clase Sección entero ContAlumnos, anexar otra inicializacion ContAlumno y otro método para ContarAlumno.
  16. 16. Ejercicio 5 Por otra parte el método CalcularProm() quedaría: real Sección CalcularProm() inicio retornar AcumEdad/ContAlumno fin
  17. 17. // Programa de aplicación principal( ) inicio Alumno Alum Seccion Secc entero Ed alfanumerico Nom //Inicializar contadores y acumuladores Secc.Inicializar() // ciclo repetitivo alfanumérico Respuesta ← “Si” repita mientras (Respuesta = “Si”) inicio escribir “Indique el nombre del alumno” leer Nom Alum.AsignarNombre(Nom) escribir “Indique la edad del alumno” leer Ed Alum.AsignarEdad(Ed) Secc.ContMenores(Alum) Secc.AcumEdad(Alum) Secc.ContarAlumno() escribir “Indique si hay mas datos (Si o No)” leer Respuesta fin // Impresión de resultados escribir ”Cantidad de alumnos procesados “, Secc.SacarContAlumnos() escribir “ Cantidad de alumnos menores de edad “ Secc.SacarContMenores() escribir “ El promedio de edad de la sección es “ Secc.CalcularProm() fin

×