Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Meta en 16 Octubre 2010, 12:13 pm



Título: [Python] for in y sumatorios en persona.
Publicado por: Meta en 16 Octubre 2010, 12:13 pm
 :D

Ver imagen de los ejercicios (http://www.subeimagenes.com/img/tres-4596.jpg)

Ver libro del Python (http://marmota.act.uji.es/mtp/pdf/python.pdf) en pdf página 113.


123)

Código
  1. n = int(raw_input('Introduce un número: '))
  2. m = int(raw_input('Introduce un número: '))
  3.  
  4. sumatorio = 0
  5. for i in range(n, m, 2):
  6.    sumatorio += i
  7. print sumatorio

Citar
Introduce un número: 0
Introduce un número: 10
20

¿Realmente es así lo que pide el ejercicio 123?

Por si acaso lo hago como lo creo de otra manera ya que pide el resultado n+i por lo que he entendido hasta ahora el ejercicio 123.

Código
  1. n = int(raw_input('Introduce un número: '))
  2. m = int(raw_input('Introduce un número: '))
  3.  
  4. sumatorio = 0
  5. for i in range(n, m, 2):
  6.    sumatorio += i
  7.    n = i
  8. print n

Citar
Introduce un número: 0
Introduce un número: 10
8

Como podrán ver, dan resultados diferentes. He hecho dos ejercicios del 123. ¿Tengo alguno hecho bien o ninguno?

Edito 1:


Ahora creo que es este:
Código
  1. n = int(raw_input('Introduce un número: '))
  2. m = int(raw_input('Introduce un número: '))
  3.  
  4. sumatorio = 0
  5. for i in range(n, m):
  6.    sumatorio += i
  7.    n = i
  8. print n









124)


¿Me pueden confirmar si lo hice como he entendido?

Código
  1. n = int(raw_input('Introduce un número: '))
  2. m = int(raw_input('Introduce un número: '))
  3.  
  4. sumatorio = 0
  5. for i in range(n, m**2, 2):
  6.    sumatorio += i
  7.    n = i
  8. print n

Resultado del ejercicio 124).
Citar
Introduce un número: 0
Introduce un número: 10
98

Edito 2:

Ahora creo el 124) es este:
Código
  1. n = int(raw_input('Introduce un número: '))
  2. m = int(raw_input('Introduce un número: '))
  3.  
  4. sumatorio = 0
  5. for i in range(n, m**2):
  6.    sumatorio += i
  7.    n = i
  8. print n

Citar
Introduce un número: 0
Introduce un número: 10
99







125)

Código
  1. n = int(raw_input('Introduce un número: '))
  2. m = int(raw_input('Introduce un número: '))
  3.  
  4. sumatorio = 0
  5. for i in range(n, m, 2):
  6.    sumatorio += i
  7. print sumatorio

Citar
Introduce un número: 0
Introduce un número: 10
20

 :)


Título: Re: [Python] for in y sumatorios en persona.
Publicado por: criskapunk en 16 Octubre 2010, 15:24 pm
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:

Código:
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
  1. 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

Código:
0 + 1 + 2 + 3 + 4 + 5 = 15

Salida en el 124

Código:
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 ;)


Título: Re: [Python] for in y sumatorios en persona.
Publicado por: Meta en 16 Octubre 2010, 17:14 pm
123)

Parece que es así:
Código
  1. n = int(raw_input('Introduce un número: '))
  2. m = int(raw_input('Introduce un número: '))
  3.  
  4. sumatorio = 0
  5. for i in range(n, m):
  6.    sumatorio += i
  7.    n = i
  8. print n

Citar
Introduce un número: 0
Introduce un número: 10
9






124)

Código
  1. n = int(raw_input('Introduce un número: '))
  2. m = int(raw_input('Introduce un número: '))
  3.  
  4. sumatorio = 0
  5. for i in range(n, m):
  6.    sumatorio += i
  7.    n = i**2
  8. print n

Citar
Introduce un número: 0
Introduce un número: 10
81





125)

Este parece que no me sale. Da resultado un poco raro.
Código
  1. n = int(raw_input('Introduce un número: '))
  2. m = int(raw_input('Introduce un número: '))
  3.  
  4. sumatorio = 0
  5. for i in range(n, m, 2):
  6.    sumatorio += i
  7. print sumatorio

Citar
Introduce un número: 0
Introduce un número: 10
20

Parece que el 123) y 124) ya lo tengo bien.

El 124) no tengo idea.

¿Qué opinan?

http://es.wikipedia.org/wiki/Sumatorio

Saludo.


Título: Re: [Python] for in y sumatorios en persona.
Publicado por: criskapunk en 16 Octubre 2010, 17:21 pm
El 123.

Esta bien, solo que no usas el intervalo completo. Usando n = 0 y m = 10

Código
  1. range(n, m)

Usa los numeros del 0 al 9 (No incluye el 10). Para incluirlo tenes que hacer:

Código
  1. range(n, m + 1)

Y en el print tenes que mostrar sumatorio :P

Un saludo ;)


Título: Re: [Python] for in y sumatorios en persona.
Publicado por: flony en 16 Octubre 2010, 22:06 pm
Código:
n = int(raw_input('Introduce un número: '))
m = int(raw_input('Introduce un número: '))
 
sumatorio = 0
for i in range(n, m):
    sumatorio += (i*i)
    n = i
print n
creo q es asi


Título: Re: [Python] for in y sumatorios en persona.
Publicado por: Meta en 17 Octubre 2010, 06:05 am
El 123.

Esta bien, solo que no usas el intervalo completo. Usando n = 0 y m = 10

Código
  1. range(n, m)

Usa los numeros del 0 al 9 (No incluye el 10). Para incluirlo tenes que hacer:

Código
  1. range(n, m + 1)

Y en el print tenes que mostrar sumatorio :P

Un saludo ;)

No incluye el 10 porque se cuenta el 0. Si quieres que aparezca el 10 debes poner un 11.

Quiero saber si lo que pide los tres ejercicios están ya bien.


Título: Re: [Python] for in y sumatorios en persona.
Publicado por: ¡Micronet! en 17 Octubre 2010, 06:40 am
Chiviadamente Meta... me as inspirado... seguire tus pasos la verdad.

Voi a ponerme a estudiar "Ruby" por mi cuenta jejeje :)
me gusto tu entusiasmo de querer aprender :)


Título: Re: [Python] for in y sumatorios en persona.
Publicado por: Meta en 17 Octubre 2010, 07:16 am
Hola ¡Micronet!:

Me fui animando primero, tardé por lo menos un año o más en decidirme cual lenguaje escoger para aprender a programar algo y si es que realmente haría algo para empezar en vez de ser observador sin hacer nada. Casi escojo Ruby, al ver que hay mucha más documentación sobre Python encontré un buen libro de PDF (http://marmota.act.uji.es/mtp/pdf/python.pdf) por todas partes, muchos ejemplos y mucha gente que le gusta Python.

Al final le voy cogiendo el gusto de la programación de Python, hace más cosas de lo que imaginaba, eso si, me cuesta mucho esfuerzo y eso que el PDF lo explica muy bien. Por otro lado los ejercicios que me están apoyando este foro a intentar buscar soluciones las guardo en Word. Al releer el libro ya tengo los ejemplos hechos y por si se me olvida algo recordarlo. Como dice el dicho: "El que quiere algo, le cuesta".

Para los visitantes que no sepan del libro puedes verlo.
http://marmota.act.uji.es/mtp/pdf/python.pdf

;)


Título: Re: [Python] for in y sumatorios en persona.
Publicado por: ¡Micronet! en 17 Octubre 2010, 15:06 pm
Hola ¡Micronet!:

Me fui animando primero, tardé por lo menos un año o más en decidirme cual lenguaje escoger para aprender a programar algo y si es que realmente haría algo para empezar en vez de ser observador sin hacer nada. Casi escojo Ruby, al ver que hay mucha más documentación sobre Python encontré un buen libro de PDF (http://marmota.act.uji.es/mtp/pdf/python.pdf) por todas partes, muchos ejemplos y mucha gente que le gusta Python.

Al final le voy cogiendo el gusto de la programación de Python, hace más cosas de lo que imaginaba, eso si, me cuesta mucho esfuerzo y eso que el PDF lo explica muy bien. Por otro lado los ejercicios que me están apoyando este foro a intentar buscar soluciones las guardo en Word. Al releer el libro ya tengo los ejemplos hechos y por si se me olvida algo recordarlo. Como dice el dicho: "El que quiere algo, le cuesta".

Para los visitantes que no sepan del libro puedes verlo.
http://marmota.act.uji.es/mtp/pdf/python.pdf

;)

Si de echo. pero como no he visto nada de ruby por el momento me pondre a checar eso. y si desde el momento que comente por primera vez uno de tus temas, ataque el libro jeje :), porque tambien lo veo por mientras bueno ahurita ya dejamos de usarlo pero lo ataque por cualquier cosa :)


Título: Re: [Python] for in y sumatorios en persona.
Publicado por: criskapunk en 17 Octubre 2010, 17:12 pm

No incluye el 10 porque se cuenta el 0. Si quieres que aparezca el 10 debes poner un 11.

Quiero saber si lo que pide los tres ejercicios están ya bien.

Ahi esta el problema, en que no incluyes el 10 (o al numero que hayas puesto).

Este codigo (Con valores 0 y 10)

Código
  1. n = int(raw_input('Introduce un número: '))
  2. m = int(raw_input('Introduce un número: '))
  3.  
  4. sumatorio = 0
  5. for i in range(n, m):
  6.    sumatorio += i
  7.    n = i
  8. print sumatorio

Te devuelve la suma de 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45

Falta el ultimo valor, que es el que no incluis. Esa es la razon de porque usar range(n, m + 1)

Código
  1. n = int(raw_input('Introduce un número: '))
  2. m = int(raw_input('Introduce un número: '))
  3.  
  4. sumatorio = 0
  5. for i in range(n, m + 1):
  6.    sumatorio += i
  7.    n = i
  8. print sumatorio

Que devuelve 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55

Un saludo ;)