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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  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 3,536 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.286

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
***
Desconectado Desconectado

Mensajes: 3.355


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:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa .bat (ejecuta un conjunto de instrucciones)
Scripting
Kiosera 2 11,354 Último mensaje 30 Octubre 2011, 23:41 pm
por israel_3v
codigo para sacar de un conjunto de texto números « 1 2 »
Programación Visual Basic
leliCabello 19 7,851 Último mensaje 27 Julio 2010, 00:24 am
por Psyke1
Combinaciones numericas por posicion con numeros guias « 1 2 3 »
.NET (C#, VB.NET, ASP)
luis456 26 18,849 Último mensaje 28 Septiembre 2014, 16:13 pm
por luis456
Kaspersky acusa a Microsoft de abusar de su posición dominante y pide ....
Noticias
wolfbcn 0 1,403 Último mensaje 12 Noviembre 2016, 14:42 pm
por wolfbcn
Al arrancar windows 10, cambia la posición del acceso directo del block de notas
Windows
MA40 6 3,102 Último mensaje 14 Septiembre 2020, 16:27 pm
por Randomize
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines