El pseudocódigo debe describir toda la lógica del algoritmo para que la programación se convierta en una tarea de traducir líneas de pseudocódigo en código real.
Para cada uno de los siguientes, analicemos por qué cada pseudocódigo podría considerarse ejemplos de pseudocódigo "buenos" o "malos":
Ejemplo 1.1:
PROGRAM IsEvenOrOdd:
var num = number;
IF (num % 2 === 0)
THEN Print "even";
ELSE Print "odd";
ENDIF;
END.
P. ¿Qué pensamos?
R. Este no es un gran ejemplo. ¡Aquí estamos usando "var" en nuestro pseudocódigo cuando debería leerse en inglés simple! Además, no deberíamos utilizar la sintaxis de JavaScript "===" en nuestro condicional. ¿Sabría alguien que no sea programador que
num % 2 === 0
indica un número par?
Ejemplo 1.2:
PROGRAM IsEvenOrOdd:
Read number;
IF (number divided by two has no remainder)
THEN Print the number is even;
ELSE Print the number is odd;
ENDIF;
END.
P. ¿Qué pensamos?
R. Esto es mejor. Está más cerca del inglés. Establece claramente lo que estamos tratando de lograr y cómo, sin atascarnos en las minucias del código. Incluso alguien que no codifique puede ayudarnos a comprobar nuestra lógica. ¿Es par cualquier número que pueda dividirse por dos limpiamente, sin dejar resto? ¿Hay algo más extraño?
De Sea creativo hoy
Ejemplo 2.1:
Make PB&J Sandwich:
Gather bread, peanut butter and jelly.
Apply peanut butter to slice of bread.
Apply jelly to another slice of bread.
Bring the two slices of bread together.
Eat and enjoy.
P. ¿Qué pensamos?
R. Éste es un buen punto de partida. Es un buen conjunto de instrucciones e intuitivo para que las sigamos. Sin embargo, todavía no sabemos qué pasos físicos se requieren.
Tómate un segundo para imaginar. Imagínate si nunca antes hubieras hecho un sándwich. Alguna vez. Piensa en las instrucciones que necesitarías para ese primer sándwich. Una computadora no tiene memoria real. Cada vez que inicia una tarea, no recuerda haberla realizado antes. Debemos contarlo en cada paso, cada vez. Necesitamos dividirlos en pasos más pequeños para que la computadora los entienda.
Ejemplo 2.2:
PROGRAM MakePB&JSandwich:
Grab a paper plate;
Open bread container;
Grab bread package;
Untwist bread package;
Open bread bag and remove two slices;
Place slices on paper plate;
Grab a plastic knife;
Open peanut butter jar;
Use knife to scoop out peanut butter;
Apply peanut butter to one slice of bread;
Spread peanut butter on slice;
Place knife on plate;
Close peanut butter jar;
Open jelly bottle;
Squeeze jelly onto second bread slice;
Close jelly bottle;
Place down jelly;
Pick up knife;
Spread jelly on slice;
Bring two slices of bread together;
Cut slices in half down the middle;
Throw knife in the trash;
Pick up one half of sandwich;
Enjoy;
END.
P. ¿Qué pensamos?
R. ¡La secuencia de este ejemplo es muy completa! Sin embargo, todavía asumimos ciertas condiciones de que nuestros utensilios o ingredientes ya existen. ¿Y si nos quedamos sin platos? ¿Cogeremos una servilleta para colocar nuestro sándwich? ¿Qué pasa si nos quedamos sin gelatina? ¿Tirarás el sándwich o lo comerás solo con mantequilla de maní?
Las computadoras no son inteligentes. Necesitamos darles instrucciones paso a paso para tener en cuenta las condiciones. No pueden adaptarse para realizar cambios sin que se les indique explícitamente. La programación es una serie de tareas que solo se pueden completar si se cumple una cierta cantidad de condiciones.
Las computadoras no pueden adaptarse, pero nosotros sí. Su primer paso con el pseudocódigo probablemente no lo cubrirá todo. Una vez que sepa más, podrá volver para actualizar y refactorizar su pseudocódigo.
El pseudocódigo no se trata sólo de escribir los pasos que ya conoces. Es una herramienta que le ayudará a resolver el problema. Antes de que podamos escribir pseudocódigo para resolver el problema, necesitamos conocer el problema.
Aquí hay algunos pasos que pueden ayudar con la resolución de problemas:
Finalmente, tomamos algunas medidas. Aquí es cuando finalmente comenzamos a escribir código. Luchamos duro para dar pequeños pasos, verificar que cada paso consiga lo que queremos, lo que esperamos, antes de continuar. Si hacemos demasiado a la vez y las cosas se estropean, lo que siempre ocurre, no sabremos qué está causando el problema. No sabremos en qué parte confiar. Los humanos prosperan con victorias fáciles. Necesitamos ver avances. Recuerda eso. Usa eso. Celebre sus victorias.
P. ¿Dónde encaja el pseudocódigo en estos pasos?
A. Dividalo O comience poco a poco
Este proceso es iterativo. Seguimos dando vueltas y repitiendo los pasos anteriores, sólo que en un nivel diferente.
Cuando abordamos un problema por primera vez, vemos el panorama general. "Descomponerlo" nos da grandes pasos. Luego, damos uno de esos pasos y lo "descomponemos". Ahora, empezando poco a poco, escribimos pseudocódigo para ayudar a ilustrar el problema.
La pseudocodificación demuestra que hemos identificado el problema, lo comprendemos conceptualmente y lo hemos dividido en pequeños pasos que podemos seguir.
No existe una sintaxis fija para el pseudocódigo. Sólo tiene que ser claro, simple y conciso.
Si se siente estancado, no dude en utilizar esta sintaxis:
Referencias: Introducción al pseudocódigo
Estructura general del pseudocódigo
PROGRAM <ProgramName>:
<Do Stuff>
END.
Selección: Declaraciones IF/ELSE
IF (<Condition>)
THEN <Statements>;
ELSE <Statements>;
ENDIF;
Iteración: BUCLE
WHILE (<Condition>)
ENDWHILE;
Siga las instrucciones en starter_code/pseudo_code_practice.md