27/02/1327/02/13 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
Lapso 2012/2Lapso 2012/2
27/02/1327/02/13Profs. Vladimir Camacaro y Erys Profs. Vladimir Camacaro y Erys
Piñero. Piñero. 33
De igual forma que se pueden anidar De igual forma que se pueden anidar estructuras selectivas, es posible incluir un estructuras selectivas, es posible incluir un ciclo dentro de otro. En este caso, cada ciclo dentro de otro. En este caso, cada vez que se produzca una alteración del vez que se produzca una alteración del valor del bucle externo, deberá ejecutarse valor del bucle externo, deberá ejecutarse completamente el bucle interno. completamente el bucle interno.
Las reglas para construir estructuras Las reglas para construir estructuras repetitivas anidadas son iguales en ambos repetitivas anidadas son iguales en ambos casos: la estructura interna debe estar casos: la estructura interna debe estar incluida totalmente dentro de la externa y incluida totalmente dentro de la externa y no puede existir solapamiento.no puede existir solapamiento.
27/02/1327/02/13 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 secciones Por cada uno de los alumnos de las 7 secciones de la asignatura Introducción a la Computación de la asignatura Introducción a la Computación se conoce el número de la cédula y la nota de se 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 notas Promedio de notas Por asignatura Por asignatura a.- Promedio de notasa.- Promedio de notas b.- Mayor Promediob.- Mayor Promedio
27/02/1327/02/13 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ónAlumno -------------------------------------Alumno ------------------------------------- Clase ClaseCédula --------------------------------------Cédula -------------------------------------- Atributo/Alumno Atributo/AlumnoNota------------------------------------------Nota------------------------------------------ Atributo/Alumno Atributo/Alumno
Sección--------------------------------------Sección-------------------------------------- Clase ClaseCalcular promedio de notas -----------Calcular promedio de notas ----------- Método/Sección Método/Sección
Asignatura----------------------------------Asignatura---------------------------------- Clase ClaseCalcular promedio de notas-----------Calcular promedio de notas----------- Método/Asignatura Método/AsignaturaDeterminar mayor promedio----------Determinar mayor promedio---------- Método/Asignatura Método/Asignatura
27/02/1327/02/13 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: Acumnota f.m.(3) 4) Acumular nota: Acumnota Acumnota + NotaAcumnota + Notaf.m.(4) 5) Calcula e imprime Promedio de notas de la sección f.m.(4) 5) Calcula e imprime Promedio de notas de la sección Promedio ← AcumNota/30 Promedio ← 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 + Promediof.m.(4) 7) Determinar mayor promediof.m.(4) 7) Determinar mayor promedio si (Promedio>MayorProm)si (Promedio>MayorProm) MayorProm ← Promedio MayorProm ← 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 promedio f.u. (5) 9) Imprimir mayor promedio (MayorProm)(MayorProm)
27/02/1327/02/13 Profs. Vladimir Camacaro y Erys Piñero. Profs. Vladimir Camacaro y Erys Piñero. 77
11
repetir para(entero Seccirepetir para(entero Secci←1, Secci<=7, Secci ←Secci+1←1, Secci<=7, Secci ←Secci+1))
repetir para(entero Alumrepetir para(entero Alum←1, Alum<=30, Alum ←Alum+1←1, Alum<=30, Alum ←Alum+1))
88 99
2
567
34
27/02/1327/02/13 Profs. Vladimir Camacaro y Erys Piñero. Profs. Vladimir Camacaro y Erys Piñero. 88
AlumnoAlumno
alfanumérico Cédulaalfanumérico Cédulareal Notareal NotaAsignarCedula(alfanumérico ↓Ced)AsignarCedula(alfanumérico ↓Ced)AsignarNota(real ↓ NT)AsignarNota(real ↓ NT)real SacarNota()real SacarNota()alfanumérico SacarCedula()alfanumérico SacarCedula()
27/02/1327/02/13Profs. Vladimir Camacaro y Erys Profs. Vladimir Camacaro y Erys
Piñero. 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()
27/02/1327/02/13Profs. Vladimir Camacaro y Erys Profs. Vladimir Camacaro y Erys
Piñero. 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()
27/02/1327/02/13Profs. Vladimir Camacaro y Erys Profs. Vladimir Camacaro y Erys
Piñero. Piñero. 1111
//// Definición de la estructura de la clase Alumno Definició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
27/02/1327/02/13Profs. Vladimir Camacaro y Erys Profs. Vladimir Camacaro y Erys
Piñero. 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 ← CedfinfinAlumno AsignarNota(real ↓ NT) Alumno AsignarNota(real ↓ NT) inicioinicio Nota ← NTNota ← NTfinfinalfanumérico Alumno SacarCedula() alfanumérico Alumno SacarCedula() inicioinicio retornar Cédularetornar Cédulafinfinreal Alumno SacarNota() real Alumno SacarNota() inicioinicio retornar Notaretornar Notafinfin
27/02/1327/02/13Profs. Vladimir Camacaro y Erys Profs. Vladimir Camacaro y Erys
Piñero. 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ón clase Sección inicio privado:inicio privado: real AcumNota,Mayor real 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
27/02/1327/02/13Profs. Vladimir Camacaro y Erys Profs. Vladimir Camacaro y Erys
Piñero. 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
27/02/1327/02/13Profs. Vladimir Camacaro y Erys Profs. Vladimir Camacaro y Erys
Piñero. 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
27/02/1327/02/13Profs. Vladimir Camacaro y Erys Profs. 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
fin fin
27/02/1327/02/13 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 Asignaturaclase 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 // Asignatura fin // Asignatura
27/02/1327/02/13 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
27/02/1327/02/13 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
27/02/1327/02/13 Profs. Vladimir Camacaro y Erys Piñero. Profs. Vladimir Camacaro y Erys Piñero. 2020
Asignatura AcumularProm(Seccion ↓ Secc)Asignatura AcumularProm(Seccion ↓ Secc) inicioinicio AcumProm ← AcumProm+Secc.DetPromSecc()AcumProm ← AcumProm+Secc.DetPromSecc() finfinAsignatura DetMayorProm(Seccion ↓ Secc)Asignatura DetMayorProm(Seccion ↓ Secc) inicioinicio si (Secc.DetPromSecc > MayorProm)si (Secc.DetPromSecc > MayorProm) MayorProm ← Secc . DetPromSecc()MayorProm ← Secc . DetPromSecc() finfinreal Asignatura DetPromAsig()real Asignatura DetPromAsig() inicioinicio real PromAreal PromA PromA ← AcumProm / 7PromA ← AcumProm / 7 retornar PromAretornar PromA finfin
27/02/1327/02/13 Profs. Vladimir Camacaro y Erys Piñero. Profs. Vladimir Camacaro y Erys Piñero. 2121
//Programa de aplicación//Programa de aplicaciónprincipal()principal() inicio inicio 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
27/02/1327/02/13 Profs. Vladimir Camacaro y Erys Piñero. Profs. Vladimir Camacaro y Erys Piñero. 2222
InterfazEntrada(Alumno InterfazEntrada(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
Top Related