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.

118 Capítulo 6. Instrucciones estructuradas<br />

3. Escriba un programa que lea un carácter, correspondi<strong>en</strong>te a un dígito hexadecimal:<br />

’0’, ’1’,..., ’9’, ’A’, ’B’,..., ’F’<br />

y lo convierta <strong>en</strong> el valor decimal correspondi<strong>en</strong>te:<br />

0, 1,..., 9, 10, 11,..., 15<br />

4. Para hallar <strong>en</strong> qué fecha cae el Domingo de Pascua de un anno cualquiera, basta<br />

con hallar las cantidades a y b sigui<strong>en</strong>tes:<br />

a:= (19 * (anno mod 19) + 24) mod 30<br />

b:= (2 * (anno mod 4) + 4 * (anno mod 7) + 6 * a + 5) mod 7<br />

y <strong>en</strong>tonces, ese Domingo es el 22 de marzo + a + b días, que podría caer <strong>en</strong> abril.<br />

Escriba un programa que realice estos cálculos, produci<strong>en</strong>do una <strong>en</strong>trada y salida<br />

claras.<br />

5. Considere el sigui<strong>en</strong>te fragm<strong>en</strong>to de programa válido <strong>en</strong> <strong>Pascal</strong>:<br />

...<br />

if P th<strong>en</strong> if Q th<strong>en</strong> if x < 5 th<strong>en</strong> WriteLn(’a’) else<br />

WriteLn(’b’) else if x < y th<strong>en</strong> WriteLn(’c’) else<br />

WriteLn(’d’) else if x < 0 th<strong>en</strong> if Q th<strong>en</strong> WriteLn(’e’)<br />

else WriteLn(’f’) else if Q th<strong>en</strong> WriteLn(’g’)<br />

else WriteLn(’h’)<br />

...<br />

si<strong>en</strong>do P, Q: boolean y x, y: integer.<br />

(a) Reescríbalo usando una disposición más clara.<br />

(b) Si<strong>en</strong>do P ≡ x < 3 y Q ≡ y < x, detecte y suprima las condiciones redundantes.<br />

(c) Detecte y suprima las condiciones redundantes, asumiéndose que <strong>en</strong> la <strong>en</strong>trada<br />

la sigui<strong>en</strong>te s<strong>en</strong>t<strong>en</strong>cia es cierta:<br />

(P = ¬Q) ∧ (x < y < 0)<br />

6. El cuadrado de todo <strong>en</strong>tero positivo impar se puede expresar como 8k + 1, donde<br />

k es <strong>en</strong>tero positivo; por ejemplo<br />

. . . , 3 2 = 8 ∗ 1 + 1, 5 2 = 8 ∗ 3 + 1, . . .<br />

Sin embargo, algunos valores de k no produc<strong>en</strong> cuadrados, como k = 2 que da<br />

17. Se pide un programa que lea un número <strong>en</strong>tero y lo clasifique según las<br />

posibilidades de los sigui<strong>en</strong>tes ejemplos,

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

Saved successfully!

Ooh no, something went wrong!