PRÁCTICA 6: EJERCICIOS DE PROGRAMACIÓN EN PSEUDOCÓDIGO

 

INTRODUCCIÓN TEÓRICA (más información en este documento o en las transparencias de teoría)

 

Representación de variables

Cuando representamos datos, numéricos o alfanuméricos, debemos darles un nombre. Una variable es un nombre que representa el valor de un dato. En esencia, una variable es una zona o posición de memoria en la computadora donde se almacena información. En un pseudocódigo y también en un programa se pueden crear tantas variables como queramos. Ejemplos:

    A = 50; Variable tipo numérica A cuyo valor es 50.

Ciudad = "Asunción"; Variable alfanumérica o de tipo carácter Ciudad, cuyo  valor es "Asunción"

X = C + B; Variable numérica X cuyo valor es la suma de los valores de las variables numéricas C y B. (Nota: C y B deben tener algún valor).

 

Asignación

Para asignar un valor a una variable se utilizará el símbolo = que en este contexto significa “es reemplazado por”. De forma general tendremos que:

Nombre_variable = expresión

El valor de Nombre_variable se sustituye por el valor de expresión

Ejemplos:

C = 13

B = 25

X = C + B       (después de estas instrucciones, X contendrá el valor 13 + 25 = 38) 

 

Existe otra forma de asignar un valor a una variable, a través de la instrucción leer:

Leer (Nombre_variable)

Esta instrucción pide al usuario un valor que será asignado a la variable Nombre_variable, es decir, en Nombre_variable se almacena el valor ingresado por el usuario.


Operadores de relación

Los operadores relacionales se utilizan para formar expresiones que al ser evaluadas producen un valor de tipo lógico: verdadero o falso.

 

Signo

Operador

 

Ejemplo

Resultado

>

Mayor que

 

25 <= 25

Verdadero

<

Menor que

 

25 <> 25

Falso

==

Igual a

 

25 <> 4

Verdadero

<=

Menor o igual que

 

50 <= 100

Verdadero

>=

Mayor o igual que

 

500 >= 1

Verdadero

<>

Distinto

 

1 = 6

Falso

 

Operadores aritméticos

 

Signo

Significado

+

Suma

-

Resta

*

Multiplicación

/

División

^

Potenciación

MOD

Resto de la división entera

 

Estructuras de selección

El formato de la estructura de selección es:

 

si  (condición) entonces

            instrucción 1

 instrucción 2

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

            instrucción n

 si no

            instrucción a

            instrucción b

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

            instrucción z

fin si

 

El resultado de evaluar la condición puede ser verdadero o falso: en el caso de que sea verdadero, se ejecutarán: instrucción 1,  instrucción 2, ... , instrucción n. Si el resultado de evaluar condición es falso se ejecutarán: instrucción a,  instrucción b, ... , instrucción z.  

 

Ejemplo:

Si A = 5 entonces

Imprimir("A es 5")

si no

            imprimir("A no es igual a 5")

fin si

 

Estructuras de repetición

El formato de la estructura de repetición es:

 

mientras (condición)

instrucción 1
instrucción 2
.....
instrucción n

fin mientras

 

El resultado de evaluar condición puede ser verdadero o falso:

Mientras sea verdadero, se ejecutarán: instrucción 1,  instrucción 2, ... , instrucción n. Estas instrucciones dejarán de ejecutarse cuando condición sea falso.


Ejemplo:

leer(contraseña)

mientras (contraseña < > "joshua")

imprimir("La contraseña es incorrecta !")

leer (contraseña)

fin-mientras

imprimir("Ha tecleado la contraseña correcta")


Nota: El bucle se repetirá mientras que contraseña <> “joshua” sea verdadero

 

Salida de resultados

Los resultados de nuestros algoritmos los vamos a mostrar al usuario a través de la instrucción imprimir, que tiene la siguiente forma general:

Imprimir(argumento 1, argumento 2, argumento 3, ... , argumento n)

Donde los argumentos pueden ser cadenas de caracteres entrecomilladas o variables:

·        Si son cadenas de caracteres entrecomillados se imprime literalmente lo que está entre comillas

·        Si son variables se imprime el contenido de dicha variable (no el nombre)

Ejemplo:

sueldo = 1000

trabajador = “Martínez”

Imprimir( “el sueldo de “, trabajador , ” es “, sueldo , ” Euros.“ )

La instrucción imprimir, muestra lo siguiente: el sueldo de Martínez es 1000 Euros.

 

 

EJERCICIOS: ENUNCIADOS

 

Ejercicio 1: Observa la siguiente secuencia de instrucciones:

 

1.         A = 5

2.         B = 7

3.         C = 2

4.         A = A + B + C

5.         B = C / 2

6.         A = A / B + A ^ C

7.         Imprimir(A)

 

Ahora responde a las siguientes cuestiones:

a)     ¿Qué valor contiene A después de la cuarta instrucción?

b)     ¿Qué valor contiene B después de la quinta instrucción?

c)      ¿Qué valor contiene A después de la sexta instrucción?

d)     ¿Qué valor imprime la última instrucción?

e)     Si en lugar de Imprimir(A) hubiésemos escrito Imprimir(“A”) ¿Qué aparecería?

 

Ejercicio 2: Observa la siguiente secuencia de instrucciones:

 

1.                  A = 5

2.                  B = 7

3.                  C = 1

4.                  D = (A == B)

5.                  E = (A <> B)

6.                  F = (MOD(B/A) >= C)

 

Ahora responde a las siguientes cuestiones:

a)     ¿Qué valor contiene D después de la cuarta instrucción?

b)     ¿Qué valor contiene E después de la quinta instrucción?

c)      ¿Qué valor contiene F después de la sexta instrucción?

d)     ¿Cuánto valen A, B y C después de la última instrucción?

 

Ejercicio 3: Observa la siguiente secuencia de instrucciones:

 

1.                  leer(A)

2.                  leer(B)

3.                  leer(C)

4.                  D = (A == B)

5.                  E = (A <> B)

6.                  F = (MOD(B/A) >= C)

 

Ahora responde a las siguientes cuestiones: Supongamos que el usuario introduce 3 en A, 4 en B y 5 en C

 

a)     ¿Qué valor contiene D después de la cuarta instrucción?

b)     ¿Qué valor contiene E después de la quinta instrucción?

c)      ¿Qué valor contiene F después de la sexta instrucción?

d)     ¿Cuánto valen A, B y C después de la última instrucción?

 

Ejercicio 4: Observa la siguiente secuencia de instrucciones:

 

1.      leer (A)

2.      resultado = 1

3.      mientras (A>1)

4.      resultado = resultado * A

5.      A = A – 1

6.      fin mientras

7.      imprimir(resultado)

 

Ahora responde a las siguientes cuestiones:

a)     Si en la primera instrucción se introduce un valor 2 en A ¿Qué valor se imprime?

b)     Si en la primera instrucción se introduce un valor 3 en A ¿Qué valor se imprime?

c)      Si en la primera instrucción se introduce un valor 4 en A ¿Qué valor se imprime?

d)     ¿Qué se está calculando?

 

Ejercicio 5: Observa la siguiente secuencia de instrucciones:

 

1.      leer (A)

2.      Si (A>0)

3.      Imprimir (A,’es positivo’)

4.      Si no

5.      Imprimir (A,’es negativo’)

6.      Fin si

 

a)     Describe, instrucción por instrucción, qué se está haciendo con este algoritmo.

b)     ¿Qué pasa si A = 5? ¿Y si A = - 100?

c)      Escribe otro algoritmo para distinguir múltiplos de 3 y compáralo

 

Ejercicio 6: Observa la siguiente secuencia de instrucciones:

 

1.      leer (NumeroA)

2.      leer (NumeroB)

3.      Si (NumeroA < NumeroB)

4.      imprimir ("El mayor es:", NumeroB)

5.      si-no

6.      imprimir ("El mayor es:", NumeroA)

7.      fin-si

 

a)     Describe qué se está haciendo con este algoritmo.

b)     ¿Qué pasa si NumeroA = 5 y NumeroB = - 100?

c)      ¿Qué pasa si NumeroA = 10 y NumeroB = 100?

d)     ¿Qué pasa si NumeroA = 10 y NumeroB = 10?

 

Ejercicio 7: Dibuja los organigramas y diagramas Nassi-Schneiderman de todos los ejercicios anteriores.