Introducción
Esta serie de pseudo-tutoriales son creados con la intención de ayudar a cualquiera interesado en la programación. Cada post será sobre un tema especifico tratado de maneral genera en pseudo-código y de manera especifica en otros lenguajes como Java, Python, Ruby, C++, entre otros.Algoritmos
Antes de empezar a aprender algún lenguaje de programación lo adecuado es conocer el algoritmo de lo que queremos simular o programar. Este algoritmo es el que describe, con una serie de pasos finitos (instrucciones), que es lo que sucede. Demostremos esto con un ejemplo de un algoritmo para abrir la puerta:Si seguimos estas instrucciones abriremos la puerta correctamente. Como podemos ver cada linea indica una acción que se debe seguir. En la primera y penúltima línea se debe cumplir una condición para realizar la acción, y en la última vemos que sucede si no se cumple la condición.
Ahora veamos el algoritmo que se debe seguir para hallar el enésimo número de la sucesión de Fibonacci:
Apliquemos este algoritmo para saber el número de Fibonacci en la posición 1:
Paso 1: 1 es menor que 2 entonces 1 es el número de Fibonacci en la posición 1. Fin.Ahora en la posición 5:
Paso 1: 5 no es menor que 2, sigo al paso 4. Paso 4: i = 1. Paso 5: a = 0. Paso 6: b = 1. Paso 7: c = a + b = 0 + 1 = 1. Paso 8: a = b = 1. Paso 9: b = c = 1. Paso 10: i = i + 1 = 1 + 1 = 2. Paso 11: 2 no es igual a 5, repita desde paso 7 Paso 7: c = a + b = 1 + 1 = 2. Paso 8: a = b = 1. Paso 9: b = c = 2. Paso 10: i = i + 1 = 2 + 1 = 3. Paso 11: 3 no es igual a 5, repita desde paso 7 Paso 7: c = a + b = 1 + 2 = 3. Paso 8: a = b = 2. Paso 9: b = c = 3. Paso 10: i = i + 1 = 3 + 1 = 4. Paso 11: 4 no es igual a 5, repita desde paso 7 Paso 7: c = a + b = 2 + 3 = 5. Paso 8: a = b = 3. Paso 9: b = c = 5. Paso 10: i = i + 1 = 4 + 1 = 5. Paso 11: 5 es igual a 5. Continuamos al paso 12. Paso 12: 5 es el número de Fibonacci en la posición 5. Fin
Ahora analicemos algunos puntos clave de este ultimo algoritmo:
El paso 1 y el paso 3 conforman una condición que pregunta si n es menor que 2, si esto es cierto entonces seguimos al paso 2, si es falso proseguimos al paso 4. Esto es lo que se considera como una estructura de control condicionada.
Luego en cada uno de los pasos 4 a 10 hay asignación de un valor dado a una variable. Esta asignación es lo que se usa para fijar el valor o dato de una variable o atributo.
El paso 11 establece una estructura de control repetitivo o cíclico, y dependiendo como se observen estos pasos se puede considerar como un ciclo con contador o un ciclo condicional.
La forma en que hemos mostramos el algoritmo anterior se considera como una descripción verbal de este. También podemos utilizar diagramas de flujo para expresar un algoritmo:
En estos tutoriales nos concentraremos más en la otra forma de expresar algoritmos:
Pseudo-código
A pesar de que en este lenguaje se puede utilizar muchas de las convenciones estructurales de los lenguajes de programación, el pseudo-código no es para programación. Este tipo de lenguaje permite entender fácilmente lo que sucede en un algoritmo, de modo que con el pseudo-código podemos tener una visión general del algoritmo, haciendo sencillo la "traducción" a un lenguaje de programación.En un pseudo-código podemos colocar lo que queramos, siempre que tenga la lógica del proceso que se trata de programar; es de sintaxis libre. Así como en el algoritmo que hemos explicado, el pseudo-código, y los lenguajes de programación constan de instrucciones o sentencias, que son cada una de las líneas que lo componen. Estas sentencias se pueden agrupar en bloques dentro de las estructuras de control, que ya he mencionado antes pero continuaré explicando en otro post.
Sentencias o Instrucciones
Son un conjunto de datos, o secuencia de palabras que se interpretan. Pueden contener:- Declaración de variables.
- Asignación.
- Expresión aritmética.
- Expresión lógica.
- Comienzo de una estructura de control.
- Fin de una estructura de control.
- Llamada a una subrutina o función (que contiene otras sentencias).
- Retorno de una subrutina.
- Entrada o salida de datos.
Declaración de variables y Tipos.
Una variable es como un contenedor de datos, en el que solo se puede almacenar uno. En muchos lenguajes, como Java, C, C++ y otros, es necesario decir que tipo de dato va a almacenar la variable, esto se hace al declararla. Son lenguajes de tipado estático. Generalizando, una sentencia con una declaración de variable sería:TipoVariable nombreVariablePara crear nombres de variables puedes usar lo que quieras, por ejemplo, "
casa", "
qwert1729", "
á21003kñ19", siempre que recuerdes para que usas esa variable. Sólo es posible hacer eso en pseudo-código, los lenguajes tienen pautas para nombrar variables que se deben seguir para que no existan errores, y lo mejor es acostumbrarse a estas, por ejemplo hay distinción de mayúsculas y minúsculas, una variable llamada "
casa" no es la misma que "
Casa" o "
CASA".
Las palabras que son reservadas en el lenguaje tampoco se pueden utilizar como nombre de variable, como lo son los tipos y las estructuras de control. También es importante alejarse de los acentos ´ ` ~ ^ y letras como ñ, estas pueden provocar errores, símbolos como - . , & % $ # " ( ) / = ya que estos pueden tenrt. Algunos lenguajes piden que sus variables sean nombradas en el estilo de CamelCase si su nombre requiere varias palabras, con la primera letra en minúscula, por ejemplo:
nombreVariable5,
resultadoSumaAnterior,
nombreYApellido.
En otros se usa el snake_case, por ejemplo;
nombre_variable_5,
resultado_suma_anterior,
nombre_y_apelido.
Y si te parece mejor puedes combinar ambos estilos, eso dependerá de ti. La última preocupación que debes tener en mente es la longitud del nombre, con el tiempo y la practica lograrás nombrar variables de manera apropiada y resumida en menos de un segundo.
Los tipos de variables de uso común, y que por lo general ya están definidas en la mayoría de los lenguajes ya sea como primitivas o de otro modo los listo a continuación:
- Variables tipo carácter: Estas contienen una letra, un número o un símbolo.
- Ejemplos:
Caracter letra
char firstLetter
- Variables tipo entero: Contienen un número entero.
- Ejemplos:
Entero numeroPrimo
int edad
Integer mes
- Variables tipo decimal: Almacenan números decimales.
- Ejemplos:
Decimal pi
float gravedad
double precio
- Variables tipo cadena: Contienen secuencias de caracteres, por lo general se consideran vectores de caracteres.
- Ejemplos:
Cadena nombre
String ciudadNatal
- Variables tipo booleano o lógico: Sólo pueden contener dos datos, 0 o 1 que corresponden a los valores de verdad.
- Ejemplos:
Booleano estaVacio
boolean esNumeroPrimo
Asignación
Es lo que hacemos para insertar un dato en una variable.Entero contador = 0 int fibonnacci_6 = 8; string numeroPi = "3.14159265"
En pseudo-código algunos también utilizan el símbolo ← en vez de el símbolo de igual.
Aritmética
A las variables numéricas también le podemos asignar una expresión aritmética, en muchos lenguajes el interprete asigna el valor del resultado de la expresión. Por ejemplo, que valor recibe la variable "calculo"?:calculo = 1+2*6/3-4
Espero hayas dicho 1, o dijiste 2? o dijiste -18? Parece que escribir expresiones así puede ser un poco complicado y confuso, sobretodo cuando no sabemos como será interpretado el orden de las operaciones en el lenguaje y no podemos asegurar que el orden que utilizamos sea el mismo. Lo mejor es evitarse problemas (y por consiguiente los bugs) y utilizar PARENTESIS "(" ")".
Si queremos obtener 1 deberiamos poner:
calculo = 1 + ((2 * (6/3)) - 4)O si queremos obtener 2 deberiamos poner:
calculo = (((1+2)*6)/3)-4O si queremos obtener -18 deberiamos poner:
calculo = ((1+2)*6)/(3-4)
Que bueno que eso quedó aclarado :)
Lectura y escritura de datos
Por ultimo en este post, explicaré como se expresa en pseudo-código para mostrar un resultado o recibir algún dato del usuario. Es sencillo, para mostrar la frase Hola Mundo, utilizamos la función:ESC("Hola Mundo")
O también:
Escribir("Hola Mundo")
No importa cual sea el nombre de la función o como la abreviemos el nombre, siempre que sea claro que es para escribir o mostrar un texto y que ese texto va entre los paréntesis ( ) y entre las comillas " " .
Y si queremos mostrar el dato que contiene una variable? Podemos utilizar comas entre variables y textos.
Cadena dia = "jueves"
Escribir("Hoy es ",dia,".")
Lo anterior muestra:
Hoy es jueves.
Se pueden usar también variables de tipo numérico.
Para que el usuario ingrese información hacemos:
Lea numero
Leer numero
numero es la variable a la que le estamos asignando la información ingresada.
Veamos el siguiente gist con pseudo-código para ingresar y mostrar el día actual.
Si se ingresa: martes, 15, abril y 2023, se muestra:
Hoy es martes, 15 de abril de 2023
En el siguiente post les daré una pequeña introducción a IDEs.
Si tienen alguna pregunta no duden en hacerla en los comentarios.

No hay comentarios:
Publicar un comentario