elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Programa que pide un conjunto de números y los cambia de posición
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa que pide un conjunto de números y los cambia de posición  (Leído 831 veces)
ThePaquet1

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Programa que pide un conjunto de números y los cambia de posición
« en: 5 Marzo 2021, 16:37 pm »

Buenas, estoy haciendo un programa que su funcionamiento es el siguiente:

- Pido por teclado un conjunto de números separados por espacios, específicamente 5, por ejemplo:

Código:
1 5 4 3 2

- Esos números representan una torre, siendo el primer número introducido que está más abajo y el último el que está más arriba, así:

Código:
2
3
4
5
1

- Después pido que introduzcan "movimientos" (otro conjunto de números separados por espacios), específicamente 3 números, ejemplo:

Código:
2 3 2

- Estos números representan los movimientos que se han hecho sobre la torre. El primer movimiento da la vuelta a las 2 primeras tortitas, sobre la torre resultante se da la vuelta a las 3 primeras tortitas y sobre la torre resultante se da la vuelta a las 2 primeras. A continuación hago una demostración, la primera torre es la original que puse antes, y las demás son aplicando los movimientos (la segunda torre con el movimiento 2, la tercera torre con el movimiento 3 y la cuarta torre con el movimiento 2):

Código:
2        3        4        2
3        2        2        4
4   ->   4   ->   3   ->   3
5        5        5        5
1        1        1        1

- Por último, cuando se hayan realizado todos los movimientos, se devuelve el valor que se encuentre arriba de la torre. En el ejemplo que he puesto la salida sería:

Código:
2

Esto es lo que he hecho:
Código:
print("Introduzca la posición de los cinco números:")
num1, num2, num3, num4, num5 = input().split()
numeros = [num5, num4, num3, num2, num1]
numero = []

x = list(map(int, input("Introduzca los movimientos que va a realizar: ").split()))

for z in range(len(x)):
    for y in range(x[z]):
        numero.append(numeros[y])
    numero.reverse()
    for y in range(len(numero)):
        numeros[y] = numero[y]
    numero.clear()
for p in range(len(numeros)):
    print(numeros[p])
print("El número que se encuentra en la cima de la torre es el: " + numeros[0])

El programa funciona perfectamente, me muestra la torre final con los movimientos aplicados y el número que está arriba de la torre, pero al parecer me han dicho que debería haber hecho todo con arrays y que eso está mal, pero que yo sepa lo he hecho con un array, ¿no? ¿Hay alguna otra forma con arrays de hacer esto?

Muchas gracias por adelantado.


En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.273

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Programa que pide un conjunto de números y los cambia de posición
« Respuesta #1 en: 9 Marzo 2021, 04:24 am »

habría que ver que es lo que quieren o esperan quienes te dan el ejercicio, hay muchas formas de resolver esto, inclusive me cauda gracia el término array, es una lista como tal, según lo que pusiste un ejemplo:
Código
  1. #-*- coding: utf -8 -*-
  2. print("Introduzca la posición de los cinco números:")
  3. numeros=[int(x) for x in input(">> ").split()][::-1]
  4. movimientos = [int(x) for x in input("Introduzca los movimientos que va a realizar: ").split()]
  5. temp=numeros[:]
  6. for j in movimientos:
  7.  
  8.    numeros[0] = numeros[j-1]
  9.    numeros[j- 1] = temp[0]
  10.    temp=numeros[:]
  11.    print(numeros) #opcional
  12. print("El número que se encuentra en la cima de la torre es el: ",numeros[0])    
  13.  
  14.  

como dije es una de las tantas formas, no te muestro otra porque no me interesa el criterio que tengan los que esperan la respuesta.


En línea

Serapis
Colaborador
***
Conectado Conectado

Mensajes: 2.559


Ver Perfil
Re: Programa que pide un conjunto de números y los cambia de posición
« Respuesta #2 en: 9 Marzo 2021, 19:35 pm »

... pero al parecer me han dicho que debería haber hecho todo con arrays y que eso está mal, pero que yo sepa lo he hecho con un array, ¿no? ¿Hay alguna otra forma con arrays de hacer esto?
Lo que quieren es que pienses, que sepas cómo sucede, no simplemente que hagas que suceda...

Dicho de otro modo: Quieren que uses bucles y que cambies elementos de un array a otro o dentro del mismo array usando variables temporales e índices entre elementos.
No quieren que utilices métodos de objetos que te faclitan el trabajo... eso para cuando seas profesional ahora toca aprender como hacerlo 'manualmente'.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines