Ejemplo 2: El Más Alto

INTRODUCCION

Natalia esta formada en una fila y quiere saber en que posición esta la persona mas alta ubicada detrás de ella.

Tarea

Se te pide que escribas un programa que nos ayude saber la posición en la fila de la persona mas alta que se encuentra detrás de Natalia.

Entrada

En la 1° línea, el número entero n indicando el número de personas en la fila. La fila tiene al menos 2 personas  y un máximo de 50.

En la 2° línea ene números enteros, cada uno indica la altura de la enésima persona. Estos valores varían de 0 a 100

En la 3° línea, un número entero N, representando la posición en la fila de Natalia. Ella nunca estará al final de la fila.

SALIDA

Un solo valor entero que que representa la posición en la fila de la persona mas alta detrás de Natalia. En caso de que haya 2 o mas personas mas altas con la misma altura, debes imprimir la posición de la que aparece primero.

Ejemplo 1
Entrada Salida Explicación
5
1 2 3 4 5
3
5 Se  tiene una fila de 5 persona.
La 1° con altura de 1.
La 2° con altura de 2.
La 3° con altura de 3.
La 4° con altura de 4.
La 5° con altura de 5.

Natalia se encuentra en la 3 posición  de izquierda a derecha.
Por tanto la persona mas alta detrás de Natalia esta en la posición 5 y altura de 5

Ejemplo 2
Entrada Salida Explicación
4
10 5 20 19
2
3 Se  tiene 4  personas.
La 1° con una altura de 10.
La 2° con una altura de 5.
La 3° con una altura de 20.
La 4° con una altura de 19.

Natalia esta en la 2° posición y la persona  de izquierda a derecha.
Por tanto la persona más alta detrás de Natalia esta en la posición 3 y mide 20
Ejemplo 3
Entrada Salida Explicación
3
1 4 2
1
2 Se  tiene 3 persona en la fila.
La 1° con altura de 1.
La 2° con altura de 4.
La 3° con altura de 2.

Natalia es la primera de la fila de izquierda a derecha.
Por tanto la persona mas alta detrás de Natalia esta en la 2° posición ( mide 4 de altura).

Antes de ver la solución tomate 20 minutos para resolver el problema.

SOLUCIÓN

Si exploramos cada uno de los ejemplos nos daremos cuenta debemos buscar a la persona mas alta,en la fila a partir del elemento inmediato detrás de Natalia  y  parar cunado hayamos ubicado el último elemento de la fila (el elemento índice n).

Por tanto el algoritmo debe ser:

1) Leer todos los datos en un arreglo.

2) Leer la posición  n, donde se ubica Natalia.

3) Recorrer todo el arreglo  desde la posición de Natalia+1el índice 1 y verificar hasta el elemento índice n (última persona de la fila) en cada valor realizar lo siguiente.

   Si el valor es mayor  al valor que tenemos en la variable máximo. Debemos guardarlo y también su posición.

4) Una ves recorrido los elementos del arreglo ya tenemos la posición de la persona más alta y cunado mide.

El siguiente programa resuelve este problema satisfactoriamente.

1° Parte: Declaramos las variables y el arreglo le adicionamos 2 elementos mas de los requeridos. La variable máximo empieza con un valor muy bajo.

2° Parte: Leemos las alturas de la personas en la fila y colocamos los valores en un arreglo del elemento 1 al elemento n, el elemento cero y el n+1 no se utilizan.

3° Parte: Colocamos la variable i en la posición inmediata detrás de Natalia

4° Parte: Para calcular la persona más alta basta con comparar los elementos del arreglo con nuestra variable maximo   y en caso de resultar mayor debemos remplazar el valor en la variable maximo y su posición (la variable i contiene la posición).

5° Parte: Por último imprimimos el valor almacenado en la variable PosicionMax y el programa termina.

Te muestro el código completo  y su equivalente en lenguaje C++.

 


Construye tu propio programa y experimentas con otros ejemplos, cuidando los límites de los valores que se describen en la redacción del problema.

Last modified: Thursday, 19 January 2023, 3:00 PM