Está en la página 1de 37

ESCUELA DE INGENIERÍA

INGENIERÍA EN ELECTRICIDAD Y AUTOMATIZACIÓN INDUSTRIAL

PRC3101
Algoritmos

Carlos J. Hernández C.
Ing. Civil Electrónico, MSc.
c.hernandezca@profesor.duoc.cl
Contenido

I. Concepto de algoritmo
II. Diagramas de flujo
III. Pseudocódigo

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 2


I. Concepto de algoritmo

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 3


Concepto de algoritmo

Un algoritmo es un método para resolver un problema.

Problema Diseño del Programa


algoritmo de PC

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 4


Concepto de algoritmo

Los pasos para la resolución de un problema son:


1. Análisis del problema y diseño del algoritmo.
2. Expresar el algoritmo como un programa en un lenguaje
de programación adecuado.
3. Ejecución y validación del programa por la computadora.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 5


Concepto de algoritmo

Características de los algoritmos:


1. Preciso (indicar el orden de realización en cada paso).
2. Definido (si se sigue dos veces, obtiene el mismo
resultado cada vez).
3. Finito (tiene fin; un número determinado de pasos).

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 6


Ejercicio 1

Un cliente ejecuta un pedido a una empresa. La empresa


examina en su base de datos la ficha del cliente, si el cliente
es solvente entonces la empresa acepta el pedido; en caso
contrario, rechazará el pedido.

i) Redactar el algoritmo correspondiente (lista de pasos,


“receta”).

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 7


Lenguajes de programación

El procesador debe ser capaz de interpretar el algoritmo.


 Comprender las instrucciones de cada paso.
 Realizar las operaciones correspondientes.

El algoritmo se expresa en un formato que se denomina


programa.
 Lenguajes de programación.
 Programación.
 Instrucciones, sentencias o proposiciones.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 8


Lenguajes de programación

Principales tipos de lenguajes de programación:


 Lenguajes máquinas.
 Lenguajes de bajo nivel (ensamblador).
 Lenguaje de alto nivel (C, Visual Basic).

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 9


Lenguajes de programación

Traductores de lenguaje:

Programa Programa
fuente fuente

Intérprete Compilador

Traducción y ejecución Programa


Línea a Línea objeto

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 10


II. Diagramas de flujo

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 11


Diagramas de flujo

Un diagrama de flujo (flowchart) es una representación


gráfica de un algoritmo.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 12


Diagramas de flujo

Estos permiten graficar desde pasos simples a procesos


complejos y dar esta solución en forma entendible por
cualquier persona, sin importar su conocimiento particular.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 13


Diagramas de flujo

Un diagrama de flujo utiliza símbolos normalizados (ANSI) y


que tiene los pasos de algoritmo escritos en esos simbolos
unidos por flechas (líneas de flujo) que indican la secuencia
en que se debe ejecutar.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 14


Símbolos

Inicio

Datos Actividad


Decisión

No

Fin

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 15


Símbolos
Terminal  Muestra el inicio y final del programa.

Terminal

Entrada/Salida  Ingreso de datos desde periféricos o


registro de datos en un periférico.

Entrada/
Salida

Proceso  Operaciones aritméticas, de transferencia, etc.

Proceso

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 16


Símbolos
Decisión  Indica operaciones lógicas o de comparación de
datos y en función del resultado de la misma determina cuál
de los distintos caminos del programa debe seguir.

Decisión
NO

SI

Conectores  Sirve para enlazar dos partes cualesquiera de


un diagrama de flujo. El círculo se utiliza como un conector
dentro de un misma página, el otro símbolo se define como un
conector a otra página.

Conectores
PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 17
Símbolos
Subprograma  Llamada a subrutina o a un proceso
predeterminado.

Subprograma

Línea de flujo  Indicador del sentido de ejecución de las


operaciones.

Línea de flujo

Línea conectora  Sirve de unión entre dos símbolos.

Línea conectora

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 18


Otros símbolos

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 19


Ejercicio 2

Un cliente ejecuta un pedido a una empresa. La empresa


examina en su base de datos la ficha del cliente, si el cliente
es solvente entonces la empresa acepta el pedido; en caso
contrario, rechazará el pedido.

i) Graficar estos pasos mediante un diagrama de flujo.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 20


Ejercicio 3

Genere un diagrama de flujo para buscar la falla en una


lámpara. Debe verificar:

i) Si la lámpara está energizada. De no estarlo debe


energizarla.
ii) Si aún no se soluciona la falla, verifique si la ampolleta
está quemada, de estarlo, debe ser reemplazada.
iii) Si lo anterior no funciona se debe comprar una nueva
lámpara.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 21


Ejercicio 4

Dados tres números, determinar si la suma de cualquier


pareja de ellos es igual al tercer número. Si se cumple esta
condición escribir “iguales”; en caso contrario, escribir
“distintos”.

i) Escribir los pasos del algoritmo.


ii) Graficar el correspondiente diagrama de flujo.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 22


III. Pseudocódigo

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 23


Pseudocódigo

El pseudocódigo es una herramienta de programación en la


que las instrucciones se escriben en palabras similares al
inglés o español, que facilitan tanto la escritura como la
lectura de programas.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 24


Pseudocódigo

Cualquier instrucción de un lenguaje de programación tal


como de declaración, asignación, entrada, salida o llamado y
retorno de subrutina es una instrucción del pseudocódigo.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 25


Pseudocódigo

En pseudocódigo existen palabras reservadas básicas, que


son una traducción libre de palabras reservadas de lenguajes
como C, Visual Basic, etc.

Las palabras reservadas básicas se representarán en letras


negritas minúsculas.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 26


Pseudocódigo

La codificación en pseudocódigo es una técnica que permite


que el control de la lógica de un programa este limitado por
un número mínimo de estructuras de control.

Las estructuras de control son métodos para especificar el


orden en que las instrucciones de un algoritmo se ejecutarán.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 27


Estructuras de control

Cada estructura de control tiene una sola entrada y una sola


salida, por lo tanto soporta el refinamiento funcional usado en
el diseño descendente.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 28


Estructuras de control

Cada estructura de control ejecuta una única operación y se


puede combinar para anidar con otras estructuras de control,
limitando las interacciones entre los componentes del sistema.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 29


Estructuras de control

Secuenciales: las instrucciones se ejecutan sucesivamente


una después de otra.

inicio
P1
P2
.
.
PN
fin

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 30


Estructuras de control

Selectivas: permite elegir entre dos alternativas (dos


conjuntos de instrucciones) dependiendo de una condición
determinada.

inicio
si (E) entonces
P1
sino
P2
fin_si
fin
PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 31
Estructuras de control

Repetitivas: permite que una serie de instrucciones se


ejecuten sucesivamente una y otra vez hasta que se cumple
una cierta condición.

inicio
mientras (E) ejecute
P1
fin_mientras
fin

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 32


Pseudocódigo

Con el fin de mejorar la legibilidad, para cada algoritmo se


deben incluir precondiciones y postcondiciones, que
corresponden a afirmaciones sobre condiciones al principio y
final de un procedimiento respectivamente.

Precondición: afirmación sobre el rango de las variables


entrada.
Postcondición: afirmación sobre el rango de las variables de
salida.
PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 33
Ejercicio 5

Problema

Escribir un pseudocódigo que calcule la superficie de un


triángulo en función de la base y la altura.

Análisis del problema

• Datos de entrada: B  base y A  altura

• Datos de salida: S  superficie

• Para calcular la superficie se aplica la formula: S = B*A/2

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 34


Ejercicio 5

Diseño del algoritmo

inicio

leer (B, A)

S = B*A/2

escribir (S)

fin

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 35


Ejercicio 6

Problema

Calcular el valor de la suma 1 + 2+ 3+…+10.

Análisis del problema

Se utiliza una variable NUMERO para generar los sucesivos


números enteros, y SUMA para almacenar las sumas
parciales.

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 36


Ejercicio 6

Diseño del algoritmo


inicio

1. Establecer NUMERO a 1

2. Establecer SUMA a 0

3. mientras NUMERO <= 10 hacer

Sumar NUMERO a SUMA

Incrementar NUMERO en 1

fin_mientras

4. Visualizar SUMA

fin

PRC3101, Prof.: Carlos J. Hernández C., 2018-I. 37

También podría gustarte