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.

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

case Expresi—n of Constante : Instrucci—n<br />

Figura 6.3. Diagrama sintáctico de la instrucción case.<br />

6.2.2 La instrucción case<br />

La instrucción case permite la selección <strong>en</strong>tre una cantidad variable de posibilidades,<br />

es decir, es una s<strong>en</strong>t<strong>en</strong>cia de selección múltiple. Un ejemplo de esta<br />

selección <strong>en</strong> l<strong>en</strong>guaje natural podría ser el sigui<strong>en</strong>te “m<strong>en</strong>ú semanal”: según sea<br />

el día de la semana, hacer lo sigui<strong>en</strong>te: lunes, miércoles y viernes tomar pescado,<br />

martes, jueves y sábado tomar carne, el domingo comer fuera de casa.<br />

Esta instrucción consta de una expresión (llamada selector) y una lista de<br />

s<strong>en</strong>t<strong>en</strong>cias etiquetadas por una o varias constantes del mismo tipo que el selector;<br />

al ejecutarse esta instrucción se evalúa el valor actual del selector y se ejecuta<br />

la instrucción que t<strong>en</strong>ga esa etiqueta, si no existe ninguna instrucción con esa<br />

etiqueta se produce un error. 3 El diagrama sintáctico de la instrucción case<br />

aparece <strong>en</strong> la figura 6.3.<br />

❡❡ <br />

La expresión selectora de una instrucción case así como las etiquetas deb<strong>en</strong><br />

ser de un tipo ordinal (véase el apartado 3.6).<br />

Como ejemplo de aplicación de la instrucción case considérese el sigui<strong>en</strong>te<br />

segm<strong>en</strong>to de código que asigna la calificación literal según el valor almac<strong>en</strong>ado<br />

<strong>en</strong> la variable nota de tipo integer:<br />

var<br />

nota: real;<br />

...<br />

ReadLn(nota);<br />

case Round(nota) of<br />

0..4: WriteLn(’SUSPENSO’);<br />

5,6: WriteLn(’APROBADO’);<br />

,<br />

3 Esto es lo que ocurre <strong>en</strong> <strong>Pascal</strong> estándar; <strong>en</strong> Turbo <strong>Pascal</strong> no se produce ningún error, sim-<br />

plem<strong>en</strong>te se pasa a la sigui<strong>en</strong>te instrucción.<br />

;<br />

<strong>en</strong>d

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

Saved successfully!

Ooh no, something went wrong!