[PYTHON]Programa que te pida 3 números y te diga cual de los dos primeros está más cerca del tercero


Dark

🔥root313🔥
Staff
Moderador
Paladín de Nodo
Jinete de Nodo
Burgués de Nodo
Noderador
Nodero
Noder Pro
Noder
Bien, el ejercicio es ese, lo del título, no se puede usar la función "abs", lo había planteado de la siguiente manera:

99b261ac8d4db215483dd8ae34197a27.png


Pero ni de coña, tengo que pensar en TODAS las posibles combinaciones de 3 números y me explota la cabeza, alguien me echa una mano?

Este es el enunciado: Escribe un programa que pida tres números y diga si el tercero está más cerca del primero o del segundo.
 
  • Like
Reacciones : Capitan9709

Kalubino

Me hago el del flow pero no chivo
Noderador
Nodero
Noder
Puedes hacer un bucle que vaya restando o sumando de uno en uno al primer numero hasta que llegue al tercero y con un contador miras cuantas veces lo ha hecho, repites con el segundo y comparas el contador, el que menos veces lo haya hecho será el que esté más cerca.
 
Solution

Kalubino

Me hago el del flow pero no chivo
Noderador
Nodero
Noder
lo acabo de hacer en pseudocódigo, que es la mierda que estamos dando en clase, te dejo el código, faltaría ponerle la opcion de si están a la misma distancia, peor eso supongo que sabrás hacerlo.

PD: No soy un experto, pero es lo que se me ha ocurrido.


Algoritmo Ejercicio

n1 <- 0
n2 <- 0
n3 <- 0
r1 <- 0
r2 <- 0
contador1 <- 0
contador2 <- 0


Escribir "Introduce un número: "
Leer n1
Escribir "Introduce un número: "
Leer n2
Escribir "Introduce un número: "
Leer n3
r1 <- n1
r2 <- n2
Repetir
Si n1>n3 Entonces
r1 <- r1-1
contador1 <- contador1+1
SiNo
r1 <- r1+1
contador1 <- contador1+1
Fin Si
Hasta Que r1=n3

Repetir
Si n2>n3 Entonces
r2 <- r2-1
contador2 <- contador2+1
SiNo
r2 <- r2+1
contador2 <- contador2+1
Fin Si
Hasta Que r2=n3

Si contador1<contador2 Entonces
Escribir "El tercer numero está mas cerca del primero"
SiNo
Escribir "El tercer numero está mas cerca del segundo"
Fin Si




FinAlgoritmo
 
  • Like
Reacciones : Dark

Dark

🔥root313🔥
Staff
Moderador
Paladín de Nodo
Jinete de Nodo
Burgués de Nodo
Noderador
Nodero
Noder Pro
Noder
Puedes hacer un bucle que vaya restando o sumando de uno en uno al primer numero hasta que llegue al tercero y con un contador miras cuantas veces lo ha hecho, repites con el segundo y comparas el contador, el que menos veces lo haya hecho será el que esté más cerca.
Voy a probar
 

Dark

🔥root313🔥
Staff
Moderador
Paladín de Nodo
Jinete de Nodo
Burgués de Nodo
Noderador
Nodero
Noder Pro
Noder
lo acabo de hacer en pseudocódigo, que es la mierda que estamos dando en clase, te dejo el código, faltaría ponerle la opcion de si están a la misma distancia, peor eso supongo que sabrás hacerlo.

PD: No soy un experto, pero es lo que se me ha ocurrido.


Algoritmo Ejercicio

n1 <- 0
n2 <- 0
n3 <- 0
r1 <- 0
r2 <- 0
contador1 <- 0
contador2 <- 0


Escribir "Introduce un número: "
Leer n1
Escribir "Introduce un número: "
Leer n2
Escribir "Introduce un número: "
Leer n3
r1 <- n1
r2 <- n2
Repetir
Si n1>n3 Entonces
r1 <- r1-1
contador1 <- contador1+1
SiNo
r1 <- r1+1
contador1 <- contador1+1
Fin Si
Hasta Que r1=n3

Repetir
Si n2>n3 Entonces
r2 <- r2-1
contador2 <- contador2+1
SiNo
r2 <- r2+1
contador2 <- contador2+1
Fin Si
Hasta Que r2=n3

Si contador1<contador2 Entonces
Escribir "El tercer numero está mas cerca del primero"
SiNo
Escribir "El tercer numero está mas cerca del segundo"
Fin Si




FinAlgoritmo
No me veo capaz de convertir eso a Python y que funcione 😂, en casa planteo lo que me has dicho y a ver que tal.
 

Dark

🔥root313🔥
Staff
Moderador
Paladín de Nodo
Jinete de Nodo
Burgués de Nodo
Noderador
Nodero
Noder Pro
Noder
num1 = float(input("Di un número: "))
num2 = float(input("Di otro número: "))
num3 = float(input("Di otro número: "))
contador1 = 0
contador2 = 0
if num1 < num3:
while num1 != num3:
num1 = num1 + 1
contador1 = contador1 + 1
else:
while num1 != num3:
num1 = num1 - 1
contador1 = contador1 - 1
if num2 < num3:
while num2 != num3:
num2 = num2 + 1
contador2 = contador2 + 1
else:
while num2 != num3:
num2 = num2 - 1
contador2 = contador2 - 1

if contador1 > contador2:
print("El tercer número está más cerca del número 2 que del número 1.")
elif contador1 < contador2:
print("El tercer número está más cerca del número 1 que del número 2.")
elif contador1 == contador2:
print("El tercer número está igual de cerca del número 1 que del número 2.")
input("")