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 - Meta

#1411
Scripting / Re: [Python] - mdc
21 Octubre 2010, 06:53 AM
Código (python) [Seleccionar]
from fractions import gcd
a = int(raw_input("Numero 1: "))
b = int(raw_input("Numero 2: "))
print gcd(a, b)


http://es.wikipedia.org/wiki/Algoritmo_de_Euclides#Implementaci.C3.B3n_en_pseudoc.C3.B3digo
#1412
Scripting / Re: [Python] - mdc
21 Octubre 2010, 05:46 AM
En teoría es así y no se deja. Mejor usar un for in ya que es el que se usa en estos ejercicios. Bueno, si quieres hacerlo funcionar con While, lo haremos, pero a mi no me sale y me  da error. Por algo será. Seguiré investigando porqué da ese error.
#1413
Scripting / Re: [Python] - mdc
21 Octubre 2010, 03:52 AM
Buenas campeón:

Ahora toca usar los for-in.
Código (python) [Seleccionar]
Num1 = int(raw_input('Agrega un número: '))
Num2 = int(raw_input('Agrega otro número: '))

#Num1 = 20
#Num2 = 10
Aux1 = Num1
Aux2 = Num2
Rest = 1
mcd = 1
mcm = 1

while Aux2 != 0
    Rest = Aux1 % Aux2
    Aux1 = Aux2
    Aux2 = Rest

mcd = Aux1
mcm = Num1 * Num2 / mcd


CitarFile "/home/user/NetBeansProjects/kami/src/kami.py", line 31
    while Aux2 != 0
                  ^
SyntaxError: invalid syntax

De todas maneras hay que usar el for-in si es posible.

Saludo.
#1414
Scripting / Re: [Python] - mdc
20 Octubre 2010, 10:35 AM
Hice algo de esto pero no se si tiene que ver.

Código (python) [Seleccionar]
num = int(raw_input('Agrega un número: '))
num_2 = int(raw_input('Agrega otro número: '))

creo_que_es_primo = True
divisor = 2
while divisor < num and creo_que_es_primo:
   if num % divisor == 0:
       creo_que_es_primo = False
   divisor += 1

   if creo_que_es_primo:
       print 'El número', num, 'es primo'
   else:
       print 'El número', num, 'no es primo'

creo_que_es_primo_2 = True
divisor_2 = 1
while divisor_2 < num_2 and creo_que_es_primo_2:
   if num_2 % divisor_2 == 0:
       creo_que_es_primo_2 = False
   divisor_2 += 1

   if creo_que_es_primo_2:
       print 'El número', num_2, 'es primo'
   else:
       print 'El número', num_2, 'no es primo'

# Como dice que los divida, me imagino que se refiere a esto.
n = num / num_2
print n



Estamos tratando del ejercicio sólo por ahora el 129.

Aquí hay algo que no se si realmente viene al cuento.
http://es.wikipedia.org/wiki/M%C3%A1ximo_com%C3%BAn_divisor

Saludo.
#1415
Scripting / [Python] - mdc
20 Octubre 2010, 09:59 AM

Partiendo de este ejemplo.

http://www.subeimagenes.com/img/129-130-4950.gif

Código (python) [Seleccionar]
num = int(raw_input('Agrega un número: '))

creo_que_es_primo = True
divisor = 2
while divisor < num and creo_que_es_primo:
   if num % divisor == 0:
       creo_que_es_primo = False
   divisor += 1

if creo_que_es_primo:
   print 'El número', num, 'es primo'
else:
   print 'El número', num, 'no es primo'


Hablando del ejercicio 129, por lo que entiendo, parece que hay que hacer cálculos de dos números enteros y luego dividirlo. El primero está así como indica arriba. ¿Cómo hago el otro en el mismo programa?
#1416
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 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

;)
#1417
Scripting / Re: [Python] - Menú con While.
17 Octubre 2010, 07:02 AM
He hecho algunas modificaciones.

Código (python) [Seleccionar]

from math import acos, pi, sqrt



opcion = ''
while opcion < 'a' or opcion > 'i':
#while opcion in 'abcdefghi':
    print '''Selecciona una opción:
            a) Introducir el primer vector.
            b) Introducir el segundo vector.
            c) Calcular la suma.
            d) Calcular la diferencia.
            e) Calcular el producto escalar.
            f) Calcular el producto vectorial.
            g) Calcular el ángulo (en gastos) entre ellos.
            h) Calcular la longitud.
            i) Finalizar. '''
           
    opcion = raw_input('Pulsa a, b, c, d, e, f, g, h o i, luego pulsa retorno de carro: ')
   
# Primer vector.
if  opcion == 'a':
    x1 = float(raw_input('Introduce valor x1: '))
    y1 = float(raw_input('Introduce valor y1: '))
    z1 = float(raw_input('Introduce valor z1: '))
    print 'Haz ingresado estos valores', x1, y1, z1, 'del primer vector.'

# Segundo vector.
elif opcion == 'b':
    x2 = float(raw_input('Introduce valor x2: '))
    y2 = float(raw_input('Introduce valor y2: '))
    z2 = float(raw_input('Introduce valor z2: '))
    print 'Haz ingresado estos valores', x2, y2, z2, 'del segundo vector.'

# Suma.
elif opcion == 'c':

        suma = (x1 + x2, y1 + y2, z1 + z2)
        print suma

# Diferencia.
elif opcion == 'd':

        diferencia = (x1 - x2, y1 - y2, z1 - z2)
        print diferencia

# Producto escalar.
elif opcion == 'e':

        producto = (x1 * x2 + y1 * y2 + z1 * z2)
        print producto

# Producto vectorial.
elif opcion == 'f':

        vectorial = (y1 * z2 - z1 * y2, z1 * x2 - x1 * z2, x1 * y2 - y1 * x2)
        print vectorial

# Ángulo.
elif opcion == 'g':
        angulo  = (180 / pi) * acos * (x1 * x2 + y1 * y2 + z1 * z2) / (sqrt(x1**2 + y1**2 + z1**2) * sqrt(x2**2 + y2**2 + z2**2))
        print angulo

# Longitud.
elif opcion == 'h':

        x = float(raw_input('Introduce valor x: '))
        y = float(raw_input('Introduce valor y: '))
        z = float(raw_input('Introduce valor z: '))

        longitud = sqrt(x**2+y**2+z**2)
        print longitud

elif opcion == 'i':
        print 'Gracias por usar el programa.'

else:
        print 'Puedes teclear estas siguientes opciones: a, b, c, d, e, f, g, h o i. Usted haz tecleado', opcion



Me da error técnico. Si pulsto la opción a), puedo rellenar los datos pero no puedo volver al menú automaticamente. Es como si el programa acabó.

Con este otro código me funciona algo mejor. he cambiado lo del while por otro, pero prefiero el de tu forma que esta.

Código (python) [Seleccionar]
# encoding: utf-8

from math import acos, pi, sqrt

opcion = ''
#while opcion < 'a' or opcion > 'i':
while opcion in 'abcdefghi':
    print '''Selecciona una opción:
            a) Introducir el primer vector.
            b) Introducir el segundo vector.
            c) Calcular la suma.
            d) Calcular la diferencia.
            e) Calcular el producto escalar.
            f) Calcular el producto vectorial.
            g) Calcular el ángulo (en gastos) entre ellos.
            h) Calcular la longitud.
            i) Finalizar. '''
           
    opcion = raw_input('Pulsa a, b, c, d, e, f, g, h o i, luego pulsa retorno de carro: ')
   
    # Primer vector.
    if  opcion == 'a':
        x1 = float(raw_input('Introduce valor x1: '))
        y1 = float(raw_input('Introduce valor y1: '))
        z1 = float(raw_input('Introduce valor z1: '))
        print 'Haz ingresado estos valores', x1, y1, z1, 'del primer vector.'

    # Segundo vector.
    elif opcion == 'b':
        x2 = float(raw_input('Introduce valor x2: '))
        y2 = float(raw_input('Introduce valor y2: '))
        z2 = float(raw_input('Introduce valor z2: '))
        print 'Haz ingresado estos valores', x2, y2, z2, 'del segundo vector.'

    # Suma.
    elif opcion == 'c':

            suma = (x1 + x2, y1 + y2, z1 + z2)
            print suma

    # Diferencia.
    elif opcion == 'd':

            diferencia = (x1 - x2, y1 - y2, z1 - z2)
            print diferencia

    # Producto escalar.
    elif opcion == 'e':

            producto = (x1 * x2 + y1 * y2 + z1 * z2)
            print producto

     # Producto vectorial.
    elif opcion == 'f':

            vectorial = (y1 * z2 - z1 * y2, z1 * x2 - x1 * z2, x1 * y2 - y1 * x2)
            print vectorial

    # Ángulo.
    elif opcion == 'g':
            angulo  = (180 / pi) * acos * (x1 * x2 + y1 * y2 + z1 * z2) / (sqrt(x1**2 + y1**2 + z1**2) * sqrt(x2**2 + y2**2 + z2**2))
            print angulo

    # Longitud.
    elif opcion == 'h':

            x = float(raw_input('Introduce valor x: '))
            y = float(raw_input('Introduce valor y: '))
            z = float(raw_input('Introduce valor z: '))

            longitud = sqrt(x**2+y**2+z**2)
            print longitud

    elif opcion == 'i':
            print 'Gracias por usar el programa.'

    else:
            print 'Puedes teclear estas siguientes opciones: a, b, c, d, e, f, g, h o i. Usted haz tecleado', opcion


Un error que me tiene harto es al pulsar el modo g).

Traceback (most recent call last):
  File "/home/user/NetBeansProjects/kam/src/kam.py", line 90, in <module>
    angulo  = (180 / pi) * acos * (x1 * x2 + y1 * y2 + z1 * z2) / (sqrt(x1**2 + y1**2 + z1**2) * sqrt(x2**2 + y2**2 + z2**2))
TypeError: unsupported operand type(s) for *: 'float' and 'builtin_function_or_method'
#1418
Cita de: criska 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 (python) [Seleccionar]
range(n, m)

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

Código (python) [Seleccionar]
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.
#1419
123)

Parece que es así:
Código (python) [Seleccionar]
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
    n = i
print n


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






124)

Código (python) [Seleccionar]
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
    n = i**2
print n


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





125)

Este parece que no me sale. Da resultado un poco raro.
Código (python) [Seleccionar]
n = int(raw_input('Introduce un número: '))
m = int(raw_input('Introduce un número: '))

sumatorio = 0
for i in range(n, m, 2):
    sumatorio += i
print sumatorio


CitarIntroduce 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.
#1420
Scripting / Re: [Python] - Menú con While.
16 Octubre 2010, 17:00 PM
Esta función no me funciona.

Código (python) [Seleccionar]
#
angulo  = (180 / pi) * acos * (x1 * x2 + y1 * y2 + z1 * z2) / (sqrt(x1**2 + y1**2 + z1**2) * sqrt(x2**2 + y2**2 + z2**2))
#
            print angulo


¿Por qué?