continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...ejercicio 4 un número perfecto es...

59
Concepto de Repetición ...continuación

Upload: others

Post on 21-Sep-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Concepto de Repetición

...continuación

Page 2: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Recordatorio

while condición:acción_1acción_2acción_3...

Page 3: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Recordatorio

acción_1acción_2acción_3

.

.

condición = true

condición = false

While

Page 4: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 1● Realice la función que calcula la siguiente 

operación:– XY

Page 5: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def XelevadoY(x, y):r = 1while y > 0:

r = x * ry = y – 1

return r

Page 6: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 2● Realice una función que dice si un número 

es primo o no.

Page 7: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 2● Un número primo es aquel que sólamente es 

divisible por la unidad(1) y él mismo.

Page 8: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 2● ¿Cómo sabemos si un número a es divisible 

por un número b– a % b = 0 → a es divisible por b– a % b ≠0 → a no es divisible por b

● Ej:– 4%2 = 0– 5%3 = 2– 100%4 = 0

Page 9: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def Primo(x):c = 2while c < x:

if x % c == 0:return False

c = c + 1return True

Page 10: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 2(extensión)● Calcule e imprima todos los número primos 

del 1 al 100

Page 11: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def NumeroPrimos():c = 1while c <= 100:

if Primo(c):print c

c = c + 1

Page 12: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 3● Calcule el número е

Page 13: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 3

e=111!

12!

13!

14!

...1∞!

Page 14: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def e():e = 1.0c = 1while c <= ∞:

e = e + 1.0 / factorial(c)c = c + 1

return e

Page 15: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def e(n):e = 1.0c = 1while c <= n:

e = e + 1.0 / factorial(c)c = c + 1

return e

Page 16: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 3(extensión)● Calcule еx

Page 17: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 3(extensión)

e=1 x1

1!x2

2!x3

3!x4

4!... x∞

∞!

Page 18: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def ex(x, n):e = 1.0c = 1while c <= n:

e = e + XelevadoY(x, c) / factorial(c)c = c + 1

return e

Page 19: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 4● Realice una función que diga si un número 

es un número perfecto o no.

Page 20: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 4● Un número perfecto es un número, donde 

todos sus divisores sumados excepto él mismo, dan el número.– Ej:

● 6: 1+2+3 = 6● 28: 1+2+4+7+14 = 28● 496: 1+2+4+8+16+31+62+124+248

Page 21: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuestadef NumeroPerfecto(n):

c = 1s = 0while c < n:

if n % c == 0:s = s + c

c = c + 1if s == n:

return Trueelse:

return False

Page 22: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 5(Mundo)● Realice el programa que rodea el mundo 

infinítamente.● La posición de la ardilla es aleatoria pero 

siempre estará pegada al mundo.

Page 23: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 5(Mundo)

Page 24: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def MirarSinPared():while hasWallInFront():

TURNLEFT()

Page 25: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def VueltaMundo():while True:

MirarSinPared()MOVE()TURNRIGHT()

Page 26: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 5(extensión)● Rodee sólo 1 vez el mundo● La ardilla posee 1 grano en el estómago

Page 27: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def UnaVueltaMundo():while not hasFood():

if getMouth() > 0:putFood()

MirarSinPared()MOVE()TURNRIGHT()

Page 28: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 5(extensión)● Rodee el mundo en sentido contrario

Page 29: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def MirarSinPared():while hasWallInFront():

TURNRIGHT()

Page 30: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def VueltaMundo():while True:

MirarSinPared()MOVE()TURNLEFT()

Page 31: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 6(Mundo)● La ardilla tiene una hectárea de cultivo, 

coséchela de la siguiente manera:– Si no hay semilla, plante una.– Si hay una semilla, riégela para que se 

transforme en una planta.– Si hay una planta, recójala.

Page 32: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 6(Mundo)● Especificaciones:

– 0 semillas = No hay semilla– 1 semilla = Semilla– 2 semillas = Planta

● Las dimensiones de la hectarea son desconocidas

● Usted empieza siempre en la esquina inferior izquierda

Page 33: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 6(Mundo)● Vuelva a la posición inicial después de 

cosechar la hectárea.

Page 34: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 6(Mundo)

Estado Inicial

Page 35: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 6(Mundo)

Estado Final

Page 36: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuestadef ContarSemillas():

c1 = 0# Cuento cuantas haywhile hasFood():

eat()c1 = c1 + 1

c2 = 0# Devuelvo las semillas contadaswhile c2 != c1:

putFood()c2 = c2 + 1

return c1

Page 37: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def Cosechar():s = ContarSemillas()if s == 0: # Planto una semilla

putFood()if s == 1: # Riego la semilla

putFood()if s == 2: # Recojo la planta

eat()eat()

Page 38: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def CultivarLinea():while not hasWallInFront():

Cosechar()MOVE()

Cosechar() # La última casilla queda faltando por cosechar

Page 39: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuestadef PosicionInicial():

# Vuelta 180ºTURNLEFT()TURNLEFT()# Avance hasta el finalwhile not hasWallInFront():

MOVE()# Vuelta 90ºTURNRIGHT()# Avance hasta el finalwhile not hasWallInFront():

MOVE()# Vuelta 180ºTURNLEFT()TURNLEFT()

Page 40: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

   

def CosecharHectarea():Izquierda = True  # Indica hacia donde esta la siguiente líneaFinal        = False # Indica su estoy en el final de la hectareawhile not Final:

CultivarLinea()# Gira a la siguiente líneaif Izquierda:

TURNLEFT()else:

TURNRIGHT()# Si hay pared es porque estoy al finalif hasWallInFront():

Final = True# Si no, me muevo a la siguiente línea y cambio el sentido de la siguiente líneaelse:

MOVE()if Izquierda:

TURNLEFT()Izquierda = False

else:TURNRIGHT()Izquierda = True

# Vuelvo a la posición inicialPosicionInicial()

Page 41: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 7(Mundo)● Sume 2 números de extensión desconocida 

representados por semillas● Cada fila representa un número● Imprima el resultado bajo la sentencia print

Page 42: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 7(Mundo)

Estado Inicial+ 43502      8763

Page 43: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 7(Mundo)

52265

Estado Final

Page 44: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuestadef ContarDigito():

c1 = 0# Cuento el dígitowhile hasFood():

eat()c1 = c1 + 1

c2 = 0# Devuelvo la comidawhile c2 != c1:

putFood()c2 = c2 + 1

return c1

Page 45: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def HallarNumero():c = 0 # Unidades, decenas, centenas, etc.n = 0 # Acumulado del número# Cuento todos los dígitos y los transformowhile not hasWallInFront():

n = n + ContarDigito() * 10**cc = c + 1 # Aumento la potencia de 10MOVE()

return n

Page 46: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuestadef Sumar():

MOVE()n1 = HallarNumero() # Hallo el primer número# Bajo la ardilla a la siguiente líneaTURNLEFT()MOVE()TURNLEFT()# Devuelvo la ardillawhile not hasWallInFront():

MOVE()# Volteo y pongo la ardilla en posición para leer el númeroTURNLEFT()TURNLEFT()MOVE()n2 = HallarNumero() # Hallo el segundo números = n1 + n2 # Los sumoprint s # Imprimo la suma

Page 47: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 7(extensión)● Escriba la suma en la última línea de igual 

manera a como se escribieron los números a sumar

Page 48: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 7(extensión)

Estado Final

Page 49: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def EscribirNumero(n):while n > 0:

putFood()n = n ­ 1

Page 50: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuesta

def Sumar2Digitos(r):n1 = ContarDigito() #Primer DigitoTURNLEFT()MOVE()n2 = ContarDigito() # Segundo DigitoMOVE()s = n1 + n2 + r # Sumelos más el residuoEscribirNumero(s % 10) # Unidadesreturn s / 10 # Decenas se acumulan

Page 51: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuestadef Sumar2():

r = 0# Sume todos las columnaswhile not hasWallInFront():

MOVE() # Siguiente columnar = Sumar2Digitos(r) # Guardo el residuo para la siguiente columna# Me devuelvoTURNLEFT()TURNLEFT()MOVE()MOVE()TURNLEFT()

# Retorno a la posición inicial  TURNLEFT()  TURNLEFT()  while not hasWallInFront():  MOVE()

Page 52: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 8(Mundo)● La ardilla guarda su comida para el futuro en 

huecos● Realice el algoritmo que llena los huecos y el 

algortimo que recoge toda la comida

Page 53: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 8(Mundo)

Estado Incial

Page 54: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 8(Mundo)

Estado Final

Page 55: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuestadef TrabajarHueco(poner):

c = 0 # Profundidad del huecowhile not hasWallInFront():

MOVE()if poner == True: # Tengo que llenarlo

putFood()else: # Tengo que vaciarlo

eat()c = c + 1

TURNLEFT()TURNLEFT()while c != 0: # Salgo del Hueco

MOVE()c = c ­ 1

Page 56: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuestadef LlenarHuecos():

# Tanteo toda la tierra por huecoswhile not hasWallInFront():

MOVE()TURNRIGHT()if not hasWallInFront(): # Encontré un hueco!

TrabajarHueco(True) # Lo trabajo(lleno)TURNRIGHT()

else: # No es un hueco, sigoTURNLEFT()

Page 57: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 8(Mundo)

Estado Incial

Page 58: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Ejercicio 8(Mundo)

Estado Final

Page 59: continuacióncic.javerianacali.edu.co/wiki/lib/exe/fetch.php?...Ejercicio 4 Un número perfecto es un número, donde todos sus divisores sumados excepto él mismo, dan el número

Respuestadef VaciarHuecos():

# Tanteo toda la tierra por huecoswhile not hasWallInFront():

MOVE()TURNRIGHT()if not hasWallInFront(): # Encontré un hueco!

TrabajarHueco(False) # Lo trabajo(vace)TURNRIGHT()

else: # No es un hueco, sigoTURNLEFT()