El ejemplo anterior se escribió de manera ordinaria, como describiríamos nosotros la solución de cualquier problema, sin embargo, los programas son escritos en lenguajes que puedan ser compilados o interpretados en la computadora con términos, conceptos y reglas de sintaxis previamente definidas. Por lo tanto, se buscará que el lenguaje utilizado para escribir algoritmos se parezca al lenguaje y sintaxis utilizada para escribir programas de computación. A este lenguaje que utilizaremos para escribir algoritmos le llamaremos pseudocódigo.
El pseudocódigo igual que los lenguajes de programación es una mezcla de lenguaje y símbolos, identificadores y otras características. En nuestro caso utilizaremos:
Identificadores
Representan las cantidades o datos procesados por el algoritmo, a saber: variables, constantes, subprogramas, funciones, procedimientos y el algoritmo mismo.
Cada lenguaje de programación define las características y sintaxis de sus identificadores, procuramos utilizar en el pseudocódigo lo más parecido a lo requerido en el lenguaje de programación que posteriormente utilizaremos para codificar el algoritmo.
Algunas reglas a considerar son:
Datos numéricos
Los datos numéricos fundamentalmente se refieren al tipo de número con el cual operaremos y que es definido en rango y características como posiciones de memoria por cada lenguaje en particular.
Los enteros se denominan comúnmente como enteros de punto fijo, son aquellos que no tienen parte decimal, su tamaño depende del lenguaje de programación.
Los números reales, también llamados de punto flotante son aquellos con parte decimal. En la mayoría de los lenguajes, se exige la inclusión del punto decimal.
Así
9.0 es un número real y no entero
y
9 es un número entero y no real
Datos tipo carácter
Los datos tipo carácter son aquellos cuyo contenido son los caracteres que puede interpretar la computadora: alfabéticos, dígitos, especiales.
Dicho de otra forma, un dato tipo carácter es cualquier signo tipográfico, puede ser una letra, un número, un signo de puntuación o un espacio. Un valor de tipo carácter es entonces cualquier carácter que se encuentre dentro del conjunto ASCII extendido, el cual está formado por los 128 caracteres del ASCII más los 128 caracteres especiales que presenta. ASCII extendido - Wikipedia, la enciclopedia libre.
Un dato tipo carácter está conformado por un único elemento o carácter. Cuando tenemos una colección de caracteres, entonces tenemos un dato estructurado del tipo cadena (string). Las cadenas son entonces secuencias de caracteres entre caracteres especiales llamados delimitadores que suelen ser comillas simples o dobles según el lenguaje.
Algunos lenguajes de programación admiten las cadenas (string) como datos de tipo simple (char).
Datos lógicos
Los datos lógicos son datos dicotómicos, es decir datos que solamente admiten dos valores, verdadero o falso y en binario 0 o 1.
Reglas de Formación
La definición de un identificador debe hacerse siguiendo unas reglas que las da el lenguaje de programación, en el caso del C/C++ las reglas son las siguientes:
Ejemplos de identificadores válidos son: masa, tP04, nulo, salarioBruto, _xyz, abc, _mP
Ejemplos de identificadores inválidos son: &xy, 67peso, vacío, salario bruto
Al haber diferencias entre mayúsculas y minúsculas, todos estos identificadores serán considerados diferentes: actual, Peso, pEso, pEsO, PESO.
Palabras reservadas: Son palabras propias del lenguaje de programación y por tanto no pueden ser utilizadas como identificadores de variables, constantes o procedimientos. En nuestro pseudocódigo son palabras reservadas: inicio, fin, si, entonces, mientras, repita.
Constantes
Son datos cuyo valor permanece invariable (no cambia) durante la ejecución del programa.
Por ejemplo.
PI = 3.141592 constante pi
e = 2.71828 constante e (base de los logaritmos naturales)
Cuando se escribe código que utiliza un valor muchas veces en la ejecución del programa y que puede ser sujeto de cambio en el transcurso del tiempo, es importante definirlo como una constante ya que es más simple modificar ese valor en el encabezado del programa y no cada vez que el mismo aparece en las distintas líneas de código.
Variables
Las variables son objetos que pueden modificar su valor en la ejecución del programa. Para trabajar con variables se deben seguir las reglas dadas para definir identificadores y se deben tener presentes los diferentes elementos antes estudiados, a saber:
Declaración de variables
Cuando en un algoritmo se requiera utilizar una variable, esta debe ser declarada. Declarar una variable quiere decir que se va a reservar un espacio de memoria, el cual tendrá un identificador y un tipo de dato.
La forma general para declarar variables es la siguiente:
Tipo variable
Cadena numero_Empleado
Cadena numTelefono
Real salarioNeto
Caracter grupoSang
Logico esContribuyente
Operadores aritméticos
Las variables y constantes pueden ser procesadas utilizando operaciones y funciones de la librería del lenguaje o bien funciones definidas por el programador. Algunos operadores aritméticos admiten únicamente un determinado tipo de dato, por lo que mostramos en la siguiente tabla los más usuales en la mayoría de lenguajes de programación.
Prioridad de las operaciones aritméticas
Cuando se producen varias operaciones en una expresión, cada parte se evalúa y resuelve en un orden predeterminado denominado precedencia del operador.
Reglas de precedencia
Cuando las expresiones contienen operadores de más de una categoría, se evalúan según las reglas siguientes:
Orden de precedencia
Los operadores se evalúan en el siguiente orden de prioridad:
Operadores de aritmética y concatenación
Operadores lógicos
Al realizar razonamientos empleamos sentencias que están conectadas entre sí por conectivas lingüísticas. La lógica proposicional se ocupa del estudio de las conectivas lingüísticas entre proposiciones. Una proposición es una sentencia que puede ser verdadera, circunstancia que indicaremos asociándola el valor de verdad V , o falsa, en cuyo caso le asociaremos el valor de verdad F . Nuestro principal interés en relación con la lógica proposicional es dejar establecido el papel que juegan las conectivas lingüísticas y sus conectivos lógicos asociados en relación con los conceptos de verdad y demostración.
NEGACIÓN - not
El significado de la conectiva lógica negación, reside en que la proposición ¬p es verdadera en el caso de que p sea falsa y recíprocamente que ¬p es falsa cuando p es verdadera. Recogemos el significado del conectivo ¬ en la tabla de verdad adjunta.
Del mismo modo podemos recoger el significado del resto de las conectivas.
CONJUNCIÓN - and
La sentencia p ∧ q es verdadera sólo cuando p y q son verdaderas simultáneamente. La tabla de verdad correspondiente a esta conectiva se adjunta al lado.
DISYUNCIÓN - or
La sentencia p ∨ q, que se lee p ó q; debe entenderse en su acepción más amplia, es decir, p ó q o ambos; con lo que p ∨ q será verdadera en el caso de que p sea verdadera, q sea verdadera o ambas sean verdaderas simultáneamente:
Prioridad en expresiones aritméticas y lógicas
Una expresión que contiene operadores aritméticos, lógicos y de relación se evalúa de acuerdo al siguiente orden de precedencia.