PROGRAMACIÓN 10 APUNTES Nº 5

Prof. Dolores Cuiñas H.

Recuerde que estos son apuntes muy simplificados que deberá completar con la bibliografía recomendada

ESTRUCTURAS DE CONTROL SELECTIVAS O ESTRUCTURAS DE DECISIÓN: Son las que permiten la selección de acciones alternativas. EXPRESIÓN LÓGICA: es una expresión que al ser evaluada da como resultado un valor lógico (verdadero o falso). Podrían definirse dos tipos de expresiones lógicas, las cuales tienen la siguiente forma: Tipo A (también denominadas expresiones relacionales): Operando1 operador de relación Operando2 Donde: • Operando1 y 2 pueden ser ambos expresiones aritméticas o ambos expresiones carácter. • Expresiones carácter pueden ser constantes o variables de tipo carácter o cadena. • Operador de relación: > (mayor), < (menor), = (igual), >= (mayor o igual), <= (menor o igual), <> (diferente). Los operadores de relación tienen igual prioridad entre ellos, pero la más baja prioridad en relación con los operadores aritméticos. Su orden de evaluación es el siguiente: Prioridad Operador 1. ( ) 2. *,/,div,mod 3. +,4. >,<,=,>=,<=,<> Nota: • Los valores numéricos sólo pueden compararse con otros valores numéricos y los carácter con otros carácter. • Los valores carácter no pueden compararse con las cadenas de caracteres. • Las cadenas de caracteres sólo pueden compararse si tienen exactamente la misma longitud. • En las comparaciones entre expresiones carácter el orden, según la codificación ASCII, es el siguiente: ‘0’<’1’<’2’<…..<’9’ ‘a’<’b’<’c’<…..<’z’ ‘A’<’B’<’C’<….<’Z’ Ejemplos de expresiones lógicas (también llamadas relacionales) a) 6.7315 > 6.7342 (false) b) 15 < 20 (cierto) c) 8 = 8.0 (cierto) d) ‘A’ < ’B’ (cierto) e) ‘5’ = 5 produce error, f) ‘2’ < ‘235’ produce error f) Dado N1 = 3, N2 = 6 y CAR = ‘m’, el resultado de la evaluación de las siguientes expresiones es: CAR = ‘m’ (verdadero) (2+3*N1) <> 6 + (N2 – 1) (falso) (1+(2div2) mod N2) <= 4*n1 (verdadero)

expresiones lógicas entre paréntesis. and (Y lógico).(1+1 mod N2) <= 4*N1 (verdadero) Tipo B Las expresiones lógicas pueden combinarse para formar expresiones más complejas: Operando1 operador lógico Operando2 Donde: • • • Operando1 y 2 son expresiones lógicas que pueden estar constituidas por: constantes lógicas. expresiones de relación. mod. and +. variables lógicas. or (O lógico).<=. div. -. b) not (2<3) (falso). or. xor Mayor prioridad Menor prioridad El orden de prioridad de los operadores lógicos en relación con el resto de operadores es el siguiente: Operador Orden de Prioridad ( ) prioridad más alta (se evalúa primero) not *.>. c) not p or q and r d) ((X*2 > Y-3) or (X > Y-1)) and (Y < 5) e) Valor := (resp=’T’) or (resp=’t’) verdadero si resp toma el valor de ‘T’ o ‘t’ de lo contrario es falso ESTRUCTURAS DE DECISIÓN EN TURBO PASCAL. xor <. si una condición (expresión lógica) dada tiene un valor específico (verdadero o falso). dependiendo del operador podría no existir. Operador lógico: not (no lógico). .>=. /.<> prioridad más baja (se evalúa de último) Tipo de valor lógico resultante de la evaluación de una expresión lógico se ilustra en la siguiente tabla: Operando1 Operando2 not Op1 Op1 and Op2 Op1 or Op2 Op1 xor Op2 (Op1) (Op2) V V F V V F V F F F V V F V V F V V F F V F F F Ejemplos de expresiones lógicas: a) not (‘A’=’Z’) (verdadero). Operando1 es opcional. condición Son estructuras de control condicional que permiten llevar a cabo una acción.=.

Mientras que si el resultado de su evaluación es falso se continúa como si la instrucción del IFTHEN no hubiese existido. Para el caso de sentencias compuestas. sentencia2. una sola sentencia IF expresión lógica THEN BEGIN sentencia1. NOTA: recordar que el . Para el caso de sentencia simple. se usa para separar sentencias pero no forma parte de la sentencia. si condición entonces.Nº. Es decir. antes de un END no se coloca . El algoritmo gráfico de una estructura de decisión simple se representa de la siguiente manera: condición V F Sentencia(s) Nota: condición es igual a expresión lógica El algoritmo escrito: Nº. Nº. : sentenciaN END. varias sentencias. según sea el caso.ESTRUCTURA DE DECISIÓN SIMPLE: se usan para representar estructuras en las que si la evaluación de la expresión lógica resulta ser verdadera se ejecuta la sentencia1 o la serie de sentencias comprendidas entre begin y end de la instrucción IF-THEN. IF expresión lógica THEN sentencia1. Mientras que . Es decir. sentencia(s) ESTRUCTURA DE DECISIÓN DOBLE: se usan para representar estructuras en las que si la evaluación de la expresión lógica resulta ser verdadera se ejecuta la sentencia1.

Nº sentencia(s) 2 . varias sentencias. Es decir.si el resultado de su evaluación es falso se ejecuta la sentencia2. IF expresión lógica THEN sentencia1 ELSE Sentencia2. Nº. sentencia4 END. una sola sentencia antes de un END o un ELSE no va .Nº sentencia(s) 1 de lo contrario Nº. en lugar de la sentencia1 o la sentencia2 se ejecutarán las serie de sentencias comprendidas entre sus respectivos begin end. si condición entonces. Es decir. F condición V Sentencia(s) 2 Sentencia(s) 1 Nota: condición es igual a expresión lógica El algoritmo escrito: Nº. Recuerde que en el caso de sentencias compuestas. El algoritmo gráfico de una estructura de decisión doble se representa de la siguiente manera: Para el caso de sentencias compuestas. IF expresión lógica THEN BEGIN sentencia1. sentencia2 END ELSE BEGIN sentencia3. Para el caso de sentencia simple.

Mientras que si el resultado de su evaluación es falso se evalúa otra expresión lógica. Recuerde que en el caso de sentencias compuestas. El algoritmo gráfico de una sentencia IF anidada se representa de la siguiente manera: Condición 1 V Sentencia(s) 1 F Condición 2 V Sentencia(s) 2 F Condición n V Sentencia(s) N F Sentencia(s) N+1 . en lugar de la sentencia1.ESTRUCTURAS DE DECISIÓN MÚLTIPLE: existen dos tipos de sentencias. SENTENCIA IF ANIDADA: se usan para representar estructuras en las que si la evaluación de la expresión lógica resulta ser verdadera se ejecuta la sentencia1. las IF anidadas y las CASE. IF expresión lógica1 THEN sentencia1 ELSE IF expresión lógica2 THEN sentencia2 : ELSE IF expresión lógicaN THEN sentenciaN ELSE SentenciaN+1. si el resultado de esta última es verdadero se ejecuta la sentencia2. si es falso se evalúa otra expresión y así sucesivamente. sentencia2 o sentencia N. antes de un ELSE no va . se ejecutarán la serie de sentencias comprendidas entre sus respectivos begin end.

El algoritmo escrito: Nº.Nº sentencia(s) 2 de lo contrario. si condición 1 entonces.. Donde: • Lista de constantes es igual a uno o más posibles valores del selector separados por coma y pueden ser constantes o un valor subrango: constante1. lista constantes2: sentencia2. • Cada sentencia puede ser simple o compuesta (recordar que las compuestas deben ir . : lista de constantesN: sententiaN END. antes de un END no va . Nº. si condición n entonces. Puede utilizarse de cualquiera de las dos maneras descritas a continuación. Nº. lista constantes2: sentencia2. CASE selector OF lista constantes1: sentencia1. según sea el caso CASE selector OF lista constantes1: sentencia1.Nº sentencia(s) 1 de lo contrario. END. : lista de constantesN: sententiaN ELSE SentenciaN+1 antes de un END o un ELSE no va . si condición 2 entonces.constante2.Nº sentencia(s) N de lo contrario Nº. Nº.Nº sentencia(s) N+1 SENTENCIA CASE: se usa para elegir entre diferentes alternativas.

Cada sentencia excepto la última. El selector es una expresión que debe ser de tipo ordinal (integer. se ejecutará la sentencia1 o el bloque de sentencias1 encerradas entre begín – end. Si el valor resultante de la evaluación del selector se corresponde con alguno de la lista constantes 2. 3. Reglas de funcionamiento: 1. Si el valor resultante de la evaluación del selector no está comprendido en ninguna lista de constantes y si existe la cláusula ELSE. bolean. Si el valor resultante de la evaluación del selector se corresponde con alguno de la lista de constantes 1. subrango o enumerado). La expresión selector se evalúa y se compara con las listas de constantes. Luego el control se pasa seguidamente a la primera sentencia a continuación del END del CASE. Si el valor resultante de la evaluación del selector no está comprendido en ninguna lista de constantes y no existe la cláusula ELSE. longint. 2. word. El algoritmo gráfico de una sentencia CASE se representa de la siguiente manera: selector = lista ctes 1 V Sentencia(s) 1 F selector = lista ctes 2 V Sentencia(s) 2 F selector = lista ctes N V Sentencia(s) N F Sentencia(s) N+1 opcional . No son válidos los tipo real. char. string. debe ir seguida de . se ejecutará la sentencia2 (simples o compuestas) y así sucesivamente. La cláusula ELSE es opcional.• • • • entre un begin y un end). no sucede nada y sigue el flujo del programa como si no hubiese existido el CASE. Todas las constantes CASE deben ser únicas y de un tipo ordinal compatible con el tipo del selector. 4. en caso de sentencias compuestas. se ejecuta(n) la(s) instrucciones a continuación de la cláusula ELSE.

J. 2: Nº.- .Nº sentencia(s) N de lo contrario Nº.Nº sentencia(s) N+1 fin_según. NOTA: se pueden usar sentencias IF anidadas en lugar de sentencias CASE para realizar una decisión de alternativa múltiple. Pascal 7.Nº sentencia(s) 1 lista ctes. Luis Joyanes Aguilar Programación con Lenguaje Turbo Pascal. Sanchis Llorca. F. pero es más legible el CASE.El algoritmo escrito de una sentencia CASE se representa: Nº según sea selector hacer lista ctes. 1: Nº. Ver ejemplos y demás explicaciones en clase Los conceptos anteriores son tomados básicamente de: Programación en Turbo/ Borland.Nº sentencia(s) 2 lista ctes N: Nº.

Sign up to vote on this title
UsefulNot useful