Actividad Final Algoritmos
Actividad Final Algoritmos
ALGORITMOS
ETAPA DE TRANSFERENCIA
1
OBJETIVOS
Desarrollar la inteligencia lógico-matemática en realidad no es una tarea difícil, es
una tarea que requiere de retar al cerebro a pensar, de encontrar diversos
caminos para resolver un problema y principalmente de elegir el indicado.
El objetivo es buscar definiciones, metodología básica y ejercicios para la
resolución de problemas mediante algoritmos.
2
CONTENIDO
1. Caracterización De Los Algoritmos
1.1. Precisos
1.2. Definido Finito
2. ESTRUCTURA
2.1. Entrada
2.2. Proceso
2.3. Salida
3. METODOLOGÍA PARA LA DESCOMPOSICIÓN DE UN ALGORITMO
3.1. Definición Del Problema
3.2. Análisis
3.3. Diseño
3.4. Verificación
4. ANÁLISIS DEL PROBLEMA
4.1. Identificadores
4.2. Tipos De Datos
4.2.1. Numéricos
4.2.2. Alfanumericos
4.2.3. Lógicos.
4.3. Variables
4.4. Constantes
4.5. Operadores Y Expresiones
4.5.1. Aritméticos
4.5.2. Relacionales
4.5.3. Lógicos
5. DISEÑO DE ALGORITMO (ALTERNATIVAS DE SOLUCIÓN)
5.1. Diagrama De Flujo
5.2. Pseudocódigo
5.3. Prueba De Escritorio:
6. ALGORITMOS SECUENCIALES
7. SENTENCIAS O ESTRUCTURAS DE CONTROL DE FLUJO
7.1. Decisiones Simples
7.2. Decisiones En Cascada
7.3. Decisiones En Secuencia
7.4. Decisiones Anidadas
7.4.1. Contadores
7.5. Condicional Simple (Si-Entonces)
7.6. Selección Múltiple
8. Ciclos Con Un Número Determinado De Iteraciones
8.1. Ciclo Para
9. Ciclos Con Un Número Indeterminado De Iteraciones
9.1 Ciclo Mientras
9.2 Ciclo Repetir – Repita Hasta
10. CONCLUSIÓN
11. BIBLIOGRAFÍA
3
1. Caracterización De Los Algoritmos
1.1. Precisos: La palabra preciso indica que se distingue con claridad, de igual
manera un algoritmo es claro en cada uno de sus pasos.
1.2. Definido: El algoritmo está delimitado, solo procesa la información y las
operaciones que tiene, no realiza operaciones “fantasma”, si se realiza el
algoritmo dos o más veces con los mismo datos siempre dará el mismo
resultado.
1.3. Finito: Refiriéndose esta característica a que un algoritmo siempre va a
tener un fin, mediante esta característica el algoritmo se culmina la
estructura de un algoritmo.
2. Estructura
Los algoritmos son pilares en la informática así como del desarrollo de sistemas,
por lo cual la siguiente estructura no es solo de los algoritmos, es como tal la
estructura del tratamiento automático de la información también conocido como
procesamiento de datos.
2.1. Entrada: En los procesos informáticos, la entrada representa todos los
datos que necesita el algoritmo para ser procesados, es la alimentación
necesaria para que se puedan procesar los datos, pueden ser datos que
introduzca el usuario del algoritmo o bien que se obtengan de alguna otra
fuente.
2.2. Proceso: Formalmente un proceso es "Una unidad de actividad que se
caracteriza por la ejecución de una secuencia de instrucciones, un estado
actual, y un conjunto de recursos del sistema asociados". (Stallings), es
decir, un proceso es la ejecución paso a paso de las instrucciones, cabe
mencionar que un proceso consiste en un conjunto de pasos y nunca un
paso puede saltarse otro.
2.3. Salida: Son los resultados que se desean obtener en la ejecución del
algoritmo, cabe mencionar que aquí debe obtenerse la o las respuestas
que resuelvan la problemática planteada para resolver mediante el
algoritmo.
4
algoritmo o no, se sugiere documentar todo en un formato similar al
siguiente
Tabla 1 Definición del Problema
Nombre del Problema
Delimitación
Resultado deseado
3.2. Análisis: Una vez identificado y delimitado el problema, esta fase tiene el
objetivo de dividir el problema en sus componentes y examinar de qué
manera pueden unirse, en esta fase se deben contestar las siguientes
preguntas:
Una vez resueltas estas preguntas, es muy útil escribirlas en papel o en un medio
electrónico con la finalidad de consultarlas cuando en las siguientes fases de la
metodología, se sugiere la siguiente tabla:
Tabla 2 Análisis del Problema
Datos de entrada Proceso Salida
(¿Qué necesito para (¿Qué pasos son necesarios (¿Qué se obtiene al
resolver el problema) para resolver el problema?) resolver el problema)
5
Variables de entrada Operaciones Realizadas Resultado Obtenido
4.2.1. Numéricos: Son aquellos valores que solo pueden contener números,
ya sean enteros, fraccionarios, positivos, negativos, reales o
imaginarios con la finalidad de realizar operaciones aritméticas
comunes.
4.2.2. Alfanumericos: Es una secuencia de caracteres que pueden ser
números, letras o signos, estos pueden ser nombres, direcciones y en
comparación con los numéricos, no se pueden realizar operaciones
aritméticas con estos.
4.2.3. Lógicos: Son aquellos que solo pueden tener un valor, cierto o falso,
ya que representan el resultado de una comparación de valores.
4.3. Variables: Son valores que van cambiando durante la ejecución de los
procesos del algoritmo, en estas variables se van a guardar las
operaciones que el algoritmo realice para resolver el problema. Cada
variable tiene un identificador, pues es el nombre con el que se encuentra y
un tipo de dato, que indica que datos podrá guardar que pueden ser
números, letras o valores cierto o falso.
4.4. Constantes: Son datos que su valor no va a cambiar durante todo el
desarrollo del algoritmo, las constantes pueden tener o no un identificador,
pues estos valores pueden escribirse directamente al usar las operaciones
o bien asignarle un identificador, las constantes también tienen un tipo de
dato.
6
4.5. Operadores y expresiones: Son símbolos que tienen una función
predefinida (suma, resta, multiplicación etc.) y que recibe sus argumentos
de manera infija (luzumisu, s.f.), los operadores más utilizados son:
4.5.1 Aritméticos: Son los operadores que permiten realizar operaciones aritméticas y
se enlistan en la siguiente tabla:
Operador Acción
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
== Igual / idéntico
¡= Diferente / distinto
Ilustración 2 Tabla de Operadores relacionales
5.5.3 Lógicos: Son operadores que permiten conectar un par de propiedades, es decir,
nos permiten obtener una respuesta lógica de la comparación de dos operaciones.
Operador Acción
&& Conjunción, and, Y
|| Disyunción, or, O
! Negación, no
Ilustración 3 Tabla de Operadores Lógicos
Los operadores lógicos tienen un conjunto de reglas llamadas tablas de verdad, las cuales
permiten obtener el valor lógico a partir de dos operaciones a continuación se muestran
las tablas de verdad de AND, OR Y NOT
7
Operador Operador 2 Resultado
T T T
T F F
F T F
F F F
Ilustración 4 Tabla de verdad de AND
Operador Resultado
T F
F T
Ilustración 6 Tabla de verdad de NOT
Las T significan “True” por su significado en ingles de Verdadero y F por “False” tomando
el valor de falso. Para poner más en contexto las operaciones lógicas, se muestra un
ejemplo
0. Operadores Matemáticos
1. Paréntesis
2. Potencias y Raíces
3. Multiplicaciones y Divisiones
4. Sumas y restas
1. Operadores Relacionales
8
0. <,>,<=,>=,==,!=
2. Operadores Lógicos
0. Not
1. AND , OR
Primero se realizan las operaciones que se encuentran ente paréntesis, si hay más de
una operación dentro de un paréntesis de aplica el mismo criterio para realizar las
operaciones en el orden indicado, posteriormente las potencias y raíces, multiplicaciones
y divisiones, sumas y restas en ese orden, si un operador se encuentra dos veces, se
realiza la operación que se encuentre primero de izquierda a derecha, posteriormente y
también de izquierda a derecha se aplican los operadores relacionales y por último los
operadores lógicos.
9
Ilustración 9 Elementos de un diagrama de flujo
5.2. Pseudocódigo
a. Es una técnica que sirve para escribir programas de computadora en lenguaje
natural de tal manera que se facilite la comprensión, prueba y posterior
codificación en un lenguaje de programación específico.
b. Ventajas de utilizar un Pseudocódigo a un Diagrama de Flujo
i. Ocupa menos espacio en una hoja de papel.
ii. Permite representar en forma fácil operaciones repetitivas
complejas.
iii. Es muy fácil pasar de pseudocódigo a un programa en algún
lenguaje de programación.
iv. Si se siguen las reglas se puede observar claramente los
niveles que tiene cada operación.
5.3. Prueba de escritorio: Todo algoritmo debe ser probado antes de ser ejecutado
para tener la certeza de que lograremos el objetivo. La forma de probarlo es
siguiente cada uno de los pasos que indica el algoritmo. A esto le llamaremos
prueba de escritorio. En la prueba de escritorio, un algoritmo bien hecho siempre
10
debe funcionar al poner en marcha los pasos del algoritmo para determinar si
logrará o no el objetivo, tal vez se tengan que hacer algunas modificaciones hasta
logar el objetivo esperado.
6. Algoritmos Secuenciales
En este tipo de estructura las instrucciones se realizan o se ejecutan una después de la
otra y, por lo general, se espera que se proporcione uno o varios datos, los cuales son
asignados a variables para que con ellos se produzcan los resultados que representen la
solución del problema que se planteó.
Los algoritmos tienen como fin actuar sobre los datos proporcionados por el usuario, a los
que se les aplican procesos con el fin de generar la información o un resultado (Delgado).
Ejercicio:
Se requiere de un algoritmo que calcule el sueldo semanal o mensual de un trabajador de
construcción, al empleado le pagan $50 pesos la hora y cada día trabaja durante 8 horas.
11
FASE 3 DISEÑO DEL ALGORITMO
FASE 4 VERIFICACIÓN
Variables de entrada Operaciones Realizadas Resultado Obtenido
NumDiasTrab=7 Sueldo = (50*8)*7 2800
12
Como se puede ver es la estructura más sencilla para una toma de decisiones. Acerca de
esta estructura podemos decir que no es obligatorio que cada que exista un condicional Si
tenga que existir una alternativa Sino dado que no siempre es importante generar una
determinada acción en el caso de que la condición sea Falsa. Normalmente es importante
delimitar hasta donde llega toda la estructura de decisión y esa función la cumple el
Fin_Si que aparece al final de ella.
7.2. Decisiones En Cascada:
13
Este es el tipo de estructura que se utiliza cuando se deben realizar varias preguntas en
donde no es importante (normalmente) el Sino de cada decisión. No se olvide que pueden
existir muchas más condiciones. El esquema aquí presentado solamente muestra la
estructura general para cuando sean 4 condiciones pero si se necesitan más simplemente
se pueden utilizar y ya. Alguna de las condiciones puede tener su correspondiente Sino.
Tenga en cuenta que si la última condición de un conjunto de Decisiones en Secuencia
tiene Sino, éste solo se ejecutará en caso de que la última condición sea Falsa y no
tendrá nada que ver con las demás condiciones.
7.4. Decisiones Anidadas:
14
Se presentan en aquellos casos en los cuales una estructura completa de decisión se
encuentra dentro de otra. En este caso podemos ver que en uno de los dos ramales
lógicos de una estructura de decisión completa se encuentra otra estructura de decisión
completa. Los puntos suspensivos colocados en la estructura representan que pueden
existir mas instrucciones.
7.4.1. Contadores
Un contador es una variable cuyo valor se incrementa o decremento en una
cantidad constante en cada vuelta.
15
7.6. Selección Múltiple:
Con esta estructura también se evalúa una variable, pero se pueden incluir varias
opciones, es decir, se pueden tomar varios caminos con la misma estructura, no
únicamente dos, como con la estructura si-entonces. Cada opción tiene su bloque de
instrucciones a ejecutar. A continuación puedes ver la sintaxis y un ejemplo en el que
podemos escoger entre tres valores numéricos enteros, del 1 al 3, u otro distinto,
dependiendo de cual elegimos nos muestra un mensaje por pantalla.
16
8. Ciclos con un Numero Determinado de Iteraciones.
Dado un valor inicial exp1 asignado a la variable esta se irá aumentando o disminuyendo
de acuerdo a la exp3 hasta llegar a la exp2; si se omite el paso, significa que la variable
aumentará de uno en uno.
Otra estructura de control repetitiva pero en este caso la propia estructura inicializa una
variable que se va a usar de contador, además, va sumándole la cantidad paso y por
último incluye el valor final que debe tomar la variable para salir del bucle. A continuación
17
vemos la sintaxis y también el mismo ejemplo que hemos visto con las estructuras
mientras y repetir, que como ves, su ejecución da exactamente el mismo resultado.
18
Esta es una estructura que repetirá un proceso durante (N) veces, donde (N) puede ser
fijo o variable. Para esto, la instrucción se vale de una condición que es la que debe
cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple, entonces
ya no se ejecuta el proceso. La forma de esta estructura es la siguiente:
19
9.2. Ciclo Repetir – Repita Hasta
Esta estructura de control repetitiva es muy parecida a la anterior, pero mientras en la
anterior la condición se evalúa al principio de la estructura, en ésta se hace al final. Aquí
se repite un bloque de instrucciones hasta que se cumple una condición determinada. A
continuación verás la sintaxis y un ejemplo cuya ejecución da el mismo resultado que el
ejemplo anterior, pero utilizando la estructura de control repetir en lugar de la estructura
mientras. Como puedes comprobar en la anterior era mientras que i sea menor o igual
que 10 hacer (secuencia de acciones), y en ésta es repetir (secuencia de acciones) hasta
que i sea mayor que 10.
Repite un proceso una cantidad de veces, pero a diferencia del Mientras Que, el Repita-
Hasta lo hace hasta que la condición se cumple y no mientras, como en el Mientras Que.
Por otra parte, esta estructura permite realizar el proceso cuando menos una vez, ya que
la condición se evalúa al final del proceso, mientras que en el Mientras Que puede ser
que nunca llegue a entrar si la condición no se cumple desde un principio. La forma de
esta estructura es la siguiente:
20
10. Conclusión
El diseño de algoritmos es realmente un arte que ayuda al desarrollo de la inteligencia
lógico matemática, el hecho de resolver problemas no solo de índole lógico matemática
permite aclarar el panorama y elegir la mejor opción para resolver la problemática. Las
definiciones y metodología aquí mostrada, así como conceptos permiten entender todos
los elementos de un algoritmo y que de esta forma se puedan diseñar los propios para
resolver prácticamente cualquier problemática bien planteada.
21
11. Bibliografía
Chehaibar, C. Z. (2007). Fundamentos y prácticas de programacióin. Educaré.
Delgado, F. J. (s.f.). ALGORITMOS RESUELTOS CON DIAGRAMAS DE FLUJO Y
PSEUDOCÓDIGO. Aguascalientes: UAA.
Fadul, A. O. (2004). Diseño Estructurado de Algoritmos. Colombia: Sincelejo.
luzumisu. (s.f.). luzumisu. Obtenido de luzumisu: http://luzumisu.over-blog.com/article-
28322968.html
Stallings. (s.f.). Stalling. 5º edición.
http://depa.fquim.unam.mx/amyd/archivero/Diagramasdeflujo_16845.pdf
https://terepebernal.com/blog/pseudocodigo/algoritmos-pseint-lo-mas-basico/
https://sites.google.com/site/portafolioprogra2016/decisiones-pseint
https://desarrolloweb.com/articulos/2249.php
https://enriquebarrueto0.tripod.com/algoritmos/sesion06algoritmos.htm
22
ACTIVIDAD 2
Diseñar y codificar en la herramienta PseInt un algoritmo, para liquidar la nómina mensual
para N empleados de la empresa XYZ; partiendo de los siguientes datos: salario básico,
número de días laborados, comisiones por ventas, Número de horas extras laboradas,
subsidio de trasporte y deducciones por préstamos.
Condiciones:
El subsidio de trasporte lo reciben empleados que ganen hasta dos salarios mínimos
legales vigentes, averiguar valor del SMLV.
El valor de una hora extra tiene un incremento del 30% sobre el valor de una hora
normal.
Las comisiones por ventas tienen un valor del 20% sobre las ventas realizadas en el
mes.
Como resultado del ejercicio se debe imprimir en pantalla lo siguiente:
Cedula empleados: XXXXXX
Nombres y Apellidos Empleado: XXXXXXX
Salario Básico: XXXXXX
Auxilio de Transporte: XXXXXX
Comisión de Ventas: XXXXXX
Préstamos: XXXXXX
Salario Neto a Recibir: XXXXX
Solución:
23
24
25
26
27
ACTIVIDAD 3
Diseñe y codifique los siguientes algoritmos utilizando diferentes tipos de métodos
funciones o subprocesos.
1. Crear un método vacío que imprima los datos de un empleado (nombre, apellido y la
edad) ingresado por teclado.
2. Crea un método que cuente e imprima los números primos en un rango de entre (x , y),
validar que x sea inferior a y, los valores x,y se deben pasar por parámetros.
28
3. Crear un método que calcule y devuelva la sumatoria de los primeros n términos de la
siguiente serie (i*(i+1))^2
4. Crear una aplicación que calcule el factorial de un número ingresado por teclado,
implemente un método que permita pasar un número como parámetro. Para calcular el
factorial, ejemplo, si introducimos un 5, realizara esta operación 5*4*3*2*1=120.
29