martes, 16 de julio de 2024

PSEUDOCÓDIGOS - IDENTIFICADORES, VARIABLES Y CONSTANTES

Identificadores

La mayoría de los elementos de un algoritmo escrito en PSeInt se diferencian entre sí por su nombre. Por ejemplo, los tipos de datos básicos pueden nombrarse como: Entero, Real, Logico y Caracter (sin tilde).

Cada uno de ellos es un identificador. Un identificador es el nombre que se le da a un elemento de un algoritmo (o programa). Por ejemplo, el tipo de dato Entero hace referencia a un tipo de dato que es distinto a todos los demás tipos de datos, es decir, los valores que puede tomar un dato de tipo entero, no son los mismos que los que puede tomar un dato de otro tipo.

Los identificadores de los tipos de datos como Entero, Real, Logico y Caracter están predefinidos, forman parte del lenguaje algorítmico. No obstante, en un algoritmo también pueden existir identificadores definidos por el programador. Por ejemplo, un algoritmo puede utilizar variables y constantes definidas por el programador. 

Además, los algoritmos también se deben nombrar mediante un identificador. En conclusión, un identificador se puede considerar como el nombre para los algoritmos, variables y constantes con los que estemos trabajando.

En PSeInt, a la hora de asignar un nombre a un elemento de un algoritmo, se debe de tener en cuenta que todo identificador debe cumplir unas reglas de sintaxis. Para ello, en los pseudocódigos utilizados en nuestros ejemplos, vamos a seguir las siguientes reglas de sintaxis basadas en el lenguaje Python:

  1. Consta de uno o más caracteres.
  2. El primer carácter debe ser una letra o el carácter guion bajo ( _ ), mientras que, todos los demás pueden ser letras, números o el carácter guion bajo ( _ ). 
  3. Las letras pueden ser minúsculas o mayúsculas del alfabeto inglés. Sin embargo, no está permitido el uso de las letras 'ñ' y 'Ñ'.
  4. Del mismo modo las vocales tildadas en mayúsculas y minúsculas no están permitidas.
  5. No pueden existir dos identificadores iguales, es decir, dos identificadores de un algoritmo no pueden nombrarse de la misma forma.

EJEMPLO Algunos identificadores válidos que pueden ser definidos por el programador son:

Num dia_del_mes T4 _ciudad FJD

EJEMPLO Los siguientes identificadores no son válidos por incumplir la segunda regla:

3527 _ESTACIÓN_DE_TREN informe* box de urgencias año

EJEMPLO Los siguientes identificadores no pueden ser definidos por el programador:

Entero Logico

Explicación: Entero y Logico son identificadores predefinidos (ya existen), por tanto, no pueden ser definidos por el programador, en cumplimiento de la tercera regla.

Es aconsejable que los identificadores tengan un significado afín a lo que representan, es a lo que se denomina, nombrar con propiedad a los identificadores utilizados.

Variables

Una variable representa a un espacio de memoria en el cual se puede almacenar un dato y, en PSeInt, de cada variable se puede especificar –definir– el tipo de dato que puede almacenar.

EJEMPLO Si un programa va a utilizar un dato de tipo carácter, será necesaria una variable de tipo carácter, y en el espacio de memoria reservado para dicha variable se podrá almacenar cualquier carácter perteneciente al conjunto de los caracteres representables por el ordenador.

El programador, cuando desarrolla un programa –o diseña un algoritmo– debe decidir:

  • Cuántas son las variables que el programa necesita para realizar las tareas que se le han encomendado.
  • El tipo de dato que puede almacenar cada una de ellas.

Durante la ejecución de un programa, el valor que tome el dato almacenado en una variable puede cambiar tantas veces como sea necesario, pero, siempre, tomando valores pertenecientes al tipo de dato que el programador ha decidido que puede almacenar dicha variable, ya que, el tipo de dato de una variable no puede ser cambiado durante la ejecución de un programa.

Declaración de variables

Para que un programa pueda hacer uso de una o más variables, estas pueden ser declaradas previamente. Para ello, se puede utilizar la siguiente sintaxis:

Definir <variable> Como <tipo_de_dato>

EJEMPLO La declaración de una variable para almacenar la edad de una persona se puede escribir:

Definir edad Como Entero

En un programa (o algoritmo) no se pueden declarar varias variables con el mismo nombre. Sin embargo, sí pueden existir varias variables del mismo tipo de dato.

Siguiendo con el ejemplo anterior, si también se quiere declarar una variable para almacenar su número de hijos, se puede escribir:

Definir edad Como Entero Definir numero_de_hijos Como Entero

Puesto que las dos variables son del mismo tipo de dato, se pueden declarar en la misma línea separándolas por medio de una coma (,).

Definir edad, numero_de_hijos Como Entero

Durante la ejecución de un programa, para hacer uso del espacio de memoria representado por una variable, se utiliza su identificador y esto puede hacerse las veces que sea necesario para el programador.

Constantes

Una constante representa a un valor –dato almacenado en memoria– que no puede cambiar durante la ejecución de un programa y, en general, se puede expresar de dos formas diferentes:

  • Por su valor.
  • Con un nombre (identificador).

EJEMPLO Las siguientes constantes de tipo entero están expresadas por su valor:

-5 10

Para expresar una constante con un nombre, la constante debe ser declarada previamente. Todas las constantes que se declaran en un programa son definidas de la misma forma, indicando de cada una de ellas:

  • Su nombre (mediante un identificador, usualmente escrito en mayúsculas o que empiezan con guion bajo ( _ )).
  • El valor que simboliza (mediante una expresión).

En PSeInt, no se requiere definir a las constantes, tal como se hacen con las variables, sin embargo, para declarar una constante, basta en asignarle un valor utilizando la siguiente sintaxis:

<nombre_de_la_constante> <- <expresión>

EJEMPLO De modo que, si se quieren declarar las constantes de tipo entero del ejemplo anterior, asignándoles un identificador, se puede escribir, por ejemplo:

TEMPERATURA <- -5 MES <- 10

En programación es una buena práctica escribir los identificadores de las constantes en mayúsculas, de esta forma es más fácil localizarlos en el código de un programa (o algoritmo). Durante la ejecución de un programa, por medio del identificador de una constante, se puede hacer referencia al valor (dato) que simboliza, tantas veces como sea necesario.

PSEUDOCÓDIGOS - TIPOS DE DATOS

Tipos de datos en pseudocódigos

Un dato simple es indivisible (atómico), es decir, no se puede descomponer.

EJEMPLO Un año es un dato simple:

Año...: 2017

Un año se expresa con un número entero, el cual no se puede descomponer. Sin embargo, un dato compuesto está formado por otros datos.

EJEMPLO Una fecha es un dato compuesto por tres datos simples (día, mes, año):

Fecha:
   Día...: 18
   Mes...: 9
   Año...: 2017

EJEMPLO Las coordenadas de un punto en un plano es también un dato compuesto, en este caso, por dos datos simples (x, y):

Coordenadas:
   x...: 49
   y...: 25

EJEMPLO Otro ejemplo de dato simple es una letra:

Letra...: T

Una letra se representa con un carácter del alfabeto. Pero, cuando varias letras se agrupan, entonces se obtiene un dato compuesto por varios caracteres, formando una palabra o una frase con varias de estas.

EJEMPLO Para formar un nombre de persona se utilizan varios caracteres:

Nombre...: Ana

Ana es un dato compuesto por tres caracteres.

EJEMPLO Otro ejemplo de dato compuesto es una ficha que contenga el nombre de una persona, su ciudad de residencia y su fecha de nacimiento:

Ficha:
   Nombre...: Miguel
   Ciudad...: Pamplona
   Fecha:
      Día...: 22
      Mes...: 6
      Año...: 2020

En este caso, la ficha es un dato compuesto por tres datos y, a su vez, todos ellos también son compuestos.

A los datos compuestos también se les conoce como datos estructurados, ya que son datos que se forman al agruparse otros. Por consiguiente, de los datos simples se dice que no tienen estructura.

Existen cinco tipos de datos que son fundamentales en programación:

  • Entero
  • Real
  • Lógico
  • Carácter
  • Cadena

De ellos, tan solo el tipo cadena es compuesto. Los demás son los tipos de datos simples considerados estándares. Esto quiere decir que la mayoría de los lenguajes de programación permiten trabajar con ellos. A los tipos de datos simples estándares  también se les conoce como tipos de datos primitivos, básicos o fundamentales.

Datos de tipo numéricos

Como su propio nombre indica, un dato de tipo numérico es aquel que puede tomar por valor un número. Existen dos tipos de datos numéricos básicos:

  • Entero
  • Real

EJEMPLO El número de asignaturas aprobadas por un estudiante en la universidad es un dato de tipo entero, mientras que, su nota en el examen de una asignatura en concreto puede ser de tipo real:

Asignaturas aprobadas.......: 4
Nota del examen de física...: 7.5

Datos de tipo entero

Un dato de tipo entero es aquel que puede tomar por valor un número perteneciente al conjunto de los números enteros (Z), el cual está formado por los números naturales, sus opuestos (números negativos) y el cero.

Z = { ..., -3, -2, -1, 0, 1, 2, 3, ... }

EJEMPLO: La edad de una persona y el año en que nació, son dos datos de tipo entero.

Edad...: 68
Año....: 1948

Z es un conjunto infinito de números enteros, y como el ordenador no puede representarlos todos, un dato de tipo entero solamente puede tomar por valor un número perteneciente a un subconjunto de Z. Los valores máximo y mínimo de dicho subconjunto varían según las características de cada ordenador y del compilador que se utilice.

En pseudocódigo, para indicar que un dato es de tipo entero puede utilizarse la palabra reservada:

Entero

Datos de tipo real

Un dato de tipo real es aquel que puede tomar por valor un número perteneciente al conjunto de los números reales (R), o también conocidos como números decimales, el cual está formado por los números racionales e irracionales.

EJEMPLO El peso de una persona (en kilogramos) y su altura (en centímetros), son datos que pueden considerarse de tipo real:

Peso.....: 75.3
Altura...: 172.7

R es un conjunto infinito de números reales, y como el ordenador no puede representarlos todos, un dato de tipo real solamente puede tomar por valor un número perteneciente a un subconjunto de R. Los valores de dicho subconjunto varían según las características de cada ordenador y del compilador que se utilice.

En pseudocódigo, para indicar que un dato es de tipo real puede utilizarse la palabra reservada:

Real

Datos de tipo texto

Se trata de los datos representados por letras, palabras o frases textuales, un dato de tipo texto es aquel que puede tomar por valor un carácter o una secuencia de ellos. Existen dos tipos de datos de texto básicos:

  • Carácter
  • Cadena

Datos de tipo carácter

Un dato de tipo carácter es aquel que puede tomar por valor un carácter perteneciente al conjunto de los caracteres que puede representar el ordenador como son las letras del alfabeto, números o caracteres especiales, es importante tener en cuenta que el espacio se considera un carácter también, y el caso de las letras difieren entre mayúsculas y minúsculas, es decir, "M" no es igual a "m".


En pseudocódigo, el valor de un dato de tipo carácter se puede representar entre comillas simples (') o dobles ("). Pero, nuestros en nuestros ejemplos se van a utilizar solamente las comillas simples.

EJEMPLO En un examen con preguntas en las que hay que seleccionar la respuesta correcta entre varias opciones dadas (a, b, c, d, e), la respuesta correcta de cada una de las preguntas es un dato de tipo carácter:

Respuesta correcta a la pregunta 3...: 'c'

En pseudocódigo, para indicar que un dato es de tipo carácter puede utilizarse la palabra reservada (sin tilde):

Caracter

Datos de tipo cadena

Un dato de tipo cadena es aquel que puede tomar por valor una secuencia de caracteres.

En pseudocódigo, el valor de un dato de tipo cadena se puede representar entre comillas simples (') o dobles ("). Sin embargo, en este tutorial, se van a utilizar solamente las comillas dobles.

EJEMPLO El título de un libro y el nombre de su autor, son datos de tipo cadena:

Título...: "35 ESCALONES"
Autor....: "Carlos Pes"
  • "35 ESCALONES" es una cadena de 12 caracteres.
  • "Carlos Pes" es una cadena de 10 caracteres.

Fíjese que el carácter espacio en blanco también se cuenta.

En pseudocódigo, para indicar que un dato es de tipo cadena puede utilizarse la palabra reservada:

Cadena

Datos de tipo lógico

Un dato de tipo lógico es aquel que puede tomar por valor únicamente uno de los dos siguientes:

{ Verdadero, Falso }

Los valores Verdadero y Falso son contrapuestos, de manera que un dato de tipo lógico siempre está asociado a que algo se cumpla o no se cumpla.

EJEMPLO El estado de una palanca de paso de agua es un dato que puede considerarse de tipo lógico, por ejemplo, asociando Verdadero a que esté abierta y Falso a que esté cerrada:

Estado...: Falso

Falso indica que la palanca está cerrada.

En pseudocódigo, para indicar que un dato es de tipo lógico puede utilizarse la palabra reservada (sin tilde):

Logico

A los datos de tipo lógico también se les conoce como datos de tipo booleano en nombre del matemático George Boole (1815-1864), que fue quien desarrolló el llamado álgebra de Boole, aplicado en informática en distintos ámbitos, tales como el diseño de ordenadores o la programación.

En algunos lenguajes de programación, entre ellos C, no existen los datos de tipo lógico. No obstante, se pueden simular con datos de tipo entero, considerándose el valor cero (0) como Falso, y cualquier otro valor entero –habitualmente el uno (1) – como Verdadero.

 

PSEUDOCÓDIGOS - CREACIÓN Y EJECUCIÓN EN PSEINT

¿Qué es un pseudocódigo?

El pseudocódigo es un lenguaje de programación algorítmico; es un lenguaje intermedio entre el lenguaje natural y cualquier lenguaje de programación específico, como son: C, FORTRAN, Java, Pascal, etc.

No existe una notación formal o estándar de pseudocódigo, sino que cada programador puede utilizar la suya propia. Ahora bien, en los algoritmos de los ejemplos y ejercicios resueltos que usaremos en este blog, se utiliza una sintaxis compatible con la aplicación PSeInt, por lo que primero haremos una explicación de cómo utilizarlo de forma breve.

Guía básica de uso de PSeInt

PSeInt es software libre y se puede descargar (para Windows, Linux y macOS) en la siguiente dirección: descarga aquí

En esta guía básica se explica cómo utilizar PSeInt para –una vez instalado en Windows– editar y ejecutar un algoritmo escrito en pseudocódigo:

Paso 1: Iniciar PSeInt

Inicio > Todos los programas > PSeInt

Paso 2: Guardar como...

Archivo > Guardar Como...

Seleccionar carpeta. Por ejemplo: C:\algoritmos\

Introducir el nombre del archivo. Por ejemplo: hola-mundo (sin extensión)

Seleccionar tipo "Algoritmos en pseudocódigo".

Pulsar el botón de Guardar.

Paso 3: Editar

Teclear el código fuente del algoritmo. Por ejemplo:

En la pantalla se verá algo parecido a:

Paso 4: Ejecutar

Ejecutar > Ejecutar

En la pantalla se podrá ver:

Paso 5: Guardar y Salir

Archivo > Guardar

Archivo > Salir

Paso 6: Ver archivo guardado

El código fuente estará en la ubicación que seleccionamos para guardar en el paso anterior, es decir, en C:\algoritmos\hola-mundo.psc

PSEUDOCÓDIGOS - IDENTIFICADORES, VARIABLES Y CONSTANTES

Identificadores La mayoría de los elementos de un algoritmo escrito en PSeInt se diferencian entre sí por su nombre . P...