Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - criskapunk

#251
Buenas Meta :)

En el primer ejercicio, segun entiendo, tenes que calcular la sumatoria de todos los numeros enteros comprendidos entre [n;m] (Ambos incluidos).

En tu primer codigo calculas bien la suma, solo que no incluis ningun numero impar ni el ultimo valor.

Devuelve esto:

0 + 2 + 4 + 6 + 8 = 20

En el segundo calculas la suma pero no la devolves :P Solo mostras el ultimo valor de i. En el tercero haces lo mismo que en el anterior, con la diferencia de que al no pasarle el tercer argumento a range(), tambien te muestra los numeros impares.

Una ultima cosa que acabo de leer :P La funcion range() devuelve una lista de numeros enteros sucesivos, desde el primer valor hasta el ultimo (Que NO se incluye), es decir, para calcular la sumatoria de los numeros del 1 al 10 por ejemplo, tendrias que usar algo asi:

Código (python) [Seleccionar]
range(n, m + 1)

Edito:

En el ejercicio 124 te pide calcular la sumatoria de los valores comprendidos en el intervalo [n,m] (Igual que el anterior) con la diferencia que ahora dichos numeros deben estar elevados al cuadrado.

Por ejemplo, usamos como valores n = 0 y m = 5

Salida en el 123

0 + 1 + 2 + 3 + 4 + 5 = 15

Salida en el 124

0 ** 2 + 1 ** 2 + 2 ** 2 + 3 ** 2 + 4 ** 2 + 5 ** 2 = 55

Y el ej. 125 tenes que calcular la sumatoria (Otra vez, igual que el primero) con la diferencia de que ahora solo tenes que usar los numeros pares.

Un saludo ;)
#252
Scripting / Re: Valores incorrectos
15 Octubre 2010, 23:40 PM
Si, debe ser por eso. No me había fijado cuanto devolvía la resta (Eso me pasa por suponer :P)

Lo resolví así:

Código (python) [Seleccionar]
b = (100, 50, 20, 10, 5, 2, 1, 0.5, 0.25, 0.1, 0.05)

v = float(raw_input("Ingrese vuelto: "))
i = 0
j = 0
l = len(b)

while i != l:
    while v - b[i] >= 0:
        # v -= b[i]
        v = (v * 10 - b[i] * 10) / 10
        j += 1
    if j != 0:
        print j, " billetes/monedas de ", b[i]
    j = 0
    i += 1
if v != 0:
    print "Con %.2f centavos imposibles de devolver" % v


Muchas gracias Novlucker! Un saludo ;)
#253
Scripting / Valores incorrectos [python]
15 Octubre 2010, 22:29 PM
Buenas chicos,

Estaba resolviendo este ejercicio y me surgió un problema:

CitarDada una cantidad de dinero, indicar como repartir el vuelto de manera que se utilice la menor cantidad de monedas.

Acá mi código:

Código (python) [Seleccionar]
b = (100, 50, 20, 10, 5, 2, 1, .5, .25, .1, .05)

v = float(raw_input("Ingrese vuelto: "))
i = 0
j = 0
l = len(b)

while i != l:
   while v - b[i] >= 0:
       v -= b[i]
       j += 1
   if j != 0:
       print j, " billetes/monedas de ", b[i]
       print "El valor restante es: ", v    # Esta unicamente para comprobar los resultados
   j = 0
   i += 1


La salida del script utlizando como valor 1807.35 es:


18  billetes/monedas de  100
El valor restante es:  7.35
1  billetes/monedas de  5
El valor restante es:  2.35
1  billetes/monedas de  2
El valor restante es:  0.35
1  billetes/monedas de  0.25
El valor restante es:  0.0999999999999
1  billetes/monedas de  0.05
El valor restante es:  0.0499999999999


Por qué después de hacer la resta 0.35-0.25 devuelve 0.09 y no 0.1? :-\

Un saludo y gracias ;)

#254
Scripting / Re: [Python] raíz n ésima
15 Octubre 2010, 20:30 PM
Perdón por el OT, pero WindHack, no entiendo que hace esta línea:

Código (python) [Seleccionar]
print 'r(%i) = %f' % (n,y)

Me podés explicar?

Un saludo y gracias ;)
#255
Scripting / Re: [Python] raíz n ésima
15 Octubre 2010, 17:17 PM
Según entiendo, tenes que hacer un script que a partir de un número dado calcule su raíz, tomando como valor del índice valores entre 2 y 100.

sqrt() sólo te serviría para calcular la raíz con el índice valiendo 2.





#256
Scripting / Re: [Python] - while
14 Octubre 2010, 04:35 AM
Buenas :)

Como dice el enunciado, este código lo que te pide es que muestres todas las potencias de dos cuyo resultado se encuentre entre 20 y 230 (Estos dos números inclusive).

Tu primer código:

Código (python) [Seleccionar]
i = 0
while i <= 230:
    i += 2**20
    print i


Inicializas la variable i en 0 y entrás en un bucle el cual se va a ejecutar mientras el valor de i sea menor o igual que 230. En la primer iteración i vale 0 y ejecuta lo que esta dentro del while. Al entrar asigna a i su valor mas 2**20 (0+1048576). Como el valor de i ahora es mayor que 230, no cumple la condición y no vuelve a entrar.

El otro code:

Código (python) [Seleccionar]
# Bucle.
i = 20
while i < 230:
   i += 1**2
   print i


Inicializas la variable i con valor 20. Como es menor que 230, entra en el bucle. Adentro asigna a i el valor de 1 elevado al cuadrado (Que viene a ser uno. Osea, es lo mismo que hacer i += 1 :P). Lo que hace es mostrar los valores del 21 al 230.

Lo que tenés que hacer es ir tomando valores, elevándolos al cuadrado e imprimirlos si el resultado se encuentra entre 20 y 230.

Podrías hacer algo asi:

Código (python) [Seleccionar]
i = 5    # Esto es porque 2**5 es el primer valor mayor o igual que 20
while 2 ** i <= 230:
   print 2 ** i
   i += 1


Un saludo ;)



#257
Scripting / Re: [Python] - while
13 Octubre 2010, 14:11 PM
Tu código está bien, pero no hace exactamente lo que pide el enunciado.

El mismo dice que dados dos valores n y m, obtener todos los múltiplos de n en el intervalo [n ; n*m], incluyendo los extremos. Entonces, el contador del bucle no tendría que comenzar en cero, sino en n.

Otra manera de hacerlo:

Código (python) [Seleccionar]
n = int(raw_input("Ingrese el valor de n: "))
m = int(raw_input("Ingrese el valor de m: "))
i = n    # Funcionara como divisor
k = n * m    # Funcionara como valor limite del bucle

print "Los multiplos de ", n, " entre [", n,";", n * m,"] son: "

while n <= k:
    if n % i == 0:
        print n
    n += 1


Un saludo ;)
#258
Buenas chicos, tengo unas preguntas sobre el primer capítulo (Perdón por la tardanza, comencé tarde a leerlo):


  • ¿Por qué los cifrados simétricos son mas seguros que los asimétricos con claves mas pequeñas?
  • Si cifro un mensaje utilizando mi clave privada, ¿es posible que alguien teniendo el texto cifrado y la clave pública, obtenga mi clave privada?

Un saludo y muchas gracias APOKLIPTICO por el taller, me fascina la criptografía ;D
#259
Scripting / Re: Raíz
11 Octubre 2010, 17:10 PM
Otra cosa (No se si tendra mucho que ver), pero la formula no es al reves?

Código (python) [Seleccionar]
sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
#260
Scripting / Re: [Python] Vocales y carácteres
8 Octubre 2010, 14:33 PM
Podes poner un elif en el segundo bloque.

Código (python) [Seleccionar]
caracter = raw_input('Introduce cualquier car&#225;cter: ')

var = ord(caracter)

if var >= 65 and var <= 90:
   if (var == 65 or var == 69 or var == 49 or var == 70 or var == 85):
       print "Vocal may&#250;scula."
   else:
       print "Consonante may&#250;scula."
elif var >=  97 and var <= 122:
   if (var == 97 or var == 101 or var == 105 or var == 111 or var == 117):
       print "Vocal min&#250;scula."
   else:
       print "Consonante min&#250;scula."


Un saludo ;)