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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

282 Capítulo 13. Registros<br />

13.3 Ejercicios<br />

1. Defina un tipo de datos para manejar fechas, incluy<strong>en</strong>do la información usual para<br />

un día cualquiera del cal<strong>en</strong>dario: el número de día d<strong>en</strong>tro del mes, el día de la<br />

semana, el mes y el año, y con él, los sigui<strong>en</strong>tes subprogramas:<br />

(a) Lectura y escritura.<br />

(b) Avance (que pasa de un día al sigui<strong>en</strong>te), con ayuda de una función que<br />

indica el número de días de un mes de un cierto año.<br />

(c) Distancia <strong>en</strong>tre fechas, usando la función avance.<br />

2. Considérese una repres<strong>en</strong>tación de los números reales mediante su signo, positivo<br />

o negativo, su parte <strong>en</strong>tera, formada por N dígitos (por ejemplo, 25) de cero a<br />

nueve y por su parte decimal, formada por NDEC cifras (por ejemplo, 5).<br />

(a) Defina <strong>en</strong> <strong>Pascal</strong> este tipo de datos.<br />

(b) Defina procedimi<strong>en</strong>tos apropiados para su lectura y escritura.<br />

(c) Defina un subprograma para sumar reales, controlando el posible desbordami<strong>en</strong>to.<br />

(d) Defina un subprograma para comparar reales.<br />

3. (a) Defina un tipo de datos registro que permita almac<strong>en</strong>ar un punto del plano<br />

real y un tipo vector formado por tres registros del tipo anterior. 2<br />

(b) Escriba un subprograma que determine si los tres puntos almac<strong>en</strong>ados <strong>en</strong><br />

una variable del tipo vector forman un triángulo.<br />

(c) Escriba un subprograma tal que, si tres puntos forman un triángulo, calcule<br />

su área aplicando la fórmula de Herón (véase el ejercicio 6 del capítulo 4).<br />

4. (a) Defina un tipo registro que permita almac<strong>en</strong>ar un ángulo dado <strong>en</strong> forma de<br />

grados (sexagesimales), minutos y segundos.<br />

(b) Escriba dos subprogramas, el primero para convertir un ángulo dado <strong>en</strong><br />

radianes <strong>en</strong> una variable del tipo registro anterior, y el segundo para realizar<br />

la conversión inversa. En el primero se t<strong>en</strong>drá <strong>en</strong> cu<strong>en</strong>ta que el resultado<br />

debe t<strong>en</strong>er el número de grados inferior a 360 o , el de minutos inferior a 60’<br />

y el de segundos inferior a 60”.<br />

5. La posición de un objeto lanzado con velocidad inicial v y con ángulo α con<br />

respecto a la horizontal, transcurrido un cierto tiempo t, puede expresarse (despreciando<br />

el rozami<strong>en</strong>to) con las sigui<strong>en</strong>tes ecuaciones:<br />

x = vt cos α y = vt s<strong>en</strong> α − 1<br />

2 gt2<br />

donde g es la aceleración de la gravedad (9.8m/seg 2 ).<br />

(a) Defina un registro que almac<strong>en</strong>e la velocidad inicial y el ángulo α.<br />

2 Obsérvese que ésta es una definición alternativa a la de arrays, tal vez más apropiada por ser<br />

las compon<strong>en</strong>tes del mismo tipo.

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

Saved successfully!

Ooh no, something went wrong!