PROGRAMACION 1 PERIODO

89
PROGRAMACION PRIMER PERIODO PRESENTADO POR: JEISON JOJOA GRADO: 11 COMPUTACION 2011

description

gfhgfhgfhgf hgf hgfhg hghgf h

Transcript of PROGRAMACION 1 PERIODO

Page 1: PROGRAMACION 1 PERIODO

PROGRAMACION

PRIMER PERIODO PRESENTADO POR: JEISON

JOJOA

GRADO: 11 COMPUTACION

2011

Page 2: PROGRAMACION 1 PERIODO

Escriba en el cuadro de respuestas la respuesta correcta utilizando las letras (F) Escriba en el cuadro de respuestas la respuesta correcta utilizando las letras (F) Escriba en el cuadro de respuestas la respuesta correcta utilizando las letras (F) Escriba en el cuadro de respuestas la respuesta correcta utilizando las letras (F) FALSO O (v)VERDADEROFALSO O (v)VERDADEROFALSO O (v)VERDADEROFALSO O (v)VERDADERO .... Ejercicio 1 Ejercicio 1 Ejercicio 1 Ejercicio 1 ---- Identificadores (Identificadores, variables y constantes Identificadores (Identificadores, variables y constantes Identificadores (Identificadores, variables y constantes Identificadores (Identificadores, variables y constantes ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE) En pseudocódigo CEE, ¿cuáles de los siguientes identificadores puede definir un programador, y cuáles no?

1. Puerta21 2. 3tres 3. 2007 4. tero 5. COCHE_52 helicóp 6. **motocicleta** 7. __platillo__ 8. cas-ti-llo 9. ¡Fiesta! 10. _*_*_ 11. 47_ejercicio 12. Costa Rica 13. aErOnAvE

EjercicioEjercicioEjercicioEjercicio 2 2 2 2 ---- Declaraciones (Identificadores, variables y constantes Declaraciones (Identificadores, variables y constantes Declaraciones (Identificadores, variables y constantes Declaraciones (Identificadores, variables y constantes ---- Pseudocódigo Pseudocódigo Pseudocódigo Pseudocódigo CEE)CEE)CEE)CEE) En pseudocódigo CEE, ¿cuáles de las siguientes declaraciones de constantes y variables son correctas?

14) caractercaractercaractercaracter ==== u 15) vocal = i 16) letra j

Page 3: PROGRAMACION 1 PERIODO

17) cadena = "cadena = "cadena = "cadena = "nombre"""" 18) enteroenteroenteroentero numero ==== 7....0 19) 888....8 20) cadenacadenacadenacadena variable 21) verdaderoverdaderoverdaderoverdadero 22) nueve ==== 9 23) logicologicologicologico CIERTO 24) interruptor = falso= falso= falso= falso 25) _123 = "= "= "= "un dos tres"""" 26) realrealrealreal 40....09 27) barra ==== ''''\\\\'''' 28) a ==== ....9EEEE----2 29) b ==== 6.e.e.e.e5 30) caractercaractercaractercaracter v, w,,,, x 31) CONSTANTE ==== """" ¿ ? """"

Ejercicio 3 Ejercicio 3 Ejercicio 3 Ejercicio 3 ---- En memoria (Identificadores, variables y constantes En memoria (Identificadores, variables y constantes En memoria (Identificadores, variables y constantes En memoria (Identificadores, variables y constantes ---- Pseudocódigo Pseudocódigo Pseudocódigo Pseudocódigo CEE)CEE)CEE)CEE) Dadas las siguientes declaraciones de constantes y variables:

UNO ==== 1 DOS ==== ''''2'''' FECHA = "= "= "= "20/7/2007"""" BARRAS = "= "= "= "\\\\\/\\\\\/"""" PI = = = = 3....141592 enteroenteroenteroentero numero1 ==== 2,,,, numero2 ==== 3 logicologicologicologico a ==== falsofalsofalsofalso

Page 4: PROGRAMACION 1 PERIODO

¿qué valores se almacenarán en la memoria del ordenador? (Realice el grafico de

la memoria)

TABLA DE RESPUESTAS

NOMBRE:jeiosn jojoa j.

1 2 3 4 5 6 7 8 9 10

11

12

13

14

15

16

17

18

19

20

v f f f v f v f f f v f v f f f f f f v

21

22

23

24

25

26

27

28

29

30

31

f v v v v f v v v v v

MEMORIA

UNO 1111

DOS “2”“2”“2”“2”

FECHA """"20/7/2007""""

BARRAS """"\/\\\\\""""

PI 3....141592

numero1 2222

numero2 3333

Page 5: PROGRAMACION 1 PERIODO

a falso

Los identificadores no tienen que enpesar con numeros ni tener tildes no tanpoco

* tanpoco que lleven giones tanpoco que lleve ¡ al comensar ni tanpoco sirven los

números tanpoco de ven ir solos

Saque 27\31

ESTRUCTURA DE UN ALGORITOMOESTRUCTURA DE UN ALGORITOMOESTRUCTURA DE UN ALGORITOMOESTRUCTURA DE UN ALGORITOMO

CabeceraCabeceraCabeceraCabecera

La estructura de un algoritmoestructura de un algoritmoestructura de un algoritmoestructura de un algoritmo sirve para organizar a los elementos que aparecen

en él. En pseudocódigo, todos los algoritmos tienen la misma estructura, la cual

viene definida por tres secciones:

• Cabecera • Declaraciones • Cuerpo

En la cabeceracabeceracabeceracabecera de un algoritmo se debe indicar el nombre (identificador) asignado

al mismo. La sintaxis es:

algoritmoalgoritmoalgoritmoalgoritmo <nombre_del_algoritmo>

Ejemplo:Ejemplo:Ejemplo:Ejemplo: Si se quiere diseñar el algoritmo de un programa que:

1º) Pida por teclado el radio (dato real) de una circunferencia.

2º) Calcule el área de la circunferencia.

3º) Muestre por pantalla el resultado (dato real).

Page 6: PROGRAMACION 1 PERIODO

Nota: Área de una circunferencia = pi * radio2

El algoritmo puede llamarse Area_de_una_circunferencia, por tanto, en la

cabecera se puede escribir:

algoritmoalgoritmoalgoritmoalgoritmo Area_de_una_circunferencia

DeclaracionesDeclaracionesDeclaracionesDeclaraciones

En esta sección se declaran las constantes, los tipos de datos y las variables que se usan en el algoritmo. La sintaxis es:

[[[[ constantes constantes constantes constantes <declaraciones_de_constantes> <declaraciones_de_constantes> <declaraciones_de_constantes> <declaraciones_de_constantes> ]]]] [[[[ tipostipostipostipos_de_datos _de_datos _de_datos _de_datos <declaraciones_de_tipos_de_datos> <declaraciones_de_tipos_de_datos> <declaraciones_de_tipos_de_datos> <declaraciones_de_tipos_de_datos> ]]]] [[[[ variables variables variables variables <declaraciones_de_variables> <declaraciones_de_variables> <declaraciones_de_variables> <declaraciones_de_variables> ]]]]

Para resolver el problema planteado en el apartado anterior, es necesario declarar

una constante y dos variables:

constantesconstantesconstantesconstantes

PI ==== 3....141592

variablvariablvariablvariableseseses

realrealrealreal area,,,, radio

Page 7: PROGRAMACION 1 PERIODO

En este caso, no es necesario declarar ningún tipo de dato.

CuerpoCuerpoCuerpoCuerpo

En el cuerpocuerpocuerpocuerpo se escriben todas las instrucciones del algoritmo. La sintaxis es:

inicioinicioinicioinicio

<instrucción_1><instrucción_1><instrucción_1><instrucción_1>

<instrucción_2><instrucción_2><instrucción_2><instrucción_2>

............

<<<<instrucción_n>instrucción_n>instrucción_n>instrucción_n>

finfinfinfin

inicioinicioinicioinicio y finfinfinfin son palabras reservadas que marcan el principio y final de la sección

cuerpo, que es donde está el bloque de instrucciones principal del algoritmobloque de instrucciones principal del algoritmobloque de instrucciones principal del algoritmobloque de instrucciones principal del algoritmo.

El cuerpo del algoritmo Area_de_una_circunferencia es:

inicioinicioinicioinicio

escribescribescribescribir( "ir( "ir( "ir( "Introduzca radio: " )" )" )" )

leer(leer(leer(leer( radio ))))

areaareaareaarea ←←←← PI **** radio ******** 2

escribir( "escribir( "escribir( "escribir( "El área de la circunferencia es: ",",",", area ))))

Page 8: PROGRAMACION 1 PERIODO

finfinfinfin

Por pantalla se verá algo parecido a:

Así, el algoritmo completo es:

algoritmoalgoritmoalgoritmoalgoritmo Area_de_una_circunferencia

constantesconstantesconstantesconstantes

PI ==== 3....141592

variablesvariablesvariablesvariables

realrealrealreal area,,,, radio

inicioinicioinicioinicio

escribir( "escribir( "escribir( "escribir( "Introduzca radio: " )" )" )" )

leer(leer(leer(leer( radio ))))

area ←←←← PI **** radio ******** 2

Page 9: PROGRAMACION 1 PERIODO

escribir( "escribir( "escribir( "escribir( "El área de la circunferencia es: ",",",", area ))))

finfinfinfin

La sintaxis completa para escribir un algoritmo en pseudocódigo es:

algoritmoalgoritmoalgoritmoalgoritmo <nombre_del_algoritmo><nombre_del_algoritmo><nombre_del_algoritmo><nombre_del_algoritmo>

[[[[ constantes constantes constantes constantes <declaraciones_de_constantes> <declaraciones_de_constantes> <declaraciones_de_constantes> <declaraciones_de_constantes> ]]]]

[[[[ tipos_de_datos tipos_de_datos tipos_de_datos tipos_de_datos <declaraciones_de_tipos_de_datos> <declaraciones_de_tipos_de_datos> <declaraciones_de_tipos_de_datos> <declaraciones_de_tipos_de_datos> ]]]]

[[[[ variables variables variables variables <declaraciones_de_variables> <declaraciones_de_variables> <declaraciones_de_variables> <declaraciones_de_variables> ]]]]

inicioinicioinicioinicio

<<<<bloque_de_instrucciones>bloque_de_instrucciones>bloque_de_instrucciones>bloque_de_instrucciones>

finfinfinfin

ComentariosComentariosComentariosComentarios

En los algoritmos es conveniente escribir comentarios para explicar el diseño y/o

funcionamiento del mismo. Para delimitar los comentarios se pueden utilizar

distintoscaracteres:

• ([) y (]) • ({) y (}) • (/*) y (*/) • ...

En pseudocódigo, en este curso, los comentarios se van a escribir entre los

símbolos reservados barra-asterisco (/*/*/*/*) y asterisco-barra (*/*/*/*/), que son los mismos

que se utilizan en lenguaje C.

Page 10: PROGRAMACION 1 PERIODO

Ejemplo 1:Ejemplo 1:Ejemplo 1:Ejemplo 1: Para comentar las secciones del algoritmo Area_de_una_circunferencia

se puede escribir:

/* /* /* /* Cabecera */*/*/*/

algoritmoalgoritmoalgoritmoalgoritmo Area_de_una_circunferencia

/*/*/*/* Declaraciones */*/*/*/

constantesconstantesconstantesconstantes

PI ==== 3....141592

variablesvariablesvariablesvariables

realrealrealreal area,,,, radio

/* /* /* /* Cuerpo */*/*/*/

inicioinicioinicioinicio

escribir( "escribir( "escribir( "escribir( "Introduzca radio: " )" )" )" )

leer(leer(leer(leer( radio ))))

areaareaareaarea ←←←← PI **** radio ******** 2

escribir( "escribir( "escribir( "escribir( "El área de la circunferencia es: ",",",",

area ))))

finfinfinfin

Cuando un algoritmo se convierta (codifique) en un programa, también se podrán

escribir los comentarios en el código fuente de dicho programa. Dichos

comentarios no afectarán nunca a la ejecución del programa. No obstante, serán

muy útiles a la hora de querer saber qué hace un algoritmo (o programa), y cómo

lo hace.

Los comentarios de un algoritmo (o programa) forman parte de la documentación

del mismo, pudiendo:

Page 11: PROGRAMACION 1 PERIODO

• Informar sobre algunos datos relevantes del algoritmo (autor, fecha de creación, fecha de última modificación, proyecto en el que se integra, versión,... ).

• Explicar la utilidad de uno o más tipos de datos, constantes y/o variables. • Describir el funcionamiento general del algoritmo (o programa). • Explicar el cometido de una o más instrucciones. • Etc.

EjemploEjemploEjemploEjemplo 2:2:2:2:

/*/*/*/***************************************************/*/*/*/

/*/*/*/* Programa: Calcular_area_circunferencia */*/*/*/

/*/*/*/* */*/*/*/

/*/*/*/* Descripción: Recibe por teclado el radio de una */*/*/*/

/*/*/*/* circunferencia, mostrando su área por pantalla. */*/*/*/

/*/*/*/* */*/*/*/

/* /* /* /* Autor: XXXXXX */*/*/*/

/*/*/*/* */*/*/*/

/*/*/*/* Fecha: 30/10/2010 */ */ */ */

/*/*/*/***************************************************/*/*/*/

/* /* /* /* Cabecera */*/*/*/

algoritmoalgoritmoalgoritmoalgoritmo Area_de_una_circunferencia

/*/*/*/* Declaraciones */*/*/*/

constantesconstantesconstantesconstantes

PI ==== 3....141592

variablesvariablesvariablesvariables

realrealrealreal area,,,, radio

/* /* /* /* Cuerpo */*/*/*/

Page 12: PROGRAMACION 1 PERIODO

inicioinicioinicioinicio

escribir( "escribir( "escribir( "escribir( "Introduzca radio: " )" )" )" )

leer(leer(leer(leer( radio ))))

areaareaareaarea ←←←← PI **** radio ******** 2

escribir( "escribir( "escribir( "escribir( "El área de la circunferencia es: ",",",",

area ))))

finfinfinfin

Ejercicio 1 Ejercicio 1 Ejercicio 1 Ejercicio 1 ---- Área de un triángulo (Estructura de un algoritmo Área de un triángulo (Estructura de un algoritmo Área de un triángulo (Estructura de un algoritmo Área de un triángulo (Estructura de un algoritmo ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE) Diseñe el algoritmo (en pseudocódigo) de un programa que:

1º) Pida por teclado la base (dato real) de un triángulo. 2º) Pida por teclado la altura (dato real) de un triángulo. 3º) Calcule el área del triángulo. 4º) Muestre por pantalla el resultado (dato real). Nota:Nota:Nota:Nota: Área de un triángulo = base * altura / 2 En pantalla:

Introduzca base:Introduzca base:Introduzca base:Introduzca base: 1.21.21.21.2 Introduzca altura:Introduzca altura:Introduzca altura:Introduzca altura: 4.54.54.54.5 El área del triángulo es:El área del triángulo es:El área del triángulo es:El área del triángulo es: 2.72.72.72.7

Ejercicio 2 Ejercicio 2 Ejercicio 2 Ejercicio 2 ---- División enDivisión enDivisión enDivisión entera (Estructura de un algoritmo tera (Estructura de un algoritmo tera (Estructura de un algoritmo tera (Estructura de un algoritmo ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE) Diseñe el algoritmo (en pseudocódigo) de un programa que:

Page 13: PROGRAMACION 1 PERIODO

1º) Pida por teclado dos números (datos enteros). 2º) Muestre por pantalla el resultado de realizar la división entera del primer número introducido por el usuario entre el segundo, y el resto. En pantalla:

Introduzca dividendo (entero):Introduzca dividendo (entero):Introduzca dividendo (entero):Introduzca dividendo (entero): 39393939 Introduzca divisor (entero):Introduzca divisor (entero):Introduzca divisor (entero):Introduzca divisor (entero): 5555 39 div39 div39 div39 div 5 =5 =5 =5 = 7 ( Resto =7 ( Resto =7 ( Resto =7 ( Resto = 4 )4 )4 )4 )

Nota:Nota:Nota:Nota: Se entiende que el usuario no introducirá un divisor igual a cero.

Solución del Solución del Solución del Solución del Ejercicio 1 Ejercicio 1 Ejercicio 1 Ejercicio 1 ---- Área de un triángulo (Estructura de un algoritmo Área de un triángulo (Estructura de un algoritmo Área de un triángulo (Estructura de un algoritmo Área de un triángulo (Estructura de un algoritmo ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)

algoritmoalgoritmoalgoritmoalgoritmo Area_de_un_triangulo variablesvariablesvariablesvariables realrealrealreal altura, , , , area,,,, base inicioinicioinicioinicio escribir( "escribir( "escribir( "escribir( "Introduzca base: " )" )" )" ) leer(leer(leer(leer( base )))) escribir( "escribir( "escribir( "escribir( "Introduzca altura: " )" )" )" ) leer(leer(leer(leer( altura )))) area ←←←← base **** altura //// 2

Page 14: PROGRAMACION 1 PERIODO

escribir( "escribir( "escribir( "escribir( "El área del triángulo es: ",",",", area )))) finfinfinfin

Una segunda solución es:

algoritmoalgoritmoalgoritmoalgoritmo Area_de_un_triangulo variablesvariablesvariablesvariables realrealrealreal altura,,,, base inicioinicioinicioinicio escribir( "escribir( "escribir( "escribir( "Introduzca base: " )" )" )" ) leer(leer(leer(leer( base )))) escribir( "escribir( "escribir( "escribir( "Introduzca altura: " )" )" )" ) leer(leer(leer(leer( altura )))) escribir( "escribir( "escribir( "escribir( "El área del triángulo es: ",",",", base **** altura //// 2 )))) finfinfinfin

Solución del Ejercicio 2 Solución del Ejercicio 2 Solución del Ejercicio 2 Solución del Ejercicio 2 ---- División entera (Estructura de un algoritmo División entera (Estructura de un algoritmo División entera (Estructura de un algoritmo División entera (Estructura de un algoritmo ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)

algoritmoalgoritmoalgoritmoalgoritmo Division_entera variablesvariablesvariablesvariables enteroenteroenteroentero dividendo,,,, divisor,,,, cociente,,,, resto inicioinicioinicioinicio escribir( "escribir( "escribir( "escribir( "Introduzca dividendo (entero): " )" )" )" )

Page 15: PROGRAMACION 1 PERIODO

leer(leer(leer(leer( dividendo )))) escribir( "escribir( "escribir( "escribir( "Introduzca divisor (entero): " )" )" )" ) leer(leer(leer(leer( divisor )))) cociente ←←←← dividendo divdivdivdiv divisor resto ←←←← dividendo modmodmodmod divisor escribir( escribir( escribir( escribir( dividendo, ", ", ", " div ",",",", divisor,,,, """" = ",",",", cociente,,,, """" ( Resto = ",",",", resto, ", ", ", " )"""" )))) finfinfinfin

Una segunda solución es:

algoritmoalgoritmoalgoritmoalgoritmo Division_entera variablesvariablesvariablesvariables enteroenteroenteroentero dividendo,,,, divisor inicioinicioinicioinicio escribir( "escribir( "escribir( "escribir( "Introduzca dividendo (entero): " )" )" )" ) leer(leer(leer(leer( dividendo )))) escribir( "escribir( "escribir( "escribir( "Introduzca divisor (entero): " )" )" )" ) leer(leer(leer(leer( divisor )))) escribir( escribir( escribir( escribir( dividendo, ", ", ", " div ",",",", divisor,,,, """" = ",",",", dividendo divdivdivdiv divisor,,,, """" ( Resto = ",",",", dividendo modmodmodmod divisor,,,, """" )"""" )))) finfinfinfin

Page 16: PROGRAMACION 1 PERIODO

En un ordinogramaEn un ordinogramaEn un ordinogramaEn un ordinograma

AsignaciónAsignaciónAsignaciónAsignación

La INSTRUCCION de asignación en un ordinograma, se debe escribir la misma

sintaxis que en, pseudocódigo pero, dentro de un rectángulo:

Ejemplo 1:Ejemplo 1:Ejemplo 1:Ejemplo 1: Una instrucción de asignación puede ser:

EjemploEjemploEjemploEjemplo 2:2:2:2: Varias instrucciones de asignación se pueden agrupar dentro de un

mismo rectángulo:

Entrada y salidaEntrada y salidaEntrada y salidaEntrada y salida

En un ordinograma, tanto las instrucciones de entrada como las de salida, se

escriben igual que en pseudocódigo, pero, dentro de un romboide:

<nombre_de_la_variable>←<expresion>

radio←3.28

radio ← 0.8

area ← PI * radio ** 34

longitud←2 * PI * radio

Leer (<lista_de_variables>)

escribir(<lista_de_expresiones>

Page 17: PROGRAMACION 1 PERIODO

Ejemplo 1: Una instrucción de entrada que lea la variable radio, se escribe:

Ejemplo 2: Varias instrucciones de entrada o de salida pueden dibujarse dentro del

mismo romboide:

Inicio y finInicio y finInicio y finInicio y fin

En un ordinograma, el inicio y fin del cuerpo de un

algoritmo se escriben dentro de un óvalo de la siguiente

manera:

Por medio de las flechas se indica el orden de las

acciones del algoritmo.

Leer (radio)

Escribir (“El área es: “, area)

Escribir (“La longitud es: “, longitud)

Page 18: PROGRAMACION 1 PERIODO

Ejemplo: El siguiente ordinograma es equivalente al cuerpo de un algoritmo escrito

en pseudocódigo:

PRESENTE EL SIGUIENTE EJERCICIO AL PROFESORPRESENTE EL SIGUIENTE EJERCICIO AL PROFESORPRESENTE EL SIGUIENTE EJERCICIO AL PROFESORPRESENTE EL SIGUIENTE EJERCICIO AL PROFESOR

Ejercicio 2 Ejercicio 2 Ejercicio 2 Ejercicio 2 ---- División entera (Estructura de un algoritmo División entera (Estructura de un algoritmo División entera (Estructura de un algoritmo División entera (Estructura de un algoritmo ---- Ordinogramas)Ordinogramas)Ordinogramas)Ordinogramas) Diseñe el algoritmo (ordinograma) de un programa que:

Page 19: PROGRAMACION 1 PERIODO

1º) Pida por teclado dos números (datos enteros). 2º) Muestre por pantalla el resultado de realizar la división entera del primer número introducido por el usuario entre el segundo, y el resto. En pantalla:

Introduzca dividendo (entero):Introduzca dividendo (entero):Introduzca dividendo (entero):Introduzca dividendo (entero): 39393939 Introduzca divisor (entero):Introduzca divisor (entero):Introduzca divisor (entero):Introduzca divisor (entero): 5555 39 div39 div39 div39 div 5 =5 =5 =5 = 7 ( Resto =7 ( Resto =7 ( Resto =7 ( Resto = 4 )4 )4 )4 )

Nota:Nota:Nota:Nota: Se entiende que el usuario no introducirá un divisor igual a cero.

Expresiones lógicasExpresiones lógicasExpresiones lógicasExpresiones lógicas

De la evaluación de una expresión lógica siempre se obtiene un valor de tipo

lógico (verdadero o falso). En las expresiones lógicas se pueden utilizar dos tipos

de operadores:

· Relacionales

· Lógicos

Un operador relacional se utiliza para comparar los valores de dos expresiones.

Éstas deben ser del mismo tipo (aritméticas, lógicas, de carácter o de cadena).

Ejemplo 1: Algunos ejemplos son:

Page 20: PROGRAMACION 1 PERIODO

22 > 13 (comparación de dos expresiones aritméticas)

22.5 < 3.44 (comparación de dos expresiones aritméticas)

verdadero = falso (comparación de dos expresiones lógicas)

'c' > 'f' (comparación de dos expresiones de carácter)

"coche" = "Coche" (comparación de dos expresiones de cadena)

Proporcionan los valores:

verdadero (22 es mayor que 13)

falso (22.5 no es menor que 3.44)

falso (verdadero no es igual que falso)

falso ('c' no es mayor que 'f')

falso ("coche" no es igual que "Coche")

Las comparaciones entre los valores de tipo numérico son obvias. En cuanto a los

valores de tipo lógico (verdadero y falso) se considera que falso es menor que

verdadero. En lo que respecta a los valores de tipo carácter, su orden viene dado

por el ASCII extendido utilizado por el ordenador para representarlos. Y en el caso

de los valores de tipo cadena, también se tiene en cuenta dicho código

Los operadores relacionales son:

Page 21: PROGRAMACION 1 PERIODO

Figura. Clasificación de los operadores relacionales en pseudocódigo.

Para escribir una expresión relacional (lógica) se utiliza la sintaxis:

<expresión_1><expresión_1><expresión_1><expresión_1> <operador_de_relación><operador_de_relación><operador_de_relación><operador_de_relación> <expresión_2><expresión_2><expresión_2><expresión_2>

Siendo <expresión_1> y <expresión_2> del mismo tipo (aritmética, lógica, de

carácter o de cadena).

Por otra parte, un operador lógico actúa, exclusivamente, sobre valores de

expresiones

lógicas. Los operadores

lógicos son:

Figura. Clasificación de los operadores lógicos en pseudocódigo.

El operador conjunción (y) y el operador disyunción (o) siempre actúan sobre dos

operandos, mientras que, el operador negación (no) sólo actúa sobre un

operando, o dicho de otra forma, es un operador monario.

Page 22: PROGRAMACION 1 PERIODO

El modo en que actúan los operadores lógicos se resume en las llamadas tablas

de verdad, definidas por el matemático George Boole.

La tabla de verdad del operador conjunción (y) es:

Figura. Tabla de verdad del operador conjunción (y).

Se supone que <expresión_1> y <expresión_2> son expresiones lógicas. De la

tabla de verdad se deduce que <expresión_1> y <expresión_2> se evalúa a

verdadero sólo en el caso de que tanto <expresión_1> como <expresión_2> se

evalúen también como verdaderas, en cualquier otro caso el resultado será falso.

Dicho de otro modo, si al menos una de las dos expresiones es falsa, el resultado

será falso.

Ejemplo 2: Algunos ejemplos son:

9 > 3 y 8 > 6

9 > 3 y 8 > 9

9 = 3 y 8 >= 6

9 = 3 y 8 >= 9

Page 23: PROGRAMACION 1 PERIODO

Las expresiones anteriores se evalúan a:

verdadero (9 > 3 es verdadero y 8 > 6 es verdadero)

falso (9 > 3 es verdadero y 8 > 9 es falso)

falso (9 = 3 es falso y 8 >= 6 es verdadero)

falso (9 = 3 es falso y 8 >= 9 es falso)

La tabla de verdad del operador disyunción (o) es:

Figura. Tabla de verdad del operador disyunción (o).

De la tabla de verdad se deduce que si al menos una de las dos expresiones es

verdadera, el resultado será verdadero.

La tabla de verdad del operador negación (no) es:

Figura. Tabla de verdad del operador negación (no).

El valor de no <expresión> es el contrario al valor obtenido de <expresión>.

Ejemplo 3: De las expresiones

Page 24: PROGRAMACION 1 PERIODO

no ( 9 > 3 )

no ( 8 > 9 )

los resultados de evaluarlas son:

falso (9 > 3 es verdadero)

verdadero (8 > 9 es falso)

Prioridad de los operadores relacionalPrioridad de los operadores relacionalPrioridad de los operadores relacionalPrioridad de los operadores relacionales y lógicoses y lógicoses y lógicoses y lógicos

En una expresión lógica puede aparecer uno o más operadores relacionales y/o

lógicos.

Ejemplo: Algunos ejemplos son:

3 > 1 o 4 < 1 y 4 <= 2

no falso y falso

verdadero >= verdadero = falso

falso = verdadero <= verdadero

Para poder evaluar correctamente las expresiones lógicas del ejemplo, es

necesario seguir un criterio de prioridad de operadores. En nuestro pseudocódigo

CEE, la prioridad entre los operadores relacionales y lógicos es:

Page 25: PROGRAMACION 1 PERIODO

Figura. Prioridad de los operadores relacionales y lógicos en pseudocódigo.

A excepción del operador negación (no), que se evalúa de derecha a izquierda en

una expresión, todos los demás operadores con la misma prioridad, por ejemplo,

el operador menor que (<) y el operador mayor que (>), se evalúan de izquierda a

derecha. Así que, los valores que proporcionan las expresiones del ejemplo 15

son:

verdadero (actúan en orden los operadores: (>), (<), (<=), (y) y (o))

falso (actúan en orden los operadores: (no) e (y))

falso (actúan en orden los operadores: (>=) y (=))

falso (actúan en orden los operadores: (<=) y (=))

Page 26: PROGRAMACION 1 PERIODO

Expresiones de caracterExpresiones de caracterExpresiones de caracterExpresiones de caracter

Aunque no existe ningún operador de caracteres, sí que existen expresiones de

carácter. De la evaluación de una expresión de carácter siempre se obtiene un

valor de tipo carácter.

Ejemplo 16: Dadas las siguientes declaraciones de constantes y variables en

pseudocódigo:

CONSONANTE = 'S'

caracter letra = 'X'

caracter opcion = '3'

Algunas expresiones de carácter son:

opcion

letra

CONSONANTE

'a'

Los resultados de evaluarlas son:

'3'

'X'

'S'

'a'

Expresiones de cadenaExpresiones de cadenaExpresiones de cadenaExpresiones de cadena

Page 27: PROGRAMACION 1 PERIODO

De la evaluación de una expresión de cadena siempre se obtiene un valor de tipo

cadena. Sólo existe un operador de cadena:

Figura. Clasificación de los operadores de cadena en pseudocódigo

El operador concatenación (+) realiza la concatenación de dos operandos de tipo

cadena, es decir, los encadena.

Ejemplo: Dadas las siguientes declaraciones de constantes y variables en

pseudocódigo:

OLIMPIADA = "Atenas 2004"

PUNTO = "."

cadena nombre = "Pedro", apellido = "Cosín", rio = "Pasto"

Algunas expresiones de cadena son:

OLIMPIADA + PUNTO

nombre + " " + apellido

"Buenos días" + PUNTO

rio

nombre + " fue a las Olimpiadas de " + OLIMPIADA + PUNTO

Los resultados de evaluarlas son:

"Atenas 2004."

Page 28: PROGRAMACION 1 PERIODO

"Pedro Cosín"

"Buenos días."

"Pasto"

"Pedro fue a las Olimpiadas de Atenas 2004."

Prioridad de los operadores aritméticos, relacionales, lógicos y de cadenaPrioridad de los operadores aritméticos, relacionales, lógicos y de cadenaPrioridad de los operadores aritméticos, relacionales, lógicos y de cadenaPrioridad de los operadores aritméticos, relacionales, lógicos y de cadena

En una expresión puede aparecer uno o más operadores aritméticos, relacionales,

lógicos y/o de cadena.

Ejemplo 1: Algunos ejemplos son:

5 * 4 > 5 + 4 o falso y "ab" < "aa"

( 5 * 4 > 5 + 4 o falso ) y 'f' < 'b'

no verdadero < falso

no ( verdadero < falso )

Para poder evaluar correctamente las expresiones anteriores, es necesario seguir

un criterio de prioridad de operadores. En nuestro pseudocódigo CEE, la prioridad

entre los operadores aritméticos, relacionales, lógicos y de cadena es:

Page 29: PROGRAMACION 1 PERIODO

Figura. Prioridad de los operadores aritméticos, relacionales, lógicos y de cadena

en pseudocódigo.

Por tanto, los valores que proporcionan las expresiones del ejemplo 18 son:

verdadero (actúan en orden los operadores: (*), suma (+), (>), (<), (y) y (o))

falso (actúan en orden los operadores: (*), suma (+), (>), (o), (<) e (y))

falso (actúan en orden los operadores: (no) y (<))

verdadero (actúan en orden los operadores: (<) y (no))

Obsérvese que, los paréntesis "()" son capaces de cambiar el orden de actuación

de los operadores de cualquier expresión. Además, los paréntesis se pueden

anidar, es decir, se pueden escribir unos dentro de otros, priorizándose del más

interno al más externo y, después, de izquierda a derecha.

Ejemplo 2: De la expresión

Page 30: PROGRAMACION 1 PERIODO

42 mod ( ( 4 - 5 ) * ( 8 + 2 ) )

se obtiene el valor:

2 (actúan en orden los operadores: (-), (+), (*) y (mod).

Page 31: PROGRAMACION 1 PERIODO

Datos de tipos enumeradosDatos de tipos enumeradosDatos de tipos enumeradosDatos de tipos enumerados

Un dato de un tipo enumeradodato de un tipo enumeradodato de un tipo enumeradodato de un tipo enumerado es aquel que puede tomar por valor uno de los

pertenecientes a una lista ordenada de valores definida por el programador.

Ejemplo:Ejemplo:Ejemplo:Ejemplo: Un dato enumerado puede ser la dirección en la que se mueve un coche.

Los valores son:

{ norte, sur, este, oeste }

Declaración de tipos enumeradosDeclaración de tipos enumeradosDeclaración de tipos enumeradosDeclaración de tipos enumerados

En nuestro pseudocódigo CEE, para declarar un tipo de dato enumerado, vamos a

utilizar la sintaxis:

enumeradoenumeradoenumeradoenumerado <tipo> <tipo> <tipo> <tipo> {{{{ <constante_1> [ <constante_1> [ <constante_1> [ <constante_1> [ ==== <valor_1> ]<valor_1> ]<valor_1> ]<valor_1> ],,,,

<constante_2> [ <constante_2> [ <constante_2> [ <constante_2> [ ==== <valor_2> ]<valor_2> ]<valor_2> ]<valor_2> ],,,,

...,...,...,...,

<constante_n> <constante_n> <constante_n> <constante_n> [ [ [ [ ==== <valor_n> ] <valor_n> ] <valor_n> ] <valor_n> ] }}}}

Como se puede apreciar, los valores de la lista se representan por medio de

identificadores de constantes.

Ejemplo 1: Por ejemplo, para declarar el tipo enumerado direcciones, se debe

escribir:

enumerado direcciones { NORTE, SUR, ESTE, OESTE }

La lista de constantes está ordenada, y cada una de ellas representa a un valor

entero empezando por el 0, e incrementándose de uno en uno. De manera que,

las constantes declaradas representan a los valores enteros {0, 1, 2, 3}.

Page 32: PROGRAMACION 1 PERIODO

NORTE representa al valor 0

SUR representa al valor 1

ESTE representa al valor 2

OESTE representa al valor 3

Pero, dichos valores pueden ser diferentes si así se indica en la declaración.

Ejemplo 2: Se puede escribir:

enumerado direcciones { NORTE = -2, SUR, ESTE, OESTE }

En este caso, las constantes declaradas representan a los valores {-2, -1, 0, 1}, ya

que, a partir de la asignación NORTE = -2, las demás constantes de la lista toman

valores incrementándose de uno en uno.

NORTE representa al valor -2

SUR representa al valor -1

ESTE representa al valor 0

OESTE representa al valor 1

Ejemplo 3: También se puede escribir, por ejemplo:

enumerado direcciones { NORTE, SUR, ESTE = 4, OESTE }

Ahora, las constantes declaradas representan a los valores {0, 1, 4, 5}.

NORTE representa al valor 0

SUR representa al valor 1

ESTE representa al valor 4

OESTE representa al valor 5

NORTE es la primera constante de la lista, en consecuencia, representa al valor 0.

Después, SUR representa al valor 1. Pero, a ESTE, que debería representar al

valor 2, se le ha asignado el valor 4 en la declaración, de manera que, OESTE

Page 33: PROGRAMACION 1 PERIODO

representa al valor 5. Si después hubiese otra constante en la lista, representaría

al valor 6, y así sucesivamente.

Variables de tipos enuVariables de tipos enuVariables de tipos enuVariables de tipos enumeradosmeradosmeradosmerados

Una variable de un tipo enumerado representa a un espacio de memoria donde

se puede almacenar un dato de un tipo enumerado.

Ejemplo 1:Ejemplo 1:Ejemplo 1:Ejemplo 1: Dadas las declaraciones

enumerado direcciones { NORTE, SUR, ESTE, OESTE }

direcciones direccion_de_un_coche

direccion_de_un_coche es una variable del tipo enumerado direcciones, por tanto,

en el espacio de memoria representado por la variable se podrá almacenar uno de

los valores {0, 1, 2, 3}.

Ejemplo 2:Ejemplo 2:Ejemplo 2:Ejemplo 2: Las declaraciones del ejemplo 5 se pueden combinar de la forma

siguiente:

enumerado direcciones { NORTE, SUR, ESTE, OESTE }

direccion_de_un_coche

Ejemplo 3:Ejemplo 3:Ejemplo 3:Ejemplo 3: También se pueden combinar prescindiendo del nombre (identificador)

del tipo de dato enumerado.

enumerado { NORTE, SUR, ESTE, OESTE } direccion_de_un_coche

Page 34: PROGRAMACION 1 PERIODO

Actividad: de un ejemplo de datos de tipo enumerado y otro ejemplo de variables

de tipo numerado. Los ejemplos tienen que ver con una empresa que vende

productos agrícolas. (explique sus ejemplos)

Enumerando productos agrícolas {papa arroz maíz huevos }

Datos de tipos subrangosDatos de tipos subrangosDatos de tipos subrangosDatos de tipos subrangos

En lenguaje C no existen datos de tipos subrangos, no obstante, otros lenguajes

de programación sí permiten definirlos y, por esta razón, es conveniente

estudiarlos brevemente.

Un dato de un tipodato de un tipodato de un tipodato de un tipo subrangosubrangosubrangosubrango es aquel que puede tomar por valor uno de los

pertenecientes a un subrango definido por el programador. Por ejemplo,

suponiendo que el ordenador (utilizando diecisébits) puede representar el

siguiente conjunto de valores enteros:

{ ----32768327683276832768, ----32767327673276732767, ..., ----1111, 0000, 1111, ..., 32766327663276632766, 32767327673276732767 }

Los valores mínimo y máximo de ese rango son los números ----32768327683276832768 y 32767327673276732767,

respectivamente. Pues bien, un subrango es un subconjunto de valores de un

rango.

Ejemplo 1:Ejemplo 1:Ejemplo 1:Ejemplo 1: Del rango { ----32768327683276832768, ..., 0000, ..., 32767327673276732767 } posibles subrangos son:

{ 1111, 2222, 3333, 4444, 5555, 6666 }

{ 0000, 1111, 2222, ..., 8888, 9999, 10101010 }

{ ----10101010, ----9999, ----8888, ----7777 }

{ ----3333, ----2222, ----1111, ..., 5555, 6666, 7777 }

{ 1240124012401240, 1241124112411241, 1243124312431243, ..., 2999299929992999, 3000300030003000, 3001300130013001}

Page 35: PROGRAMACION 1 PERIODO

Ejemplo 2:Ejemplo 2:Ejemplo 2:Ejemplo 2: Sin embargo, al rango { ----32768327683276832768, ..., 0000, ..., 32767327673276732767 } no pertenecen los

siguientes subrangos:

{ 0000, 1111, 2222, ... 34998349983499834998, 34999349993499934999, 35000350003500035000 }

{ ----50000500005000050000, ----49999499994999949999, ----49998499984999849998, ..., 49998499984999849998, 49999499994999949999, 50000500005000050000 }

Como se puede observar, el conjunto de valores de un subrango también está

comprendido entre un valor mínimo y un valor máximo. Además, en el subrango

tienen que estar todos los elementos que están en el rango entre ambos valores

Ejemplo 3:Ejemplo 3:Ejemplo 3:Ejemplo 3: Así pues, del rango { ----32768327683276832768, ..., 0000, ..., 32767327673276732767 }, los siguientes conjuntos

no pueden ser considerados como subrangos:

{ 2222, 4444, 6666, 8888, 10101010 }

{ 1111, 2222, 4444, 8888, 16161616, 32323232 }

Todos los datos de tipos subrangos son ordinales, es decir, sólo pueden tomar por

valor elementos de subrangos finitos.

Variables de tipos subrangosVariables de tipos subrangosVariables de tipos subrangosVariables de tipos subrangos

Una variable de un tipo subrango representa a un espacio de memoria en donde

se puede almacenar un dato de un tipo subrango.

Ejemplo 1: Dadas las declaraciones

subrango calificaciones = 0..10

Page 36: PROGRAMACION 1 PERIODO

calificaciones matematicas

matematicas es una variable del tipo subrango calificaciones, así que, en el

espacio de memoria representado por la variable se podrá almacenar uno de los

valores del conjunto { 0, 1, 2, ..., 8, 9, 10 }.

Ejemplo 2: Las declaraciones del ejemplo 5 se pueden combinar de la forma

siguiente:

subrango calificaciones = 0..10 matematicas

Ejemplo 3: También, se pueden combinar prescindiendo del nombre (identificador)

del tipo de dato subrango.

subrango 0..10 matematicas

Ejercicio: plante ejemplos de datos de tipo subrango y variables de tipo subrango

con los temas:

Temperatura

Letras del alfabeto español

Nota: Los ejemplos los expondrá en clase ante sus compañeros

Alternativa múltipleAlternativa múltipleAlternativa múltipleAlternativa múltiple

Page 37: PROGRAMACION 1 PERIODO

Una instrucción alternativa múltipleinstrucción alternativa múltipleinstrucción alternativa múltipleinstrucción alternativa múltiple (o simplemente alternativa múltiplealternativa múltiplealternativa múltiplealternativa múltiple) permite

seleccionar, por medio de una expresión, el siguiente bloque de instrucciones a

ejecutar de entre varios posibles. En pseudocódigo, para escribir una alternativa

múltiple se utiliza la sintaxis:

segun_sea(segun_sea(segun_sea(segun_sea(<expresión><expresión><expresión><expresión>))))

<lista_de_valores_1><lista_de_valores_1><lista_de_valores_1><lista_de_valores_1>::::<bloque_de_instrucciones_1><bloque_de_instrucciones_1><bloque_de_instrucciones_1><bloque_de_instrucciones_1>

<lista_de_valores_2><lista_de_valores_2><lista_de_valores_2><lista_de_valores_2>::::<bloq<bloq<bloq<bloque_de_instrucciones_2>ue_de_instrucciones_2>ue_de_instrucciones_2>ue_de_instrucciones_2>

............

<lista_de_valores_n><lista_de_valores_n><lista_de_valores_n><lista_de_valores_n>::::<bloque_de_instrucciones_n><bloque_de_instrucciones_n><bloque_de_instrucciones_n><bloque_de_instrucciones_n>

[ [ [ [ sino:sino:sino:sino:<bloque_de_instrucciones_n+1> ]<bloque_de_instrucciones_n+1> ]<bloque_de_instrucciones_n+1> ]<bloque_de_instrucciones_n+1> ]

fin_segun_seafin_segun_seafin_segun_seafin_segun_sea

El resultado de evaluar la <expresión> debe ser un valor perteneciente a un tipo

de dato finito y ordenado, es decir, entero, lógico, carácter, enumerado o subrango

Dependiendo del valor obtenido al evaluar la <expresión>, se ejecutará un bloque

de instrucciones u otro. En las listas de valores se deben escribir los valores que

determinan el bloque de instrucciones a ejecutar, teniendo en cuenta que, un valor

sólo puede aparecer en una lista de valores.

Opcionalmente, se puede escribir un <bloque_de_instrucciones_n+1> después de

sino :sino :sino :sino :. Este bloque de instrucciones se ejecutará en el caso de que el valor

obtenido al evaluar la <expresión>, no se encuentre en ninguna de las listas de

valores especificadas.

Ejemplo 1:Ejemplo 1:Ejemplo 1:Ejemplo 1: Se quiere diseñar el algoritmo de un programa que:

Page 38: PROGRAMACION 1 PERIODO

1º) Pida por teclado el número (dato entero) de un día de la semana.

2º) Muestre por pantalla el nombre (dato cadena) correspondiente a dicho día.

Nota: Si el número de día introducido es menor que 1 ó mayor que 7, se mostrará

el mensaje: "ERROR: Día incorrecto.".

En pantalla:

Algoritmo propuesto:

algoritmoalgoritmoalgoritmoalgoritmo Dia_de_la_semana

variablesvariablesvariablesvariables

enteroenteroenteroentero dia

inicioinicioinicioinicio

escribir("escribir("escribir("escribir("Introduzca día de la semana: " )" )" )" )

leer(leer(leer(leer(dia))))

segun_sea (segun_sea (segun_sea (segun_sea (dia))))

1 : escribir(": escribir(": escribir(": escribir("Lunes" )" )" )" )

Page 39: PROGRAMACION 1 PERIODO

2 : escribir( ": escribir( ": escribir( ": escribir( "Martes" )" )" )" )

3 : escribir( ": escribir( ": escribir( ": escribir( "Miércoles" )" )" )" )

4 : escribir( ": escribir( ": escribir( ": escribir( "Jueves" )" )" )" )

5 : escribir( ": escribir( ": escribir( ": escribir( "Viernes" )" )" )" )

6 : escribir( ": escribir( ": escribir( ": escribir( "Sábado" )" )" )" )

7 : escribir( ": escribir( ": escribir( ": escribir( "Domingo" )" )" )" )

sino : escribir( "sino : escribir( "sino : escribir( "sino : escribir( "ERROR: Día incorrecto." )" )" )" )

fin_segun_seafin_segun_seafin_segun_seafin_segun_sea

finfinfinfin

Cuando en una lista de valores de una alternativa múltiple aparece más de un

valor, estos se escriben separados por el carácter coma (,,,,). Estudiemos el

siguiente ejemplo.

Ejemplo 2:Ejemplo 2:Ejemplo 2:Ejemplo 2: En la siguiente tabla se muestran las categorías a las que pertenecen

los signos del zodíaco:

Se quiere diseñar el algoritmo de un

programa que:

1º) Muestre el listado de los signos del

zodíaco, con sus números asociados.

2º) Pida por teclado un número (dato

entero) asociado a un signo del zodíaco.

3º) Muestre la categoría a la que pertenece

el signo del zodíaco seleccionado.

Page 40: PROGRAMACION 1 PERIODO

Nota: Si el número introducido por el usuario, no está asociado a ningún signo del

zodíaco, se mostrará el mensaje: "ERROR: <número> no está asociado a ningún

signo.".

En pantalla:

Page 41: PROGRAMACION 1 PERIODO

Una posible solución es:

algoritmoalgoritmoalgoritmoalgoritmo Signo_del_zodiaco

variablesvariablesvariablesvariables

enteroenteroenteroentero numero

Page 42: PROGRAMACION 1 PERIODO

inicioinicioinicioinicio

escribir( "escribir( "escribir( "escribir( "Listado de signos del zodíaco:" )" )" )" )

escribir( "escribir( "escribir( "escribir( "1. Aries" )" )" )" )

escribir( "escribir( "escribir( "escribir( "2. Tauro" )" )" )" )

escribir( "escribir( "escribir( "escribir( "3. Géminis" )" )" )" )

escribir( "escribir( "escribir( "escribir( "4. Cáncer" )" )" )" )

escribir( "escribir( "escribir( "escribir( "5. Leo" )" )" )" )

escribir( "escribir( "escribir( "escribir( "6. Virgo" )" )" )" )

escribir( "escribir( "escribir( "escribir( "7. Libra" )" )" )" )

escribir( "escribir( "escribir( "escribir( "8. Escorpio" )" )" )" )

escribir( "escribir( "escribir( "escribir( "9. Sagitario" )" )" )" )

escribir( "escribir( "escribir( "escribir( "10. Capricornio" )" )" )" )

escribir( "escribir( "escribir( "escribir( "11. Acuario" )" )" )" )

escribir( "escribir( "escribir( "escribir( "12. Piscis" )" )" )" )

escribir( "escribir( "escribir( "escribir( "Introduzca número de signo: " )" )" )" )

leer(leer(leer(leer( numero ))))

segun_sea (segun_sea (segun_sea (segun_sea ( numero ))))

1,,,, 5,,,, 9 : escribir( ": escribir( ": escribir( ": escribir( "Es un signo de Fuego." )" )" )" )

2,,,, 6,,,,10 : escribir( ": escribir( ": escribir( ": escribir( "Es un signo de Tierra." )" )" )" )

3,,,, 7,,,,11 : escribir( ": escribir( ": escribir( ": escribir( "Es un signo de Aire." )" )" )" )

4,,,, 8,,,,12 : escribir( ": escribir( ": escribir( ": escribir( "Es un signo de Agua." )" )" )" )

sino : escribir( "sino : escribir( "sino : escribir( "sino : escribir( "ERROR: ",",",", numero,,,,

"""" no está asociado a ningún signo." )" )" )" )

Page 43: PROGRAMACION 1 PERIODO

fin_segun_seafin_segun_seafin_segun_seafin_segun_sea

finfinfinfin

Otra solución es:

algoritmoalgoritmoalgoritmoalgoritmo Signo_del_zodiaco

variablesvariablesvariablesvariables

enteroenteroenteroentero numero

cadenacadenacadenacadena categoria

inicioinicioinicioinicio

escribir( "escribir( "escribir( "escribir( "Listado de signos del zodíaco:" )" )" )" )

escribir( "escribir( "escribir( "escribir( "1. Aries" )" )" )" )

escribir( "escribir( "escribir( "escribir( "2. Tauro" )" )" )" )

escribir( "escribir( "escribir( "escribir( "3. Géminis" )" )" )" )

escribir( "escribir( "escribir( "escribir( "4. Cáncer" )" )" )" )

escribir( "escribir( "escribir( "escribir( "5. Leo" )" )" )" )

escribir( "escribir( "escribir( "escribir( "6. Virgo" )" )" )" )

escribir( "escribir( "escribir( "escribir( "7. Libra" )" )" )" )

escribir( "escribir( "escribir( "escribir( "8. Escorpio" )" )" )" )

escribir(escribir(escribir(escribir( """"9. Sagitario" )" )" )" )

escribir( "escribir( "escribir( "escribir( "10. Capricornio" )" )" )" )

escribir( "escribir( "escribir( "escribir( "11. Acuario" )" )" )" )

escribir( "escribir( "escribir( "escribir( "12. Piscis" )" )" )" )

escribir( "escribir( "escribir( "escribir( "Introduzca número de signo: " )" )" )" )

Page 44: PROGRAMACION 1 PERIODO

leer(leer(leer(leer( numero ))))

segun_sea (segun_sea (segun_sea (segun_sea (numeromodmodmodmod 4 ))))

1 ::::categoria ←"←"←"←"Fuego""""

2 ::::categoria ←"←"←"←"Tierra""""

3 ::::categoria ←"←"←"←"Aire""""

0 ::::categoria ←"←"←"←"Agua""""

fin_segun_seafin_segun_seafin_segun_seafin_segun_sea

si (si (si (si ( numero >=>=>=>= 1 yyyy numero <=<=<=<= 12 ))))

escribir( "escribir( "escribir( "escribir( "Es un signo de ",",",",categoria, ", ", ", "." )" )" )" )

sinosinosinosino

escribir( "escribir( "escribir( "escribir( "ERROR: ",",",", numero,,,,

"""" no está asociado a ningún signo." )" )" )" )

fin_sifin_sifin_sifin_si

finfinfinfin

En esta segunda solución existen las siguientes diferencias importantes con

respecto a la solución anterior:

• En el algoritmo se utiliza una alternativa doble, además de una alternativa múltiple.

• En la alternativa múltiple no se escribe el <bloque_de_instrucciones_n+1>. • La expresión de la alternativa múltiple es diferente. • La expresión "Es un signo de " sólo se escribe una vez.

Se ha utilizado una variable más: categoria

Page 45: PROGRAMACION 1 PERIODO

Ejercicio 1 Ejercicio 1 Ejercicio 1 Ejercicio 1 ---- Número del dado (Alternativa Número del dado (Alternativa Número del dado (Alternativa Número del dado (Alternativa múltiple múltiple múltiple múltiple ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE) Diseñe el algoritmo (en pseudocódigo) de un programa que:

1º) Pida por teclado el resultado (dato entero) obtenido al lanzar un dado de seis caras. 2º) Muestre por pantalla el número en letras (dato cadena) de la cara opuesta al resultado obtenido. Nota 1:Nota 1:Nota 1:Nota 1: En las caras opuestas de un dado de seis caras están los números: 1-6, 2-5 y 3-4. Nota 2:Nota 2:Nota 2:Nota 2: Si el número del dado introducido es menor que 1 ó mayor que 6, se mostrará el mensaje: "ERROR: Número incorrecto.". En pantalla:

Introduzca número del dado:Introduzca número del dado:Introduzca número del dado:Introduzca número del dado: 5555 En la cara opuesta está el "dos".En la cara opuesta está el "dos".En la cara opuesta está el "dos".En la cara opuesta está el "dos".

Introduzca número del dado:Introduzca número del dado:Introduzca número del dado:Introduzca número del dado: 8888 ERROR: Número incorrecto.ERROR: Número incorrecto.ERROR: Número incorrecto.ERROR: Número incorrecto.

Page 46: PROGRAMACION 1 PERIODO

EjercicioEjercicioEjercicioEjercicio 2 2 2 2 ---- Habitaciones de una casa rural (Alternativa múltiple Habitaciones de una casa rural (Alternativa múltiple Habitaciones de una casa rural (Alternativa múltiple Habitaciones de una casa rural (Alternativa múltiple ---- Pseudocódigo Pseudocódigo Pseudocódigo Pseudocódigo

CEE)CEE)CEE)CEE)

En la siguiente tabla se muestra el número de camas de las habitaciones de una

casa rural, además de la planta donde está ubicada cada una de ellas:

HabitaciónHabitaciónHabitaciónHabitación CamasCamasCamasCamas PlantaPlantaPlantaPlanta

1. Azul 2 Primera

2. Roja 1 Primera

3. Verde 3 Segunda

4. Rosa 2 Segunda

5. Gris 1 Tercera

Diseñe el algoritmo (en pseudocódigo) de un programa que:

1º) Muestre el listado de las habitaciones de la casa rural. 2º) Pida por teclado el número (dato entero) asociado a una habitación. 3º) Muestre por pantalla la planta y el número de camas de la habitación seleccionada.

Nota:Nota:Nota:Nota: Si el número introducido por el usuario, no está asociado a ninguna

habitación, se mostrará el mensaje: "ERROR: <número> no está asociado a

ninguna habitación.".

En pantalla:

Listado de habitaciones:Listado de habitaciones:Listado de habitaciones:Listado de habitaciones:

Page 47: PROGRAMACION 1 PERIODO

1. Azul1. Azul1. Azul1. Azul 2. Roja2. Roja2. Roja2. Roja 3. Verde3. Verde3. Verde3. Verde 4.4.4.4. RosaRosaRosaRosa 5. Gris5. Gris5. Gris5. Gris Introduzca número de habitación:Introduzca número de habitación:Introduzca número de habitación:Introduzca número de habitación: 3333 LaLaLaLa Verde tiene 3 cama/s y está en la segunda planta.Verde tiene 3 cama/s y está en la segunda planta.Verde tiene 3 cama/s y está en la segunda planta.Verde tiene 3 cama/s y está en la segunda planta.

Listado de habitaciones:Listado de habitaciones:Listado de habitaciones:Listado de habitaciones: 1. Azul1. Azul1. Azul1. Azul 2. Roja2. Roja2. Roja2. Roja 3. Verde3. Verde3. Verde3. Verde 4.4.4.4. RosaRosaRosaRosa 5. Gris5. Gris5. Gris5. Gris Introduzca número de habitación:Introduzca número de habitación:Introduzca número de habitación:Introduzca número de habitación: 7777 ERROR: 7 no está asociado a ninguna habitación.ERROR: 7 no está asociado a ninguna habitación.ERROR: 7 no está asociado a ninguna habitación.ERROR: 7 no está asociado a ninguna habitación.

Solución del Ejercicio 1 Solución del Ejercicio 1 Solución del Ejercicio 1 Solución del Ejercicio 1 ---- Número del dado (Alternativa múltiple Número del dado (Alternativa múltiple Número del dado (Alternativa múltiple Número del dado (Alternativa múltiple ---- Pseudocódigo Pseudocódigo Pseudocódigo Pseudocódigo CEE)CEE)CEE)CEE)

algoritmoalgoritmoalgoritmoalgoritmo Numero_del_dado

Page 48: PROGRAMACION 1 PERIODO

variablesvariablesvariablesvariables

enteroenteroenteroentero numero

inicioinicioinicioinicio

escribir("escribir("escribir("escribir("Introduzca número del dado: " )" )" )" )

leer(leer(leer(leer( numero ))))

segun_sea (segun_sea (segun_sea (segun_sea ( numero ))))

1 :::: escribir("escribir("escribir("escribir("En la cara opuesta está el \"seis\"." )" )" )" )

2 : escribir( ": escribir( ": escribir( ": escribir( "En la cara opuesta está el \"cinco\"." )" )" )" )

3 : escribir( ": escribir( ": escribir( ": escribir( "En la cara opuesta está el \"cuatro\"." )" )" )" )

4 : escribir( ": escribir( ": escribir( ": escribir( "En la cara opuesta está el \"tres\"." )" )" )" )

5 : escribir( ": escribir( ": escribir( ": escribir( "En la cara opuesta está el \"dos\"." )" )" )" )

6 : escribir( ": escribir( ": escribir( ": escribir( "En la cara opuesta está el \"uno\"." )" )" )" )

sino : escribir( "sino : escribir( "sino : escribir( "sino : escribir( "ERROR: Número incorrecto." )" )" )" )

fin_segun_seafin_segun_seafin_segun_seafin_segun_sea

finfinfinfin

Una segunda solución es:

algoritmoalgoritmoalgoritmoalgoritmo Numero_del_dado

variavariavariavariablesblesblesbles

enteroenteroenteroentero numero

cadenacadenacadenacadena letras

inicioinicioinicioinicio

escribir("escribir("escribir("escribir("Introduzca número del dado: " )" )" )" )

Page 49: PROGRAMACION 1 PERIODO

leer(leer(leer(leer( numero ))))

segun_sea (segun_sea (segun_sea (segun_sea ( numero ))))

1 :::: letras ←"←"←"←"seis""""

2 :::: letras ←"←"←"←"cinco""""

3 :::: letras ←"←"←"←"cuatro""""

4 :::: letras ←"←"←"←"tres""""

5 :::: letras ←"←"←"←"dos""""

6 :::: letras ←"←"←"←"uno""""

fin_segun_seafin_segun_seafin_segun_seafin_segun_sea

si (si (si (si ( numero >=>=>=>= 1 yyyy numero <=<=<=<= 6 ))))

escribir( "escribir( "escribir( "escribir( "En la cara opuesta está el \"",",",",

letras, ", ", ", "\"." )" )" )" )

sinosinosinosino

escribir( "escribir( "escribir( "escribir( "ERROR: Número incorrecto." )" )" )" )

fin_sfin_sfin_sfin_siiii

finfinfinfin

Solución del Ejercicio 2 Solución del Ejercicio 2 Solución del Ejercicio 2 Solución del Ejercicio 2 ---- Habitaciones de una casa rural (Alternativa múltiple Habitaciones de una casa rural (Alternativa múltiple Habitaciones de una casa rural (Alternativa múltiple Habitaciones de una casa rural (Alternativa múltiple ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)

algoritmoalgoritmoalgoritmoalgoritmo Habitaciones_de_una_casa_rural

variablesvariablesvariablesvariables

Page 50: PROGRAMACION 1 PERIODO

enteroenteroenteroentero numero

inicioinicioinicioinicio

escribir( "escribir( "escribir( "escribir( "Listado de habitaciones:" )" )" )" )

escribir( "escribir( "escribir( "escribir( "1. Azul" " " " ))))

escribir( "escribir( "escribir( "escribir( "2. Roja" )" )" )" )

escribir( "escribir( "escribir( "escribir( "3. Verde" )" )" )" )

escribir( "escribir( "escribir( "escribir( "4. Rosa" )" )" )" )

escribir( "escribir( "escribir( "escribir( "5. Gris" )" )" )" )

escribir( "escribir( "escribir( "escribir( "Introduzca número de habitación: " )" )" )" )

leer(leer(leer(leer( numero ))))

segun_sea (segun_sea (segun_sea (segun_sea ( numero ))))

1 :::: escribir( "escribir( "escribir( "escribir( "La Azul tiene 2 cama/s y está en la primera planta." )" )" )" )

2 :::: escribir( "escribir( "escribir( "escribir( "La Roja tiene 1 cama/s y está en la primera planta." )" )" )" )

3 :::: escribir( "escribir( "escribir( "escribir( "La Verde tiene 3 cama/s y está en la segunda planta." )" )" )" )

4 :::: escribir( "escribir( "escribir( "escribir( "La Rosa tiene 2 cama/s y está en la segunda planta." " " " ))))

5 :::: escribir( "escribir( "escribir( "escribir( "La Gris tiene 1 cama/s y está en la tercera planta." )" )" )" )

sino : escribir( "sino : escribir( "sino : escribir( "sino : escribir( "ERROR: ",",",", numero,,,,

"""" no está asociado a ninguna habitación." )" )" )" )

fin_segun_seafin_segun_seafin_segun_seafin_segun_sea

finfinfinfin

Una segunda solución es:

Page 51: PROGRAMACION 1 PERIODO

algoritmoalgoritmoalgoritmoalgoritmo Habitaciones_de_una_casa_rural

variablesvariablesvariablesvariables

enteroenteroenteroentero numero,,,, camas

cadenacadenacadenacadena nombre,,,, planta

inicioinicioinicioinicio

escribir( "escribir( "escribir( "escribir( "Listado de habitaciones:" )" )" )" )

escribir( "escribir( "escribir( "escribir( "1. Azul" )" )" )" )

escribir( "escribir( "escribir( "escribir( "2. Roja" )" )" )" )

escribir( "escribir( "escribir( "escribir( "3. Verde" )" )" )" )

escribir( "escribir( "escribir( "escribir( "4. Rosa" )" )" )" )

escribir( "escribir( "escribir( "escribir( "5. Gris" )" )" )" )

escribir( "escribir( "escribir( "escribir( "Introduzca número de habitación: " )" )" )" )

leer(leer(leer(leer( numero ))))

segun_sea (segun_sea (segun_sea (segun_sea ( numero ))))

1 :::: nombre ←"←"←"←"Azul""""

camas ←←←← 2

planta ←"←"←"←"primera""""

2 :::: nombre ←"←"←"←"Roja""""

camas ←←←← 1

planta ←"←"←"←"primera""""

3 :::: nombre ←"←"←"←"Verde""""

Page 52: PROGRAMACION 1 PERIODO

camas ←←←← 3

planta ←"←"←"←"segunda""""

4 :::: nombre ←"←"←"←"Rosa""""

camas ←←←← 2

planta ←"←"←"←"segunda""""

5 :::: nombre ←"←"←"←"Gris""""

camas ←←←← 1

planta ←"←"←"←"tercera""""

fin_segun_seafin_segun_seafin_segun_seafin_segun_sea

si (si (si (si ( numero >=>=>=>= 1 yyyy numero <=<=<=<= 5 ))))

escribir( "escribir( "escribir( "escribir( "La ",",",", nombre, ", ", ", " tiene ",",",", camas,,,,

"""" cama/s y está en la ",",",", planta,,,,

"""" planta." )" )" )" )

sinosinosinosino

escribir( "escribir( "escribir( "escribir( "ERROR: ",",",", numero,,,,

"""" no está asociado a ninguna habitación." )" )" )" )

fin_sifin_sifin_sifin_si

finfinfinfin

Page 53: PROGRAMACION 1 PERIODO

Alternativa múltiple en ordinogramasAlternativa múltiple en ordinogramasAlternativa múltiple en ordinogramasAlternativa múltiple en ordinogramas

En un ordinograma, una instrucción alternativa múltiple se representa del siguiente modo:

Así, por ejemplo, el algoritmo del Ejemplo1: (Ejemplo1: (Ejemplo1: (Ejemplo1: ( Se quiere diseñar el algoritmo de un

programa que:

1º) Pida por teclado el número (dato entero) de un día de la semana.

2º) Muestre por pantalla el nombre (dato cadena) correspondiente a dicho día.

Nota: Si el número de día introducido es menor que 1 ó mayor que 7, se mostrará

el mensaje: "ERROR: Día incorrecto.")

se puede representar, de manera gráfica, de la siguiente forma:

Page 54: PROGRAMACION 1 PERIODO

Ejercicio 1 Ejercicio 1 Ejercicio 1 Ejercicio 1 ---- Número del dado (Alternativa múltiple Número del dado (Alternativa múltiple Número del dado (Alternativa múltiple Número del dado (Alternativa múltiple ---- Ordinogramas)Ordinogramas)Ordinogramas)Ordinogramas) Diseñe el algoritmo (ordinograma) de un programa que:

1º) Pida por teclado el resultado (dato entero) obtenido al lanzar un dado de seis caras. 2º) Muestre por pantalla el número en letras (dato cadena) de la cara opuesta al resultado obtenido. Nota 1:Nota 1:Nota 1:Nota 1: En las caras opuestas de un dado de seis caras están los números: 1-6, 2-5 y 3-4. Nota 2:Nota 2:Nota 2:Nota 2: Si el número del dado introducido es menor que 1 ó mayor que 6, se mostrará el mensaje: "ERROR: Número incorrecto.". En pantalla:

Page 55: PROGRAMACION 1 PERIODO

Introduzca número del dado:Introduzca número del dado:Introduzca número del dado:Introduzca número del dado: 5555 En la cara opuesta está el "dos".En la cara opuesta está el "dos".En la cara opuesta está el "dos".En la cara opuesta está el "dos".

Introduzca número del Introduzca número del Introduzca número del Introduzca número del dado:dado:dado:dado: 8888 ERROR: Número incorrectoERROR: Número incorrectoERROR: Número incorrectoERROR: Número incorrecto

Algoritmos Algoritmos Algoritmos Algoritmos dado_de_6_carasdado_de_6_carasdado_de_6_carasdado_de_6_caras

Variables 1,2,3,4,5,6,Variables 1,2,3,4,5,6,Variables 1,2,3,4,5,6,Variables 1,2,3,4,5,6,

Inicio Inicio Inicio Inicio

Escribir Escribir Escribir Escribir

EjercicioEjercicioEjercicioEjercicio 2 2 2 2 ---- Habitaciones de una casa rural (Alternativa múltiple Habitaciones de una casa rural (Alternativa múltiple Habitaciones de una casa rural (Alternativa múltiple Habitaciones de una casa rural (Alternativa múltiple ---- Ordinogramas)Ordinogramas)Ordinogramas)Ordinogramas) En la siguiente tabla se muestra el número de camas de las habitaciones de una casa rural, además de la planta donde está ubicada cada una de ellas:

HabitaciónHabitaciónHabitaciónHabitación CamasCamasCamasCamas PlantaPlantaPlantaPlanta

1. Azul 2 Primera

2. Roja 1 Primera

Page 56: PROGRAMACION 1 PERIODO

3. Verde 3 Segunda

4. Rosa 2 Segunda

5. Gris 1 Tercera

Diseñe el algoritmo (ordinograma) de un programa que:

1º) Muestre el listado de las habitaciones de la casa rural. 2º) Pida por teclado el número (dato entero) asociado a una habitación. 3º) Muestre por pantalla la planta y el número de camas de la habitación seleccionada. NNNNota:ota:ota:ota: Si el número introducido por el usuario, no está asociado a ninguna habitación, se mostrará el mensaje: "ERROR: <número> no está asociado a ninguna habitación.". En pantalla:

Listado de habitaciones:Listado de habitaciones:Listado de habitaciones:Listado de habitaciones: 1. Azul1. Azul1. Azul1. Azul 2. Roja2. Roja2. Roja2. Roja 3. Verde3. Verde3. Verde3. Verde 4.4.4.4. RosaRosaRosaRosa 5. Gris5. Gris5. Gris5. Gris Introduzca número de habitación:Introduzca número de habitación:Introduzca número de habitación:Introduzca número de habitación: 3333 LaLaLaLa Verde tiene 3 cama/s y está en la segunda planta.Verde tiene 3 cama/s y está en la segunda planta.Verde tiene 3 cama/s y está en la segunda planta.Verde tiene 3 cama/s y está en la segunda planta.

Page 57: PROGRAMACION 1 PERIODO

Listado de habitaciones:Listado de habitaciones:Listado de habitaciones:Listado de habitaciones: 1. Azul1. Azul1. Azul1. Azul 2. Roja2. Roja2. Roja2. Roja 3. Verde3. Verde3. Verde3. Verde 4.4.4.4. RosaRosaRosaRosa 5. Gris5. Gris5. Gris5. Gris Introduzca número de habitación:Introduzca número de habitación:Introduzca número de habitación:Introduzca número de habitación: 7777 ERROR: 7 no está asociado a ninguna habitación.ERROR: 7 no está asociado a ninguna habitación.ERROR: 7 no está asociado a ninguna habitación.ERROR: 7 no está asociado a ninguna habitación.

Page 58: PROGRAMACION 1 PERIODO

Solución del Ejercicio 1 Solución del Ejercicio 1 Solución del Ejercicio 1 Solución del Ejercicio 1 ---- Número del dado (Alternativa múltiple Número del dado (Alternativa múltiple Número del dado (Alternativa múltiple Número del dado (Alternativa múltiple ---- Ordinogramas)Ordinogramas)Ordinogramas)Ordinogramas)

Una segunda solución es:

Page 59: PROGRAMACION 1 PERIODO

Solución del Ejercicio 2 Solución del Ejercicio 2 Solución del Ejercicio 2 Solución del Ejercicio 2 ---- Habitaciones de una casa rural (Alternativa múltiple Habitaciones de una casa rural (Alternativa múltiple Habitaciones de una casa rural (Alternativa múltiple Habitaciones de una casa rural (Alternativa múltiple ---- Ordinogramas)Ordinogramas)Ordinogramas)Ordinogramas)

Page 60: PROGRAMACION 1 PERIODO

Una segunda solución es:

Page 61: PROGRAMACION 1 PERIODO

9.4 Anidamiento9.4 Anidamiento9.4 Anidamiento9.4 Anidamiento

Las instrucciones alternativas y repetitivas pueden escribirse una dentro de otra. A

este hecho se le conoce como anidamientoanidamientoanidamientoanidamiento.

Page 62: PROGRAMACION 1 PERIODO

Las instrucciones alternativas permiten realizar las siguientes combinaciones de

anidamiento:

• Doble en doble. • Doble en simple. • Doble en múltiple. • Simple en simple. • Simple en doble. • Simple en múltiple. • Múltiple en múltiple. • Múltiple en doble. • Múltiple en simple.

De ellas, vamos a estudiar, como ejemplo, las siguientes combinaciones:

• Doble en doble. • Múltiple en doble.

9.4.1 Anidamiento de una alternativa doble en doble

En pseudocódigo, para anidar una alternativa doble en otra, se utiliza la sintaxis:

si (si (si (si (<expresión_lógica_1>))))

/*/*/*/* Inicio del anidamiento */*/*/*/

Page 63: PROGRAMACION 1 PERIODO

si (si (si (si (<expresión_lógica_2>))))

<bloque_de_instrucciones_1>

sinosinosinosino

<bloque_de_instrucciones_2>

fin_sifin_sifin_sifin_si

/*/*/*/* Fin del anidamiento */*/*/*/

sinosinosinosino

<bloque_de_instrucciones_3>

fin_sifin_sifin_sifin_si

O también:

si (si (si (si (<expresión_lógica_1>))))

<bloque_de_instrucciones_1>

sinosinosinosino

/*/*/*/* Inicio del anidamiento */*/*/*/

si (si (si (si (<expresión_lógica_2>))))

<bloque_de_instrucciones_2>

sinosinosinosino

<bloque_de_instrucciones_3>

fin_sifin_sifin_sifin_si

Page 64: PROGRAMACION 1 PERIODO

/*/*/*/* Fin del anidamiento */*/*/*/

fin_sifin_sifin_sifin_si

Ejemplo: Se quiere diseñar el algoritmo de un programa que:

1º) Pida por teclado la nota (real) de una asignatura.

2º) Muestre por pantalla:

• "APTO", en el caso de que la nota sea mayor o igual que 5 y menor o igual que 10.

• "NO APTO", en el caso de que la nota sea mayor o igual que 0 y menor que 5.

• "ERROR: Nota incorrecta.", en el caso de que la nota sea menor que 0 o mayor que 10.

En pantalla:

Una solución al problema es:

Page 65: PROGRAMACION 1 PERIODO

algoritmoalgoritmoalgoritmoalgoritmoCalificacion_segun_nota

variablesvariablesvariablesvariables

realrealrealreal nota

inicioinicioinicioinicio

escribir( "escribir( "escribir( "escribir( "Introduzca nota (real): " )" )" )" )

leer(leer(leer(leer( nota ))))

si (si (si (si ( nota >=>=>=>= 5 yyyy nota <=<=<=<= 10 ))))

escribir( "escribir( "escribir( "escribir( "APTO" )" )" )" )

sinosinosinosino

/*/*/*/* Inicio del anidamiento */*/*/*/

si (si (si (si ( nota >=>=>=>= 0 yyyy nota <<<< 5 ))))

escribir( "escribir( "escribir( "escribir( "NO APTO" )" )" )" )

sinosinosinosino

escribir( "escribir( "escribir( "escribir( "ERROR: Nota incorrecta." )" )" )" )

fin_sifin_sifin_sifin_si

/*/*/*/* Fin del anidamiento */*/*/*/

fin_sifin_sifin_sifin_si

finfinfinfin

En ordinograma:

Page 66: PROGRAMACION 1 PERIODO

Como se puede observar, el anidamiento de instrucciones alternativas permite ir

descartando valores hasta llegar al bloque de instrucciones que se debe ejecutar.

9.4.2 Anidamiento de una alternativa múltiple en doble

En pseudocódigo, para anidar una alternativa múltiple en una alternativa doble, se

utiliza la sintaxis:

si (si (si (si (<expresión_lógica>))))

Page 67: PROGRAMACION 1 PERIODO

/*/*/*/* Inicio del anidamiento */*/*/*/

segun_sea (segun_sea (segun_sea (segun_sea (<expresión>))))

<lista_de_valores_1>::::<bloque_de_instrucciones_1>

<lista_de_valores_2>::::<bloque_de_instrucciones_2>

............

<lista_de_valores_n>::::<bloque_de_instrucciones_n>

[ sino :sino :sino :sino :<bloque_de_instrucciones_n+1> ]

fin_segun_seafin_segun_seafin_segun_seafin_segun_sea

/*/*/*/* Fin del anidamiento */*/*/*/

sinosinosinosino

<bloque_de_instrucciones_n+2>

fin_sifin_sifin_sifin_si

Ejemplo: Así por ejemplo, el primer ejemplo del apartado anterior, 9.3 Alternativa

múltiple, también se puede resolver anidando una alternativa múltiple en una

alternativa doble.

algoritmoalgoritmoalgoritmoalgoritmoDia_de_la_semana

variablesvariablesvariablesvariables

enteroenteroenteroenterodia

iiiinicionicionicionicio

escribir( "escribir( "escribir( "escribir( "Introduzca día de la semana: " )" )" )" )

Page 68: PROGRAMACION 1 PERIODO

leer(leer(leer(leer(dia))))

si (si (si (si (dia>=>=>=>= 1 yyyydia<=<=<=<= 7 ))))

/*/*/*/* Sólo si el día es válido, se ejecuta la

instrucción alternativa múltiple. */*/*/*/

/*/*/*/* Inicio del anidamiento */*/*/*/

segun_sea (segun_sea (segun_sea (segun_sea (dia))))

1 : escribir( ": escribir( ": escribir( ": escribir( "Lunes" )" )" )" )

2 : escribir( ": escribir( ": escribir( ": escribir( "Martes" )" )" )" )

3 : escribir( ": escribir( ": escribir( ": escribir( "Miércoles" )" )" )" )

4 : escribir( ": escribir( ": escribir( ": escribir( "Jueves" )" )" )" )

5 : escribir( ": escribir( ": escribir( ": escribir( "Viernes" )" )" )" )

6 : escribir( ": escribir( ": escribir( ": escribir( "Sábado" )" )" )" )

7 : escribir( ": escribir( ": escribir( ": escribir( "Domingo" )" )" )" )

fin_segun_sefin_segun_sefin_segun_sefin_segun_seaaaa

/*/*/*/* Fin del anidamiento */*/*/*/

sinosinosinosino

escribir( "escribir( "escribir( "escribir( "ERROR: Día incorrecto." )" )" )" )

fin_sifin_sifin_sifin_si

finfinfinfin

EjercicioEjercicioEjercicioEjercicio 1 1 1 1 ---- Suma o multiplicación de dos números (Anidamiento de alternativas Suma o multiplicación de dos números (Anidamiento de alternativas Suma o multiplicación de dos números (Anidamiento de alternativas Suma o multiplicación de dos números (Anidamiento de alternativas ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE) Diseñe el algoritmo (en pseudocódigo) de un programa que:

Page 69: PROGRAMACION 1 PERIODO

1º) Pida por teclado dos números (datos enteros). 2º) Calcule la suma y multiplicación de ambos números. 3º) Muestre por pantalla:

• "La suma es mayor.", en caso de que sea mayor que la multiplicación de ambos números.

• "La multpilicación es mayor.", en caso de que sea mayor que la suma de ambos números.

• "La suma y multiplicación son iguales.", en caso de que así sea.

En pantalla:

Introduzca primer número (entero):Introduzca primer número (entero):Introduzca primer número (entero):Introduzca primer número (entero): ----2222 Introduzca segundo número (entero): 3Introduzca segundo número (entero): 3Introduzca segundo número (entero): 3Introduzca segundo número (entero): 3 La suma es mayor.La suma es mayor.La suma es mayor.La suma es mayor.

Introduzca primer Introduzca primer Introduzca primer Introduzca primer número (entero):número (entero):número (entero):número (entero): 2222 Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero): 2222 La suma y multiplicación son iguales.La suma y multiplicación son iguales.La suma y multiplicación son iguales.La suma y multiplicación son iguales.

Solución del Ejercicio 1 Solución del Ejercicio 1 Solución del Ejercicio 1 Solución del Ejercicio 1 ---- Suma o multiplicación de dos números (Anidamiento de Suma o multiplicación de dos números (Anidamiento de Suma o multiplicación de dos números (Anidamiento de Suma o multiplicación de dos números (Anidamiento de alternativas alternativas alternativas alternativas ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)

algoritmoalgoritmoalgoritmoalgoritmo Suma_o_multiplicacion_de_dos_numeros variablesvariablesvariablesvariables enteroenteroenteroentero a,,,, b,,,, suma,,,, multiplicacion

Page 70: PROGRAMACION 1 PERIODO

inicioinicioinicioinicio escribir( "escribir( "escribir( "escribir( "Introduzca primer número (entero): " )" )" )" ) leer(leer(leer(leer( a )))) escribir( "escribir( "escribir( "escribir( "Introduzca segundo número (entero): " )" )" )" ) leer(leer(leer(leer( b )))) suma ←←←← a ++++ b multiplicacion←←←← a **** b si (si (si (si ( suma >>>> multiplicacion)))) escribir( "escribir( "escribir( "escribir( "La suma es mayor." )" )" )" ) sinosinosinosino /*/*/*/* Inicio del anidamiento */*/*/*/ si (si (si (si ( multiplicacion>>>> suma )))) escribir( "escribir( "escribir( "escribir( "La multiplicación es mayor." )" )" )" ) sinosinosinosino escribirescribirescribirescribir( "( "( "( "La suma y multiplicación son iguales." )" )" )" ) fin_sifin_sifin_sifin_si /*/*/*/* Fin del anidamiento */*/*/*/ fin_sifin_sifin_sifin_si finfinfinfin

Una segunda solución es:

algoritmoalgoritmoalgoritmoalgoritmo Suma_o_multiplicacion_de_dos_numeros variablesvariablesvariablesvariables enteroenteroenteroentero a,,,, b

Page 71: PROGRAMACION 1 PERIODO

inicioinicioinicioinicio escribir( "escribir( "escribir( "escribir( "Introduzca primer número (entero): " )" )" )" ) leer(leer(leer(leer( a )))) escribir( "escribir( "escribir( "escribir( "Introduzca segundo número (entero): " )" )" )" ) leer(leer(leer(leer( b )))) si (si (si (si ( a ++++ b >>>> a **** b )))) escribir( "escribir( "escribir( "escribir( "La suma es mayor." )" )" )" ) sinosinosinosino /*/*/*/* Inicio del anidamiento */*/*/*/ si (si (si (si ( a **** b >>>> a ++++ b )))) escribir( "escribir( "escribir( "escribir( "La multiplicación es mayor." )" )" )" ) sinosinosinosino escribir( "escribir( "escribir( "escribir( "La suma y multiplicación son iguales." )" )" )" ) fin_sifin_sifin_sifin_si /*/*/*/* Fin del anidamiento */*/*/*/ fin_sifin_sifin_sifin_si finfinfinfin

EjercicioEjercicioEjercicioEjercicio 2 2 2 2 ---- Número del dado (Anidamiento de alternativas Número del dado (Anidamiento de alternativas Número del dado (Anidamiento de alternativas Número del dado (Anidamiento de alternativas ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)

Diseñe el algoritmo (en pseudocódigo) de un programa que resuelva el problema

del Ejercicio 1 (Alternativa múltiple) anidando una alternativa múltiple en una

alternativa doble.

Solución del Ejercicio 2 Solución del Ejercicio 2 Solución del Ejercicio 2 Solución del Ejercicio 2 ---- Número del dado (Anidamiento de alternativas Número del dado (Anidamiento de alternativas Número del dado (Anidamiento de alternativas Número del dado (Anidamiento de alternativas ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)

algoritmoalgoritmoalgoritmoalgoritmo Numero_del_dado

Page 72: PROGRAMACION 1 PERIODO

variablesvariablesvariablesvariables enteroenteroenteroentero numero inicioinicioinicioinicio escribir( "escribir( "escribir( "escribir( "Introduzca número del dado: " )" )" )" ) leer(leer(leer(leer( numero )))) si (si (si (si ( numero >=>=>=>= 1 yyyy numero <=<=<=<= 6 )))) /*/*/*/* Sólo si el número es válido, se ejecuta la instrucción alternativa múltiple. */*/*/*/ /*/*/*/* Inicio del anidamiento */*/*/*/ segun_sea(segun_sea(segun_sea(segun_sea( numero)))) 1 : escribir( ": escribir( ": escribir( ": escribir( "En la cara opuesta está el \"seis\"."""" )))) 2 : escribir( ": escribir( ": escribir( ": escribir( "En la cara opuesta está el \"cinco\"." )" )" )" ) 3 : escribir( ": escribir( ": escribir( ": escribir( "En la cara opuesta está el \"cuatro\"." )" )" )" ) 4 : escribir( ": escribir( ": escribir( ": escribir( "En la cara opuesta está el \"tres\"." )" )" )" ) 5 : escribir( ": escribir( ": escribir( ": escribir( "En la cara opuesta está el \"dos\"." )" )" )" ) 6 : escribir( ": escribir( ": escribir( ": escribir( "En la cara opuesta está el \"uno\"." )" )" )" ) fin_segun_seafin_segun_seafin_segun_seafin_segun_sea /*/*/*/* Fin del anidamiento */*/*/*/ sinosinosinosino escribir( "escribir( "escribir( "escribir( "ERROR: Número incorrecto." )" )" )" ) fin_sifin_sifin_sifin_si finfinfinfin

Una segunda solución es:

algoritmoalgoritmoalgoritmoalgoritmo Numero_del_dado

Page 73: PROGRAMACION 1 PERIODO

variablesvariablesvariablesvariables enteroenteroenteroentero numero cadenacadenacadenacadena letras inicioinicioinicioinicio escribir( "escribir( "escribir( "escribir( "Introduzca número del dado: " )" )" )" ) leer(leer(leer(leer( numero )))) si (si (si (si ( numero >=>=>=>= 1 yyyy numero <=<=<=<= 6 )))) /*/*/*/* Sólo si el número es válido, se ejecuta la instrucción alternativa múltiple. */*/*/*/ /*/*/*/* Inicio del anidamiento */*/*/*/ segun_sea (segun_sea (segun_sea (segun_sea ( numero )))) 1 :::: letras ←"←"←"←"seis"""" 2 :::: letras ←"←"←"←"cinco"""" 3 :::: letras ←"←"←"←"cuatro"""" 4 :::: letras ←"←"←"←"tres"""" 5 :::: letras ←"←"←"←"dos"""" 6 :::: letras ←"←"←"←"uno"""" fin_segun_seafin_segun_seafin_segun_seafin_segun_sea /*/*/*/* Fin del anidamiento */*/*/*/ escribir( "escribir( "escribir( "escribir( "En la cara opuesta está el \"",",",", letras, ", ", ", "\"." )" )" )" ) sinosinosinosino escribir( "escribir( "escribir( "escribir( "ERROR: Número incorrecto." )" )" )" ) fin_sifin_sifin_sifin_si

Page 74: PROGRAMACION 1 PERIODO

finfinfinfin

EjercicioEjercicioEjercicioEjercicio 1 1 1 1 ---- Suma o multiplicación de dos números (Anidamiento deSuma o multiplicación de dos números (Anidamiento deSuma o multiplicación de dos números (Anidamiento deSuma o multiplicación de dos números (Anidamiento de alternativas alternativas alternativas alternativas ---- Ordinogramas)Ordinogramas)Ordinogramas)Ordinogramas) Diseñe el algoritmo (ordinograma) de un programa que:

1º) Pida por teclado dos números (datos enteros). 2º) Calcule la suma y multiplicación de ambos números. 3º) Muestre por pantalla:

• "La suma es mayor.", en caso de que sea mayor que la multiplicación de ambos números.

• "La multpilicación es mayor.", en caso de que sea mayor que la suma de ambos números.

• "La suma y multiplicación son iguales.", en caso de que así sea.

En pantalla:

Introduzca primer número (entero):Introduzca primer número (entero):Introduzca primer número (entero):Introduzca primer número (entero): ----2222 Introduzca segundo número (entero): 3Introduzca segundo número (entero): 3Introduzca segundo número (entero): 3Introduzca segundo número (entero): 3 La suma es mayor.La suma es mayor.La suma es mayor.La suma es mayor.

Introduzca primer número (entero):Introduzca primer número (entero):Introduzca primer número (entero):Introduzca primer número (entero): 2222 Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero): 2222 La suma y multiplicación son iguales.La suma y multiplicación son iguales.La suma y multiplicación son iguales.La suma y multiplicación son iguales.

Solución del Ejercicio 1 Solución del Ejercicio 1 Solución del Ejercicio 1 Solución del Ejercicio 1 ---- Suma o multiplicación de dos números (Anidamiento dSuma o multiplicación de dos números (Anidamiento dSuma o multiplicación de dos números (Anidamiento dSuma o multiplicación de dos números (Anidamiento de e e e alternativas alternativas alternativas alternativas ---- Ordinogramas)Ordinogramas)Ordinogramas)Ordinogramas)

Page 75: PROGRAMACION 1 PERIODO

Una segunda solución es:

Page 76: PROGRAMACION 1 PERIODO

EjercicioEjercicioEjercicioEjercicio 2 2 2 2 ---- Número del dado (Anidamiento de alternativas Número del dado (Anidamiento de alternativas Número del dado (Anidamiento de alternativas Número del dado (Anidamiento de alternativas ---- Ordinogramas)Ordinogramas)Ordinogramas)Ordinogramas)

Diseñe el algoritmo (ordinograma) de un programa que resuelva el problema del

Ejercicio 1 (Alternativa múltiple) anidando una alternativa múltiple en una

alternativa doble.

Solución del Ejercicio 2 Solución del Ejercicio 2 Solución del Ejercicio 2 Solución del Ejercicio 2 ---- Número del dado (Anidamiento de alternatiNúmero del dado (Anidamiento de alternatiNúmero del dado (Anidamiento de alternatiNúmero del dado (Anidamiento de alternativas vas vas vas ---- Ordinogramas)Ordinogramas)Ordinogramas)Ordinogramas)

Page 77: PROGRAMACION 1 PERIODO

DecisionesDecisionesDecisionesDecisiones

Las decisiones siempre forman parte de las instrucciones de control, las cuales

sirven para determinar el orden en el que se tienen que ejecutar las instrucciones

de un programa.

Alternativa doble en pseudocódigoAlternativa doble en pseudocódigoAlternativa doble en pseudocódigoAlternativa doble en pseudocódigo

En pseudocódigo, para escribir una instrucción alternativa doble se utiliza la

sintaxis:

si (si (si (si (<expresión_lógica><expresión_lógica><expresión_lógica><expresión_lógica>))))

<bloque_de_instrucciones_1><bloque_de_instrucciones_1><bloque_de_instrucciones_1><bloque_de_instrucciones_1>

Page 78: PROGRAMACION 1 PERIODO

sinosinosinosino

<bloque_de_instrucciones_2><bloque_de_instrucciones_2><bloque_de_instrucciones_2><bloque_de_instrucciones_2>

fin_sifin_sifin_sifin_si

A la <expresión_lógica><expresión_lógica><expresión_lógica><expresión_lógica> de una instrucción alternativa doble también se le

denomina condicióncondicióncondicióncondición.

Para que se ejecute el <bloque_de_instrucciones_1>, la condición tiene que ser

verdaderaverdaderaverdaderaverdadera. Por el contrario, si la condición es falsafalsafalsafalsa, se ejecutará el

<bloque_de_instrucciones_2>.

En resumen, una instrucción alternativa dobleinstrucción alternativa dobleinstrucción alternativa dobleinstrucción alternativa doble (o simplemente alternativa doblealternativa doblealternativa doblealternativa doble)

permite seleccionar, por medio de una condición, el siguiente bloque de

instrucciones a ejecutar, de entre dos posibles.

Ejemplo:Ejemplo:Ejemplo:Ejemplo: Se quiere diseñar el algoritmo de un programa que:

1º) Pida por teclado la nota (dato real) de una asignatura.

2º) Muestre por pantalla:

"APROBADO", en el caso de que la nota sea mayor o igual que 5.

"SUSPENDIDO", en el caso de que la nota sea menor que 5.

De modo que, por pantalla se verá, por ejemplo:

Otra posibilidad es:

Page 79: PROGRAMACION 1 PERIODO

Para resolver el problema planteado se puede escribir el siguiente algoritmo:

algoritmoalgoritmoalgoritmoalgoritmoCalificacion_segun_notaCalificacion_segun_notaCalificacion_segun_notaCalificacion_segun_nota

variablesvariablesvariablesvariables

realrealrealreal notanotanotanota

inicioinicioinicioinicio

escribir( "escribir( "escribir( "escribir( "Introduzca nota (real): Introduzca nota (real): Introduzca nota (real): Introduzca nota (real): " )" )" )" )

leer(leer(leer(leer( nota nota nota nota ))))

si (si (si (si ( nota nota nota nota >=>=>=>= 5 5 5 5 ))))

escribir( "escribir( "escribir( "escribir( "APROBADOAPROBADOAPROBADOAPROBADO" )" )" )" )

sinosinosinosino

escribir( "escribir( "escribir( "escribir( "SUSPENDIDOSUSPENDIDOSUSPENDIDOSUSPENDIDO" )" )" )" )

fin_sifin_sifin_sifin_si

finfinfinfin

Ejercicio 1 Ejercicio 1 Ejercicio 1 Ejercicio 1 ---- Suma de dos números (Alternativa doble Suma de dos números (Alternativa doble Suma de dos números (Alternativa doble Suma de dos números (Alternativa doble ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE) Diseñe el algoritmo (en pseudocódigo) de un programa que:

Page 80: PROGRAMACION 1 PERIODO

1º) Pida por teclado dos números (datos enteros). 2º) Calcule la suma de los números introducidos por el usuario. 3º) Muestre por pantalla:

• "LA SUMA SÍ ES MAYOR QUE CERO.", en el caso de que sí lo sea. • "LA SUMA NO ES MAYOR QUE CERO.", en el caso de que no lo

sea.

En pantalla:

Introduzca primer número Introduzca primer número Introduzca primer número Introduzca primer número (entero):(entero):(entero):(entero): 14141414 Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero): ----17171717 LA SUMA NO ES MAYOR QUE CERO.LA SUMA NO ES MAYOR QUE CERO.LA SUMA NO ES MAYOR QUE CERO.LA SUMA NO ES MAYOR QUE CERO.

algoritmoalgoritmoalgoritmoalgoritmo Suma_de_numeros_menor_o_mayor_que_ceroSuma_de_numeros_menor_o_mayor_que_ceroSuma_de_numeros_menor_o_mayor_que_ceroSuma_de_numeros_menor_o_mayor_que_cero

Comentarios :

Fecha :5 –abril -2011

El autor del programa: jeison jojoa jojoa

El programa ba hacer la suma de numeros para darnos un resultado que sera comparadocom cero y nos dira si es mayor o mener que cero

algoritmoalgoritmoalgoritmoalgoritmo Suma_de_numeros_menor_o_mayor_que_ceroSuma_de_numeros_menor_o_mayor_que_ceroSuma_de_numeros_menor_o_mayor_que_ceroSuma_de_numeros_menor_o_mayor_que_cero

variablesvariablesvariablesvariables enteroenteroenteroentero n1n1n1n1,,,, n2n2n2n2,,,, sumasumasumasuma

Page 81: PROGRAMACION 1 PERIODO

inicioinicioinicioinicio escribir( "escribir( "escribir( "escribir( "Introduzca primer número (entero): Introduzca primer número (entero): Introduzca primer número (entero): Introduzca primer número (entero): " )" )" )" ) leer(leer(leer(leer( n1 n1 n1 n1 )))) escribir( "escribir( "escribir( "escribir( "Introduzca segundo número (entero): Introduzca segundo número (entero): Introduzca segundo número (entero): Introduzca segundo número (entero): " )" )" )" ) leer(leer(leer(leer( n2n2n2n2)))) sumasumasumasuma ← n1+← n1+← n1+← n1+ n2n2n2n2 si (si (si (si ( suma suma suma suma >>>> 0 0 0 0 )))) escribir( "escribir( "escribir( "escribir( "la suma sí es mayor que cero.la suma sí es mayor que cero.la suma sí es mayor que cero.la suma sí es mayor que cero." )" )" )" ) sinosinosinosino escribir( "escribir( "escribir( "escribir( "la suma no es mayor que cero.la suma no es mayor que cero.la suma no es mayor que cero.la suma no es mayor que cero." )" )" )" ) fin_sifin_sifin_sifin_si finfinfinfin

EjercicioEjercicioEjercicioEjercicio 2 2 2 2 ---- NúmNúmNúmNúmero intermedio (Alternativa doble ero intermedio (Alternativa doble ero intermedio (Alternativa doble ero intermedio (Alternativa doble ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE) Diseñe el algoritmo (en pseudocódigo) de un programa que:

1º) Pida por teclado tres números (datos enteros): <numero1>, <numero2> y <numero3>. 2º) Muestre por pantalla:

• "<numero2> SI ES MENOR QUE <numero3> Y MAYOR QUE <numero1>", en el caso de que sí lo sea.

• "<numero2> NO ES MENOR QUE <numero3> Y MAYOR QUE <numero1>", en el caso de que no lo sea.

En pantalla:

Introduzca primer número (entero):Introduzca primer número (entero):Introduzca primer número (entero):Introduzca primer número (entero): 6666

Page 82: PROGRAMACION 1 PERIODO

Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero): 9999 Introduzca terceIntroduzca terceIntroduzca terceIntroduzca tercer número (entero):r número (entero):r número (entero):r número (entero): 22222222 9 SÍ ES MENOR QUE 22 Y MAYOR QUE 69 SÍ ES MENOR QUE 22 Y MAYOR QUE 69 SÍ ES MENOR QUE 22 Y MAYOR QUE 69 SÍ ES MENOR QUE 22 Y MAYOR QUE 6

Introduzca primer número (entero): 15Introduzca primer número (entero): 15Introduzca primer número (entero): 15Introduzca primer número (entero): 15 Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero): 7777 Introduzca tercer número (entero):Introduzca tercer número (entero):Introduzca tercer número (entero):Introduzca tercer número (entero): 8888 7 NO ES MENOR QUE7 NO ES MENOR QUE7 NO ES MENOR QUE7 NO ES MENOR QUE 8 Y MAYOR QUE 158 Y MAYOR QUE 158 Y MAYOR QUE 158 Y MAYOR QUE 15

algoritmoalgoritmoalgoritmoalgoritmo Numero_mayor_menor_queNumero_mayor_menor_queNumero_mayor_menor_queNumero_mayor_menor_que variablesvariablesvariablesvariables enteroenteroenteroentero n1n1n1n1,,,, n2n2n2n2,,,, n3n3n3n3 inicioinicioinicioinicio escribir( "escribir( "escribir( "escribir( "Introduzca primer número (entero): Introduzca primer número (entero): Introduzca primer número (entero): Introduzca primer número (entero): " )" )" )" ) leer(leer(leer(leer( n1 n1 n1 n1 )))) escribir( "escribir( "escribir( "escribir( "Introduzca segundo número (entero): Introduzca segundo número (entero): Introduzca segundo número (entero): Introduzca segundo número (entero): " )" )" )" ) leer(leer(leer(leer( n2 n2 n2 n2 )))) escribir( "escribir( "escribir( "escribir( "Introduzca tercer número (entero): Introduzca tercer número (entero): Introduzca tercer número (entero): Introduzca tercer número (entero): " )" )" )" ) leer(leer(leer(leer( n3 n3 n3 n3 )))) sisisisi (((( n2n2n2n2 <<<< n3 n3 n3 n3 yyyy n2n2n2n2 >>>> n1 n1 n1 n1 )))) escribir( escribir( escribir( escribir( n2n2n2n2, " , " , " , " sí es menor quesí es menor quesí es menor quesí es menor que ", ", ", ", n3n3n3n3,,,,

Page 83: PROGRAMACION 1 PERIODO

" " " " y mayor quey mayor quey mayor quey mayor que ", ", ", ", n1n1n1n1 )))) sinosinosinosino escribir( escribir( escribir( escribir( n2n2n2n2, " , " , " , " no es menor queno es menor queno es menor queno es menor que ", ", ", ", n3n3n3n3,,,, " " " " y mayor quey mayor quey mayor quey mayor que ", ", ", ", n1n1n1n1 )))) fin_sifin_sifin_sifin_si finfinfinfin

DecisionesDecisionesDecisionesDecisiones

Las decisiones siempre forman parte de las instrucciones de control, las cuales

sirven para determinar el orden en el que se tienen que ejecutar las instrucciones

de un programa.

Alternativa doble en pseudocódigoAlternativa doble en pseudocódigoAlternativa doble en pseudocódigoAlternativa doble en pseudocódigo

En pseudocódigo, para escribir una instrucción alternativa doble se utiliza la

sintaxis:

si (si (si (si (<expresión_lógica><expresión_lógica><expresión_lógica><expresión_lógica>))))

<bloque_de_instrucciones_1><bloque_de_instrucciones_1><bloque_de_instrucciones_1><bloque_de_instrucciones_1>

sinosinosinosino

<bloque_de_instrucciones_2><bloque_de_instrucciones_2><bloque_de_instrucciones_2><bloque_de_instrucciones_2>

fin_sifin_sifin_sifin_si

A la <expresión_lógica><expresión_lógica><expresión_lógica><expresión_lógica> de una instrucción alternativa doble también se le

denomina condicióncondicióncondicióncondición.

Para que se ejecute el <bloque_de_instrucciones_1>, la condición tiene que ser

verdaderaverdaderaverdaderaverdadera. Por el contrario, si la condición es falsafalsafalsafalsa, se ejecutará el

<bloque_de_instrucciones_2>.

Page 84: PROGRAMACION 1 PERIODO

En resumen, una instrucción alternativa dobleinstrucción alternativa dobleinstrucción alternativa dobleinstrucción alternativa doble (o simplemente alternativa doblealternativa doblealternativa doblealternativa doble)

permite seleccionar, por medio de una condición, el siguiente bloque de

instrucciones a ejecutar, de entre dos posibles.

Ejemplo:Ejemplo:Ejemplo:Ejemplo: Se quiere diseñar el algoritmo de un programa que:

1º) Pida por teclado la nota (dato real) de una asignatura.

2º) Muestre por pantalla:

"APROBADO", en el caso de que la nota sea mayor o igual que 5.

"SUSPENDIDO", en el caso de que la nota sea menor que 5.

De modo que, por pantalla se verá, por ejemplo:

Otra posibilidad es:

Para resolver el problema planteado se puede escribir el siguiente algoritmo:

algoritmoalgoritmoalgoritmoalgoritmoCalificacion_segun_notaCalificacion_segun_notaCalificacion_segun_notaCalificacion_segun_nota

variablesvariablesvariablesvariables

Page 85: PROGRAMACION 1 PERIODO

realrealrealreal notanotanotanota

inicioinicioinicioinicio

escribir( "escribir( "escribir( "escribir( "Introduzca nota (real): Introduzca nota (real): Introduzca nota (real): Introduzca nota (real): " )" )" )" )

leer(leer(leer(leer( nota nota nota nota ))))

si (si (si (si ( nota nota nota nota >=>=>=>= 5 5 5 5 ))))

escribir( "escribir( "escribir( "escribir( "APROBADOAPROBADOAPROBADOAPROBADO" )" )" )" )

sinosinosinosino

escribir( "escribir( "escribir( "escribir( "SUSPENDIDOSUSPENDIDOSUSPENDIDOSUSPENDIDO" )" )" )" )

fin_sifin_sifin_sifin_si

finfinfinfin

Ejercicio 1 Ejercicio 1 Ejercicio 1 Ejercicio 1 ---- Suma de dos números (Alternativa doble Suma de dos números (Alternativa doble Suma de dos números (Alternativa doble Suma de dos números (Alternativa doble ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE) Diseñe el algoritmo (en pseudocódigo) de un programa que:

1º) Pida por teclado dos números (datos enteros). 2º) Calcule la suma de los números introducidos por el usuario. 3º) Muestre por pantalla:

• "LA SUMA SÍ ES MAYOR QUE CERO.", en el caso de que sí lo sea. • "LA SUMA NO ES MAYOR QUE CERO.", en el caso de que no lo

sea.

En pantalla:

Introduzca primer número (entero):Introduzca primer número (entero):Introduzca primer número (entero):Introduzca primer número (entero): 14141414 Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero): ----17171717 LA SUMA NO ESLA SUMA NO ESLA SUMA NO ESLA SUMA NO ES MAYOR QUE CERO.MAYOR QUE CERO.MAYOR QUE CERO.MAYOR QUE CERO.

Page 86: PROGRAMACION 1 PERIODO

algoritmoalgoritmoalgoritmoalgoritmo Suma_de_numeros_menor_o_mayor_que_ceroSuma_de_numeros_menor_o_mayor_que_ceroSuma_de_numeros_menor_o_mayor_que_ceroSuma_de_numeros_menor_o_mayor_que_cero

Comentarios :

Fecha :5 –abril -2011

El autor del programa: jeison jojoa jojoa

El programa ba hacer la suma de numeros para darnos un resultado que sera comparadocom cero y nos dira si es mayor o mener que cero

algoritmoalgoritmoalgoritmoalgoritmo Suma_de_numeros_menor_o_mayor_que_ceroSuma_de_numeros_menor_o_mayor_que_ceroSuma_de_numeros_menor_o_mayor_que_ceroSuma_de_numeros_menor_o_mayor_que_cero

variablesvariablesvariablesvariables enteroenteroenteroentero n1n1n1n1,,,, n2n2n2n2,,,, sumasumasumasuma inicioinicioinicioinicio escribir( "escribir( "escribir( "escribir( "Introduzca primer número (entero): Introduzca primer número (entero): Introduzca primer número (entero): Introduzca primer número (entero): " )" )" )" ) leer(leer(leer(leer( n1 n1 n1 n1 )))) escribir( "escribir( "escribir( "escribir( "Introduzca segundo número (entero): Introduzca segundo número (entero): Introduzca segundo número (entero): Introduzca segundo número (entero): " )" )" )" ) leerleerleerleer(((( n2n2n2n2)))) sumasumasumasuma ← n1+← n1+← n1+← n1+ n2n2n2n2 si (si (si (si ( suma suma suma suma >>>> 0 0 0 0 )))) escribir( "escribir( "escribir( "escribir( "la suma sí es mayor que cero.la suma sí es mayor que cero.la suma sí es mayor que cero.la suma sí es mayor que cero." )" )" )" ) sinosinosinosino

Page 87: PROGRAMACION 1 PERIODO

escribir( "escribir( "escribir( "escribir( "la suma no es mayor que cero.la suma no es mayor que cero.la suma no es mayor que cero.la suma no es mayor que cero." )" )" )" ) fin_sifin_sifin_sifin_si finfinfinfin

EjercicioEjercicioEjercicioEjercicio 2 2 2 2 ---- Número intermedio (Alternativa doble Número intermedio (Alternativa doble Número intermedio (Alternativa doble Número intermedio (Alternativa doble ---- Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE)Pseudocódigo CEE) Diseñe el algoritmo (en pseudocódigo) de un programa que:

1º) Pida por teclado tres números (datos enteros): <numero1>, <numero2> y <numero3>. 2º) Muestre por pantalla:

• "<numero2> SI ES MENOR QUE <numero3> Y MAYOR QUE <numero1>", en el caso de que sí lo sea.

• "<numero2> NO ES MENOR QUE <numero3> Y MAYOR QUE <numero1>", en el caso de que no lo sea.

En pantalla:

Introduzca primer número (entero):Introduzca primer número (entero):Introduzca primer número (entero):Introduzca primer número (entero): 6666 Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero): 9999 Introduzca tercer número (entero):Introduzca tercer número (entero):Introduzca tercer número (entero):Introduzca tercer número (entero): 22222222 9 SÍ ES MENOR QUE 22 Y MAYOR QUE 69 SÍ ES MENOR QUE 22 Y MAYOR QUE 69 SÍ ES MENOR QUE 22 Y MAYOR QUE 69 SÍ ES MENOR QUE 22 Y MAYOR QUE 6

InInInIntroduzca primer número (entero): 15troduzca primer número (entero): 15troduzca primer número (entero): 15troduzca primer número (entero): 15 Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero):Introduzca segundo número (entero): 7777 Introduzca tercer número (entero):Introduzca tercer número (entero):Introduzca tercer número (entero):Introduzca tercer número (entero): 8888 7 NO ES MENOR QUE7 NO ES MENOR QUE7 NO ES MENOR QUE7 NO ES MENOR QUE 8 Y MAYOR QUE 158 Y MAYOR QUE 158 Y MAYOR QUE 158 Y MAYOR QUE 15

Page 88: PROGRAMACION 1 PERIODO

algoritmoalgoritmoalgoritmoalgoritmo Numero_mayor_menor_queNumero_mayor_menor_queNumero_mayor_menor_queNumero_mayor_menor_que variablesvariablesvariablesvariables enteroenteroenteroentero n1n1n1n1,,,, n2n2n2n2,,,, n3n3n3n3 inicioinicioinicioinicio escribir( "escribir( "escribir( "escribir( "Introduzca primer número (entero): Introduzca primer número (entero): Introduzca primer número (entero): Introduzca primer número (entero): " )" )" )" ) leer(leer(leer(leer( n1 n1 n1 n1 )))) escribir( "escribir( "escribir( "escribir( "Introduzca segundo número (entero): Introduzca segundo número (entero): Introduzca segundo número (entero): Introduzca segundo número (entero): " )" )" )" ) leer(leer(leer(leer( n2 n2 n2 n2 )))) escribir( "escribir( "escribir( "escribir( "Introduzca tercer número (entero): Introduzca tercer número (entero): Introduzca tercer número (entero): Introduzca tercer número (entero): " )" )" )" ) leer(leer(leer(leer( n3 n3 n3 n3 )))) si (si (si (si ( n2n2n2n2 <<<< n3 n3 n3 n3 yyyy n2n2n2n2 >>>> n1 n1 n1 n1 )))) escribir( escribir( escribir( escribir( n2n2n2n2, " , " , " , " sí es sí es sí es sí es menor quemenor quemenor quemenor que ", ", ", ", n3n3n3n3,,,, " " " " y mayor quey mayor quey mayor quey mayor que ", ", ", ", n1n1n1n1 )))) sinosinosinosino escribir( escribir( escribir( escribir( n2n2n2n2, " , " , " , " no es menor queno es menor queno es menor queno es menor que ", ", ", ", n3n3n3n3,,,, " " " " y mayor quey mayor quey mayor quey mayor que ", ", ", ", n1n1n1n1 )))) fin_sifin_sifin_sifin_si finfinfinfin

Page 89: PROGRAMACION 1 PERIODO