Vous êtes sur la page 1sur 10

Escribiendo en Pseudocdigo

Introduccin

El pseudocdigo pretende ser un lenguaje de programacin de muy alto nivel, que permite
desarrollar ideas sin necesidad de llegar al nivel de detalle de un lenguaje real, pero siendo, a la vez,
muy sencillo realizar el paso final de traducir a cualquier lenguaje de programacin.
Por ejemplo, el algoritmo del mximo comn divisor de dos nmeros consiste en ir
reduciendo al mayor de ambos con el otro, hasta llegar a un punto en el que no se pueda reducir
ms:
ALGORITMO mcd
VARIABLES
num1, num2: Entero
INICIO
ESCRIBIR (Introduzca el primer nmero)
LEER(num1)
ESCRIBIR (Introduzca el segundo nmero)
LEER(num2)
MIENTRAS num1 <> num2
SI num1 > num2
num1 num1 num2
SINO
num2 num2 num1
FIN_SI
FIN_MIENTRAS
ESCRIBIR(El MCD ES , num1)
FIN_ALGORITMO

Los lenguajes estructurados emplean distintas notaciones para representar composiciones


secuenciales, iterativas o de decisin. Sin embargo, todos los lenguajes tienen los mismos elementos
que presenta la notacin algortmica. De ah que, dado que el pseudocdigo no es ms que un
lenguaje genrico, y que todo lo que se puede hacer en pseudocdigo se puede hacer en cualquier
lenguaje de programacin, la traduccin de uno a otro debera ser ms o menos automtica.
En este sentido, dada la diferencia de los lenguajes y su carcter estricto, resulta muy
interesante emplear una notacin algortmica que va a resultar ms flexible para poder construir los
algoritmos y, una vez construido el algoritmo, fijarse en los detalles del lenguaje de programacin.

Elementos del pseudocdigo

2.1 Comentarios
Comentarios

Programacin I

{ comentario }

2.2 Entrada y salida


Es necesario que un programa se comunique con el usuario. Para ello, normalmente se
tienen determinadas funciones disponibles en la biblioteca estndar del lenguaje.

ESCRIBIR( Hola! )
LEER( x )
ESCRIBIR ( x )

2.3 Constantes y variables


En programacin, las constantes y variables estn normalmente ligadas a un tipo de datos
(aunque en posteriores cursos se estudiarn lenguajes no tipados). A continuacin, se muestran los
tipos de datos fundamentales. La mayor parte de las veces, los lenguajes de programacin permiten
escoger entre tipos de datos ms especficos, aunque todos permiten representar, al menos los
fundamentales, que son los que se usan en pseudocdigo, y que se enumeran a continuacin.
Entero
Real
Lgico
Carcter
Cadena
Vector, Matriz
Registro

2.4 Identificadores
Un identificador es una secuencia de caracteres que permite identificar de forma nica a
cada elemento de un algoritmo. No todos los caracteres son vlidos por lo que normalmente se usan
letras, dgitos y subrayado (_).
Reglas de construccin:
El primer carcter debe ser una letra o subrayado.
Pueden tener cualquier longitud dentro del lmite que imponga el compilador.
Las palabras reservadas del lenguaje no pueden utilizarse como identificadores.
Algunos lenguajes no distinguen entre caracteres en maysculas y minsculas (Pascal,
Mdula-2) y otros s (C, Java).
fechaNacimiento, fecha_nacimiento,

2.5 Expresiones y Asignacin


Una expresin es una combinacin de constantes, variables, valores constantes o literales,
Programacin I

operadores, parntesis y nombres de funcin que representan una determinada forma de operar con
los datos.
La asignacin es la operacin por medio de la cual una variable toma el valor resultado de la
evaluacin de una expresin. Se representa mediante el smbolo . Ejemplo:
a 3
a a + 5

Toda la computacin y los lenguajes de programacin ms empleados (imperativos) giran en torno


a esta operacin.

2.5.1

Operadores

Los operadores permiten combinar los datos para realizar los clculos necesarios para llevar
a cabo la accin que se desea. Los operadores pueden ser de dos tipos:

Unarios: se aplican slo sobre un dato, por ejemplo: negacin lgica: a

Binarios: se aplican sobre dos datos, por ejemplo: suma 5 + a siendo a Entero o Real.

A continuacin se especifica un conjunto de operadores en funcin de su utilizacin.

Operadores de valores lgicos:

Negacin lgica: x, se indica como NOT( x ) NO( x ).

Operador Y lgico: se indica como x AND y, o tambin x Y y. Esta expresin devuelve


verdadero cuando x e y son verdaderos.

Operador O lgico: se indica como x OR y, o tambin x O y. Esta expresin slo devuelve


falso cuando ambas son falsas.

Operadores aritmticos:
Se aplican sobre Enteros, y Reales, permitiendo obtener valores numricos como resultado.

suma aritmtica: x + y

resta aritmtica: x - y

multiplicacin: x * y

divisin real: x / y

divisin entera: x / y (cuando x e y son de tipo Entero)

x % y: resto de la divisin entera

Programacin I

Operadores relacionales:
Relacionan valores numricos para obtener valores lgicos:

x>y

x mayor que y.

x<y

x menor que y.

x >= y

x mayor o igual que y.

x <= y

x menor o igual que y.

x=y

x igual a y.

x <> y

x distinto de y.

2.5.2

Funciones

Las funciones son identificadores de operaciones que no se pueden representar con operadores. Para
invocar a una funcin se coloca su nombre y, entre parntesis, los datos sobre los que se aplica.

Nombre

Programacin I

Significado

ABS( X )

Valor absoluto Z N o R  R

SEN( X )

Seno R  R (Radianes)

COS( X )

Coseno R  R (Radianes)

TAN( X )

Tangente R  R (Radianes)

ARCSEN( X )

Arcoseno R  R (Radianes)

ARCCOS( X )

Arcocoseno R  R (Radianes)

ARCTAN( X )

Arcotangente R  R (Radianes)

LN( X )

Logaritmo Neperiano

LOG( X )

Logaritmo decimal (base 10)

SQRT( X )

Raiz cuadrada

En ciertas ocasiones puede ocurrir que no se disponga de una funcin que realice un determinado
clculo necesario. En ese caso deben buscarse las propiedades matemticas que permitan realizar la
funcionalidad deseada mediante la combinacin de funciones y operadores existentes.

2.5.3

Restricciones de asignacin

En una asignacin hay una serie de reglas que rigen el clculo del efecto de la operacin. A
continuacin se numeran las ms importantes:

En la parte izquierda slo puede existir una variable.

La variable pierde su antiguo valor.

La ejecucin de una instruccin de asignacin comienza con la evaluacin de la expresin


de la derecha, una vez evaluada se hace efectiva la asignacin. Esto implica que si la
variable asignada aparece a la derecha se usar su antiguo valor para evaluar la expresin.
ALGORITMO EjecucinAsignacin
CONSTANTES
X: Entero = 2
Y: Entero = 5
VARIABLES
Z: Entero
INICIO
Z  Y + X
Z  Z + Z
ESCRIBIR( Z )
FIN_ALGORITMO

El tipo de dato al que pertenece el resultado de la evaluacin de la expresin (parte derecha)


debe ser el mismo que el de la variable de la parte izquierda.
INICIO
Z  1
Z  ( X + Y )* Z; /* Equivalente Z  (X+Y)* 1 */
ESCRIBIR( Z )
FIN_ALGORITMO

2.5.4

Precedencia de los operadores


Operador

Precedencia

Categora

No

Primera

Operador unario

*, / ,%, y

Segunda

Operadores de multiplicacin

+,-,o

Tercera

Operadores de suma

=, <>, <, >, <=, >=

Cuarta

Operadores relacionales

Programacin I

Reglas bsicas de precedencia:


1.- Un operando entre dos operadores de diferente precedencia est ligado al operador con la
precedencia ms alta.
a*b+c = (a*b)+c
no a+b = (no a)+b

2.- Un operando entre dos operadores iguales est ligado al de su izquierda.


3.- Las expresiones con parntesis son evaluadas antes de ser tratadas como un operando simple.
a* (b+c)

4.- Operaciones de igual precedencia son evaluadas de izquierda a derecha.


5.- Una divisin por 0 (/) da error en tiempo de ejecucin.
Operador

Tipo de operando

Tipo de resultado

+, -, *,/

Entero, Real

Entero, Real

Entero

Entero

2.6 Tipos
En el lenguaje pseudocdigo se utiliza una seccin denominada TIPOS que permite definir
nuevos tipos de datos, a mayores de los estndares. Por ejemplo:
TIPOS
Direccion = ( Norte, Sur, Este, Oeste )
Punto = REGISTRO
x: Real
y: Real
FIN_REGISTRO

2.7 Partes del algoritmo


ALGORITMO <NOMBRE>
CONSTANTES
<IDENTIFICADOR
.
.
<IDENTIFICADOR
TIPOS
<IDENTIFICADOR
.
.
<IDENTIFICADOR
VARIABLES
<IDENTIFICADOR
.
.
<IDENTIFICADOR

Programacin I

C1>: <TIPO> = <VALOR C1>

Cn>: <TIPO> = <VALOR Cn>


TIPO 1>=<DEFINICIN TIPO 1>

TIPO n>=<DEFINICIN TIPO n>


V1>: <TIPO V1>

Vn>: <TIPO Vn>

INICIO
<INSTRUCCIN 1>
.
.
.
<INSTRUCCIN N>
FIN_ALGORITMO

Ejemplo: Algoritmo que calcula el rea de un crculo


ALGORITMO reaDelCirculo
{ Calcula el rea del crculo, pidiendo el radio por teclado }
CONSTANTES
PI: Real = 3.1415927
VARIABLES
radio : Real
INICIO
ESCRIBIR( Introduzca el radio: )
LEER( radio )
ESCRIBIR( El resultado es: , radio * radio * PI )
FIN_ALGORITMO

2.8 Descripcin de las composiciones de programacin estructurada


2.8.1 Estructura secuencial
La estructura secuencial consiste, simplemente, en poner una instruccin a continuacin de
la otra, como se observa a continuacin:
i 1
ESCRIBIR(

2.8.2 Estructura condicional


La estructura condicional, segunda caracterstica clave de la programacin estructurada,
consiste en permitir realizar decisiones segn se cumpla una condicin o no. Su sintaxis es la
siguiente:
SI expresin
composicin_de_instrucciones
FIN_SI

Programacin I

SI x>10
x x - 1
j j + 1
FIN_SI

2.8.3 Estructura alternativa


La estructura alternativa permite especificar la ejecucin de una composicin de
instrucciones si se cumple la condicin u otra distinta si no se cumple la condicin. Su sintaxis es la
siguiente:
SI expresin_condicional
composicin_de_instrucciones1
SINO
composicin_de_instrucciones2
FIN_SI
SI x>y
x x y
SINO
y y - x
FIN_SI

2.8.4 Estructura selectiva


Un caso particular de la estructura condicional es la seleccin entre varios valores simples
(enteros, lgicos o enumerados), una posibilidad presente en muchos lenguajes de programacin. Su
sintaxis es la siguiente:
CASO expresin SEA
valor1: COMPOSICIN1
valor2: COMPOSICIN2
valor3: INICIO
COMPOSICIN3
FIN
....
valorN: COMPOSICINn
[SINO:composicin_defecto]
FIN_CASO

Programacin I

CASO x SEA
1, 2:INICIO
x x + 1
y y - 1
FIN
3: y y + 1
SINO: z z 2
FIN_CASO

2.8.5 Estructura iterativa o repetitiva


Finalmente, el tercer gran pilar de la programacin estructurada es la repeticin. A
continuacin se muestran las construcciones ms frecuentes.
Estructura iterativa MIENTRAS
Es una estructura iterativa que permite repetir una instruccin o conjunto de instrucciones
mientras se cumpla una condicin. La estructura iterativa MIENTRAS es la ms bsica de las
composiciones y cualquiera de las estructuras iterativas puede ser reemplazada por ella. Su sintaxis
es la siguiente:
MIENTRAS expresin
composicin_de_instrucciones
FIN_MIENTRAS

Estructura iterativa REPETIR


Es muy similar a la anterior, con la salvedad de que la expresin lgica no es una condicin
de permanencia sino una condicin de salida y adems el cuerpo se ejecuta como mnimo una vez.
Su sintaxis es la siguiente:
REPETIR
composicin_de_instrucciones
HASTA expresin

Estructura iterativa DESDE


Permite ejecutar una composicin para un conjunto de valores conocido. Para ello incorpora
una variable llamada vcb (variable controladora del bucle, de tipo entero), de la cual se puede
conocer su valor durante la ejecucin del bucle y as saber el nmero de vuelta actual. Su sintaxis es
la siguiente:
DESDE vcb Vi HASTA Vf [INCREMENTO delta]
composicin_de_instrucciones
FIN_DESDE

Programacin I

donde:

vcb: variable controladora del bucle

vi: valor inicial

vf: valor final

delta: cunto aumenta o disminuye vcb por pasada

MIENTRAS x > 5
x x / 2
y y 1
FIN_MIENTRAS

REPETIR
LEER( x )
HASTA x < 5

DESDE i 1 HASTA 10
ESCRIBIR( i )
FIN_DESDE

Programacin I

10

Vous aimerez peut-être aussi