Compendios de Algoritmos y Diagramas de Flujos
Compendios de Algoritmos y Diagramas de Flujos
Profesor Autor:
Ing. Freddy Malla García Mg.
UNIDAD 1
PERÍODO ACADÉMICO
Febrero - Abril/2021
Índice+
TABLA DE CONTENIDO
1
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Conocer, entender y aplicar las destrezas necesarias para crear y actualizar los
programas de diferentes aplicabilidades utilizados por la computadora, los conocimientos
técnicos básicos que un programador necesita para aplicar soluciones a cualquier tipo de
programa.
Es importante entender, cómo funcionan todos los equipos electrónicos digitales que
existen en el mercado en la actualidad, tales como: computadores, tabletas, teléfonos y
electrodomésticos inteligentes, vehículos con controles electrónico, equipos de control de
comunicaciones, entre muchos otros dispositivos que se ofrecen en la actualidad;
2
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
considere que todos ellos tienen en común tres componentes principales: hardware,
software y firmware.
Este término describe la parte física de cualquier equipo; se identifica por los componentes
electrónicos, piezas de soporte, cubierta protectora, entre otros elementos, que se pueden
observar y tocar; considere que estos equipos inteligentes tienen un elemento clave en
común, este elemento permite ampliar las posibilidades físicas y de utilidad a todo
hardware electrónico, ha transformado realmente las posibilidades tecnológicas que se
disfrutan en la actualidad, el componente se llama microprocesador y es capaz de
entender y cumplir las instrucciones dadas por el programador.
Este término describe la parte lógica de cualquier equipo, se constituye en la base que
permite el funcionamiento del hardware, así también en aplicativos o programas de utilidad
que poseen los diferentes dispositivos para ampliar la utilidad de cualquier equipo
electrónico inteligente, otras manifestaciones del software, se da en los programas de
configuración, programas de utilidad como los procesadores de texto, programas de
entretenimiento como lectores de video, musicales, juegos, entre otros tipos de
programas.
3
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Es importante entender que como futuro programador usted podrá realizar aplicaciones o
programas que permitan administrar el hardware de cualquier dispositivo inteligente,
podrá construir programas aplicativos para empresas de cualquier naturaleza comercial,
aplicativos para áreas de investigación o programas de entretenimiento en general; estas
afirmaciones están basadas en la utilidad importante que tiene la tecnología sobre la
sociedad, y en las definiciones conceptuales que explican la utilidad imprescindible del
software sobre el hardware; en importante resaltar que, en el campo comercial, los
precios del software son mayores que los precios ofertados por el hardware.
Los cuadros de la figura 1.1., detallan los diferentes orígenes o fuentes que proveen
datos para que el procesador, aplique el programa correspondiente y cumpla los fines o
propósitos para lo cual fue desarrollado, así:
4
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Son todos los equipos, periféricos, dispositivos o aparatos, que permiten la entrada de
datos para que la Unidad Central de Proceso (CPU) pueda procesarlos y generar un
resultado, estos dispositivos son utilizados para alimentar de información a los diferentes
programas que ejecuta la computadora para darle aplicabilidad y funcionalidad al
ordenador.
Son todos los equipos, periféricos, dispositivos o aparatos, que permiten la salida de datos
procesados por la CPU, estos dispositivos son utilizados para mostrar o plasmar las
acciones o la información que los diferentes programas gestionan junto al computador
para exponer y evaluar resultados y su utilidad en el mercado y la ciencia.
El otro elemento que compone la CPU es la memoria principal, este recurso importante
del computador está compuesto por dos partes principales: ROM Read Only Memory
(memoria de solo lectura), sirve para mantener almacenada la información física del
computador (configuración), para entender la utilidad de este recurso, considere que
existen muchos dispositivos que se conectan a la CPU con diferentes proveedores y
características propias de cada equipo y fabricante, esto complica el encendido del equipo
ya que la CPU debe conocer con que elementos va a trabajar y cómo se comunicarán
entre sí, la memoria ROM evita tener que configurar el computador al indicarle que
elementos tiene conectado cada vez que se enciende el ordenador, por su importancia la
5
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
6
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
El término secuencial implica que se redacta de forma ordenada, es decir se debe escribir
una instrucción después de otra, las instrucciones deben describir los pasos que
solucionan el problema, por ejemplo, suponga que se le pide redactar los pasos para
sumar dos números, una posible solución al problema sería el siguiente algoritmo:
7
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Algoritmo 1:
Iniciamos
1. Recibir los dos números que desea sumar.
2. Sumar los dos números (como este proceso es un cálculo, considere que todo
cálculo siempre generará un resultado).
3. Entregar/escribir o mostrar el resultado.
Finalizamos
Observe, que en el ejemplo los pasos están numerados, estos definen el orden o la
secuencia lógica de cómo sumar dos números; si se analizan los pasos detallados, no
sería lógico “entregar/escribir o mostrar el resultado” antes de realizar el cálculo “verdad”;
considere que, el aplicar la lógica programable para resolver problemas cotidianos,
consistirá en detallar y ordenar eventos que normalmente omitimos por la práctica directa
y sobre entendida de los pormenores; expertos en esta área definen a la lógica
algorítmica, como los pasos normales que aprendimos cuando atravesamos la niñez, en
la cual “una cosa lleva o va después de otra” para cumplir una tarea, ¿será por esto que
a los niños se les hace más fácil comprender esto?, esta definición procedimental de
proponer soluciones debe ser considerada como una técnica que el lector y el computador
entenderán para realizar procesos adecuados en la resolución de problemas.
Ahora considere aplicar un ejemplo lógico de la vida real, en la que se desea un algoritmo
para ponerse cualquier camisa; una posible solución pormenorizada podría ser:
Algoritmo 2:
Iniciamos
1. Dirigirnos al lugar donde tenemos la camisa.
2. Si su ubicación es el closet o el cajonero, entonces se abre y coger la camisa.
3. Si la camisa tiene los botones abrochados, entonces se debe desabrochar los
botones.
4. Abrir la camisa.
5. Meter uno de los brazos por su manga correspondiente.
6. Meter el otro brazo por la otra manga.
7. Acomodar la camisa a su tronco.
8. Abrochar (botón a botón) y ajustarla a su cuerpo.
Finalizamos.
Este algoritmo propone la solución en ocho pasos lógicos, pero de seguro usted podría
optar por resolverlo de otra forma en más o en menos pasos, ya que las soluciones
dependen del pensamiento lógico de cada ser humano y su realidad cercana. Un principio
8
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
básico que debe tener claro, es que las soluciones lógicas no son únicas, esto quiere decir
que pueden tener diferentes formas de solución y que estará sujeta al pensamiento lógico
y a la realidad de cada ser humano.
Este libro (Gabriel et al., 2018) propone estandarizar (de forma entendible para todos) los
pensamientos lógicos, empezará aplicando algoritmos de tres pasos, que consisten en:
1 Recibir/obtener/pedir datos,
2 procesarlos y
3 entregar/escribir o mostrar el resultado solicitado por el problema.
Para ilustrar lo detallado hasta ahora, considere el siguiente ejemplo; suponga que se le
pide el algoritmo que calcule el área de un rectángulo, parte del análisis consistiría en
conocer cómo se encuentra el resultado, si existe o no una fórmula de cálculo, para este
caso, los cálculos se aplican mediante la fórmula:
a=bxh
Donde (a) representa el resultado requerido “área”, (b) representa el valor de “base” y (h)
representa el valor de “altura”, fíjese que el cálculo de la fórmula consiste en una simple
multiplicación; para resolver la fórmula y encontrar el área, necesitará recibir los valores
de base y de altura; aplicar el cálculo y obtener el resultado; por lo tanto, la propuesta
algorítmica para resolver el problema, quedaría de la siguiente forma:
Algoritmo 3:
Iniciamos
1. Recibir los valores de base y altura.
2. Multiplicar base por altura y obtener el resultado.
3. Entregar o escribir el resultado.
Finalizamos
9
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Básicamente los operadores aritméticos son símbolos que el programador debe utilizar
para realizar operaciones aritméticas, como sumas, restas, multiplicaciones, divisiones
entre otras, es importante conocer que las operaciones se realizan de izquierda a
derecha respetando la jerarquía de cada operación; la siguiente tabla define los
símbolos aritméticos y su jerarquía de cálculo:
Es importante recordar una vez más, que las operaciones aritméticas se resuelven de
izquierda a derecha, respetando la jerarquía descrita en la tabla 1.1, esto significa que
primero se resolverá lo que está entre paréntesis, después se resolverán los cálculos que
tienen potencias, después las multiplicaciones y divisiones con la misma jerarquía,
después la división de módulo (devuelve el residuo de la división), y por último se
resolverán las sumas y restas con la misma jerarquía. Como detalle destacable, observe
que en esta tabla se utiliza nueva simbología, las mismas que reemplazan algunos signos
aritméticos como la multiplicación y la división; para describir la importancia de la jerarquía
considere el siguiente ejemplo de cálculo:
2+2*2
Normalmente se podría pensar que el resultado es (8) pero eso es incorrecto, el resultado
respetando la jerarquía es 6, ya que primero por jerarquía se realiza la multiplicación 2*2
y luego se realiza la suma 2+4; los siguientes ejercicios, son ejemplos que aplican
jerarquía con estos operadores:
10
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
En este ejemplo al igual que el anterior se aplica el exponente que también puede ser
expresado con el doble asterisco (**)
11
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
en aplicar la suma de las notas y el resultado dividirlo para tres, por lo tanto, se aplicaría
la siguiente fórmula:
Algoritmo 4:
Iniciamos
1. Recibir los valores que corresponden a las tres notas: nota1, nota2 y nota3.
2. Calcular: sumando las tres notas y el resultado se lo divide para 3.
3. Entregar o escribir el resultado.
Finalizamos
12
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Algoritmo 5:
Iniciamos
1. Recibir el número de horas trabajadas y el valor que se le paga por cada hora.
2. Multiplicamos horas trabajadas por el valor de cada hora.
3. Entregar o escribir el resultado de la multiplicación, es decir el salario del jornalero.
Finalizamos
Importante: todos los temas del libro proponen actividades de refuerzo, estos permiten
al lector realizar ejercicios de práctica aplicando los temas tratados en cada apartado con
la finalidad de identificar debilidades de comprensión y/o reafirmar los conocimientos
tratados y adquiridos; para esto se recomienda desarrollar los ejercicios y en caso de
presentarse dificultades o confusión, se puede recurrir a la verificación del ejercicio que
se encuentra desarrollado en el solucionario de cada capítulo; por otro lado el libro incluye
actividades extras, se los considera retos de desarrollo que el programador debe realizar
por su propia cuenta, ya que las soluciones de los mismos no se encuentran incluidos en
el libro; por último se presentan actividades de autoevaluación que permiten al
programador realizar una evaluación personal, estas actividades se diseñaron con la
finalidad de medir el nivel de comprensión logrado en cada una de las actividades
propuestas.
Bibliografía
Gabriel, D., Maricela, P., Rodolfo, G., Miguel, R., & Darwin, L. (2018). Desarrollo práctico
de la Programación (N. Pelegrín & F. Henry (eds.); Diana Zava). Ediciones UTM-
Universidad Técnica de Manabí.
https://www.utm.edu.ec/ediciones_utm/component/content/article/24-libros/709-
desarrollo-practico-de-la-programacion?Itemid=101
13
COMPENDIO DE CONTENIDOS
ALGORITMOS Y DIAGRAMAS DE FLUJOS
4 créditos
Profesor Autor:
Ing. Freddy Fabricio Malla García Mg.
UNIDAD 2
PERÍODO ACADÉMICO
Febrero-Abril/2021
Índice+
TABLA DE CONTENIDO
1
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Unidad 2: Pseudocódigos
Conocer, entender y aplicar las destrezas necesarias para crear y actualizar los
programas de diferentes aplicabilidades utilizados por la computadora, los conocimientos
técnicos básicos que un programador necesita para aplicar soluciones a cualquier tipo de
programa.
Pseudocódigos
El uso de pseudocódigos consiste en una técnica que exige de los algoritmos, reglas muy
similares a los utilizados por los lenguajes de programación, por ejemplo identifica de
forma clara las instrucciones únicas y con acciones precisas, aplica límites a las
instrucciones y a los controles de proceso en general, utiliza variables que representan
datos de forma específica y pueden ser utilizados para reemplazar resultados en los
diferentes procesos, aplica simbología especial para desarrollar cálculos, comparaciones
y operaciones lógicas para grupos de comparaciones; en sí un algoritmo a partir de este
capítulo solo tendrá instrucciones definidas en palabras únicas que denotan una acción
precisa, variables que representan valores y datos, simbología especial para realizar
cálculos, comparaciones y operaciones lógicas, en sí cualquier otro texto escrito en el
algoritmo debe encerrarse entre comillas como mensajes, ya que estos textos pueden ser
confundidos como nombres de variables o instrucciones pseudocodificadas.
Cuando se presentan problemas que tienen mayor dificultad, notará que los algoritmos
escritos de forma natural, se vuelven más extensos y difíciles de entender, esto es un
problema que se necesita superar, ya que existe la necesidad de proponer soluciones,
que representen una secuencia de instrucciones fáciles de seguir y de entender;
2
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Ante esta dificultad, los promotores del pensamiento ordenado y aplicado al desarrollo de
la programación, proponen pautas y acuerdos que permitan estandarizar la redacción de
instrucciones mediante el uso de reglas y palabras únicas denominadas, instrucciones
pseudocodificadas; estas reglas permiten expresar una acción sin la necesidad de
redactar la idea o la acción de forma natural, pseudocódigo es una palabra compuesta,
que está dividida en pseudo que significa supuesto o común para todos, y la palabra
código cuyo significado expresa normativas o aplicación de reglas; en sí las palabras
pseudocodificadas son palabras que suponen una acción entendida por todos y están
sometidas a reglas de redacción.
Como propuesta pedagógica de aprendizaje, los autores del libro(Gabriel et al., 2018)
proponen aplicar de forma parcial las reglas de redacción pseudocodificadas ya que su
estudio y entendimiento cubre una amplia variedad de instrucciones similar a un lenguaje
de programación; para aplicarlas de forma general se considerarán las siguientes:
3
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Todas y cada una de las instrucciones que se detallan en la redacción del algoritmo,
deben terminar en punto y coma (;).
Para separar los elementos de una misma instrucción, se puede hacer uso de la
coma (,); por ejemplo, se desea solicitar tres notas, la instrucción quedaría así:
“Recibir Nota1, Nota2, Nota3;”.
Se puede aplicar palabras o grupos de palabras que ayudan a describir y controlar
determinados procesos, estas son únicas y no pueden ser utilizadas como nombres
de variables, por ejemplo: el uso coordinado de las palabras “Si, entonces, caso
contrario”, permitiría incluir en los algoritmos, las instrucciones necesarias para
realizar comparaciones y detallar las acciones convenientes para dividir procesos
condicionales; para aplicar controles a las secuencias repetitivas, se puede aplicar
instrucciones como: “Ir a”, “Repetir … hasta que”, “Mientras … hacer”, “Para …
hacer”, “Hacer … mientras”, cada uno de estos controles se explicarán uno a uno en
este capítulo.
2.2. Variables
En su forma más básica, una variable es un nombre que representa un dato o valor, este
nombre es utilizado en el algoritmo como sinónimo de dicho valor, y podrá utilizar este
nombre, como si se tratara del mismo dato o valor, un ejemplo de nombres aplicados a
las variables podrían ser: al representar una nota (N, nota, n1, etc.), un valor que
representa una edad podría llamarse (e, ed, edad, etc.), también se puede aplicar el
nombre de una variable, al resultado de una operación aritmética, en este caso se le
puede llamar (a, area, salario, suma, resta, etc.), así, existen muchas posibilidades de
utilizar nombres representativos como variables, observe que el término variable tiene su
significado en que, el nombre utilizado para representar un dato, puede cambiar de valor
4
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Para crear variables y utilizarlas en los algoritmos se deben cumplir varios tipos de reglas,
estas se analizarán y emplearan conforme se profundice en el aprendizaje en el lenguaje
de programación, por ahora solo se exponen las reglas que deben aplicarse al momento
de crear el nombre de la variable, entre las básicas se tienen:
Antes de ejemplificar el uso de las variables, es necesario explicar qué es una asignación
de datos o asignación de valores; básicamente consiste en conocer que las variables
pueden intercambiar valores y/o datos, es decir pueden recibir valores tales como el
resultado de un cálculo, o el valor que desee asignar el programador como parte de la
solución al problema planteado, para lograrlo es necesario utilizar el signo igual (=) y
cumplir con la única regla de asignación:
5
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Destino = Origen;
Este formato explica, que la variable destino siempre se ubicará a la izquierda del igual
(=), y el contenido a pasar siempre se ubicará a la derecha del signo igual (=); así al tener
una variable llamada “Sueldo” y desear pasarle el valor de 340, lo correcto sería:
“Sueldo=340;”, observe que la instrucción de asignación termina con el punto y coma.
De igual forma el origen puede ser el resultado de un cálculo cualquiera, para ilustrar esta
definición asuma que la variable “Sueldo” tomará un valor que consiste en el resultado de
calcular 40 horas de trabajo con un pago de 8 dólares la hora, así tendríamos:
“Sueldo=40*8;”
Las asignaciones y las variables están íntimamente ligadas entre sí, esto se debe a que
los valores como los resultados de cálculos, entre otros, deben estar contenidas o
almacenadas en variables para su representación y la forma de transferir datos o valores
de un lugar a otro es mediante el uso de la asignación, para ejemplificar el uso de variables
y de las asignaciones, considere los tres siguientes algoritmos en donde, el primer ejemplo
muestra las instrucciones necesarias para sumar dos números cualquiera, el segundo
ejemplo calcula el promedio de tres notas y el tercer ejemplo calcula el área de un
rectángulo; como un detalle adicional considere que estos algoritmos ya se analizaron y
desarrollaron anteriormente como algoritmos naturales:
Algoritmo 14:
Secuencia lógica que calcula la suma de 2 números:
Iniciamos
1. Recibir N1 , N2;
2. Suma=N1 + N2;
3. Escribir Suma;
Finalizamos
Explicación: “N1” representa uno de los dos números, “N2” representa el segundo
número, “Suma” representa el valor que como resultado de la operación de la suma
contiene el resultado de sumar N1 y N2, considere que en el tercer paso se especifica el
resultado a entregar mediante la variable “Suma”.
6
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Algoritmo 15:
Secuencia lógica que calcula el promedio de 3 notas:
Iniciamos
1. Recibir Nota1, Nota2, Nota3;
2. Promedio=(Nota1+Nota2+Nota3) /3;
3. Escribir Promedio;
Finalizamos
Explicación: Las variables “Nota1, Nota2 y Nota3” representan las 3 notas involucradas
en el cálculo del promedio, la variable “Promedio” contendrá el resultado de esta operación
aritmética, y será utilizada para mostrar el resultado en el tercer paso.
Algoritmo 16:
Este algoritmo muestra como calcular el Área de un rectángulo.
Iniciamos
1. Recibir Base, Altura;
2. Area= Base * Altura;
3. Escribir Area;
Finalizamos
Explicación: Las variables “Base” y “Altura” representan los valores utilizados en la formula
(a=bxh) para calcular el área de un rectángulo, la variable “Area” contendrá el resultado
de esta operación aritmética, y será utilizada para mostrar el resultado en el tercer paso.
Estos operadores son utilizados para el control de condiciones, son símbolos que permiten
al programador realizar operaciones lógicas, es decir se utilizan para crear condiciones
cuyo resultado se manifiesta en cumplir una de dos posibles acciones (verdadero o falso),
por su naturaleza aplicativa se clasifican en operadores de comparación y operadores
lógicos; es importante destacar que en este grupo se incluyen los operadores aritméticos,
estos operadores descritos de forma natural ya se analizaron en los apartados anteriores.
7
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
aplicar a diferentes tipos de datos como valores constantes o contenidos de variables, así
como también a resultados de un determinado cálculo, estos símbolos son los únicos
utilizados por el computador para plantear preguntas o condiciones en el desarrollo de
algoritmos y programas, considere la siguiente tabla que muestra los símbolos que se
utilizarán de aquí en adelante.
8
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Aritméticamente se podría decir que, el uso de un operador lógico AND es definido como
una multiplicación, para explicarlo con mayor detalle, considere que el resultado de la
9
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Operador lógico OR
El uso y aplicación de este operador, exige que al menos una de las comparaciones sea
verdadera para que su respuesta sea verdadero, por ejemplo, suponga que una persona
presenta temperatura alta de fiebre, para estabilizar la temperatura corporal tendría dos
alternativas a la mano, bañarse (o) tratarla con medicamento, considere que cualquiera
de las dos opciones o aplicarlas ambas, le permitirá estabilizar la temperatura corporal,
bajo esta premisa lógica se plantea la siguiente tabla de la verdad asumiendo que se
tienen dos comparaciones:
Al observar el resultado de la tabla, notará que al menos una de las comparaciones debe
tener como resultado verdadero para que la respuesta lógica de las dos comparaciones
sea verdadera. Aritméticamente el uso de un operador lógico OR es definido como la
aplicación de una suma, por ejemplo, considere que el resultado de la comparación 1 es
verdadero (1) y de la comparación 2 es falso (0), matemáticamente se tendría el cálculo
“1+0” y por ende el resultado sería “1” que técnicamente significa verdadero.
10
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Para aplicar y entender cómo utilizar estos operadores se propone el desarrollo de los
siguientes ejercicios que incluyen expresiones lógicas, estos permitirán identificar los
resultados al usar los operadores descritos en este apartado, considere las siguientes
variables y sus respectivos valores asignados: W = 20 X = 17 Y = 25 Z = 10
11
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
para realizar una pregunta solo se puede utilizar los operadores de comparación como:
mayor que (>),menor que (<), mayor o igual que (>=), menor o igual que (<=), igual que
(=) y diferente que (<>). En caso de aplicar varias comparaciones en la misma condición
se debe utilizar los operadores lógicos como método de combinación y generar una
respuesta que satisfaga la necesidad de aplicar la condición al problema.
Para ejemplificar el uso de condiciones simples, en este apartado se incluye ejemplos con
propuestas de solución algorítmica que aplican comparaciones como parte de las
instrucciones que solucionan un problema, por ejemplo, el siguiente algoritmo compara
dos números cualquiera y muestra como resultado, solo el número mayor:
Algoritmo 17:
Iniciamos
1. Recibir Num1, Num2;
2. Si Num1 > Num2 Entonces Escribir Num1; Caso contrario Escribir Num2;
Fin si
Finalizamos
Observe que en el segundo paso se considera a la condición como una sola instrucción
completa, ya que las instrucciones que se incluyen tanto por verdadero como por falso
12
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Algoritmo 18:
Iniciamos
1. Recibir N;
2. Si N >= 0 Entonces Escribir “Número Positivo”; Caso contrario Escribir “Número
Negativo”;
Fin si
Finalizamos
13
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
14
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Observe que la propuesta de solución utiliza como estrategia lógica, comparar la cantidad
obtenida desde las posibilidades de coincidencia mayores hasta las posibilidades de
coincidencia menores, este modelo de solución se puede aplicar a ejercicios de
características similares que se presentan posteriormente. Considere las siguientes
interrogantes:
15
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
tres dígitos, es importante entender que para que se verifique la segunda condición la
primera debe ser falsa; la cuarta condición se aplica si la tercera es falsa, esta verifica si
la cantidad es mayor que 9, si es verdadero mostrará que la cantidad tiene dos dígitos,
caso contrario por omisión mostrará que la cantidad tiene un dígito.
Observe que el nombre de la variable utilizado para contener el resultado de cada cálculo
es el mismo para todas las opciones, es importante que lo considere como una estrategia
de desarrollo algorítmica, ya que al final se utilizará dicho nombre para mostrar el
16
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
resultado sin importar la opción escogida, tome en cuenta las siguientes interrogantes
complementarias para analizar el ejercicio:
17
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Para ilustrar el uso de esta definición analice el siguiente ejemplo; se trata de aplicar una
propuesta de solución al problema del menú analizado con condiciones múltiples, el
algoritmo ofrece la posibilidad de realizar solo una de las siguientes operaciones utilizando
dos números cualquiera: opción 1 suma, opción 2 resta, opción 3 multiplicación y opción
4 división. El algoritmo utiliza condiciones de caso en vez de condiciones múltiples para
resolver el problema:
18
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
19
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
dos, realizará la operación y la variable Result tomará la resta de los dos números, al no
ser el segundo caso, compara con el tercer caso, verifica si el valor es tres, después
realizará la operación y la variable Result tomará la multiplicación de los dos números, al
no ser el tercer caso, comparará el cuarto caso, verifica si el valor es cuatro, acción
seguida realizará la operación y la variable Result tomará la división de los dos números,
por último si ningún caso se cumple tomará el caso contrario y el valor de la variable Result
será cero.
El siguiente ejercicio utilizado para ejemplificar el uso de las condiciones de caso modifica
el algoritmo 22 que calcula el salario de un empleado que trabaja en una textilera,
recuerde que el sueldo del mismo dependerá de la categoría de responsabilidad asignada,
la idea de utilizar este ejercicio está basada en efectuar comparaciones entre las
condiciones de caso y su alternativa similar (condiciones múltiples utilizando
comparaciones de igualdad), la propuesta desarrollada tendría el siguiente resultado:
Observe que el uso de esta técnica permite simplificar las comparaciones de igualdad
entre un dato y múltiples alternativas coincidentes, analice las siguientes interrogantes
complementarias.
El algoritmo solicita dos datos, uno representa la categoría y el otro representa las horas
trabajadas Horas_Trab.
20
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
21
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
El paso número uno asigna un valor base a cada variable, al momento de aplicar el paso
número dos de cada ejemplo, sus contenidos variarán de la siguiente forma: el valor base
de la variable “turno” será de 2; el valor base de la variable “paso” será de 3 y el valor
base de la variable “tique” será de 5, ahora suponga que se vuelve a repetir las mismas
instrucciones del paso número 2, el contenido variará de la siguiente forma:
22
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
23
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
En los siguientes ejercicios el libro propone aplicar estos cuadros para verificar y describir
el funcionamiento o la prueba de escritorio de los algoritmos que presentan mayor
dificultad, así mismo en las actividades extras y de refuerzo se recomienda la utilización
de los mismos para facilitar su comprensión y análisis.
Bibliografía
Gabriel, D., Maricela, P., Rodolfo, G., Miguel, R., & Darwin, L. (2018). Desarrollo práctico
de la Programación (N. Pelegrín & F. Henry (eds.); Diana Zava). Ediciones UTM-
Universidad Técnica de Manabí.
https://www.utm.edu.ec/ediciones_utm/component/content/article/24-libros/709-
desarrollo-practico-de-la-programacion?Itemid=101
Rodríguez, J. S. (2003). Introducción a la programación. España: Club Universitario.
24
COMPENDIO DE CONTENIDOS
ALGORITMOS Y DIAGRAMAS DE FLUJOS
4 créditos
Profesor Autor:
Ing. Freddy Fabricio Malla García Mg.
UNIDAD 3
PERÍODO ACADÉMICO
Febrero-Abril/2021
Índice+
TABLA DE CONTENIDO
1
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Conocer, entender y aplicar las destrezas necesarias para crear y actualizar los
programas de diferentes aplicabilidades utilizados por la computadora, los conocimientos
técnicos básicos que un programador necesita para aplicar soluciones a cualquier tipo de
programa
Para desarrollar un diagrama de flujo, el programador puede utilizar una gran variedad
de gráficas geométricas que permiten representar los diferentes procesos y dispositivos
que utiliza la computadora; por ejemplo para graficar el proceso de recibir datos, hay
varias posibilidades, entre ellas se puede utilizar la gráfica del teclado, de la tarjetas
perforadas, de la cintas magnéticas, u otro dispositivo que grafique la acción de proveer
datos a la computadora; así el proceso de mostrar o escribir datos y/o resultados, se
2
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
3
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Para crear algoritmos mediante los diagramas de flujo de debe poner en práctica las
siguientes recomendaciones:
Al momento de crear el diagrama de flujo, el sentido de comprensión y desarrollo de
las instrucciones lógicas es de arriba hacia abajo, también es permitido desarrollarlo
de izquierda a derecha, pero lo habitual es desarrollarlo de arriba hacia abajo.
La definición del siguiente paso o la unión entre un proceso y otro “es decir entre una
figura geométrica y otra”; obligatoriamente debe ser utilizando la flecha, es decir que
el propósito de las flechas es para indicar la secuencia, sentido y orden del siguiente
proceso o instrucción a realizar; es recomendable no crear flechas diagonales, ni
cruzadas entre sí; cuando se necesite unir varias flechas para dar un solo sentido,
se recomienda el uso de conectores (la figura de círculo pequeño).
No está permitido el uso de flechas sin conexión a otra figura geométrica, ya que no
tendría sentido apuntar a un paso inexistente.
En general las gráficas geométricas pueden tener un acceso de entrada y una salida,
a excepción de la figura de inicio/fin, además de las figuras que aplican controles
condicionales y controles de repetición.
Para explicar el uso de cómo se utilizan los diagramas de flujo, considere el primer
algoritmo explicado en el primer capítulo, el cual detalla los pasos para sumar dos
números, el diagrama de flujo quedaría así:
4
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Para el siguiente ejemplo, se aplica las instrucciones gráficas para calcular el promedio
de tres notas, para la mayor comprensión de las instrucciones, se muestra el algoritmo
pseudocodificado y su respectivo diagrama de flujo:
El diagrama número dos no utiliza controles condicionales (controles que permiten realizar
preguntas mediante el uso de comparaciones), solo propone pedir los datos necesarios,
calcularlos y mostrar el resultado del mismo, es recomendable conocer y aplicar las
diversas estructuras de control que ofrecen los diagramas de flujo y que se analizarán en
él.
5
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
6
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
7
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Recuerde que los ciclos repetitivos utilizados en los algoritmos pseudocodificados, son los
mismos que se utilizarán en los diagramas de flujo:
9
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
El siguiente ejercicio ejemplifica los pasos lógicos para mostrar la tabla de multiplicar del
dos, para desarrollarlo se utilizará un contador que empieza en 1 y llegará hasta el 12, por
cada ciclo de repetición este contador se multiplicará por 2 y mostrará el resultado:
10
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Observe que el proceso de control de los ciclos repetitivos se ejecuta mientras el Contador
sea menor o igual que 12, en cada repetición calcula la multiplicación del contador por 2
con la finalidad de mostrar el renglón de la tabla que corresponde, cada fila de la tabla se
muestra de la siguiente forma “2 x ”,Contador,” = ”, Result; entienda que lo que está entre
comillas son mensajes que no variarán, los mensajes se separan de las variables
Contador y Result mediante comas (,) cuyos valores cambiarán en cada repetición dando
como resultado la tabla de multiplicar del 2.
11
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
En el ejercicio una vez obtenido los valores de los catetos primero calcula la sumatoria los
cuadrados de los catetos y posterior a esto se calcula la raíz cuadrada de la suma; el
diagrama de reflujo resuelve el problema en dos cálculos, pero es posible unir ambos
cálculos en uno solo y simplificar el proceso de la siguiente forma: H=SQRT(C1^2+C2^2),
ya que la función también puede recibir un cálculo como valor a resolver, en cuyo caso el
computador resuelve primero el cálculo que está entre paréntesis y después pasa el
resultado a la función para encontrar la raíz cuadrada.
Para desarrollar el siguiente ejercicio, suponga que se necesita un diagrama de flujo que
reciba tres números cualquiera, el diagrama debe mostrar el mayor de los tres números,
para diferenciarlo del ejercicio desarrollado al principio del capítulo se utiliza el operador
lógico AND en la condición principal:
12
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
El uso del operador lógico AND en este ejercicio simplifica y disminuye el número de
condiciones para encontrar el mayor de los tres números.
Para ejemplificar el uso del control de ciclo repetitivo utilizando diagramas de flujo, observe
el siguiente problema: Una empresa que se dedica a la venta de vehículos cuenta con 10
empleados, todos han vendido y no se igualan en ventas, se necesita un diagrama de flujo
que permita encontrar al empleado que más venta registra.
13
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Análisis: para el desarrollo de este ejercicio se necesita una variable contador que será
utilizada para controlar el ingreso de los 10 empleados, otra variable para contener la
cantidad de ventas de cada uno de los 10 vendedores, además se necesita de una tercer
variable para contener la cantidad mayor de todas las ventas ingresadas, para esto se
propone mediante una condición encontrar la venta mayor en cada repetición, antes de
empezar los ciclos repetitivos se debe inicializar esta variable en cero para que sirva de
punto de comparación con cada cantidad de venta que se obtenga, así la primera cantidad
que se ingrese como total en ventas será considerada mayor que cero, esto permitirá fijar
a dicha cantidad como la venta mayor y de ahí en adelante se comparará con las nuevas
cantidades de ventas de los otros empleados.
La estrategia aplicada en este ejercicio, le servirá como referencia para resolver otros
problemas similares, en donde se necesite encontrar el mayor de entre muchos números,
observe que las repeticiones son controladas mediante la variable “Contador”, es decir
repiten mientras contador sea menor que el número de veces que se desea repetir, la
variable “VentaMayor” en la condición, será la encargada de contener el valor mayor
sirviendo de referencia para comparar si la nueva venta es mayor que la encontrada
anteriormente.
14
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
15
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
16
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
El formato describe varios elementos que son utilizados para el uso del control, así
Expresión es el contenido que se desea comparar con las coincidencias de cada Etiqueta,
la etiqueta en cada proceso puede incluir uno o varios valores separados por comas, las
coincidencias únicamente se darán por comparaciones de igualdad, “Etiqueta 1:” al igual
que todas las etiquetas deben incluir la palabra “Caso” seguido de una lista de posibles
valores de coincidencia y se cierra o se finaliza la etiqueta con los dos puntos (:), los
procesos de cada caso pueden ser cualquier instrucción que se considere necesaria para
resolver el problema, incluso otra condición de caso.
Para mostrar los beneficios a la ciudadanía, se ha creado mesas de información para que
los beneficiarios puedan consultar sus ventajas y hacer uso del beneficio de consumo; en
cumplimiento a lo dispuesto por el Estado, se desarrolló un diagrama de flujo que permite
solicitar únicamente la categoría del beneficiado, el programa muestra el número de
kilovatios hora y la cantidad de dinero, que el Estado le subsidiará considerando que el
kilovatio hora tiene un costo de 6 centavos.
17
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Esta técnica de control condicional al igual que los algoritmos pseudocodificados también
posee la alternativa de “caso contrario”, cuyas instrucciones se realizan cuando no hay
coincidencia en ninguno de los casos, para ejemplificar el caso contrario, el siguiente
diagrama de flujo muestra en mensajes, el número de días que posee un mes, para
lograrlo se requiere obtener el número que corresponde al mes, el diagrama de flujo
quedaría de la siguiente forma:
El algoritmo expresado en el diagrama de flujo, asume que el ingreso del número que
corresponde al mes estará limitado entre 1 y 12, considere que no existe ningún proceso
que valide en ingreso del mes, considere que puede existir la posibilidad de que se ingrese
18
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Para ilustrar la forma de utilizar este control de repetición considere el siguiente ejemplo:
Suponga que se requiere calcular el perímetro de un triángulo escaleno (figura triangular
que tiene los tres lados desiguales), para lograrlo el diagrama debe validar que la
obtención de los tres lados debe ser desiguales:
19
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Análisis para entender el desarrollo: Debe estar claro que para resolver este problema se
necesita solicitar los datos que intervienen en el cálculo y que son expresados en la
siguiente fórmula (d=v * t); donde la variable “d” representa la distancia, la variable “v”
representa la velocidad, y la variable “t” representa el tiempo; Tome en cuenta que el
problema exige ciertas condiciones que obligan a validar la obtención de los datos como
la velocidad y el tiempo, es decir los requerimientos del problema piden que la velocidad
debe ser mayor o igual que 100 y el valor del tiempo debe ser menor o igual que 360.
20
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Esta técnica basada en el control condicional es ampliamente utilizada por casi todos los
lenguajes de programación, su principal uso al igual que el control “Repetir… hasta que”
se basa en aplicar la validación de datos y de procesos, esta práctica de control al menos
21
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
ejecuta una vez el proceso interno antes que se vuelva a repetir, recuerde que la condición
de.
Para ejemplificar el uso de este control de validación se tomará como base de explicación
los mismos ejemplos analizados en el control “Repetir… hasta que”, la intensión está
basada en diferenciar las dos estructuras; en el siguiente ejemplo sé que calcular el
perímetro de un triángulo escaleno, observe como cambia la comparación cuando se
utiliza “Repetir… Hasta que” y cuando se utiliza “Hacer… mientras” para validar que el
ingreso del segundo lado:
En esta validación de ejemplo la propuesta “A” que utiliza el control “Repetir… Hasta que”,
vuelve a pedir hasta que el valor de la variable “LB” sea diferente al valor de la variable
“LA”; en cambio en el ejemplo de la propuesta “B”, vuelve a pedir mientras el valor de la
variable “LB” sea igual al valor de la variable “LA”, observe que son dos comparaciones
diferentes pero una misma validación, es decir al momento de terminar cualquiera de las
dos validaciones las variables “LA” y “LB” tendrán dos valores diferentes cumpliendo con
los requerimientos del problema; el diagrama de flujo completo quedaría de la siguiente
forma:
22
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
La clave para deducir la diferencia entre las dos herramientas de control, consiste en
entender y aplicar la redacción natural de los controles, es decir el primer control de
validación “Repite… Hasta que la condición sea verdadera” y el segundo control de
validación “Hace… mientras la condición sea verdadera”.
Ahora para el siguiente problema a explicar, se propone un diagrama de flujo que permita
calcular la distancia recorrida en metros por un automóvil, que tiene una velocidad
constante (metros sobre segundos) durante un tiempo determinado, considere que el
movimiento es rectilíneo y uniforme, para resolver el problema, es obligatorio que la
velocidad no pueda ser menor a 100 m/s, y el tiempo no puede pasar los 360 segundos.
23
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
De forma similar se aplica para validar el tiempo que debe ser menor o igual que 360, el
diagrama completo se muestra a continuación:
24
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Para ilustrar de mejor forma esta definición, considere el siguiente ejemplo: Se necesita
de un diagrama de flujo, que permita calcular la edad promedio de un grupo de 25
jugadores juveniles, por cada jugador se debe obtener la edad.
25
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
26
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
27
NIVELACIÓN DE CARRERA
PERÍODO 2020-S2
FEBRERO- ABRIL 2021
Bibliografía
Gabriel, D., Maricela, P., Rodolfo, G., Miguel, R., & Darwin, L. (2018). Desarrollo práctico
de la Programación (N. Pelegrín & F. Henry (eds.); Diana Zava). Ediciones UTM-
Universidad Técnica de Manabí.
https://www.utm.edu.ec/ediciones_utm/component/content/article/24-libros/709-
desarrollo-practico-de-la-programacion?Itemid=101
28