TUTORIAL DE PROGRAMACIÓN
--
Ejemplos sencillos de Pseudocódigo:
Programa -> Sumar 3 a un número
Inicio
Decir lo que hace el programa
Pedir un numero
Sumarle tres
Mostrar el resultado
Fin
Programa -> Determinar el área de un circulo (A=Pi*r^2)
Inicio
Decir lo que hace el programa
Pedir el radio
Area=3,14*radio*radio
Mostrar el area
Fin
Programa -> Diseña un algoritmo que lea la edad de dos personas y diga quien es más joven, la primera o la segunda. Ten en cuenta que ambas pueden tener la misma edad.
Inicio
Decir lo que hace el programa
Pedir la edad de la primera persona
Pedir la edad de la segunda persona
Si la edad de la 1ª > la edad de la 2ª -> Mostrar "la segunda persona es la más joven."
Si la edad de la 2ª > la edad de la 1ª -> Mostrar "la primera persona es la más joven."
Si ambas edades son iguales -> Mostrar "ambas personas tienen la misma edad." Fin
Cuando se sabe un poco de programación un programa como los anteriores se pueden hacer inmediatamente, pero es conveniente empezar con un pseudocódigo cuando vayamos a atacar algo complejo, que en un primer momento se nos resista o ahora que estamos empezando a ver esto.
No hay reglas a la hora de trabajar esto, pero es conveniente seguir algunos criterios que nos permitan pasar rápidamente del pseudo al código.
Aquí tenéis un Tutorial de Pseudocógo-básico con todas las reglas que se recomiendan, pero básicamente lo que hay que tener en cuenta es lo siguiente:
Cuando se trabaja con código diferenciamos entre "cosas" y "lo que hacemos con ellas", es decir, diferenciamos entre "variables" y "acciones".En el primer ejemplo anterior (sumar 3 a un número) vemos que "el número" es una variable y que "sumar" es la acción que tiene lugar.
Además de la variable número vamos a declarar otra que llamaremos "resultado" para guardar en ella la operación resultado=número+3. Para que nuestro pseudocodigo tenga buen aspecto vamos a declarar primero todas las variables, después escribiremos el resto del código y terminaremos mostrando el resultado. Quedaría así:
Programa -> Sumar 3 a un número
Inicio
variables: número, resultado
Decir lo que hace el programa
Pedir "número"
resultado=número+3
Mostrar "resultado"
Fin
¿A tiene mejor pinta que lo que habíamos hecho antes? Los otros dos tendrían este aspecto:
Programa -> Determinar el área de un circulo (A=Pi*r^2)
Inicio
Variables: radio, area
Decir lo que hace el programa
Pedir el radio
area=3,14*radio*radio
Mostrar area
Fin
Programa -> Diseña un algoritmo que lea la edad de dos personas y diga quien es más joven, la primera o la segunda. Ten en cuenta que ambas pueden tener la misma edad.
Inicio
variables: edad1, edad2
Decir lo que hace el programa
Pedir la edad de la primera persona
Pedir la edad de la segunda persona
Si (edad1 > edad2) -> Mostrar "la segunda persona es la más joven."
Si (edad2 > edad1) -> Mostrar "la primera persona es la más joven."
Si ambas edades son iguales -> Mostrar "ambas personas tienen la misma edad."
Fin
¿Qué podemos usar en nuestros prográmas? Vamos a verlo:
-- VARIABLES --
Vamos a ver las clases de variables que podemos utilizar. Tenemos 2 tipos:
-Numéricas: 1, 455, 4.34, pi, , e... -Alfanuméricas: hola, 23 años, Pepe...
Las numéricas son valores, mientras que las alfanuméricas son texto.
-- OPERACIONES --
Las operaciones que se pueden realizar se pueden clasificar en las siguientes clases:
- Relacionales - Aritméticas - Alfanuméricas - Lógicas
-RELACIONALES: Los operadores relacionales se utilizan para formar expresiones que al ser evaluadas producen un valor verdadero o falso. Los operadores son:
Signo Operador
> Mayor que
< Menor que
= Igual a
<= Menor o igual que
>= Mayor o igual que
<> Distinto
Ejemplos:
Ejemplo Resultado
25 <= 25 Verdadero
25 <> 25 Falso
25 <> 4 Verdadero
50 <= 100 Verdadero
500 >= 1 Verdadero
1 = 6 Falso
ARITMÉTICAS: serían las matemáticas:
+ Suma
- Resta
* Multiplicación
/ División
^ Potencia
MOD Devuelve el resto de una división.
etc.
ALFANUMERICAS: Se puede operar con texto, por ejemplo se pueden unir "Hola" y "Pepe" para formar "Hola Pepe" o hacer cosas como contar las letras de un texto, pero en pseudocódigo no creo que merezca la pena por el momento desarrollar esto. Ya lo explicaré cuando estemos programando en java.
LÓGICAS: Los operadores lógicos combinan sus partes de acuerdo con las reglas del álgebra de Boole para producir un nuevo valor que se convierte en el valor de la expresión, puede ser verdadero o falso. No te preocupes que lo explico ahora.
Signo Significado
OR Suma lógica (O)
AND Producto lógico (Y)
NOT Negación (NO)
Los resultados de las operaciones serían:
-OR
Falso OR Falso = Falso
Verdad OR Falso = Verdad
Falso OR Verdad = Verdad
Verdad OR Verdad = Verdad
Es decir, el resultado de un OR solo es Falso si las dos partes del mismo son falsas, desde que una sea verdad el resultado es Verdad.
-AND
Verdad AND Verdad = Verdad
Verdad AND Falso = Falso
Falso AND Verdad = Falso
Falso AND Falso = Falso
Es decir, para que se cumpla (X AND Y = Verdad) X e Y tienen que ser Verdad, todas las demás opciones tienen como resultado Falso.
-NOT
NOT Verdad = Falso
NOT Falso = Verdad
Es decir, NOT lo que hace es cambiar el estado; de verdad a falso y de falso a verdad.
ASIGNACIONES
Veamos ahora las asignaciones. A una variable se le puede dar, asignar, un valor. Volviendo al ejemplo Nº1 (Sumar 3 a un número).
Cuando decimos:
Pedir número
Estaríamos resumiendo algo como esto:
Mostrar "Introduce un número:"
número = (Lo que meta el usuario por el teclado)
Y al calcular el resultado lo que ponemos es:
Resultado = número + 3
Haciendo esto estamos guardando en la variable un valor. No hace falta que diga que de entrada solo podemos guardar tantos valores como variables tengamos y que cuando guardas un nuevo valor el viejo se borra y se pierde si no lo guardamos en otro sitio.
CONDICIONALES
Vamos a echarle un ojo a las condicionales. Veremos 2 clases: "Si" y "Según sea".
-"Si"-
Si (condición) -> Se hace esto
Las condicionales permiten que se realice una parte del programa solo si se cumple una condición.
Veamos las posibilidades del ejemplo:
Inicio
variables: edad1, edad2
Decir lo que hace el programa
Pedir la edad de la primera persona
Pedir la edad de la segunda persona
Si (edad1 > edad2) -> Mostrar "la segunda persona es la más joven."
Si (edad2 > edad1) -> Mostrar "la primera persona es la más joven."
Si ambas edades son iguales -> Mostrar "ambas personas tienen la misma edad."
Fin
----
Supuesto 1) Persona 1 = 15 años y persona 2 = 10 años.
El programa se ejecuta y va realizando las ordenes según las va encontrando. En primer lugar nos haría saber qué es lo que hace, luego nos pediría la primera edad (15) y después la segunda (10). Llegados a este punto pasaría a evaluar las condiciones. Como la primera es cierta nos diría que "la segunda persona es la más joven.". Pasaría a evaluar la 2ª condición, vería que es falsa y no haría nada. Comprobaría la 3ª, tampoco haría nada, y terminaría.
Supuesto 2) Persona 1 =15 años y persona 2 = 20 años
Cuando el programa se ejecute y irá realizando las ordenes según las va encontrando. En primer lugar nos haría saber qué es lo que hace, luego nos pediría la primera edad (15) y después la segunda (20). Llegados a este punto pasaría a evaluar las condiciones. Como la primera es falsa no haría nada y pasaría a evaluar la 2ª condición, vería que es ahora verdadera y devolvería "la primera persona es la más joven.". Comprobaría la 3ª, no haría nada, y terminaría.
Supuesto 3) Persona 1 = 15 años y persona 2 = 15 años.
En este caso entraría por el tercer condicional y nos mostraría que "ambas personas tienen la misma edad."
Una de las posibilidades de las condicionales es añadir un "Si no" para ejecutar un trozo de código en caso de que no se cumpla la primera condición.
Os habréis dado cuenta de que si se cumple que la Persona 1 es mayor que la persona 2, lo contrario o si ambas tienen la misma edad, no tiene sentido seguir evaluando las otras opciones... ¿así que por qué lo íbamos a hacer?
Podemos mejorar nuestro código escribiéndolo así:
Inicio
variables: edad1, edad2
Decir lo que hace el programa
Pedir la edad de la primera persona
Pedir la edad de la segunda persona
Si (edad1 > edad2)
Mostrar "la segunda persona es la más joven."
Si no
Si (edad2 > edad1)
Mostrar "la primera persona es la más joven."
Si no
Si ambas edades son iguales
Mostrar "ambas personas tienen la misma edad."
Fin
Así solo se comprueba el 2º condicional si el primero el falso y el 3 si los otros dos son falsos.
Nota que indico con la sangría (la posición del texto en cada linea) qué parte del código está dentro de cada Si. Si no te queda claro así puedes poner un fin-si cuando se termina ese pedazo. Así:
Si (edad1 > edad2)
Mostrar "la segunda persona es la más joven."
Si no
Si (edad2 > edad1)
Mostrar "la primera persona es la más joven."
Si no
Si ambas edades son iguales
Mostrar "ambas personas tienen la misma edad."
fin-si
fin-si
fin-si
-"Segun sea"-
Inicio
Variable: número
Mostrar Lo que hace el programa y pedir que se introduzca un número
Leer número
Según sea numero
Caso = 1 Lo que queramos poner aquí
Caso = 2 Pues lo mismo, lo que quieras
Caso = 3 ... pillas la idea?
Fin
Vemos que según sea el valor de número se entrará por un caso u otro. Y al igual que antes con el fin-si, si os ayuda a verlo más claro podéis poner un fin-caso o un fin-según. Es la magia del pseudocódigo, si quieres lo pones y si no no pasa nada :)
--
No os preocupéis si no lo tenéis muy claro ahora mismo, con hacer 2 ejemplos veréis que no es complicado.
Os propongo algunos ejercicios que podéis hacer más o menos rápido y que os ayudarán a empezar a comprender todo esto:
Estructuras Secuenciales y Condicionales
- Diseña un algoritmo que calcule el IVA (16%) de un producto dado su precio de venta sin IVA.
- Realizar un algoritmo que sirva para convertir pulgadas a centímetros. (Recuerda que 1 pulgada = 2.54 centímetros).
- Diseñar un algoritmo que calcule el área de un triángulo en función de su base y su altura.
- Diseña un algoritmo que pida el valor del lado de un cuadrado y muestre el valor de su perímetro y el de su área.
- Diseña un algoritmo que pida el valor de los dos lados de un rectángulo y muestre el valor de su perímetro y el de su área.
- Diseña un algoritmo que, dado un número entero, muestre por pantalla el mensaje "El número es par." cuando el número sea par y el mensaje "El número es impar." cuando sea impar. (Una pista: un número es par si el resto de dividirlo por 2 es 0, e impar en caso contrario.)
- Diseña un algoritmo que, dado un número entero, determine si éste es el doble de un número impar. (Ejemplo: 14 es el doble de 7, que es impar.)
- Diseña un algoritmo que, dados dos números enteros, muestre por pantalla uno de estos mensajes: "El segundo es el cuadrado exacto del primero.", "El segundo es menor que el cuadrado del primero." o "El segundo es mayor que el cuadrado del primero.", dependiendo de la verificación de la condición correspondiente al significado de cada mensaje.
- Diseña un algoritmo que, dados cinco números enteros, determine cuál de los cuatro últimos números es más cercano al primero. (Por ejemplo, si el usuario introduce los números 2, 6, 4, 1 y 10, el programa responderá que el número más cercano al 2 es el 1.)
- Diseña un algoritmo que lea un carácter cualquiera desde el teclado, y muestre el mensaje "Es una MAYUSCULA" cuando el carácter sea una letra mayúscula y el mensaje "Es una MINUSCULA" cuando sea una minúscula. En cualquier otro caso, no mostrará mensaje alguno. (Considera únicamente letras del alfabeto inglés.) Pista: aunque parezca una obviedad, recuerda que una letra es minúscula si está entre la ’a’ y la ’z’, y mayúscula si está entre la ’A’ y la ’Z’.
Si queréis que resuelva alguno podéis pedirlo.
En la próxima entrada: -Pseudocodigo 2: Estructuras Iterativas (¡Es lo mismo 8 que 80!)
Saludos :)
Puedes resolver este ,gracias .
ResponderEliminarDiseña un algoritmo que, dados cinco números enteros, determine cuál de los cuatro últimos números es más cercano al primero. (Por ejemplo, si el usuario introduce los números 2, 6, 4, 1 y 10, el programa responderá que el número más cercano al 2 es el 1.)