¿Un algoritmo es similar a una expresión matemática?
Los algoritmos fueron, desde su origen hace tres mil años de antigüedad, operaciones matemáticas en secuencia para demostrar resultados. Es decir, evidenciar pasos comprobados y validados.
Practicando pseudocódigo
En esta sección propuse una sintaxis para diseño de pseudocódigo, con algunos términos en español, pero mantiendo ciertas palabras claves en sintaxis de lenguajes de programación, como Javascript.
Vamos con el primer y sencillo ejercicio:
Secuencia de números
Mostrar una secuencia de números, del 1 al 18, pero con incrementos de 3:
- 'Mostrar una secuencia' exige una iteración (repetición) de operaciones. La sintaxis FOR es adecuada en lenguajes de programación.
- Tener en cuenta que al actualizar el valor de 'num', se debe sumar lo que ese enlace ya tiene, más el valor de incremento (en este caso, el 3).
- La condición 'soloSi <= tope' solo recibirá a los números menores a 18, y ejecutará la actualización solo si esa condición se cumple en cada iteración.
INICIA Iteración del 1 al 18
num = 0, tope = 18;
FOR (con num, soloSi num <= tope, num = num + 3){
EsCierto:
AhoraEs num = num + 3;
Mostrar num;
}
//Interno num ahoraEs 0, 3, 6, 9....18
TERMINA
En sintaxis de Javascript, el ejemplo anterior se lo traduce en:
En Javascript
var num = 0;
var tope = 18;
for (num; num <= tope; num = num + 3){
console.log(num);
}
Revisar bucles en Javascript
Redondear cifra decimal
Aplicaremos solo matemática y el operador módulo (signo %) para extraer el residuo de una división.
- EL valor de 'cantDeci' nos permite indicar la cantidad de decimales finales
INICIA Redondeo de decimal
valor = 3.141699472;
cantDeci = 10;
preResultado = (valor * cantDeci) + 0.5;
ObtieneResiduoDiv = preResultado - (preResultado % 1);
resultadoFinal = ObtieneResiduoDiv / cantDeci;
Mostrar resultadoFinal;
FIN
Traducido a Javascript, el método toFixed(1)
redondea la cifra a un decimal.
En Javascript
var valor = 3.141699472;
console.log(valor.toFixed(1));
// 3.1
Revisar método en Javascript
BIBLIOGRAFÍA
Cormen, T., Leiserson, Ch., Rivest, R., Stein, C. (2022) Introduction to Algorithms (4ta. Ed.) MIT press.Neapolitan, R. (2015) Foundations of Algorithms Jones, Bartlett Learning Press.
Horowitz, E., Sahni, S., Rajasekaran, S. (1999) Computer algorithms Computer Science Press, W. H. Freeman.
Knuth, Donald, E. (1997) The art of computer programming. 3ed. Vol. 1. Addison Wesley Longman ed.
Soto Apolinar, Efraín (2011) Diccionario ilustrado de conceptos matemáticos. 3ed edición. México.