SlideShare una empresa de Scribd logo
1 de 10
Una solución para agregar
estructura de repetición a código OO
Apoyo POO
Recordamos el código que teníamos
• Un programa que debe generar un reporte de
calificaciones de varios alumnos.
• El reporte debe mostrar el nombre del alumno
y las 4 calificaciones que obtuvo cada alumno,
también el promedio de calificaciones de cada
alumno.
• Además se debe mostrar al final, el promedio
total por cada calificación y el promedio de
todos los promedios.
2Mtl. Lourdes Cahuich
Una forma de hacer esto con un ciclo
de repetición - for
• Para limitar el número de alumnos a capturar
• Imaginemos que queremos capturar un
máximo de 10 alumnos
• Tendremos que crear un arreglo de 10 objetos
tipo alumno
• Después iremos llenando la información de
cada alumno en un objeto alumno diferente.
3Mtl. Lourdes Cahuich
Creamos un arreglo de 10 objetos
• Esto se agrega en el código principal
const int MAX_EST = 10;
Estudiante [] est = new Estudiante[MAX_EST];
int contador = 0;
public frmMain()
{
InitializeComponent();
}
4Mtl. Lourdes Cahuich
Recordemos la interface
5Mtl. Lourdes Cahuich
En el botón guardar tengo que
controlar que sólo se guarden hasta 10
alumnos
private void btnGuardaDatos_Click(object sender, EventArgs e)
{
if (contador < MAX_EST)
{
est[contador] = new Estudiante();
guardaDatosAlumnos(est[contador]);
contador++;
}
}
6Mtl. Lourdes Cahuich
Proceso: “guardaDatosAlumno”
void guardaDatosAlumnos(Estudiante e){
e.setNomEst(txtNomEst.Text);
if (txtCalif1.Text != "")
e.setCalif1(float.Parse(txtCalif1.Text));
else
e.setCalif1(0);
if (txtCalif2.Text != "")
e.setCalif2(float.Parse(txtCalif2.Text));
else
e.setCalif2(0);
if (txtCalif3.Text != "")
e.setCalif3(float.Parse(txtCalif3.Text));
else
e.setCalif3(0);
if (txtCalif4.Text != "")
e.setCalif4(float.Parse(txtCalif4.Text));
else
e.setCalif4(0);
} 7Mtl. Lourdes Cahuich
Para generar reporte – estructura “for”
private void btnReporte_Click(object sender, EventArgs e)
{ String cadena = "";
float pc1, pc2, pc3, pc4, pp;
pc1 = pc2 = pc3 = pc4 = pp = 0;
cadena = "NOMBREttCAL1tCAL2tCAL3tCAL4tPROMn";
for (int i = 0; i < contador; i++)
{ cadena = cadena + string.Format("{0} t{1}t{2}t{3}t{4}t{5}n",
est[i].getNomEst().ToString(),
est[i].getCalif1().ToString(),
est[i].getCalif2().ToString(),
est[i].getCalif3().ToString(),
est[i].getCalif4().ToString(),
est[i].getPromedio().ToString());
pc1 = pc1 + est[i].getCalif1();
pc2 = pc2 + est[i].getCalif2();
pc3 = pc3 + est[i].getCalif3();
pc4 = pc4 + est[i].getCalif4();
pp = pp + est[i].getPromedio();
}
pc1 = pc1 /(contador -1);
pc2 = pc2 / (contador - 1);
pc3 = pc3 / (contador - 1);
pc4 = pc4 / (contador - 1);
pp = pp / (contador - 1);
cadena = cadena + string.Format("TOTALEStt{0}t{1}t{2}t{3}t{4}n",
pc1,pc2,pc3, pc4, pp);
//Mostrar reporte
MessageBox.Show(cadena,"Reporte calificaciones“,
MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
}
8Mtl. Lourdes Cahuich
Para generar reporte –estructura while
private void btnReporte_Click(object sender, EventArgs e)
{
int i = 0;
while (i < contador)
{
cadena = cadena + string.Format("{0}t{1}t{2}t{3}t{4}t{5}n",
est[i].getNomEst().ToString(),
est[i].getCalif1().ToString(),
est[i].getCalif2().ToString(), est[i].getCalif3().ToString(),
est[i].getCalif4().ToString(), est[i].getPromedio().ToString());
pc1 = pc1 + est[i].getCalif1();
pc2 = pc2 + est[i].getCalif2();
pc3 = pc3 + est[i].getCalif3();
pc4 = pc4 + est[i].getCalif4();
pp = pp + est[i].getPromedio();
i++;
}
pc1 = pc1 / (contador - 1);
pc2 = pc2 / (contador - 1);
pc3 = pc3 / (contador - 1);
pc4 = pc4 / (contador - 1);
pp = pp / (contador - 1);
cadena = cadena + string.Format("TOTALEStt{0}t{1}t{2}t{3}t{4}n", pc1, pc2, pc3, pc4, pp);
cadena = cadena + string.Format("nTotal de alumnos: {0}", contador);
//Mostrar reporte
MessageBox.Show(cadena, "Reporte calificaciones", MessageBoxButtons.OKCancel,
MessageBoxIcon.Asterisk);
}
9Mtl. Lourdes Cahuich
Estas son sólo unas soluciones…
• Pero en la ciencia de la computación y la
ingeniería, casi siempre hay varias soluciones
para un mismo problema.
• Sin embargo, siempre habrá soluciones más
eficientes, precisas y elegantes que otras, el
entrenamiento que viene de resolver y
desarrollar muchos programas/algoritmos, es
el que nos lleva a desarrollar mejores códigos
cada vez.
10Mtl. Lourdes Cahuich

Más contenido relacionado

Destacado

Función main()
Función main()Función main()
Función main()UVM
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoUVM
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bitsUVM
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuarioUVM
 
Repaso previo a 2º examen parcial
Repaso previo a 2º examen parcialRepaso previo a 2º examen parcial
Repaso previo a 2º examen parcialUVM
 
Objetos y arreglos en C#
Objetos y arreglos en C#Objetos y arreglos en C#
Objetos y arreglos en C#UVM
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++UVM
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herenciajlmanmons
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadoresUVM
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaUVM
 
Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programaciónUVM
 
Tipos de herencia
Tipos de herenciaTipos de herencia
Tipos de herenciaUVM
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 

Destacado (13)

Función main()
Función main()Función main()
Función main()
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agosto
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bits
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuario
 
Repaso previo a 2º examen parcial
Repaso previo a 2º examen parcialRepaso previo a 2º examen parcial
Repaso previo a 2º examen parcial
 
Objetos y arreglos en C#
Objetos y arreglos en C#Objetos y arreglos en C#
Objetos y arreglos en C#
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación Avanzada
 
Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
 
Tipos de herencia
Tipos de herenciaTipos de herencia
Tipos de herencia
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 

Similar a Una solución para agregar estructura de repetición

Similar a Una solución para agregar estructura de repetición (20)

Guia de-estructura-de-datos
Guia de-estructura-de-datosGuia de-estructura-de-datos
Guia de-estructura-de-datos
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 
algoritmos distribuidos
algoritmos distribuidosalgoritmos distribuidos
algoritmos distribuidos
 
Tema4 programación generica
Tema4   programación genericaTema4   programación generica
Tema4 programación generica
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTO
 
Informe tecnico victor_uex
Informe tecnico victor_uexInforme tecnico victor_uex
Informe tecnico victor_uex
 
Informe tecnico de la unidad 1
Informe tecnico de la unidad 1Informe tecnico de la unidad 1
Informe tecnico de la unidad 1
 
Problemas resueltos de c++
Problemas  resueltos de c++Problemas  resueltos de c++
Problemas resueltos de c++
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2b
 
Cómo lograr mejores pruebas
Cómo lograr mejores pruebasCómo lograr mejores pruebas
Cómo lograr mejores pruebas
 
MODELO PASO DE MENSAJES
MODELO PASO DE MENSAJESMODELO PASO DE MENSAJES
MODELO PASO DE MENSAJES
 
JAVA ciclos (FOR Y WHILE)
JAVA ciclos  (FOR Y WHILE)JAVA ciclos  (FOR Y WHILE)
JAVA ciclos (FOR Y WHILE)
 
Jorge informe tecnico
Jorge informe tecnicoJorge informe tecnico
Jorge informe tecnico
 
Expo_Int
Expo_IntExpo_Int
Expo_Int
 
Agregando comportamiento al objeto – estructura secuencial
Agregando comportamiento al objeto – estructura secuencial Agregando comportamiento al objeto – estructura secuencial
Agregando comportamiento al objeto – estructura secuencial
 
Arreglos java
Arreglos javaArreglos java
Arreglos java
 
Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12
 
Ejemplos robert miguel
Ejemplos robert miguelEjemplos robert miguel
Ejemplos robert miguel
 
ALGORITMOS EN JAVA
ALGORITMOS EN JAVAALGORITMOS EN JAVA
ALGORITMOS EN JAVA
 
6-Unidad 1. Paradigma de la Programación-Orientación a Objetos
6-Unidad 1. Paradigma de la Programación-Orientación a Objetos6-Unidad 1. Paradigma de la Programación-Orientación a Objetos
6-Unidad 1. Paradigma de la Programación-Orientación a Objetos
 

Más de UVM

Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempoUVM
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosUVM
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglosUVM
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlUVM
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadoresUVM
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicosUVM
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datosUVM
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funcionesUVM
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funcionesUVM
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreUVM
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3UVM
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++UVM
 
Polimorfismo
PolimorfismoPolimorfismo
PolimorfismoUVM
 
Namespaces y C#
Namespaces y C#Namespaces y C#
Namespaces y C#UVM
 
Herencia 1ª parte
Herencia 1ª parteHerencia 1ª parte
Herencia 1ª parteUVM
 
Agregando comportamiento al objeto – estructuras de repetición
Agregando comportamiento al objeto – estructuras de repeticiónAgregando comportamiento al objeto – estructuras de repetición
Agregando comportamiento al objeto – estructuras de repeticiónUVM
 
Agregando comportamiento al objeto – estructuras de decision
Agregando comportamiento al objeto – estructuras de decisionAgregando comportamiento al objeto – estructuras de decision
Agregando comportamiento al objeto – estructuras de decisionUVM
 
Presentación de proyectos semestrales 01-15
Presentación de proyectos semestrales 01-15Presentación de proyectos semestrales 01-15
Presentación de proyectos semestrales 01-15UVM
 
Creación de archivos de clases en c#
Creación de archivos de clases en c#Creación de archivos de clases en c#
Creación de archivos de clases en c#UVM
 

Más de UVM (19)

Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglos
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stl
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadores
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicos
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datos
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funciones
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funciones
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembre
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Namespaces y C#
Namespaces y C#Namespaces y C#
Namespaces y C#
 
Herencia 1ª parte
Herencia 1ª parteHerencia 1ª parte
Herencia 1ª parte
 
Agregando comportamiento al objeto – estructuras de repetición
Agregando comportamiento al objeto – estructuras de repeticiónAgregando comportamiento al objeto – estructuras de repetición
Agregando comportamiento al objeto – estructuras de repetición
 
Agregando comportamiento al objeto – estructuras de decision
Agregando comportamiento al objeto – estructuras de decisionAgregando comportamiento al objeto – estructuras de decision
Agregando comportamiento al objeto – estructuras de decision
 
Presentación de proyectos semestrales 01-15
Presentación de proyectos semestrales 01-15Presentación de proyectos semestrales 01-15
Presentación de proyectos semestrales 01-15
 
Creación de archivos de clases en c#
Creación de archivos de clases en c#Creación de archivos de clases en c#
Creación de archivos de clases en c#
 

Último

Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 

Último (20)

Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 

Una solución para agregar estructura de repetición

  • 1. Una solución para agregar estructura de repetición a código OO Apoyo POO
  • 2. Recordamos el código que teníamos • Un programa que debe generar un reporte de calificaciones de varios alumnos. • El reporte debe mostrar el nombre del alumno y las 4 calificaciones que obtuvo cada alumno, también el promedio de calificaciones de cada alumno. • Además se debe mostrar al final, el promedio total por cada calificación y el promedio de todos los promedios. 2Mtl. Lourdes Cahuich
  • 3. Una forma de hacer esto con un ciclo de repetición - for • Para limitar el número de alumnos a capturar • Imaginemos que queremos capturar un máximo de 10 alumnos • Tendremos que crear un arreglo de 10 objetos tipo alumno • Después iremos llenando la información de cada alumno en un objeto alumno diferente. 3Mtl. Lourdes Cahuich
  • 4. Creamos un arreglo de 10 objetos • Esto se agrega en el código principal const int MAX_EST = 10; Estudiante [] est = new Estudiante[MAX_EST]; int contador = 0; public frmMain() { InitializeComponent(); } 4Mtl. Lourdes Cahuich
  • 6. En el botón guardar tengo que controlar que sólo se guarden hasta 10 alumnos private void btnGuardaDatos_Click(object sender, EventArgs e) { if (contador < MAX_EST) { est[contador] = new Estudiante(); guardaDatosAlumnos(est[contador]); contador++; } } 6Mtl. Lourdes Cahuich
  • 7. Proceso: “guardaDatosAlumno” void guardaDatosAlumnos(Estudiante e){ e.setNomEst(txtNomEst.Text); if (txtCalif1.Text != "") e.setCalif1(float.Parse(txtCalif1.Text)); else e.setCalif1(0); if (txtCalif2.Text != "") e.setCalif2(float.Parse(txtCalif2.Text)); else e.setCalif2(0); if (txtCalif3.Text != "") e.setCalif3(float.Parse(txtCalif3.Text)); else e.setCalif3(0); if (txtCalif4.Text != "") e.setCalif4(float.Parse(txtCalif4.Text)); else e.setCalif4(0); } 7Mtl. Lourdes Cahuich
  • 8. Para generar reporte – estructura “for” private void btnReporte_Click(object sender, EventArgs e) { String cadena = ""; float pc1, pc2, pc3, pc4, pp; pc1 = pc2 = pc3 = pc4 = pp = 0; cadena = "NOMBREttCAL1tCAL2tCAL3tCAL4tPROMn"; for (int i = 0; i < contador; i++) { cadena = cadena + string.Format("{0} t{1}t{2}t{3}t{4}t{5}n", est[i].getNomEst().ToString(), est[i].getCalif1().ToString(), est[i].getCalif2().ToString(), est[i].getCalif3().ToString(), est[i].getCalif4().ToString(), est[i].getPromedio().ToString()); pc1 = pc1 + est[i].getCalif1(); pc2 = pc2 + est[i].getCalif2(); pc3 = pc3 + est[i].getCalif3(); pc4 = pc4 + est[i].getCalif4(); pp = pp + est[i].getPromedio(); } pc1 = pc1 /(contador -1); pc2 = pc2 / (contador - 1); pc3 = pc3 / (contador - 1); pc4 = pc4 / (contador - 1); pp = pp / (contador - 1); cadena = cadena + string.Format("TOTALEStt{0}t{1}t{2}t{3}t{4}n", pc1,pc2,pc3, pc4, pp); //Mostrar reporte MessageBox.Show(cadena,"Reporte calificaciones“, MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk); } 8Mtl. Lourdes Cahuich
  • 9. Para generar reporte –estructura while private void btnReporte_Click(object sender, EventArgs e) { int i = 0; while (i < contador) { cadena = cadena + string.Format("{0}t{1}t{2}t{3}t{4}t{5}n", est[i].getNomEst().ToString(), est[i].getCalif1().ToString(), est[i].getCalif2().ToString(), est[i].getCalif3().ToString(), est[i].getCalif4().ToString(), est[i].getPromedio().ToString()); pc1 = pc1 + est[i].getCalif1(); pc2 = pc2 + est[i].getCalif2(); pc3 = pc3 + est[i].getCalif3(); pc4 = pc4 + est[i].getCalif4(); pp = pp + est[i].getPromedio(); i++; } pc1 = pc1 / (contador - 1); pc2 = pc2 / (contador - 1); pc3 = pc3 / (contador - 1); pc4 = pc4 / (contador - 1); pp = pp / (contador - 1); cadena = cadena + string.Format("TOTALEStt{0}t{1}t{2}t{3}t{4}n", pc1, pc2, pc3, pc4, pp); cadena = cadena + string.Format("nTotal de alumnos: {0}", contador); //Mostrar reporte MessageBox.Show(cadena, "Reporte calificaciones", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk); } 9Mtl. Lourdes Cahuich
  • 10. Estas son sólo unas soluciones… • Pero en la ciencia de la computación y la ingeniería, casi siempre hay varias soluciones para un mismo problema. • Sin embargo, siempre habrá soluciones más eficientes, precisas y elegantes que otras, el entrenamiento que viene de resolver y desarrollar muchos programas/algoritmos, es el que nos lleva a desarrollar mejores códigos cada vez. 10Mtl. Lourdes Cahuich