TAREA GRUPAL N°1 (GRUPO 2)

 

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)


Operaciones relacionales 

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.

Ejemplo:

(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

Operaciones lógicas

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

Comentarios