HERRAMIENTAS

[Herramientas][bleft]

PROGRAMACIÓN

[Programacion][bsummary]

CIENCIAS BÁSICAS

[cienciasbasicas][grids]

BIOGRAFÍAS

[biografias][twocolumns]

Algoritmo condicional para ordenar tres números: mayor, intermedio y menor en PseInt



¡Hola a todos! Qué gusto encontrarnos nuevamente por aquí en Bits de Ciencia. Bienvenidos a una nueva entrega para el aprendizaje de algoritmos con PseInt. Hoy realizaremos un ejercicio excelente, sumamente ingenioso y elegante que nos permitirá resolver un clásico problema de ordenamiento numérico utilizando una estrategia matemática muy astuta.

Imagina que tienes tres amigos de diferentes estaturas o tres cartas con números distintos sobre la mesa y necesitas organizarlas de mayor a menor (de forma descendente) de un vistazo. En lugar de hacer una red kilométrica de comparaciones complejas, podemos usar un truco lógico: primero identificamos quién es el mayor de todos mediante condiciones, luego buscamos quién es el menor, y para hallar al intermedio simplemente sumamos los tres números y les restamos los extremos que ya conocemos. ¡Una auténtica genialidad matemática! Vamos a desglosarlo paso a paso, de forma muy amigable y cercana, como si estuviéramos charlando en la pizarra.


Entendiendo la Lógica de Selección y el Truco del Número Intermedio

Para no perdernos en las líneas de código, repasemos brevemente cómo opera la estrategia de este algoritmo:

  • Identificación del Mayor: Evaluamos mediante condiciones lógicas (\(Y / AND\)) cuál de las tres variables (\(n_1, n_2, n_3\)) supera a las otras dos para guardarla en una variable llamada \(\text{may}\).
  • Identificación del Menor: De forma similar, comparamos los números para aislar al valor más pequeño y almacenarlo en la variable \(\text{men}\).
  • El Truco Matemático para el Intermedio: En lugar de hacer más condiciones para el valor central, utilizamos la propiedad de la suma total: si sumas los tres números y a ese total le restas el mayor y el menor, el resultado matemático obligado será el número intermedio (\(\text{med} = (n_1 + n_2 + n_3) - (\text{may} + \text{men})\)).

Planteamiento del Problema y Código en PseInt

Analicemos con atención el enunciado oficial del ejercicio que resolveremos hoy:


«Escribir un programa en PseInt que acepte tres números enteros diferentes entre sí y los devuelva debidamente ordenados de mayor a menor (forma descendente) aplicando condiciones y un razonamiento matemático optimizado.»

 

A continuación, te comparto el código optimizado y listo para correr en PseInt:

Algoritmo Ordenar_3_nros
	Definir n1, n2, n3, may, men, med Como Real
	
	// ENTRADA DE DATOS
	Escribir "Introduzca tres números diferentes: "
	Leer n1, n2, n3
	
	// PROCESO 1: Determinar el número mayor
	Si n1 > n2 Y n1 > n3 Entonces
		may = n1
	SiNo
		Si n2 > n1 Y n2 > n3 Entonces
			may = n2
		SiNo
			may = n3
		FinSi
	FinSi
	
	// PROCESO 2: Determinar el número menor
	Si n1 < n2 Y n1 < n3 Entonces
		men = n1
	SiNo
		Si n2 < n1 Y n2 < n3 Entonces
			men = n2
		SiNo
			men = n3
		FinSi
	FinSi
	
	// PROCESO 3: Calcular el número intermedio mediante el truco matemático
	med = (n1 + n2 + n3) - (may + men)
	
	// SALIDA DE DATOS: Orden descendente (Mayor, Intermedio, Menor)
	Escribir "El orden de mayor a menor es: ", may, ", ", med, ", ", men
FinAlgoritmo
  

Diagrama de Flujo del Proceso de Ordenamiento

Для visualizar cómo toma decisiones el algoritmo al aislar el número mayor, el menor y calcular el intermedio por diferencia aritmética, observa el siguiente esquema lógico en diagrama de flujo:

           [ Inicio: Algoritmo Ordenar Tres Números ]
                                │
                    [ Leer tres números: n1, n2, n3 ]
                                │
             ┌──────────────────┴──────────────────┐
             │ ¿Es n1 mayor que n2 Y mayor que n3? │
             └──────────┬──────────────────┬───────┘
               (Sí)     │                  │     (No)
                        ▼                  ▼
                 [ may = n1 ]       ┌──────────────────┐
                        │           │ ¿Es n2 > n3?     │
                        │           └────┬─────────┬───┘
                        │         (Sí)   │         │ (No)
                        │                ▼         ▼
                        │          [ may = n2 ] [ may = n3 ]
                        │                │         │
                        └──────────┬─────┴─────────┘
                                   │
             ┌─────────────────────┴─────────────────────┐
             │ ¿Es n1 menor que n2 Y menor que n3?       │
             └─────────────┬──────────────────┬──────────┘
               (Sí)        │                  │     (No)
                           ▼                  ▼
                    [ men = n1 ]       ┌──────────────────┐
                           │           │ ¿Es n2 < n3?     │
                           │           └────┬─────────┬───┘
                           │         (Sí)   │         │ (No)
                           │                ▼         ▼
                           │          [ men = n2 ] [ men = n3 ]
                           │                │         │
                           └──────────┬─────┴─────────┘
                                      │
                   [ Calcular Intermedio: med = (n1+n2+n3) - (may+men) ]
                                      │
                   [ Mostrar Resultados en Orden Descendente ]
                                      │
                                [ FinProceso ]
  

¡Ayúdame suscribiéndote a mi canal! :): https://goo.gl/6jUr58

Bits de Ciencia Oficial
Edwin W.

No hay comentarios: