LENGUAJE Y
ALGORITMOS
Los algoritmos son secuencia de pasos o instrucciones que se deben ejecutar retornando un resultado, así a como en la vida cotidiana, puede ser desde preparar el café, la comida o hacer un trabajo; lo cual
se crean mediante un lenguaje de programación con claridad y precisión, usando herramientas tecnológicas que nos ayudan a desarrollar un algoritmo de programación ( Visual Studio, Delphi,
Java, Python, etc.,) de manera especializada, se realizan aquellos que se
encuentran en el mundo de la ingeniería y ciencias computacionales.
El término
algoritmo se tomó en honor al Matemático Árabe “Abu al-Khwwarizim” quien
vivió entre los siglos VIII y IX y se centró en simplificar la matemática a un
nivel que pueda ser fácilmente entendido por el hombre común.
¿QUÉ ES UN ALGORITMO?
Un algoritmo es visto como un conjunto de pasos, procedimientos o acciones que nos ayudan a resolver cualquier tipo de problema alcanzo un resultado en el cual podamos observar la solución de dicho problema.
Todo algoritmo cuenta con 3 secciones que son:
-Ingreso de datos
-Procesamiento de datos
-Impresión de resultado
El algoritmo debe contar con datos de entrada de tal manera que así imprimiremos un resultado.
Así mismo un algoritmo debe tener ciertas características básicas a todos: (Cairó et al., 1993)
•Determinismo: El algoritmo, dado los mismos datos de entrada en diferentes ejecuciones del algoritmo, siempre debe arrojar los mismos resultados.
•Precisión: Los pasos que se siguen en el algoritmo deben ser precisados con claridad para evitar dudas.
•Finitud: Es decir debe tener un inicio y un fin. El algoritmo, independientemente de la complejidad, siempre debe ser de longitud finita.
REPRESENTACIÓN DE ALGORITMOS
Los algoritmos se representan empleando Pseudocódigos y Diagramas. (De la cruz Roca & Condor Caballero, 2017)
1. Pseudocódigos
Son conjuntos de instrucciones del lenguaje natural, como podría ser el inglés o el castellano.
Podemos observar este lenguaje en el siguiente gráfico:
2. Diagramas
Por medio de los diagramas se puede representar mediante símbolos con la finalidad de seguir de forma fácil la lógica de un algoritmo siempre teniendo en cuenta el inicio y el término del algoritmo.
Las más conocidas son el diagrama de flujo y Carta N-S.
Datos
En algoritmos un dato es un valor numérico o no numérico que
se toma como entrada para poder ejecutar el algoritmo (alcanzar e resultado
deseado).
a. Datos Numéricos
Dentro de los tipos de datos numéricos encontramos valores
enteros y valores reales. Los enteros son números que pueden estar precedidos del signo
Datos alfanuméricos
Dentro de este tipo
de datos encontramos el tipo carácter (un solo carácter) por ejemplo: 'B'
'$' y el tipo cadena (secuencia de caracteres) ejemplo: 'Rosario' '12456'.
Son datos cuyo contenido pueden ser letras del abecedario, dígitos,
o símbolos especiales ( #, ?, $, \, *, etc.)
Datos Lógicos
Dentro de este tipo
de datos encontramos los booleanos. Son datos que sólo pueden tomar dos
valores: verdadero (true) o falso (false).
Identificadores,
constantes y variables
a.
Identificadores: Llamaremos identificador al nombre que se les
da a las casillas de memoria en una computadora, lugar donde se guarda o
almacena los valores que se le asigna a las constantes y variables. El primer
carácter que forma un identificador debe ser una letra minúscula.
b. Constantes: Las
constantes son objetos que no cambian de valor durante la ejecución de un algoritmo.
c.
Variables: Las variables son objetos que pueden cambiar
su valor durante la ejecución del algoritmo.
Operaciones combinadas y lógica operacional
Operaciones aritméticas
Para poder realizar operaciones aritméticas necesitamos de operadores aritméticos, una operación combinado siempre se evalúa comenzando por el lado izquierdo, detectando los operadores de mayor prioridad. El resultado de una operación aritmética será un número.
Si la operación combinada presenta paréntesis de agrupación entonces se debe evaluar comenzando por el paréntesis más interno.
Los operadores aritméticos son:
+ : suma
Div : división entera
- : resta
Mod : resto de una división entera
* : multiplicación
/ : división
^ : potencia ( también usada
para raíz)
Para que el resultado de la operación combinada salga correcto, es importante tener en cuenta el orden de resolución de los operadores.
A continuación, en la tabla, presentamos la jerarquía de operaciones aritméticas.
(Cairó et al., 1993)
TABLA 5
PRIORIDAD DE OPERADORES ARITMÉTICOS
Por medio de esta tabla podemos observar la importancia de los operadores en los algoritmos como los mostramos a continuación
TABLA 6
OPERACIONES ARITMÉTICAS EN PHYTON
Al igual que en la tabla 5 se utiliza de operadores para poder obtener un mejor resultado.
Constituidos por operadores relacionales. (Cairó et al., 1993)
Constituidos por operadores relacionales los cuales comparan datos númericos de series de caracteres o lógicos, el resultado de la operación puede ser verdadero o falso.
Por lo general estas operaciones van despues de la operaciones aritméticas. Las operaciones combinadas deben empezar evaluando y simplificando las operaciones aritméticas
Tabla 7
Prioridad de operadores relacionales.
(64 > (7+648)) > ((15*2) = (30*2/4))
(64> 655) > ((15*2) = (30*2/4))
FALSO > ((15*2) = (30*2/4))
FALSO > (30 = (30*2/4))
FALSO > (30 = (60/4))
FALSO > (30 = 15)
FALSO > FALSO
FALSO
Tabla 8
Operaciones relacionales en Python
Las operaciones lógicas son las que se realizan
en valores boleanos(Verdadero, Falso)
Para el manejo de valores boleanos python utiliza los siguientes operadores lógicos los cuales son representados mediante las siguientes palabras reservadas
not 'no'
and 'y'
or 'o'
El orden de prioridad indica que expresiones van a ser evaluadas primero empezando por el 'no' luego el 'y' y finalmente el 'o'.
Ejem:
x = True and not False
print(x)
Al evaluar la sentencia de asignación primero se evalúa la expresión not False la cual da el valor de True, luego se evalúa la expresión True and not False queda True y finalmente guarda dicho valor en la variable x para luego ser mostrado en la consola.
Ejercicios complementarios
Si A = 9, B = 8 y C = 2, evaluar las siguientes expresiones:
a) B * A - B * B / 4 * C
8 * 9 8 * 8 / 4 * 2
72 64 / 4 * 2
72 16 *2
72 32
40
b) (((B + C) / 2 * A + 10) * 3 * B) 6
(((8 + 2) / 2 * 9 + 10) * 3 * 8) 6
((10 / 2 * 9 + 10) * 3 * 8) 6
((5 * 9 + 10) * 3 * 8) 6
((45 + 10) * 3 * 8) 6
(55 * 3 * 8) 6
(165 * 8) 6
1320 6
1314
Resolver:
c) 500- ((6 -1)*8/4*3+16/(10-2))-5
500- (5*8/4*3+16/8)-5
500- (40/4*3+16/8)-5
500- (10*3+2)-5
500- (30+2)-5
500- 32-5
468-5
463
Como ya se conoce la forma de procesar, se toma y reduce todos los paréntesis internos.
d) 14 (7 + 4 * 3 - [(-4) * 2 - 6)]) + (28 - 15) + 3 - (5 - 11)
14 (7 + 4 * 3 - [(-8) - 6)]) + 13 + 3 - (-6)
14 (7 + 4 * 3 - [-14]) + 13 + 3 - (-6)
14 (7 + 12 - [-14]) + 13 + 3 - (-6)
14 (19 - [-14]) + 13 + 3 - (-6)
14 33 + 13 + 3 - (-6)
-19 + 13 + 3 - (-6)
-6 + 3 - (-6)
-3 - (-6)
3
e) ((1580 mod 6*2^7) > (7+8*3^4)) > ((15*2) = (60*2/4))
((1580 mod 6*128) > (7+8*81)) > ((30) = (120/4))
((2*128) > (7+648)) > (30 = (120/4))
((256) > (7+648)) > ((30) = (30))
((256) > (655)) > V
F > V
F
f) NO (15 >= 7^2) O (43 8 * 2 div 4 <> 3 * 2 div 2)
NO (15 >= 49) O (43 16 div 4 <> 6 div 2)
NO (V) O (43 4 <> 3)
F O (39 <> 3)
F O (V)
V
g) (15<=7*3^2 Y 8>3 Y 15<6) O NO (7*3 < 5+12*2 div 3^2)
(15<=7*9 Y V Y F) O NO (21 < 5+ 24 div 9)
(15<=63 Y V Y F) O NO (21 < 5+ 2)
(V Y V Y F) O NO (21 < 7)
(V Y V Y F) O NO (F)
(V Y V Y F) O V
Cuando existe una triple comparación lógica, se desglosa en dos grupos simples vinculados mediante una Y entonces se tiene
(V Y V Y F) =>> (V Y V) Y (V Y F)
(V Y V) Y (V Y F) O V
(V Y F) O V
F O V
V
Comentarios
Publicar un comentario