Universidad de la República
Informática Médica - Informática y Manejo de Imágenes Médicas
Asignatura electiva para la carrera de medicina y afines
Algoritmos, Especificación y
Pseudocódigo
Clase 3 – 8 de setiembre de 2020
Prof. Ing. Franco Simini, Ayud. Ing. Estefanía Della Mea, Ayud. Lic. Natalia Garay, Ayud. Br. Hernán Castillo
Núcleo de Ingeniería Biomédica de las Facultades de Medicina e Ingeniería www.nib.fmed.edu.uy
1. Algoritmos
2. Diagramas de flujo
3. Pseudocódigo
● Conjunto prescrito de instrucciones definidas,
ordenadas, no ambiguas y finitas
● Su fin es resolver un problema mediante pasos
sucesivos que no den lugar a ambigüedades.
● Es algoritmo si y sólo si:
● es preciso: cada uno de los pasos debe indicar de
manera precisa e inequívoca qué se debe hacer.
● es finito: número limitado de pasos.
● es definido: debe producir los mismos resultados para
las mismas condiciones de entrada.
● tiene cero o más elementos de entrada.
● produce un resultado, es decir, el elemento de salida
será la solución al problema planteado originalmente.
Definición de “algoritmo”
● Entrada de datos necesarios para que el algoritmo
sea ejecutado.
● Proceso: secuencia de pasos para ejecutar el
algoritmo.
● Salida de datos: resultado o solución obtenida luego
de la ejecución del algoritmo.
Partes de un algoritmo
● Pasos para cambiar la rueda de un auto.
● Pasos para enviar un correo electrónico.
● Algoritmo para determinar si un paciente tiene gripe.
● Receta de cocina
● ¿Cuáles son las entradas?
● ¿El proceso?
● ¿La salida?
1) Lenguaje natural
2) Lenguajes formales:
● Diagramas de flujo
● Pseudocódigo
● Lenguajes de programación
Lenguaje natural
● Es el que utilizamos cotidianamente.
● Es intrínseco a las sociedades humanas, desde las
más primitiva
● Los algoritmos de la vida cotidiana están
expresados en lenguaje natural
Ejemplos: receta de cocina, manual de instrucciones, etc.
Lenguaje natural vs. Lenguaje
formal
Ejemplo de secuencia de pasos,
candidato a algoritmo
1.
2. Diagrama de
● Representación gráfica de un proceso
● Herramienta que busca ser de fácil comprensión.
● Ilustra
● sentencias
● decisiones
● flujo lógico
● terminaciones (puntos de entrada y salida)
● Utiliza símbolos estandarizados unidos por flechas
La American National Standards Institute (ANSI) estableció los símbolos estándares para los diagramas de flujo. Luego la ISO también adoptó esta simbología.
Símbolos normalizados de
diagrama de flujo
Ejemplo
Inicio Actividad Interrogante Fin Datos sí no1) Establecer el alcance (limites del proceso, marco)
2) Listar las actividades y procesos incluidos.
3) Aclarar los puntos de decisión, que determinan los
caminos.
4) Respetar la secuencia ordenada.
5) Dibujar el diagrama resultante.
Pasos a seguir para su
realización
1)Pasos a seguir 2)si la lámpara 3)no funciona
Ejemplo
La lámpara no funciona ¿Está enchufada la lámpara? ¿Está quemada la lamparita? Comprar nueva lámpara sí sí no no Cambiar lamparita Enchufar la lámpara4.1. Acute myocardial infarction
According to AMI management guidelines of the European Society of Cardiology (ESC) published in 2013 [2], a diagnosis is based on elevated levels of at least one cardiac biomarker above percentile 99 (especially troponin), plus at least one of the following criteria: symptoms of cardiac ischemia, electrocardiographic (EKG) abnormalities (ST segment elevation or pathological Q waves) and imaging abnormalities (echocardiogram or angiography).
“Use of formal logic and flowcharts in medical diagnosis situations to verify its validity and inclusion in clinical decision support systems” M.Sosa, L. Grundel, F. Simini.
Algoritmo para diagnóstico de
● Que queden ciclos sin salida (“loops”)
● No utilizar los símbolos del estándar
● Que la extensión del diagrama haga que sea poco
claro.
Ejemplo de errores
comunes
●
●
● Fuente: http://www.disaster-info.net/desplazados/documentos/ops/pautas2004/6anexo4.htm Ejemplo de
errores comunes
● Que queden ciclos sin salida (“loops”)
● No utilizar los símbolos del estándar
● Que la extensión del diagrama haga que sea poco
claro.
Trabajo en subgrupos!
Buscar un diagrama de flujo que responda a una situación de diagnóstico y discutir su análisis.
● Descripción de alto nivel compacta e informal del
principio de un programa informático u otro algoritmo.
● Utilizado en computación y análisis numérico.
● Descripción de algoritmos, para que los lectores
puedan entenderlo sin ser expertos un lenguaje de programación.
● Nombre
● Concepto de “indentación” (anidación)
● El punto y coma “;”
● Comienza / Termina
●
Estructura de un
● Variables: Una variable es un espacio de memoria del
ordenador a la que asignamos un contenido.
● Tiene un identificador (id) que la representa y puede
cambiar su valor durante la secuencia de instrucciones dentro del pseudocódigo
●
Definición de datos del
Tipos de datos de una variable: ● Simples: ● Entero (int) ● Real ● Booleano (lógico) ● Carácter ASCII
●
Definición de datos del
Tipos de datos estructurados:
● Cadena / String: de caracteres ASCII
● Vector / Array: conjunto de variables ordenadas
●
Definición de datos del
Conocer el tipo de datos es conocer:
● Cuales son los valores posibles de la variable
● Cuales son las operaciones (primitivas) que se le
pueden aplicar
●
Definición de datos del
Tipos de datos dinámicos : se van adjudicando valores en tiempo de ejecución.
● Listas (sin restricciones de acceso definido: lista de
compras)
● Pilas (LIFO: pila de platos)
● Colas (FIFO: cola del cajero)
●
Definición de datos del
Asigne a x el valor de y x ← y
x := y x = y
Las operaciones aritméticas se representan de la forma usual en matemáticas
{ Esto es un comentario normalmente matemático } volumen ← πr2h
// y este es otro comentario normalmente de texto Hipotenusa ← sqrt(a2 + b2)
Resultado ← sin (a)
●
Definición de datos del
Secuencia de instrucciones que se ejecutan en orden instruccion1; instruccion2; instrucción3; … instruccionn; ●
Estructuras de control
Selectivas (if)
si condición entonces
instrucciones; fin si
Doble selectivas (if, elsif o else if) si condición entonces instrucciones1; si no entonces instrucciones2; fin si ●
Estructuras de control
Mientras (while)
mientras condición hacer
instrucciones; fin mientras
Repetir (do loop)
repetir
instrucciones;
hasta que condicion
Para cada (for each)
para i ← 0 hasta n hacer
x ← Li
instrucciones; fin para
Leer / Escribir de la entrada
Escribir “Ingrese su nombre”;
Leer nombre;
Escribir “Ingrese su edad”;
Leer edad;
Escribir “Usted ingresó el nombre: ”, nombre, “ y la edad: ”, edad;
Funcion area_cuadrado(lado):
Devolver lado2;
area_salon ← area_cuadrado(800);
Escribir “El área del salón es: ”, area_salon, “m².”