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.

12.4. Ejercicios 269<br />

5. Escriba un subprograma que mezcle dos vectores (de longitudes m y n respectivam<strong>en</strong>te),<br />

ord<strong>en</strong>ados asc<strong>en</strong>d<strong>en</strong>tem<strong>en</strong>te, produci<strong>en</strong>do un vector (de longitud m + n),<br />

también ord<strong>en</strong>ado asc<strong>en</strong>d<strong>en</strong>tem<strong>en</strong>te.<br />

6. Escriba un subprograma que averigüe si dos vectores de N <strong>en</strong>teros son iguales.<br />

(La comparación deberá det<strong>en</strong>erse <strong>en</strong> cuanto se detecte alguna difer<strong>en</strong>cia.)<br />

7. Dados dos vectores de caracteres del mismo tipo, escriba un subprograma que<br />

averigüe si el primero de ellos precede al segundo <strong>en</strong> ord<strong>en</strong> alfabético.<br />

8. Escriba un subprograma que desplace todas las compon<strong>en</strong>tes de un vector de N<br />

<strong>en</strong>teros un lugar a la derecha, t<strong>en</strong>i<strong>en</strong>do <strong>en</strong> cu<strong>en</strong>ta que la última compon<strong>en</strong>te se ha<br />

de desplazar al primer lugar. G<strong>en</strong>eralícese el subprograma anterior para desplazar<br />

las compon<strong>en</strong>tes k lugares.<br />

9. Escriba un subprograma que lea una secu<strong>en</strong>cia de caracteres del teclado registrándola<br />

<strong>en</strong> un vector de caracteres. Cuando el número de caracteres escritos sea inferior<br />

a la longitud del vector, se deberá rell<strong>en</strong>ar con espacios <strong>en</strong> blanco por la derecha;<br />

y cuando haya más caracteres de los que cab<strong>en</strong>, se eliminarán los últimos.<br />

10. Si repres<strong>en</strong>tamos la ecuación de una recta <strong>en</strong> el plano como un vector de tres<br />

compon<strong>en</strong>tes, Ax + By + C = 0, escriba subprogramas para determinar:<br />

(a) La ecuación de la recta que pasa por dos puntos dados.<br />

(b) La ecuación de la recta que pasa por un punto dado y ti<strong>en</strong>e una cierta<br />

p<strong>en</strong>di<strong>en</strong>te.<br />

(c) El ángulo que forman dos rectas dadas.<br />

(d) La distancia de un punto dado a una recta dada.<br />

11. Defina una función que averigüe el máximo elem<strong>en</strong>to de una matriz de M × N<br />

<strong>en</strong>teros.<br />

12. Se ti<strong>en</strong>e un sistema de ecuaciones lineales repres<strong>en</strong>tado mediante una matriz de<br />

3 × 4, donde las tres primeras columnas conti<strong>en</strong><strong>en</strong> los coefici<strong>en</strong>tes del sistema (con<br />

determinante distinto de cero) y la cuarta los términos indep<strong>en</strong>di<strong>en</strong>tes. Escriba<br />

un subprograma para calcular la solución del sistema por la regla de Cramer.<br />

13. Se ti<strong>en</strong>e ahora un sistema de N ecuaciones con N incógnitas, supuestam<strong>en</strong>te<br />

compatible determinado. Escriba un subprograma para calcular la solución del<br />

sistema por el método de Gauss.<br />

14. Defina el tipo de una matriz cuadrada de dim<strong>en</strong>sión N de elem<strong>en</strong>tos reales, y<br />

escriba un subprograma Trasponer que intercambie los elem<strong>en</strong>tos de posiciones<br />

(i, j) y (j, i) <strong>en</strong>tre sí, ∀i, j ∈ {1, . . . N}.<br />

15. Defina un procedimi<strong>en</strong>to para descomponer una matriz cuadrada M <strong>en</strong> otras dos,<br />

A y B, con sus mismas dim<strong>en</strong>siones, de manera que<br />

M = S + A<br />

y tales que S es simétrica y A antisimétrica. Ello se consigue forzando que<br />

Si,j = Sj,i = Mi,j + Mj,i<br />

, ∀i, j ∈ {1, . . . N}<br />

2

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

Saved successfully!

Ooh no, something went wrong!