ciclos€¦ · ciclos controlados por contador el ciclo forse utiliza para hacer iteraciones...
TRANSCRIPT
22/04/20
Ing. Roberto Martínez Román [email protected] 1
Ciclos
RepitiendoinstruccionesenPython
Ing.RobertoMartínezRomá[email protected]
1
Ciclos controlados por contador
� Elciclofor seutilizaparahaceriteraciones(repeticiones).
� Elciclofor recorrecadaunodeloselementosdeunacolección.Unoalavez.
� Serepitetantasvecescomodatostengalacolección.
� Elnúmerodevecesqueserepiteelcicloesconocidoconanterioridad.
Ing.RobertoMartínezRomán- [email protected]
Iteraciones Visitaelementosdeunacolección
Sepuedeconocerelnúmerodeiteraciones
2
22/04/20
Ing. Roberto Martínez Román [email protected] 2
for
for variable in colección:instrucciones
Normalmente,lacolección esunasecuenciadevaloresquegeneralafunciónrange.
range(4),generalasecuencia[0,1,2,3]range(10),generalasecuencia[0,1,2,3,4,5,6,7,8,9]range(n),generalasecuencia[0,1,2…..,n-1]
Ing.RobertoMartínezRomán- [email protected]
3
Demo
Ing.RobertoMartínezRomán- [email protected]
4
22/04/20
Ing. Roberto Martínez Román [email protected] 3
Ejemplos
Pruebaenelshell dePython lassiguientesexpresiones
list(range(10))list(range(5))list(range(21))list(range(2))list(range(1))list(range(0))
Ing.RobertoMartínezRomán- [email protected]
5
La función range
� Estafuncióntienealgunasvariaciones.
� range(5) [0,1,2,3,4]
� range(3,6) [3,4,5]
� range(20,46,5) [20,25,30,35,40,45]
� range(20,50,5) [20,25,30,35,40,45]
Ing.RobertoMartínezRomán- [email protected]
6
22/04/20
Ing. Roberto Martínez Román [email protected] 4
Demo
Ing.RobertoMartínezRomán- [email protected]
7
Ejercicio
� Escribeciclosfor enPython paragenerarlassiguientesseriesdevalores.
� 2,4,6,8,10,12� 1,3,5,7,9,11,13,15� 50,40,30,20,10� -5,-6,-7,-8,-9� -2,-1,0,1,2
Ing.RobertoMartínezRomán- [email protected]
8
22/04/20
Ing. Roberto Martínez Román [email protected] 5
Ejercicio
� Escribeunprogramaquemuestraunalistadevaloresde1a20ylosclasificacomoparesoimpares.
01 impar02 par03 impar04 par… …20 par
Ing.RobertoMartínezRomán- [email protected]
9
Ejercicio
� Escribeunafunciónquedibujalasiguientecuadricula.UsaPIL.Laseparaciónentrelíneasesde20px.500x500
Ing.RobertoMartínezRomán- [email protected]
10
22/04/20
Ing. Roberto Martínez Román [email protected] 6
Ejercicio
� Escribeunprogramaquemuestraunalistadevaloresde1alimite ylosclasificacomoparesoimpares.
� limite lotecleaelusuario.
Ing.RobertoMartínezRomán- [email protected]
11
Ejercicio
� Escribeunafunciónqueimprimelatablademultiplicardelnúmero7.
� Escribeunafunciónqueimprimelatablademultiplicardeunnúmeroquellegacomoparámetro.� Agregacódigoparapreguntarlealusuarioelnúmerodelatablaquequierevereimprímelaenpantalla.
� EscribeunafunciónqueimprimeTODASlastablasdemultiplicar,de1a10.
Ing.RobertoMartínezRomán- [email protected]
12
22/04/20
Ing. Roberto Martínez Román [email protected] 7
Contadores
� Uncontador esunavariabledetipoenteroque"cuenta"oregistrasucesosqueocurrendentrodelprograma;lasoperacionesprincipalesson:
� Inicializar elcontador.Normalmentealiniciodelprogramaolafunción.• contador=0
� Contar.Generalmentedentrodeunacondiciónoenellugardondequeremosregistrarelsuceso.• contador=contador+1
Ing.RobertoMartínezRomán- [email protected]
13
Ejemplo de contador
� Escribeunprogramaquelea10valoresenterosdesdeelteclado,yqueimprimaelnúmerodevaloresnegativosleídos.
� Escribeunprogramaquelee5calificacioneseimprimeelnúmerodecalificacionesaprobatorias.
Ing.RobertoMartínezRomán- [email protected]
14
22/04/20
Ing. Roberto Martínez Román [email protected] 8
Acumuladores
� Unacumuladoresunavariableespecialquealmacenasumasoproductostotales.Agregaaunvalorinicialotrosvalores.Lasoperacionesprincipalesson:� Inicializar elacumulador.• acumulador=0 #Cuandoalmacenasumas• acumulador=1 #Cuandoalmacenaproductos
� Acumular.Agregaunvaloraltotal• acumulador=acumulador+valor• acumulador=acumulador*valor
Ing.RobertoMartínezRomán- [email protected]
15
Ejemplo
� Escribeunprogramaquelee5calificacioneseimprimeelpromediosólodelascalificacionesaprobatorias.
Ing.RobertoMartínezRomán- [email protected]
16
22/04/20
Ing. Roberto Martínez Román [email protected] 9
Comandos de ImageDraw
� Dibujarunalínea.� canvas.line( (50,50) + (450,450), "blue")
� canvas.line( [50, 50, 450, 450], (0,0,255))
� Dibujararcos.� canvas.arc( (200,200) + (300,300), 0, 180, "red")
� Dibujaelipses.� canvas.ellipse( (300,300) + (400,350), "red", "blue")
Ing.RobertoMartínezRomán- [email protected]
Puntoinicial
Puntofinal Color
RGB
Cuadroquecontieneelarco
Anguloinicial
Angulofnal
Color derelleno
Colorlínea
18
Comandos de ImageDraw
� Dibujarunrectángulo.� canvas.rectangle( (250,100) + (350,200), "blue")
� Dibujarmultilíneas.� canvas.line( (300,450) + (500,450) + (400, 300) + (300,450), "pink")
� Dibujarpolígonos.� canvas.polygon( (100,450) + (300,450) + (200, 300), "green")
Ing.RobertoMartínezRomán- [email protected]
Puedenagregarunparámetroparaindicarel
colordelalínea
19
22/04/20
Ing. Roberto Martínez Román [email protected] 10
Comandos de ImageDraw
� Dibujarrebanadasdepastel.� canvas.pieslice( (50, 100) + (250, 300), 0, 90, "yellow")
� Dibujarpixeles(puntos).� canvas.point( (150,200), "black")
� Dibujartexto.� canvas.text( (50,100), "ImageDraw", "orange")
Ing.RobertoMartínezRomán- [email protected]
https://pillow.readthedocs.io/en/3.0.x/reference/ImageDraw.html
20
Ejercicios
Ing.RobertoMartínezRomán- [email protected]
21
22/04/20
Ing. Roberto Martínez Román [email protected] 11
Ing.RobertoMartínezRomán- [email protected]
� Escribefuncionesquegenerenestasfiguras
22
Aproximando PI
� ExistendiferentesalgoritmosquenospermitenobtenerunabuenaaproximaciónalvalordelaconstantePI,unodeelloseselAlgoritmodeGottfriedWilhem vonLeibniz:
𝜋 𝑛 = 411−13+15−17+19−⋯
1𝑛
� Entremayorseaellímitedelaserie(n),esmáscercanalaaproximaciónqueseobtiene.
� ImplementalafunciónaproximarPI,querecibeellímiten delaserieparacalcularyregresarunaaproximacióndePI.
Ing.RobertoMartínezRomán- [email protected]
23
22/04/20
Ing. Roberto Martínez Román [email protected] 12
Ciclos anidados
� Sonciclosqueestándentrodeotrosciclos.
for i in range(5):for j in range(3):
print("i=", i, ", j=", j)
Ing.RobertoMartínezRomán- [email protected]
Pruebaestecódigo en:www.pythontutor.com/
25
Ejercicio
Ing.RobertoMartínezRomán- [email protected]
Escribeunafunción querecibalaalturadelasiguienteescalerayladibujeusandopygame.Lalongituddecadacuadroes50.
26
22/04/20
Ing. Roberto Martínez Román [email protected] 13
Ejercicio
� Escribeciclosparagenerarlasiguienteimagen.Sololoqueestáenelrecuadro:
Ing.RobertoMartínezRomán- [email protected]
27