Está en la página 1de 8

Control 4

Gonzalo Sanchez

INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACION

Instituto IACC

1/1/2017
Desarrollo

1) Si se le solicitara construir un programa que recibiera cierto input y lo procesara en orden

reverso, ¿qué estructura de datos usaría? ¿Por qué? Fundamente su respuesta.

Respuesta:

En este caso podemos ocupar un Array o Arreglo, la expkicacion a continuacion, haciendo cita al

contenido de la semana la cual nos dice:

Los programas computacionales por lo general manejan muchos objetos del mismo tipo, por

ejemplo el software de un banco para manejar las cuentas de sus clientes; estas pueden ser

cientos, miles o más. Ciertamente es poco práctico (y por lo general imposible) declarar una

variable para cada uno de estos datos ya que la organización de estos sería un problema mayor.

En estos casos se construye una estructura de datos para almacenar y nombrar a todo este

conjunto de información.

Suponiendo que se debe realizar un programa para manejar los puntajes que los jueces otorgan a

los clavadistas durante los juegos olímpicos. Son 6 jueces y cada uno de ellos le asigna un valor

fraccionario a cada participante. Estos 6 valores deben ser recolectados y manejados de distinta

forma, ordenados de mayor a menor, de menor a mayor, promedio, desviación, etc.


Lo natural para almacenar estos valores es mediante variables, como se indica a continuación:

$puntaje0=0.0;

$puntaje1=0.0;

$puntaje2=0.0;

$puntaje3=0.0;

$puntaje4=0.0;

$puntaje5=0.0;
Si se solicitara escribir un código que determine el mayor puntaje otorgado por un juez,

seguramente se utilizarán las estructuras de control y el código terminará siendo algo similar a

esto:

$mayor=$puntaje0;
if ($puntaje1>$mayor){
$mayor=$puntaje1;
}
if ($puntaje2>$mayor){
$mayor=$puntaje2;
}
if ($puntaje3>$mayor){
$mayor=$puntaje3;
}
if ($puntaje4>$mayor){
$mayor=$puntaje4;
}
if ($puntaje5>$mayor){
$mayor=$puntaje5; }

Esta compleja tarea puede ser incluso más compleja si fueran más de 6 puntajes o si por ejemplo

se le solicita un algoritmo que muestre los puntajes ordenados de mayor a menor. Se necesita

otra forma de realizar esto.

Una forma eficiente de realizarlo sería utilizando un ciclo, y que este visitará desde $puntaje1

hasta $puntaje6, pero se tiene un problema: las 6 variables tienen nombres distintos y un ciclo no

puede ir cambiando el nombre de la variable.

Idealmente se busca una forma de manejar “índices”, es decir, una forma de poder referirnos a

$puntaje0 como $�������0, a $puntaje1 como $�������1 y así sucesivamente. De esta forma

se puede escribir código en forma de ciclo.


For ($i=0;$i<6;$i++){
if ($puntaje1>$mayor){
$mayor=$puntaje1;
}
}
2) ¿Qué estructura de datos utiliza el código que se detalla a continuación? Fundamente su

respuesta.

<?php
$misterio = array ( ) ;
array_push ( $misterio, '111', '555' ) ;
$last_in = array_pop ( $misterio ) ;
?>

La estructura de datos presentada es definida como PILA, a continuación detallamos la

estructura;

Las estructuras dinámicas de datos son estructuras que crecen a medida que ejecuta un programa.

Una estructura dinámica de datos es una colección de elementos que son normalmente registros.

Al contrario de un arreglo que contiene espacio para almacenar un número fijo de elementos, una

estructura dinámica de datos se amplía y contrae durante la ejecución del programa, basada en

los registros de almacenamiento de datos del programa.

Pilas.

Una pila (stack en inglés) es una lista ordenada o estructura de datos en la que el modo de acceso a

sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que

permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el área

de informática debido a su simplicidad y ordenación implícita de la propia estructura.

Para el manejo de los datos se cuenta con dos operaciones básicas: apilar , que coloca un objeto en

la pila, y su operación inversa, retirar (o desapilar, pop), que retira el último elemento apilado.

n cada momento sólo se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado

(denominado TOS, Top of Stack en inglés). La operación retirar permite la obtención de este
elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad),

que pasa a ser el nuevo TOS.

Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una

pila de platos, y una operación retirar a retirarlo.

Las pilas suelen emplearse en los siguientes contextos:

• • Evaluación de expresiones en notación postfija (notación polaca inversa).

• • Reconocedores sintácticos de lenguajes independientes del contexto

Implementación de recursividad
Bibliografía

https://es.wikipedia.org/wiki/Pila_(inform%C3%A1tica)

Contenido de la semana 4

También podría gustarte