Herramientas de programación


Pseudocódigo

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:

  • Definir identificadores nemotécnicos, es decir que nos refieran al elemento o dato representado.
  • El primer carácter del identificador será una letra.
  • No utilizar caracteres especiales como: ñ, $, #, ¿, ¡, tildes entre otros.
  • No dejar espacios en blanco, si se desea especificar un identificador compuesto por dos palabras se podría utilizar un guion bajo como separador. Por ejemplo: sal_base para identificar el dato salario base. Si se decide usarlas sin el guion podría iniciar el id de la segunda en mayúscula, por ejemplo: salBase
  • Los identificadores de constantes se escriben en mayúscula, por ejemplo: PI = 3.1416

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:

  1. Solo se pueden emplear las letras mayúsculas y minúsculas del alfabeto inglés, esto es: A, B, C, ..., X, Y, Z, y a, b, c, ..., x, y, z.
  2. También se pueden emplear dígitos decimales: 0,1, 2, 3, 4, ..., 9. Sin embargo un identificador NO puede empezar con un dígito.
  3. Otro símbolo que se permite utilizar es el guion bajo _ (signo de subrayar).
  4. El primer carácter debe empezar obligatoriamente con una letra o con el signo de subrayar.
  5. Según el lenguaje, para efectos de un identificador, se consideran diferentes las mayúsculas de las minúsculas.

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:

  • Tipo
  • Nombre
  • Contenido

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:

  1. Los operadores aritméticos y de concatenación tienen el orden de precedencia descrito a continuación y todos tienen mayor prioridad que los operadores de relacionales y lógicos.
  2. Los operadores con igual prioridad se evalúan de izquierda a derecha en el orden en que aparecen en la expresión.

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.