09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

13.3. Ejercicios 283<br />

(b) Defina un registro que almac<strong>en</strong>e las coord<strong>en</strong>adas x, y y el tiempo t transcurrido<br />

desde el lanzami<strong>en</strong>to.<br />

(c) Escriba un subprograma que utilice un registro de cada uno de los tipos<br />

anteriores y calcule la posición del objeto a partir de v, α y t.<br />

(d) Escriba un subprograma que calcule la altura máxima aproximada alcanzada<br />

por el objeto utilizando intervalos de tiempo “pequeños”, por ejemplo<br />

décimas o c<strong>en</strong>tésimas de segundo.<br />

(e) Escriba un subprograma que calcule la distancia máxima aproximada alcanzada<br />

por el objeto, con la misma técnica del apartado anterior. Indicación:<br />

la distancia máxima se alcanza cuando la altura se hace cero.<br />

(f) Redefina los registros de los apartados anteriores para utilizar ángulos <strong>en</strong><br />

forma de grados (sexagesimales), minutos y segundos, realizando las conversiones<br />

con los subprogramas del apartado 4b.<br />

6. Un comercio de alim<strong>en</strong>tación almac<strong>en</strong>a los sigui<strong>en</strong>tes datos de sus productos:<br />

producto (nombre del producto), marca (nombre del fabricante), tamaño (un<br />

número que indica el peso, volum<strong>en</strong>, etc. de un determinado <strong>en</strong>vase del producto),<br />

precio (del tamaño correspondi<strong>en</strong>te) y unidades (cantidad exist<strong>en</strong>te <strong>en</strong> inv<strong>en</strong>tario).<br />

(a) Defina un tipo de datos registro que permita almac<strong>en</strong>ar dichos campos.<br />

(b) Defina un vector sufici<strong>en</strong>tem<strong>en</strong>te grande de dichos registros.<br />

(c) Defina un registro que incluya el vector y un campo adicional para indicar<br />

la parte ocupada del vector de acuerdo con la técnica expuesta <strong>en</strong> el<br />

apartado 13.2.<br />

(d) Escriba los subprogramas necesarios para realizar las sigui<strong>en</strong>tes operaciones:<br />

• Altas: Consiste <strong>en</strong> introducir nuevos productos con todos sus datos.<br />

Normalm<strong>en</strong>te se efectuarán varias altas consecutivas, det<strong>en</strong>i<strong>en</strong>do el proceso<br />

cuando se introduzca un producto cuyo nombre comi<strong>en</strong>ce por una<br />

clave especial (un asterisco, por ejemplo).<br />

• Bajas: Se introduce el nombre del producto a eliminar, se muestran<br />

sus datos y se pide al usuario confirmación de la baja. Para eliminar<br />

el producto se desplazan desde el producto inmediato sigui<strong>en</strong>te una<br />

posición hacia delante los sucesivos productos, y se reduce <strong>en</strong> una unidad<br />

la variable que indica la posición ocupada. Indicación: se deb<strong>en</strong> tratar<br />

de forma especial los casos <strong>en</strong> que no hay productos, cuando sólo hay<br />

uno y cuando se elimina el último.<br />

• Modificaciones: Se introduce el nombre del producto, se muestra y<br />

se pid<strong>en</strong> todos sus datos.<br />

• Consultas: Pued<strong>en</strong> ser de dos tipos: por producto, pidi<strong>en</strong>do el nombre<br />

y mostrando todos sus datos, y total, mostrando el listado de todos los<br />

productos con sus datos. Se puede añadir el coste total por producto<br />

y el coste total del inv<strong>en</strong>tario. Se puede mostrar por pantalla y por<br />

impresora.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!