Download Pseudocodigo con ejemplos

Document related concepts
no text concepts found
Transcript
INTRODUCCIÓN A LA PROGRAMACIÓN
Un programa no es más que un conjunto de instrucciones, similar a una receta de cocina.
Constituye el modo de decirle al ordenador que realice una tarea que puede ser tan elemental como sumar
dos números, o tan compleja como un videojuego.
Los programas se ocupan básicamente de recibir unos datos (ENTRADA), hacer una serie de
operaciones con ellos (PROCESO) y producir unos resultados (SALIDA). Si, por ejemplo, nos
planteamos hacer un programa que permita hallar la suma de dos números, lo primero que tendrá que
hacer el programa será obtener los números con los que hay que operar, después efectuará el cálculo con
ellos, y a continuación enseñará el resultado.
ENTRADA
(Recibir los 2 números)
PROCESO
SALIDA
(Sumarlos)
(Mostrar el resultado)
Un programa ha de funcionar en un ordenador, y para que éste pueda entender sus instrucciones
estas deben estar expresadas en un lenguaje inteligible a las máquinas. Para ello son necesarios los
lenguajes de programación. Estos permiten escribir las órdenes que queremos que ejecute el ordenador
en un código adecuado. Existen muchos lenguajes de programación C, C++, Pascal, Visual-Basic,
Smalltalk, Fortran, etc. y es importante saber que cada uno de ellos es más apropiado para resolver un
determinado tipo de problema. Hay lenguajes especialmente pensados para cálculo científico, otros para
el mundo de la gestión empresarial, otros para el diseño de Sistemas Operativos, etc.
Pero un programador no debe escribir las órdenes directamente en un lenguaje; antes hay que
plantearse un esquema del programa, hay que pensar qué debe hacer el programa y qué resultados ha de
producir. Emplearemos una técnica de programación para diseñarlo -Organigramas, Pseudocódigo,
Diseño descendente (Top-Down), etc.- y entonces lo codificaremos en un lenguaje concreto.
Como conclusión, para hacer un programa daremos los siguientes pasos:
Conocer la función que debe realizar, para qué debe servir, y qué datos ha de tener en cuenta.
Diseñarlo mediante una técnica de programación (Pseucódigo en nuestro caso).
Codificarlo, es decir, escribirlo en un lenguaje de programación concreto.
PSEUDOCÓDIGO, un método de programación
INTRODUCCIÓN
El pseudocódigo constituye un método de programación, y como tal se aplicará antes de llegar
a la codificación de un programa en un lenguaje concreto. Es un lenguaje intermedio entre el lenguaje
natural y el de programación, que toma ciertas palabras y frases del lenguaje natural, pero que han de
usarse siguiendo unas determinadas reglas.
Como todas las técnicas de programación el pseudocódigo es independiente del lenguaje en el
que se codifique con posterioridad el programa, esto es, una vez elaborado el pseudocódigo de un
programa, este podrá ser escrito en diferentes lenguajes de programación.
La tarea de un programador hasta llegar a la solución de un problema pasa por las siguientes
fases:
•
•
•
•
Conocimiento de especificaciones y datos a tener en cuenta sobre el problema;
Elaboración de un algoritmo que lo resuelva (mediante alguna técnica de programación);
Codificación en un lenguaje de programación determinado;
Prueba del programa y Depuración de errores.
DEFINICIÓN
Una notación es un pseudocódigo si mediante ella podemos describir la solución de un problema en
forma de algoritmo dirigido a la computadora, utilizando palabras y frases del lenguaje natural sujetas a
unas determinadas reglas.
TIPOS DE INSTRUCCIONES
ASIGNACIÓN -- Variable ← EXPRESIÓN
ENTRADA
--
Leer variable1, variable2, ...
SALIDA
--
Escribir EXPRESIÓN
ALTERNATIVAS
Simple
Si CONDICION
entonces
i1
i2
.....
.....
in
Fin-si
Doble
Si CONDICION
entonces
i1
i2
.....
in
sino
j1
....
jn
Fin-si
Múltiple
Opción EXPRESION de
V1 hacer i1,i2,..,in
V2 hacer j1,j2,..,jn
....
....
Vn hacer l1,l2,..,ln
otro caso hacer m1,m2,..,mn
Fin-opción
REPETITIVAS - CICLOS
Mientras
mientras CONDICION hacer
i1
i2
.....
in
fin-mientras
Repetir
repetir
i1
i2
.....
in
hasta CONDICION
Para
para Vc de Vi a Vf hacer
i1
i2
.....
in
fin-para
ACCIONES COMPUESTAS
El pseudocódigo permite la posibilidad de definir operaciones complejas, bloques, dentro de un
algoritmo, que se concretarán en términos de acciones simples al final del mismo.
Una acción compuesta es aquella que ha de ser realizada dentro del algoritmo, pero que aún no
está resuelta en términos de acciones simples y sentencias de control.
Ejemplo de la verificación de una fecha en un programa que registra facturas.
Es conveniente emplear acciones compuestas como un bloque bien separado cuando estas
pueden ser compartidas por varios programas. Ello supone un ahorro de tiempo de programación.
Otra ventaja que proporcionan es la de facilitar el mantenimiento de los programas, ya que, los
dotan de una estructura más clara, y por tanto los hacen más fáciles de entender.
COMENTARIOS
Los comentarios se indican en un algoritmo para facilitar su comprensión a cualquier persona que lo
lea. Dentro de un pseudocódigo los comentarios se indicarán con dos asteriscos **.
** Comentario de una instrucción
OBJETOS
Son los recipientes de datos (variables, tablas, ficheros, etc.) que empleará el programa. Será
necesario indicar cuáles son sus nombres y sus tipos, y esto se hará antes del bloque de instrucciones.
El conjunto de objetos del programa se llama Entorno.
ESQUEMA BÁSICO DE UN PROGRAMA
Entorno
Algoritmo
Acciones compuestas o Funciones
A continuación se ofrecen una serie de programas sencillos ya resueltos.
PROGRAMA QUE SUMA DOS NÚMEROS
ALGORITMO EXPRESADO EN PSEUDOCÓDIGO
ENTORNO
numero1, numero2, suma : numérico entero
ALGORITMO
** equivale a int main( ) en C++
Escribir ‘PROGRAMA QUE SUMA DOS NÚMEROS ENTEROS’
Escribir ‘Introduzca el primer número:’
Leer numero1
Escribir ‘Introduzca el segundo número:’
Leer numero2º
suma ← numero1 + numero2
Escribir ‘La suma es igual a ‘, suma
FINPROGRAMA.
PROGRAMA QUE CALCULA LA LONGITUD DE UNA CIRCUNFERENCIA
ALGORITMO EXPRESADO EN PSEUDOCÓDIGO
ENTORNO:
radio
longitud
: numérico entero
: numérico real
ALGORITMO:
Escribir ‘PROGRAMA PARA CALCULAR LA LONGITUD DE UNA CIRCUNFERENCIA’
Escribir ‘Introduzca el radio de la circunferencia:’
Leer RADIO
LONGITUD ← 2 * 3.14159 * RADIO
Escribir ‘La longitud de la circunferencia es: ‘, LONGITUD
FINPROGRAMA.
PROGRAMA QUE HALLA EL MAYOR DE DOS NÚMEROS
ALGORITMO EXPRESADO EN PSEUDOCÓDIGO
ENTORNO
numero1, numero2 : numérico entero
ALGORITMO
Escribir ‘PROGRAMA QUE HALLA EL MAYOR DE DOS NÚMEROS ENTEROS’
Escribir ‘Introduzca el primer número:’
Leer NUMERO1
Escribir ‘Introduzca el segundo número:’
Leer NUMERO2
Si NUMERO1 > NUMERO2
entonces
Escribir ‘El mayor es el primero, el ‘, NUMERO1
sino si NUMERO2 > NUMERO1
entonces
Escribir ‘El mayor es el segundo, el ‘, NUMERO2
sino
Escribir ‘Los dos son iguales’
Fin-si
FINPROGRAMA.
PROGRAMA QUE HALLA EL FACTORIAL DE UN NÚMERO
ALGORITMO EXPRESADO EN PSEUDOCÓDIGO
ENTORNO
num, i, factorial : numérico entero
ALGORITMO
Escribir ‘PROGRAMA QUE HALLA EL FACTORIAL DE UN NÚMERO’
Escribir ‘Introduzca el número:’
Leer NUMERO
Mientras NUMERO<>0 hacer
Para i de numero a 2 paso –1
FACT=FACT*i;
Escribir ‘Resultado =’, FACT
FINPROGRAMA.
RESOLUCIÓN DE UNA ECUACIÓN DE SEGUNDO GRADO (con subprogramas)
PSEUDOCÓDIGO
PROGRAMA Ecuación 2º grado
ENTORNO:
A,B,C,X1,X2,DISCRI : numéricos
** A,B,C son los coeficientes de la ecuación y X1, X2 son las raíces
** DISCRI es el Discriminante de la raíz cuadrada y servirá para detectar raíces imaginarias
ALGORITMO:
Escribir ‘SOLUCIÓN DE UNA ECUACIÓN DE SEGUNDO GRADO CON SUBPROGRAMAS’
** Llamada al procedimiento que recibe los coeficientes
LeerCoeficientes(A,B,C)
** Llamada al procedimiento que calcula las raíces
CalculaRaiz (X1,X2,DISCRI,A,B,C)
Si DISCRI > 0
entonces
** Llamada al procedimiento que muestra las soluciones
Visualizar(X1,X2)
Fin-si
FINPROGRAMA
** Procedimiento para recibir los coeficientes de la ecuación
** Recibe como parámetros de salida los tres coeficientes de la ecuación
SUBPROGRAMA LeerCoeficientes
Transforma PF_A, PF_B, PF_C : numéricos
ALGORITMO
Escribir 'Introduzca el coeficiente de grado 2: '
Leer (PF_A)
Escribir 'Introduzca el coeficiente de grado 1: '
Leer (PF_B)
Escribir 'Introduzca el coeficiente de grado 0: '
Leer (PF_C)
FIN-SUBPROGRAMA
** Procedimiento que calcula las dos raíces de la ecuación
** Recibe como parámetros de salida las dos raíces y el discriminante (éste es necesario
** para que después no se llame al procedimiento Visualizar si es negativo) y como entradas
** los tres coeficientes
SUBPROGRAMA CalculaRaiz
Transforma PF_X1, PF_X2, PF_DISCRI : numéricos
Recibe
PF_A, PF_B, PF_C
: numéricos
ALGORITMO
** Cálculo del discriminante B^2 - 4AC
PF_DISCRI ← PF_B^2 - (4 * PF_A * PF_C)
Si PF_DISCRI < 0
entonces
Escribir 'Las soluciones son imaginarias'
si no
PF_X1 ← (-PF_B + RAÍZCUADRADA(PF_DISCRI)) / (2*PF_A)
PF_X2 ← (-PF_B - RAÍZCUADRADA(PF_DISCRI)) / (2*PF_A)
Fin-si
FIN-SUBPROGRAMA
** Procedimiento que muestra las raíces en pantalla
** Recibe como parámetros de entrada las dos raíces
SUBPROGRAMA Visualizar
Recibe PF_X1, PF_X2
: numéricos
ALGORITMO
Escribir 'Las raíces de la ecuación son: '
Escribir 'X1 = ', PF_X1
Escribir 'X2 = ', PF_X2
FIN-SUBPROGRAMA