Está en la página 1de 8

Control 4

Gonzalo Sanchez
INTRODUCCIN 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 usara? 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 ms. Ciertamente es poco prctico (y por lo general imposible) declarar una
variable para cada uno de estos datos ya que la organizacin de estos sera un problema mayor.
En estos casos se construye una estructura de datos para almacenar y nombrar a todo este
conjunto de informacin.

Suponiendo que se debe realizar un programa para manejar los puntajes que los jueces otorgan a
los clavadistas durante los juegos olmpicos. 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, desviacin, etc.

Lo natural para almacenar estos valores es mediante variables, como se indica a continuacin:

$puntaje0=0.0;
$puntaje1=0.0;
$puntaje2=0.0;
$puntaje3=0.0;
$puntaje4=0.0;
$puntaje5=0.0;

Si se solicitara escribir un cdigo que determine el mayor puntaje otorgado por un juez,
seguramente se utilizarn las estructuras de control y el cdigo 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 ms compleja si fueran ms 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 sera 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,

$puntaje1

como

$ 1 y as sucesivamente. De esta forma se puede escribir cdigo en


$
forma de ciclo.

For ($i=0;$i<6;$i++){
if ($puntaje1>$mayor){
$mayor=$puntaje1;
}
}

2) Qu estructura de datos utiliza el cdigo que se detalla a continuacin? 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 continuacin detallamos la
estructura;
Las estructuras dinmicas de datos son estructuras que crecen a medida que ejecuta un programa.
Una estructura dinmica de datos es una coleccin de elementos que son normalmente registros.
Al contrario de un arreglo que contiene espacio para almacenar un nmero fijo de elementos, una
estructura dinmica de datos se ampla y contrae durante la ejecucin del programa, basada en
los registros de almacenamiento de datos del programa.
Pilas.
Una pila (stack en ingls) es una lista ordenada o estructura de datos en la que el modo de acceso a
sus elementos es de tipo LIFO (del ingls 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 informtica debido a su simplicidad y ordenacin implcita de la propia estructura.
Para el manejo de los datos se cuenta con dos operaciones bsicas: apilar , que coloca un objeto en
la pila, y su operacin inversa, retirar (o desapilar, pop), que retira el ltimo elemento apilado.
n cada momento slo se tiene acceso a la parte superior de la pila, es decir, al ltimo objeto apilado

(denominado TOS, Top of Stack en ingls). La operacin retirar permite la obtencin 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 analoga con objetos cotidianos, una operacin apilar equivaldra a colocar un plato sobre una
pila de platos, y una operacin retirar a retirarlo.
Las pilas suelen emplearse en los siguientes contextos:

Evaluacin de expresiones en notacin postfija (notacin polaca inversa).

Reconocedores sintcticos de lenguajes independientes del contexto

Implementacin de recursividad

Bibliografa

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

Contenido de la semana 4