domingo, 9 de enero de 2011

Ejercicios resueltos de programación, en Python y en español, I.

Hola. Este es el primero de la serie de artículos que presentaré estos días sobre una colección de ejercicios muy  básicos de programación, para resolver con Python (o cualquier otro lenguaje). Decir que son muy sencillos y sirven para afianzar conocimientos básicos de sintaxis y razonamiento. Si eres novel en programación ó en Python, este post es para tí. De lo contrario, te resultarán triviales los planteamientos expuestos.

Los enunciados los he obtenido del libro Esquemas Algorítmicos Fundamentales - Secuencias e Iteración, de P.C. Scholl y J.P. Peyrin, editorial Masson.


Ejercicio 1.
Escribir un algoritmo que, para cualquier número de segundos inferior a un millón, calcule su equivalente en días, horas, minutos y segundos.

En este ejercicio tenemos que tener en cuenta que:

1 minuto = 60 segundos.
1 hora = 60 minutos = 3600 segundos.
1 dia = 24 horas = 1440 minutos = 86400 segundos.

# Pedimos datos.
dato = raw_input(u'Número de segundos: ')

# Hacemos un cast, convirtiendo la cadena en un número largo.
dato = long(dato)

# Comprobamos si el número introducido es menor a un millón.
if dato >= 1000000:
    print "El número debe de ser menor a 1000000"
else:
    # Días.
    ndias, aux = divmod(dato, 86400)
    # Horas.
    nhoras, aux = divmod(aux, 3600)
    # Minutos y segundos.
    nmin, nseg = divmod(aux, 60)
    # Mostramos resultado.
    print '%d días, %d horas, %d minutos, %d segundos' % \
          (ndias, nhoras, nmin, nseg)

Ejercicio 2.
Escribir un algoritmo que imprima el mínimo, el máximo y la media de tres números.

# Obtenemos números.
numeros = []
for i in ['primer', 'segundo','tercer']:
    texto = u'Introduce el %s número: ' % (i)
    numeros.append(float(raw_input(texto)))

# Ordenamos.
numeros.sort()

# Obtenemos máximo y mínimo.
minimo = numeros[0]
maximo = numeros[2]

# Obtenemos la media aritmética.
media = round((numeros[0] + numeros[1] + numeros[2]) / float(3),3)

# Visualizamos resultados.
cadena = u'Mínimo: %d, Máximo: %d, Media: %f' % (minimo, maximo, media)
print cadena

Ejercicio 3.
Escribir un algoritmo que, dado el infinitivo de un verbo regular de la primera conjugación, obtenga la conjugación en singular y plural de presente de indicativo. Por ejemplo, para el verbo cantar el resultado es yo canto, tu cantas, el canta, nosotros cantamos, vosotros cantáis, ellos cantan.


pronombre = ['yo','tu','el','nosotros','vosotros','ellos']

terminaciones = {'yo':'o',
                 'tu':'as',
                 'el':'a',
                 'nosotros':'amos',
                 'vosotros':u'áis',
                 'ellos':'an'}

# Pedimos datos.
palabra = raw_input(u'Verbo regular 1ra. conjugación: ')

# Recorremos la tabla hashing (diccionario), construyendo la conjugación verbal.
for i in pronombre:
    print i, palabra[0:len(palabra)-2] + terminaciones[i]

Ejercicio 4.
Escribir un algoritmo que, para un número binario de 4 cifras, imprima su valor en base 10. Se estudiarán dos formas del problema según la representación de los datos:
    -forma 1: los datos son cuatro enteros (0 ó 1). Por ejemplo: 1,1,0,1.
    -forma 2: el dato es un entero cuya representación decimal con cuatro
              cifras no contenga más que 0 ó 1: Por ejemplo: 1101.


# Obtenemos datos.
nbinario = raw_input(u'Número binario (4 cifras): ')

# Obtenemos los dígitos.
nbinario = nbinario.split(',')
if len(nbinario) == 1: nbinario = list(nbinario[0])

# Inicializamos algunos contadores.
decimal = 0
potencia = 0

# Le damos la vuelta al número binario.
nbinario.reverse()

# Calculamos el número decimal, a partir del número binario.
for i in nbinario:
    decimal += pow(2,potencia) if i == '1' else 0
    potencia += 1

# Visualizamos resultado.
cadena = u'Su representación decimal es %d' % (decimal)
print cadena

Ejercicio 5.
Escribir un algoritmo que decodifique fechas del siglo XXI. El dato es un entero comprendido entre 10100 y 311299. El resultado es una secuencia de caracteres: número del día dentro del mes, del mes dentro del año y del año dentro del siglo. Por ejemplo, para el dato 30485, el resultado es el texto 3-4-2085.


# Obtenemos dato.
dato = raw_input('Introduce dato: ')

# Decodificamos año dentro del siglo XXI.
anyo = 2000 + int(dato[len(dato)-2:])

# Decodificamos mes.
mes = int(dato[len(dato)-4:len(dato)-2])

# Decodificamos día.
dia = int(dato[:len(dato)-4])

# Mostramos resultado.
cadena = '%d-%d-%d' % (dia, mes, anyo)
print cadena

Ejercicio 6.
Escribir un algoritmo que, para una suma de dinero dada, indique cómo descomponerla en billetes y monedas corrientes. Se desea utilizar el mínimo de billetes y monedas. No hay ninguna limitación respecto al número de billetes y monedas disponibles.


# Declaramos datos básicos (euros) con los que trabajar.
billetes_y_monedas = [500,200,100,50,20,10,5, 2, 1, 0.50, 0.20, 0.10,
0.05, 0.02, 0.01]

# Creamos un monedero, donde meter el dinero.
monedero = []

# Pedimos la cantidad.
dato = raw_input(u'Introducir importe (euros): ')

# Buscamos parte decimal y entera.
dato = dato.split('.')

# Decimal...
try: parte_decimal = float('0.'+dato[1])
except: parte_decimal = 0.0

# Entera...
parte_entera = long(dato[0])

# Algoritmo de asignación de dinero.
for i in billetes_y_monedas:
    # Obtenemos número de billetes ó monedas y los guardamos.
    unidades, resto = divmod(parte_entera, i)
    if unidades != 0:
        monedero.append((i,unidades))
        # Asignamos lo que nos queda.
        parte_entera = resto

if parte_decimal > 0:
    for i in billetes_y_monedas:
        # Obtenemos número de monedas y los guardamos.
        unidades, resto = divmod(parte_decimal, i)
        if unidades != 0:
            monedero.append((i,unidades))
            # Asignamos lo que nos queda.
            parte_decimal = round(resto,2)

# Visualizamos el resultado.
cadena = ''
for i in monedero:
    if i[0] >= 5: cadena += '%d billete/s de %d euros' % (i[1],i[0])
    if i[0] < 5: cadena += '%d moneda/s de %s euros' % (i[1],i[0])
    cadena += '\n'
print cadena

Ejercicio 7.
Escribir un algoritmo que simule el funcionamiento de una calculadora. El dato es una serie de tres caracteres: una cifra, un símbolo de operación y otra cifra. El resultado es el valor de la expresión dada.

# Pedimos datos.
dato = raw_input(u'Introduce operación: ')

# Inicializamos resultado.
resultado = 0

# ¿Suma?
serie = dato.split('+')
if len(serie) == 2: resultado = long(serie[0]) + long(serie[1])
else:
    # ¿Resta?
    serie = dato.split('-')
    if len(serie) == 2: resultado = long(serie[0]) - long(serie[1])
    else:
        # ¿Multiplicación?
        serie = dato.split('*')
        if len(serie) == 2: resultado = long(serie[0]) * long(serie[1])
        else:
            # ¿División?
            serie = dato.split('/')
            if len(serie) == 2: resultado = long(serie[0]) / long(serie[1])

# Mostramos resultado.
print "El resultado es",resultado

Ejercicio 8.
Consideremos una hora expresada en forma de tripleta . Escribir un algoritmo que imprima la hora correspondiente al siguiente segundo. Por ejemplo, para la entrada 13,43,24 tiene que devolver 13,43,25.

Se supone que lo que introducimos es una hora correcta. Darse cuenta que no se chequean los datos introducidos, por cuestión de simplicidad.

# Pedimos datos.
tiempo = raw_input('Introduce tiempo: ')

# Obtenemos datos.
aux = tiempo.split(',')
horas = int(aux[0])
minutos = int(aux[1])
segundos = int(aux[2])

# Aumentamos un segundo.
segundos += 1

# Casos.
if segundos != 60:
    tiempo = (horas, minutos, segundos)
else:
    if minutos == 59 and horas == 23:
        tiempo = (0, 0, 0)
    else:
        if minutos == 59:
            tiempo = (horas + 1, 0, 0)
        else:
            tiempo = (horas, minutos + 1, 0)

# E imprimimos resultado (una tupla).
print tiempo

Ejercicio 9.
Escribir una función que determine si una letra dada es consonante.

A la función le faltaría controlar las letras con acentuación (tildes, diéresis, etc).

def es_consonante(letra):
    if letra.lower() not in ['a','e','i','o','u']:
        return True
    else:
        return False

Ejercicio 10.
Escribir una función que calcule el factorial de un número. Por ejemplo, 5! = 5*4*3*2*1 = 120.


def factorial(numero):
    return 1 if numero <=0 else numero * factorial(numero -1)

Saludos.

77 comentarios:

  1. Esta es una solución más corta para el problema 6:

    #-*- coding: UTF-8 -*-

    cifra = float(raw_input(u'¿Cuántos euros? '))

    monedas = [500, 200, 100, 50, 20, 10, 5, 2, 1]

    cociente = cifra

    centimos = int(100 * (cifra - int(cifra)))

    for x in monedas:
    if cociente >= x:
    cociente, resto = divmod(cociente, x)
    if x > 2:
    print cociente, ' billete de ', x
    if x == 2:
    print cociente, ' monedas de ', x
    if x == 1:
    print cociente, ' moneda de ', x
    cociente = resto
    print centimos, u' céntimos'

    ResponderEliminar
  2. Espero que no tengáis problemas con la indentación (o sangrado) de líneas del programita que he puesto anteriormente.

    ResponderEliminar
  3. justo lo k necesitava saludos

    ResponderEliminar
  4. alguien sabe como puedo hacer este ejercicio?

    haz un programa que pida al usuario una cantidad de euros, una tasa de interes y un numero de años. muestra por pantalla en cuanto se habra convertido el capital inicial trancurrido esos años si cada año se aplica la tasa de interes introducida
    recuerda que un capital C de euros a un teres del x por cien durante n años se conveirte nen c.(1+x/100)n[elevado] euros
    Prueba tu programa sabiendo que una cantidad de 10.000 euros al 4.5% de interes anual se convierte en 24117.14 euros al cabo de 25 años

    ResponderEliminar
  5. ejercioio 93 de la pag 98 del libro por favoooooooooooooooooooooooooooooooooooooooooooooooooooor

    ResponderEliminar
  6. Hola Anónimo. El ejercicio que dices no tengo ni idea de donde lo has sacado, ya que los ejercicios que yo he hecho son de un manual, que no tiene nada que ver con el que tú me comentas.

    Por otro lado, la solución que necesitas es la siguiente:

    # Pedimos datos.
    euros = float(raw_input("Cantidad de euros: "))
    tasa_interes = float(raw_input(u"% tasa de interés: "))
    num_anyos = int(raw_input(u"Número de años: "))

    # Hacemos los cálculos.
    tasa_interes_porcent = float(tasa_interes)/100
    total = euros * pow((1 + tasa_interes_porcent), num_anyos)

    # Y sacamos por pantalla.
    print round(total, 2)

    Una última cosa. Tienen que ser 20 años y no 25, para un total de 24117.14 al 4.5% (ahí te has confundido, seguro).

    Espero haberte ayudado. Saludos.

    ResponderEliminar
    Respuestas
    1. no entiendo esto pow((1 + tasa_interes_porcent), num_anyos)

      Eliminar
  7. hola estoy aprendiendo a usar python y no se q condicion poner para el if en este problema q es muy facil..
    Disena un programa que, dado un numero entero, muestre por pantalla el mensaje 'El
    numero es par.' cuando el numero sea par y el mensaje 'El numero es impar.' cuando sea
    impar.
    (Una pista: un numero es par si el resto de dividirlo por 2 es 0, e impar en caso contrario.)

    ResponderEliminar
  8. Hola Anónimo. Prueba con esto:

    def tipo_numero(numero):
    if (numero % 2) == 0:
    print u"El número es par"
    else:
    print u"El númuero es impar"

    ResponderEliminar
    Respuestas
    1. si pero lo divide una ves no mas.. y si ingresas 4 ... 4/2 no es cero y te tira q es impar

      Eliminar
    2. había un señor tan pero tan flaco, que no tenia dedo gordo

      Eliminar
  9. implementa un programa que muestre todos los multiplos entre 6 y 150


    como puedo resolverlo????

    ResponderEliminar
  10. haz un progama que pida el valor de dos enteros n y m y calcule el sumatorio de todos los numeros pares comprendidos entre ellos (incluyendolos en el caso que sean pares)

    ResponderEliminar
  11. la solucion para los multiplos de 6 entre 6 y 150 es esta espero que te sirva:

    a = 6
    multiplo = 1

    while multiplo <= 25:
    print a * multiplo
    multiplo += 1

    #puse 25 porque 150 dividido 6 es 25..
    y el programa pide hasta 150 inclusive

    ResponderEliminar
  12. diseña un programa que, dado un número entero, determine si éste es el doble de un número impar. (ej. 14 es el doble de 7, que es impar). :(

    ResponderEliminar
  13. #determine si el nro es doble de un nro impar

    nro = int(raw_input('ingrese un nro entero: '))
    mitad = nro / 2

    if mitad % 2 = 0:
    print 'su mitad no es impar'
    else:
    print 'su mitar es impar'

    ResponderEliminar
  14. por favorr! "hacer un programa que calcule el maximo comun divisor de tres numeros enteros positivos"! no tengo idea de como hacerlo! Barbara

    ResponderEliminar
  15. q onda el programa de mcd???

    ResponderEliminar
  16. lo necesito por favor!!

    ResponderEliminar
  17. Si estaria buenisimo uno del mcd yo tambien lo necesito!!!!!!!

    ResponderEliminar
  18. # aca esta el de MCD.. le puse los guiones para q dejen exactamente esa cant de espacios..

    print 'MAXIMO COMUN DIVISOR'

    a = int(raw_input('ingrese primer nro: '))
    b = int(raw_input('ingrese segundo nro: '))
    c = int(raw_input('ingrese tercer nro: '))

    mcd = 0

    if c < a > b:
    --if b < c:
    ----for i in range(1, b+1):
    ------if a % i ==0 and b % i ==0 and c % i ==0:
    --------mcd = i
    ----print 'mcd:', mcd
    --elif c < b:
    ----for i in range(1, c+1):
    ------if a % i ==0 and b % i ==0 and c % i ==0:
    --------mcd = i
    ----print 'mcd:', mcd

    if c < b > a:
    --if a < c:
    ----for i in range(1, a+1):
    ------if a % i ==0 and b % i ==0 and c % i ==0:
    --------mcd = i
    ----print 'mcd:', mcd
    --elif c < a:
    ----for i in range(1, c+1):
    ------if a % i ==0 and b % i ==0 and c % i ==0:
    --------mcd = i
    ----print 'mcd:', mcd


    if b < c > a:
    --if a < b:
    ----for i in range(1, a+1):
    ------if a % i ==0 and b % i ==0 and c % i ==0:
    --------mcd = i
    ----print 'mcd:', mcd
    --elif b < a:
    ----for i in range(1, b+1):
    ------if a % i ==0 and b % i ==0 and c % i ==0:
    --------mcd = i
    ----print 'mcd:', mcd

    ResponderEliminar
  19. necesito ejercicios para resolver!

    ResponderEliminar
  20. class Empleados:
    def inicializar (self,nombre,cedula,sueldo):
    self.nombre=nombre
    self.cedula=cedula
    self.sueldo=input("INGRESE SU SUELDO: ")

    def imprimir (self):
    if self.sueldo >1500000:
    print "EL EMPLEADO ",self.nombre
    print "CON NUMERO DE IDENTIFICACION " ,self.cedula
    print "CON UN SUELDO DE ",self.sueldo
    print "PAGA IMPUESTOS"
    else:
    print "EL EMPLEADO ",self.nombre
    print "CON NUMERO DE IDENTIFICACION " ,self.cedula
    print "CON UN SUELDO DE ",self.sueldo
    print "NO PAGA IMPUESTOS"
    empresa=Empleados()
    empresa.inicializar("JULIAN","950595455","")
    empresa.imprimir()
    empresa2=Empleados()
    empresa2.inicializar("OSCAR","94645644","")
    empresa2.imprimir()
    input("DIGITE CUALQUIER TECLA PARA SALIR ")

    ResponderEliminar
  21. juan cruz...urgente...
    hola quisiera preguntar si alguien me puede ayudar a resolver este ejercicio que no hay forma que me salga


    modifica el programa para que sea el usuario quien proporcione, mediante el teclado, el numero de suspensos,aprobados,notables y sobresalientes.(antes de dibujar el grafico de pastel debes convertir esas cantidades en porcentajes)



    desde ya gracias

    ResponderEliminar
  22. Hola, tengo un problema en python que no he podido resolver. Es realizar una funcion en python que pída un numero entero y el numero de digitos que tiene y que devuelva la suma de los digitos del numero entero.

    ResponderEliminar
  23. alguien que haga este ejrcicio plz:Escribe una función corta que toma una cadena y saca la primera y la ultima letra de
    la cadena. Por ejemplo corta(“Schwarz”) sería “chwar”.

    ResponderEliminar
  24. alguien que pueda resolver estos ejercicios
    1. Construir un algoritmo que calcule el monto mensual que adeuda un cliente que compra un equipo de sonido al crédito, sabiendo que el monto de compra recibe un incremento del 19% de impuesto, así como, de 5% de interés mensual por cada letra que fracciona.
    2. Un hospital a recibido una donación especial que será repartida de la siguiente manera: 45% para Medicina General, 30% para Cardiología, 15% para Pediatría y el resto para Traumatología. Diseñe un algoritmo que determine cuanto recibirá cada área.

    ResponderEliminar
  25. necesito ayuda, necesito un algoritmo para contar las palabras en cada capítulo de un fichero sin que me tenga en cuenta las palabras del titulo del capítulo, es urgente.....

    ResponderEliminar
  26. hola alguien mepuede ayudar con este progrma es que soy nueva en python y nose como hacerlo:

    8.Haz un programa que pida el valor de dos enteros n y m y calcule el sumatorio de todos los números pares comprendidos entre ellos (incluyéndolos en el caso de que sean pares).

    ResponderEliminar
  27. hola nesecito ayuda,,,,de sig: problema...
    Construir un algoritmo que calcule el monto mensual que adeuda un cliente que compra un equipo de sonido al crédito, sabiendo que el monto de compra recibe un incremento del 19% de impuesto, así como, de 5% de interés mensual por cada letra que fracciona.

    ResponderEliminar
  28. alguien sabe algun programa q publique el nombre de tu suegra..!!o algo parecido ..!!chevere los programas sigan x q me ayudaron ..!!
    gracias..

    ResponderEliminar
  29. BUenas me gustaria me ayudaran con un problemita que me han dado en el cole es el siguiente

    1) Capture un número entero de dos dígitos y determinar a cuánto es igual la suma de sus dígitos.
    2) Capture un número entero de tres dígitos y determinar a cuánto es igual la suma de sus dígitos. Luego evalúe si el resultado de la suma es un número par o impar.

    Gracias

    PD: soy nuevesito en esto y aun no le cojo bien el piso gracias

    ResponderEliminar
  30. ingresa el valor de n que muestre la siguiente estructura
    ejp: n= 5
    54321
    4321
    321
    21
    1

    ResponderEliminar
  31. Necesito el programa de este ejercicio.. Calcular la menor de cinco palabras dadas: es decir, la primera palabra de las cinco en orden alfabetico. O sea "pepita" es menor q "pepito"

    ResponderEliminar
    Respuestas
    1. en python es bien facil, solo pedi las palabras como cadenas y ve compararlas con un if

      Eliminar
  32. hola necesito un programa en python q me tire el palabras,tildes y consonantes en total de cada una en un archivo guardado en un pad no puedo usar un split

    ResponderEliminar
  33. necesito un programa que resuelva el juego del 15

    ResponderEliminar
  34. Hola necesito ayuda para realizar el ejercicio 124 del libro Introduccion a la progamacion con phyton

    ResponderEliminar
  35. hola quiero saber como se hace el ejercicio 135 de la pagina 120 del libro Introduccion a la progamacion con phyton de Andres Marzal.

    ResponderEliminar
  36. necesito ayuda con un programa que incluya diccionario, listas , for, while de python plis..........

    ResponderEliminar
  37. Hola hoy tengo examne de programacion python podiras asesorarme en linea? es a las 6:15 pm hora peruana.Espero ayuda. Gracias totales

    ResponderEliminar
  38. ayuda con hacer un programa que reciba N y dibuje dos figuras :
    un cuadrado de N filas por ejm si ingreso 5, deberia inprimir
    *****
    *****
    *****
    *****

    ResponderEliminar
    Respuestas
    1. #include
      using namespace std;
      void delay(int sec)
      {
      for(int i = (time(NULL) + sec); time(NULL) != i; time(NULL));
      }
      int main()
      {
      int sec=0;
      int N=0,a=0,j=0;

      cout<<"INTRODUZCA UN NUMERO ENTERO: " <>N;
      for(j=0;j<=N-1;++j)
      {
      for(a=0;a<=N-1;++a)
      {
      cout<<"*";
      }
      cout<<endl;
      }


      sec=30;
      delay(sec);
      return 0;
      }

      Eliminar
  39. realizar un programa que reciba una exprecion matematica que contenga suma ,resta, multiplicacion y division y que realice la operacion .
    ejm:
    procesa0 operaciones ('2+4*5+6-8/2)=24
    procesa0 operaciones ('1+0*5+3-8/2-9/3) =-1

    ResponderEliminar
  40. necesito ayuda con este ejercicio: defina una funcion que devuelva el numero de dias que tiene un año determinado, ten en cuenta que un año en visiestro, si es divisible por 4 y no divisible por 100 execto si tambien es divisible por 400 en cuyo caso es visiestro

    ResponderEliminar
  41. para el de maximo comun divisor, te complicas, hace esto:

    def mcd(a,b):
    print " maximo comun divisor"
    while a != 0:
    a,b = b%a, a
    return b
    print mcd(21,70)

    ResponderEliminar
  42. Hola...
    Alguien me podria ayudar con este ejercicio?
    Cual es el resultado de b en este caso? muchas gracias!!!

    a = 70
    b = 78
    a += b
    b += a
    b=???

    ResponderEliminar
  43. hola espero que alguien me ayude a resolver este ejercicio urgente porfis :

    Elabore un programa que seleccione candidatos en una entrevista. Para ser aceptado el candidato debe reunir cualquiera de los siguientes criterios>
    Ser química mayor que 25, y no ser graduado de Yale .
    Ser economista graduado de Harvard y no ser mayor que 28.
    Ser graduado de Yale, mayor que 25 y no estudiar química.

    ResponderEliminar
  44. Buena noche deseo me ayuden a resolver este problema. Garcias

    "Crea una clase Alumno {13 pts.} Un alumno tendrá tres datos(atributos): nombre, apellido y una lista de notas inicialmente vacía. Crea un método agregar_nota, que añada una nota a la lista de notas. Crea un método nota_media (promedio de notas), que devuelva la nota media del alumno. Crea un método imprime_ficha, que muestre en pantalla todos los datos del alumno: Nombre, apellido, lista de notas y nota media"

    ResponderEliminar
  45. hola tengo un problema de skool :S

    me piden:

    imprimir el factorial de "X" utilizando a IF y DEF..
    ____________________________________________________________

    y me imagino ke es el problema 3 que me encargaron que es:


    Factorial de x:
    si x es == 0:
    regresa él 1
    si no regresa x * factorial de x-1


    creo que es algo asi

    Def factorial (x):
    if x==0:
    return 1
    else:
    return x * factorial(x - 1)

    pero..

    me da error despues de que ingreso(en modo interactivo) la primera linea y doy enter..

    nada mas se queda
    ..._

    y no hace nada mas...

    podrian ayudarme con esos 2??

    Grax

    ResponderEliminar
  46. porfavor ayudenme..urgente..!!
    Capturar los datos mas importantes de una mercancía cualesquiera, incluyendo cantidad, precio, etc., desplegar una orden de compra, solo si el producto es de origen nacional, en caso contrario no hacer nada.

    ResponderEliminar
  47. Hola me gustaria si alguien puede darme una mano con este ejercicio: Haz un programa que vaya leyendo numeros y mostrandolos por pantalla hasta que el
    usuario introduzca un numero negativo. En ese momento, el programa mostrara un mensaje de despedida y finalizara su ejecucion.
    es el ejercicio 134 de "Introduccion a la programacion con python"
    Desde ya gracias!!

    ResponderEliminar
  48. Hola. Necesito si me pueden resolver el siguiente ejercicio: Dise˜na un programa que, dados cinco puntos en el plano, determine cu´al de los cuatro ultimos puntos es mas cercano al primero. Un punto se representara con dos variables: una para la abcisa y otra para la ordenada. La distancia entre dos
    puntos (x1, y1) y (x2, y2) es: sqrt((x1 − x2)**2 + (y1 − y2)**2)).
    Por favor necesito la respuesta para mañana a la mañana.

    ResponderEliminar
  49. El ejercicio que les nombro en el comentario anterior es del libro Introducción a la programación con Python. Es el número 84 y aparece en la página 93. Espero su o sus respuestas. Desde ya muchas gracias. Chau.

    ResponderEliminar
  50. hacer un jueguito similar a aorcado en python : porfis quien puede ?

    ResponderEliminar
    Respuestas
    1. Sería algo parecido a Esto

      #Creamos las listas palabrau la que introduce el usuario
      # palabra_jugador con la que se maneja el usuario
      palabrau=raw_input("Nueva palabra : ")
      palabra=[]
      palabra_jugador=[]
      #Pasamos los datos de la palabrau a palabra
      for x in palabrau:
      palabra.append(x)
      #Agregamos "-" a la lista palabra_jugador
      for x in range(0,len(palabrau)):
      palabra_jugador.append("-")
      #Creamos un ciclo Para pedir las letras
      while palabra!=palabra_jugador:
      letra=raw_input("Letra :")
      letra=str(letra)
      #Si la letra esta es la palabra sigue
      if letra in palabra:
      #Si la letra se encuentra mas de 1
      if palabra.count(letra)>1:
      for x in range(0,palabra.count(letra)):
      posicion=palabra.index(letra)
      palabra.pop(posicion)
      palabra.insert(posicion,"#")
      palabra_jugador.pop(posicion)
      palabra_jugador.insert(posicion,letra)

      else:
      posicion=palabra.index(letra)
      palabra.pop(posicion)
      palabra.insert(posicion,"#")
      palabra_jugador.pop(posicion)
      palabra_jugador.insert(posicion,letra)
      #imprimir palabra_jugador
      print palabra_jugador
      #Si no esta la letra en la palabra
      else:
      print"No existe la letra"

      Eliminar
  51. Hola necesito ayuda con el ejercicio 132:
    "En realidad no hace falta explorar todo el rango de números entre 2 y n-1 para saber si un numero n es o no primo.Basta con explorar el rango de números entre 2 y la parte entera de n/2.Modifica el programa para que solo exploremos ese rango"
    si me pueden dar al menos una pista estaría mas que agradecido.Gracias!

    ResponderEliminar
  52. hola necesito ayuda con este ejercicio porfa
    en realidad no hace falta explorar todo el rango de numeros entre 2 y n/2 para saber si un numero n es o no es primo.basta con explorar en rango de numero entre 2 y la parte entera de raiz cuadrada de n.modifica el programa para que solo exploremos ese rango..
    gracias!!

    ResponderEliminar
    Respuestas
    1. en realidad el ejercicio del rango lo debes hacer con for in range en donde en su argumento es(2, raíz cuadrada de n)y lo demás pasos como esta en el libro..veras q da el mismo resultado haciéndolo con n-1...espero q te sirva nos vemos!!

      Eliminar
  53. Hola necesito una mano con esto:Haz un programa que almacene en a una lista obtenida con range (1,n),donde n es un entero q se pide al usuario y modifique dicha lista para que cada componente sea ugual al cuadrado del componente original..Gracias!

    ResponderEliminar
  54. por favor ayudenme con este problema :)

    Escriba un programa que realiza el siguiente en este orden:
    1. Pida al usuario que introduzca su apellido paterno.
    2. Pida al usuario que introduzca su nombre.
    3. Pida al usuario el año de su nacimiento
    4. Imprima primero el nombre y luego el apellido del usuario con el siguiente mensaje:

    a) "Usted es un niño" si es menor de 13 años
    b) "Usted es un adolescente" si es menor de 20 años y mayor de 12 años
    c) "Usted es adulto" si tiene 30 años o más

    ResponderEliminar
  55. por favor alguien muy inteligente me podria ayudar hacer un programa que dice:
    diceñar un algoritmo que ingrese una palabra y imprima en codigo binario ok

    ResponderEliminar
  56. Muy buenas, necesito que alguien me ayude con este problema en código Python 3.1:

    "Escribir un programa que dado una cantidad entera de centimos de euro, escriba su equivalencia en monedas de 1,2,5,10,20,50 y en monedas de 1 y 2 € de forma que haya el menor número posible de cada valor."

    yo ya he escrito una pequeña parte, pero no sé como continuar. Muchas gracias por vuestra atención.

    def monedas(x):
    if x>0:
    d=
    b=x//100
    c=x//200
    return (b)
    a=int(input("Introduzca cantidad de dinero:"))
    y=monedas(a)
    print(a,"centimos, son",y,"€")

    ResponderEliminar
  57. por favor si me podeis ayudar, tengo un problema que no lo puedo plantear que es el siguiente:

    (Dado un numero Binario, implementar un programa que nos calcule el numero de ceros (0) que contiene dicho numero binario).

    si me poeis ayudar por favor

    atte. Andrea

    ResponderEliminar
  58. El usuario debe ingresar el día y mes de su cumpleaños y el programa le debe decir a
    que signo corresponde..... ayudenme con este ejercicio....

    ResponderEliminar
  59. hola me piden UNIVERSIDAD LA SALLE
    PROYECTO FINAL
    DE PROGRAMACIÓN
    PARTE I: Selección de Vuelos
    A usted se le solicita realizar un programa que permita la compra de pasajes aéreos por Internet. El usuario deberá indicar el tipo de vuelo: SOLO IDA o IDA Y VUELTA. El usuario deberá indicar la ciudad de origen y la ciudad de destino.
    Por simplicidad solo se tienen los siguientes destinos:
    Arequipa – Lima : US $ 64.00
    Lima - Trujillo : US $ 50.00
    Arequipa – Tacna : US$ 30.00
    Debe indicar las fechas del viaje tanto de Ida como de Retorno. Debe garantizar que la fecha de retorno sea después de la fecha de partida.
    Existen 3 tipos de tarifas: Adultos, Niños e Infantes. Se considera Adulto a partir de los 12 años. Se considera niño de los 2 a los 11 años. Se considera infante desde los 0 a los 23 meses. El adulto paga el pasaje normal. El niño para el 80% del precio del pasaje. El infante solo paga el 15% del precio del pasaje.
    El programa debe preguntarle la cantidad de pasajes a comprar por cada uno de los tipos

    Figura 1
    Una vez ingresados los datos. El programa debe mostrar un mensaje con el cálculo de la tarifa a pagar para cada uno de los pasajeros. Tal como se muestra a continuación:

    Figura 2
    PARTE II: Datos del Pasajero
    Luego de visualizar los datos del pago como en la imagen 2. El programa deberá solicitar al usuario los datos del pasajero (o pasajeros) detallados a continuación:
    Titulo, Nombre, Apellido, Tipo de Documento (DNI o Pasaporte), Numero del documento de identidad, y País de Emisión


    Figura 3
    A continuación el programa pedirá la información de contacto: Nombre del pasajero a contactar, correo electrónico, teléfono fijo, teléfono trabajo y teléfono movil

    Figura 4

    PARTE III: Pago
    En esta parte, el usuario tendrá la opción de seleccionar entre dos formas de pago: Tarjeta de Crédito y Presencial.

    Figura 5
    Si el usuario selecciona Presencial, el programa le deberá mostrar las opciones mostradas en la figura

    Figura 6
    Si el usuario selecciona la opción Tarjeta de Crédito. El programa le deberá mostrar las opciones que aparecen en la Figura 7.

    Figura 7

    FECHA REVISION PRIMER AVANCE: 16 DE NOVIEMBRE
    Evaluación:
    • Captura correcta de datos
    • Calculo correcto de tarifa de acuerdo si es Solo Ida, o Ida y Vuelta
    • Calculo correcto de tarifas según cantidad de pasajeros
    • Calculo correcto de tarifas de acuerdo al tipo de pasajero(adulto, infante o niño)
    • Ingreso correcto de fechas
    • Mostrar el resumen de tarifas tal como se muestra en la figura 2 para cada uno de los pasajeros
    • El sistema debe considerar si el usuario digita los datos en mayúscula o en minuscula

    FECHA REVISIONO ENTREGA FINAL: 23 DE NOVIEMBRE
    • Ingreso datos de pasajeros de acuerdo a la cantidad de pasajes comprados
    • Mostrar menú de opciones para el tipo de pago escogido
    • Selección del tipo de pago.



    ayuden please

    ResponderEliminar
  60. pueden ayudarme con sto:
    Reemplace cada vocal por su siguiente vocal. Por ejemplo, si recibe ’vestuario’ debe devolver
    ’vistaerou’.

    ResponderEliminar
  61. Hola necesito resolver este ejercicio urge para examen gracias:

    Se ha Instalado medidores de contaminantes atmosféricos en diversas poblaciones se quiere conocer por cada población la media de contaminantes y cuál es la población que tiene mayor nivel y cual menor nivel de contaminantes.

    El usuario entrara una secuencia con la siguiente estructura:

    10- 32,28,15,9,17 * 21- 42,28,25,19,45,30 * 3- 18,20,44,53,27
    En esta cadena tenemos diferentes poblaciones con sus medidas separadas por asterisco y las medidas de cada población separadas por (,) donde el valor anterior al guión corresponde al código de la población.

    El programa ha de mostrar

    La población 10 tiene una media de 20.2
    La población 21 tiene una media de 31.5
    La población 3 tiene una media de 32.4

    La población con mejor nivel es la 10
    La población con peor nivel es la 3

    ResponderEliminar
  62. Hola necesito resolver este ejercicio urge para examen gracias:

    Se ha Instalado medidores de contaminantes atmosféricos en diversas poblaciones se quiere conocer por cada población la media de contaminantes y cuál es la población que tiene mayor nivel y cual menor nivel de contaminantes.

    El usuario entrara una secuencia con la siguiente estructura:

    10- 32,28,15,9,17 * 21- 42,28,25,19,45,30 * 3- 18,20,44,53,27
    En esta cadena tenemos diferentes poblaciones con sus medidas separadas por asterisco y las medidas de cada población separadas por (,) donde el valor anterior al guión corresponde al código de la población.

    El programa ha de mostrar

    La población 10 tiene una media de 20.2
    La población 21 tiene una media de 31.5
    La población 3 tiene una media de 32.4

    La población con mejor nivel es la 10
    La población con peor nivel es la 3

    ResponderEliminar
    Respuestas
    1. hola necesito hacer un programa en el cual podamos votar por tres candidatos y haci mismo q el programa nos muestre q candidato tuvo mas votos...ayudenme porfa

      Eliminar
  63. Hola, Hola:
    Felicito al Dueño del blog y es interesante el uso de Python, la verdad que lo tengo en la maquina y mirando estos ejercicios voy a probar, pero como se guarda el programita que uno hace, como se lo hace funcionar luego para mostrarlea los demas lo que uno hace, es mi prime acercamiento a Pithon, y este blog lo encontre demasiado interesante.-
    Gracias y suerteee!!!

    ResponderEliminar
  64. Hola, Hola:
    Felicito al Dueño del blog y es interesante el uso de Python, la verdad que lo tengo en la maquina y mirando estos ejercicios voy a probar, pero como se guarda el programita que uno hace, como se lo hace funcionar luego para mostrarlea los demas lo que uno hace, es mi prime acercamiento a Pithon, y este blog lo encontre demasiado interesante.-
    Gracias y suerteee!!!

    ResponderEliminar
  65. El ejercicio de la calculadora pero que cada metodo realice un return del resultado de la operacion solicitada.

    ResponderEliminar
  66. alguien sabe como crear este programa :
    diseña un programa que dado 5 numeros enteros, determine cual de lso cuatro ultimos numeros es mas cercano al primero ( ejemplo : si el usuario introduce los numeros 2,6,4,1 y 10 el programa respondera que el numero mas cercano a 2 es 1 )

    ResponderEliminar