SlideShare una empresa de Scribd logo
Introducción a los algoritmos
Ing.: Yenit A. Ochoa S
Introducción a la Programación
Motivación
2
OBJETIVO GENERAL DE LA ASIGNATURA
Resolver problemas básicos a través de la construcción de programas
basados en algoritmos y un lenguaje de programación, generando acciones
hacia la búsqueda de propuestas pertinentes.
APRENDIZAJES ESPERADOS (COMPETENCIAS)
• Descompone un problema en sub-problemas para darle una solución
más sencilla.
• Interpreta algoritmos y programas para la solución de problemas
básicos de programación relativos a la matemática.
• Construye algoritmos y programas para la solución de
problemas básicos de programación relativos a la matemática.
• Trabaja colaborativamente, cumpliendo un rol y responsabilizándose
de él.
• Comprende el entorno de las situaciones problemáticas que tienen un
componente informático.
Programa de Aplicación
Programa que permite resolver la ecuación de primer grado
3
Programa
que permite
resolver la
ecuación de
primer grado
a x + b = 0
?
a
b
x = -b / a
#include <stdio.h>
int a,b,x;
main()
{
printf(“Ingrese valores de EC”);
scanf(“%d %d”,&a,&b);
if a ==0 printf (“error”);
else
{
x = -b / a;
printf(“La solución es %d:”,x);
}
printf(“Fin programa”);
}
Algoritmo EC 1er Grado
Variables
a,b,x de tipo entero
Inicio
Escribir(“Ingrese valores de EC”)
Leer (a,b)
Si a = 0 entonces
escribir (“Error”)
sino
Inicio
x=-b/a
Escribir (“La solución es:”,x)
Fin
Escribir(“Fin programa”)
Fin
Pasos en la resolución de un problema
• Entender el problema
– Conceptualización
– Objetivo
– Contexto
• Buscar soluciones
• Elegir solución
• Diseñar solución
– Descomposición
– Especificar tareas
– Modelar solución
• Implementar solución
• Validar solución
4
¿Qué es un problema?
• Es una situación concreta sobre la cual se quiere implementar
una solución (ejemplos)
• Solución: procedimiento que nos lleva a satisfacer ciertos
requerimientos
• Esquema básico para la resolución de un problema a través
de un programa con un enfoque sistémico
5
Proceso
Entrada Salida
•Datos Externos
•Datos auto generados
•Lectura de dispositivo de
almacenamiento
•Informes
•Datos para otro programa
•Datos grabados en
dispositivos externos de
almacenamiento
Datos y Variables
• Datos: objetos simbólicos que representan
objetos del mundo real.
– Ejemplos: 10 de Marzo de 2003, 3.14
• Variables: no hace referencia a un objeto
explícito
– Ejemplos: velocidad del móvil, factor de
crecimiento
6
¿Qué es un Modelo?
• Estructura para dar razón y abstraer una
realidad
• Ejemplo:
7
Asignaturas
Carrera
Estudiantes
Estudia
Plan de Estudios
Inscrita
¿Qué es un algoritmo?
• Procedimiento detallado para resolver un
problema en pasos y en un tiempo finito.
• Se especifican en base a operaciones básicas
que controlan las variables y el flujo del
algoritmo
• El algoritmo lleva desde un estado inicial a un
estado final
• El algoritmo recibe Entradas y entrega Salidas
8
¿Cómo desarrollar un algoritmo?
• Imaginación
• No reinventar la rueda
• Dividir para conquistar
• Para ser efectivo se requiere practicar
constantemente
• El diseño de algoritmos es una rama de la
Ciencia de la Computación
9
¿Cómo se describe un algoritmo?
• Lenguaje natural
• Pseudo código
• Lenguaje de programación
• La precisión es importante
– Un algoritmo no puede ser descrito de forma
ambigua:
• Todos tienen que entender lo mismo (incluido el
computador!)
10
Llamada telefónica
• Se desea conceptualizar el
problema de efectuar una
llamada telefónica en un teléfono
público que recibe monedas de
$10, $50 y $100. El costo mínimo
de la llamada es de $100 por 5
minutos. El proceso se inicia
desde que se levanta el auricular
y finaliza cuando se cuelga.
11
Árboles de decisión
• Herramienta útil
para describir
algoritmos que
involucran gran
cantidad de
decisiones
12
Conceptos Básicos de Algoritmos
• La forma en que se ejecutan las operaciones básicas
en un computador, es similar a lo que ocurre en
nuestro cerebro.
• Por ejemplo, para sumar dos valores:
– Primero debemos pedirle a alguien que nos diga el primer
valor.
– Luego de que conocemos este valor, debemos
almacenarlo (para recordarlo después) en una neurona
(Suponemos que un valor se puede almacenar en una
neurona).
• Ya conocemos el primer valor y está almacenado en
nuestro cerebro.
Conceptos Básicos de Algoritmos
• Ahora debemos pedir el segundo valor.
• Una vez conocido, lo almacenamos en otra neurona distinta
de la anterior. ¿ Por qué?
• Ahora que conocemos los dos valores procedemos a
sumarlos, y dicho resultado lo almacenamos en otra neurona
distinta de las anteriores.
• Por último, le decimos el resultado a la persona que nos
entrego los números.
Conceptos Básicos de Algoritmos
– De lo anterior, al menos necesitamos 3 neuronas
para sumar dos números.
– Le pedimos explícitamente que nos dijeran dichos
valores.
– Le asignamos dichos valores a las neuronas
– La suma la realizó nuestro cerebro de forma
mecánica. Note que no existen detalles de la
operaciones básicas (*,/,+, -).
– Finalmente se da el resultado
Conceptos Básicos de Algoritmos
• Algoritmo para sumar dos números:
– Definimos tres neuronas
– Pedimos el primer valor
– Almacenamos ese valor en la neurona 1.
– Pedimos el segundo valor
– Almacenamos ese valor en la neurona 2.
– Almacenamos la suma de las neuronas 1 y 2 en la neurona
3
– Entregamos el resultado que se encuentra en la neurona
3.
Conceptos Básicos de Algoritmos
• Sin embargo, en los lenguajes no se pueden usar
neuronas, pero podemos definir variables
(Recuerde que las variables pueden tomar
cualquier valor)
• En lugar de usar neurona 1 y neurona 2, se utilizan
espacios de memoria que llamaremos “var 1” y
“var 2”, y así sucesivamente. También las
podemos llamar “x1” y “x2” ó “x” e “y” ….
Conceptos Básicos de Algoritmos
Ejercicio: Cree un algoritmo que multiplique tres números.
• Algoritmo para multiplicar tres números:
– Definimos cuatro variables
– Pedimos el primer valor
– Almacenamos ese valor en var 1.
– Pedimos el segundo valor
– Almacenamos ese valor en var 2.
– Pedimos el tercer valor
– Almacenamos ese valor en var 3.
– Almacenamos la multiplicación de las variables en var 4
– Entregamos el resultado que se encuentra en var 4.
Conceptos Básicos de Algoritmos
• La manera en que hemos detallado nuestros dos
algoritmos se llama PSEUDO-CÓDIGO. Y este
pseudo-código fue escrito en lenguaje natural.
• Otra manera de poder detallar nuestros
algoritmos es a través de los diagrama de flujo.
Un diagrama de flujo es una representación
simbólica de la lógica del algoritmo.
Diagrama de Fujo
• Nomenclatura:
– Inicio del algoritmo
– Término del algoritmo
– Impresión de mensajes
– Receptor de datos
– Operación de datos
– Bifurcación (Decisión)
– Definición de variables
– Conector
Inicio
Termino
?
F V
Diagrama de Flujo y Pseudo-Código
Inicio
Escribir
“Mensaje 1”
Fin
Leer
var1,x, y
a = 3 * x + y
b = a / var1
Entero var1, x , y
Real a, b
Si a > b
VF
Inicio de Algoritmo
Definición de variables
Impresión de mensajes
Lectura de mensajes
Transformación de datos
Operaciones sobre los datos
Bifurcación en la ejecución de
instrucciones
Conector
Fin de algoritmo
DIAGRAMA DE FLUJO NOMENCLATURA PSEUDO-CÓDIGO
Inicio
Variables
Entero var1, x, y
Real a, b
Escribir (“Mensaje 1”)
Leer (var1, x, y)
a = 3 * x + y
b = a / var1
Si a > b Entonces
Inicio
Instrucciones
Fin
Sino
Inicio
Instrucciones
Fin
Fin
Diagrama de Fujo para el algoritmo que
suma dos valores
Inicio
Termino
var1,var,var3
Ingrese el primer valor
var 1
Ingrese el segundo valor
var 2
var3=var1+var2
El resultado es : var3
Se pide ingresar el segundo valor
Se pide ingresar el primer valor
Se asocia el número ingresado a var1
Se definen las variables var1, var2, var3
Se asocia el número ingresado a var1
Se asigna el resultado de la suma entre var1 y var2 a var3
Se muestra el resultado
Diagrama de Flujo
• Ejercicio: Cree el diagrama de flujo para el
algoritmo que multiplica tres números y
muestre el resultado
• Ejercicio: Cree el diagrama de flujo para que
divida dos números y muestre el resultado
¿Preguntas?
Algoritmos
• Ejercicio. Usando diagrama de Flujo. Cree un
algoritmos donde una persona ingrese su
edad y muestre por pantalla si es mayor de
edad.
Algoritmos
Algoritmos
– Del ejemplo anterior podemos observar que la
bifurcación permite seguir el flujo adecuado dada
una condición.
– Las condiciones que se evalúan en las
bifurcaciones son siempre verdaderas o falsas.
– Por ende, hay que colocar las instrucciones
adecuadas a los valores que se evaluan en las
bifurcaciones.
Algoritmos
– También es posible que existan bifurcaciones
contiguas.
– En las bifurcaciones o estructura de control, se
evalúan proposiciones utilizando:
• Operadores lógicos
• Operadores aritméticos
• Operadores Relacionales
Algoritmos
• Operadores Aritméticos:
– * multiplicación
– / División
– + Suma
– - Resta
– % Módulo
Ejemplo de módulo (o residuo de la división):
5%2 es 1
4%2 es 0
Algoritmos
• Operadores Lógicos:
– Y, And, &&
Y V F
V V F
F F F
Algoritmos
• Operadores Lógicos:
– O, Or, ||
O V F
V V V
F V F
Algoritmos
• Operadores Lógicos:
– No, Not, !
No V F
F V
Algoritmos
• Analicemos los siguientes casos
var1=2, var2=0,var3=4
var4=(var1*var1)/var3
var4>=1 && var1!=0
Si
No
var4=1
Si
Algoritmos
• Analicemos los siguientes casos
var1=2, var2=0,var3=4
var4=(var3%var1)
(var4!=0 || var2>0)
&& (var3==4)
Si
No
var4=0
No
Algoritmos
• Analicemos los siguientes casos
var1=2, var4=1,var3=4
var4=(var4+var1)
!(var1 && (var4>=var1))
Si
No
var4=3
No
Cualquier proposición distinta de cero
Es VERDADERO
Algoritmos
• Es importante notar que existen prioridades
entre los operadores. Por lo tanto deben
utilizarse paréntesis en los casos que
correspondan
Algoritmos
• Ejercicio. Crear un algoritmo que muestre en
forma ordenada tres número enteros
ingresados desde teclado.
Unidad 2 introducción a los algoritmos
Diagrama de Flujo
 Ejercicio: Cree el diagrama de flujo para el algoritmo que multiplica
tres números y muestre el resultado
 Ejercicio: Cree el diagrama de flujo para que divida dos números y
muestre el resultado
 Ejercicio: Cree el diagrama de flujo para que resuelva la ecuación de
primer grado y muestre el resultado
 Ejercicio: Cree el diagrama de flujo para que resuelva la ecuación de
segundo grado, para valores reales e imaginarios, y muestre el
resultado
 Ejercicio: Cree el diagrama de flujo permita sumar tres números
ingresados por teclado y muestre el resultado
 Ejercicio: Cree el diagrama de flujo que permita sumar “n” números y
muestre el resultado. El valor de “n” debe ser ingresado por teclado al
igual que los números que se sumarán.
Algoritmos
• Repaso de Bifurcaciones
• Aprendizajes Esperados
– Conceptos de Ciclos
– Cuándo se aplican los ciclos
Algoritmos
• Ejercicio. Crear un algoritmo que muestre en
forma ordenada tres número enteros
ingresados desde teclado
Unidad 2 introducción a los algoritmos
• Concepto de Ciclo
– Un ciclo es la repetición de un conjunto de
instrucciones. Dicho ciclo culmina cuando se
cumple una condición de termino.
• Cuándo se aplican los Ciclos
– Se aplican cuando queremos ejecutar un conjunto
de instrucciones varias veces.
Algoritmos
Algoritmos
• Estructura de un ciclo
Algoritmos
• Ejemplo: Crear un algoritmo que sume N
elementos y muestre el resultado
N var cont suma
02 11
122
33
Algoritmos
• Ejemplo: Crear un algoritmo que encuentre el
número mayor de N números enteros
positivos ingresados por teclado.
= -1
Algoritmos
• Ejemplo: Crear un algoritmo que calcule
∑
n
i
1
Unidad 2 introducción a los algoritmos

Más contenido relacionado

PPTX
Logica algoritmos
PPT
Algoritmos Y Programas Unidad1
PDF
Mod 2 algoritmos
PPTX
Logica de programacion de algoritmos
PPTX
Algoritmo
PPTX
Algoritmos y Logica
PDF
Apuntes De Algoritmos
PPTX
Introducción a la Programación
Logica algoritmos
Algoritmos Y Programas Unidad1
Mod 2 algoritmos
Logica de programacion de algoritmos
Algoritmo
Algoritmos y Logica
Apuntes De Algoritmos
Introducción a la Programación

La actualidad más candente (20)

PPT
Algoritmos y diagramas de flujo
PDF
02 examen parcial n°1-informática ii-vacio
PDF
Algoritmo fundamentos de la programación
PDF
Introducción a los algoritmos y programación 1
PPT
Algoritmos Conceptos Basicos - www.ingfiis.tk
DOCX
Algoritmos, programas, compiladores y lenguajes de programacion
PDF
U7.resumen.ANALISIS DE LOS ALGORITMOS
PDF
Guia didáctica unidad 4 metodología para el análisis y planteamiento del prob...
PDF
Algoritmos y programas estructuras
PDF
EJERCICIOS BUCLES REPETITIVOS LENGUAJE C
DOCX
Algoritmos y metodología para la solución de problemas
PDF
Resolución de problemas y algoritmo
PDF
Introduccion Analisis Algoritmos
PPTX
algoritmos y fundamentos de programacion
PPT
Introduccion a los algoritmos parte 1
PPT
Entidades Primitivas Para Algoritmos
PPTX
Tutorial algoritmo representacion
PDF
Unidad 1
PPTX
Clase de programacion
PPTX
Algoritmo
Algoritmos y diagramas de flujo
02 examen parcial n°1-informática ii-vacio
Algoritmo fundamentos de la programación
Introducción a los algoritmos y programación 1
Algoritmos Conceptos Basicos - www.ingfiis.tk
Algoritmos, programas, compiladores y lenguajes de programacion
U7.resumen.ANALISIS DE LOS ALGORITMOS
Guia didáctica unidad 4 metodología para el análisis y planteamiento del prob...
Algoritmos y programas estructuras
EJERCICIOS BUCLES REPETITIVOS LENGUAJE C
Algoritmos y metodología para la solución de problemas
Resolución de problemas y algoritmo
Introduccion Analisis Algoritmos
algoritmos y fundamentos de programacion
Introduccion a los algoritmos parte 1
Entidades Primitivas Para Algoritmos
Tutorial algoritmo representacion
Unidad 1
Clase de programacion
Algoritmo
Publicidad

Destacado (11)

PPTX
Bifurcacion del canal mandibular
PPTX
Control de flujo
PDF
MANUAL DE LENGUAJE DE PROGRAMACION
PPTX
Bifurcaciones y Subrutinas - Small Basic
PDF
Algoritmos
PDF
Clase 3
PDF
Algoritmos+y+solucion+de+problemas
PPTX
PRUEBAS Y DEPURACIÓN
DOCX
Algoritmos y diagramas de flujos
PPTX
Pruebas de escritorio
PPTX
Solución de problemas con algoritmos
Bifurcacion del canal mandibular
Control de flujo
MANUAL DE LENGUAJE DE PROGRAMACION
Bifurcaciones y Subrutinas - Small Basic
Algoritmos
Clase 3
Algoritmos+y+solucion+de+problemas
PRUEBAS Y DEPURACIÓN
Algoritmos y diagramas de flujos
Pruebas de escritorio
Solución de problemas con algoritmos
Publicidad

Similar a Unidad 2 introducción a los algoritmos (20)

PPT
Unidad 1 Introducción a los Algoritmos.ppt
PPT
Unidad 1, 2 y_3_algoritmos
PPT
Clase 05 (2)
PDF
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
PPT
Introducción a la Informática - Los Algoritmos
PPT
Unidad 2 Principios de programación
PPT
Fundamentos-de-Algoritmos.ppt
PPTX
PDF
presentacionalgoritmos-111003021701-phpapp01.pdf
PPT
programacion de base de datos en ingesnieria de software
PPT
programacion de base de datos en ingesnieria de software
PPT
_Algoritmos.ppt
PPTX
Algoritmos
DOCX
algoritmos- álgebra discreta
DOCX
Qué es un algoritmo 10
DOCX
Algoritmos
PDF
Lógica de programación_curso_clase1.pdf
PPT
Sesión1 Algoritmia Básica.ppt
DOCX
Conceptos bàsicos algoritmos
PPTX
SEMANA 05- Introducción a la Ingeniería de Software
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1, 2 y_3_algoritmos
Clase 05 (2)
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
Introducción a la Informática - Los Algoritmos
Unidad 2 Principios de programación
Fundamentos-de-Algoritmos.ppt
presentacionalgoritmos-111003021701-phpapp01.pdf
programacion de base de datos en ingesnieria de software
programacion de base de datos en ingesnieria de software
_Algoritmos.ppt
Algoritmos
algoritmos- álgebra discreta
Qué es un algoritmo 10
Algoritmos
Lógica de programación_curso_clase1.pdf
Sesión1 Algoritmia Básica.ppt
Conceptos bàsicos algoritmos
SEMANA 05- Introducción a la Ingeniería de Software

Último (20)

PPTX
Doctrina 1 Soteriologuia y sus diferente
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
DOCX
Programa_Sintetico_Fase_4.docx 3° Y 4°..
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
PPTX
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
DOCX
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
PDF
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
PDF
Atencion prenatal. Ginecologia y obsetricia
PDF
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
PDF
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
PDF
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
PDF
Introducción a la historia de la filosofía
PDF
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PDF
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
PDF
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
Doctrina 1 Soteriologuia y sus diferente
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
PLAN DE CASTELLANO 2021 actualizado a la normativa
V UNIDAD - SEGUNDO GRADO. del mes de agosto
Programa_Sintetico_Fase_4.docx 3° Y 4°..
Tomo 1 de biologia gratis ultra plusenmas
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
Atencion prenatal. Ginecologia y obsetricia
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
Introducción a la historia de la filosofía
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf

Unidad 2 introducción a los algoritmos

  • 1. Introducción a los algoritmos Ing.: Yenit A. Ochoa S Introducción a la Programación
  • 2. Motivación 2 OBJETIVO GENERAL DE LA ASIGNATURA Resolver problemas básicos a través de la construcción de programas basados en algoritmos y un lenguaje de programación, generando acciones hacia la búsqueda de propuestas pertinentes. APRENDIZAJES ESPERADOS (COMPETENCIAS) • Descompone un problema en sub-problemas para darle una solución más sencilla. • Interpreta algoritmos y programas para la solución de problemas básicos de programación relativos a la matemática. • Construye algoritmos y programas para la solución de problemas básicos de programación relativos a la matemática. • Trabaja colaborativamente, cumpliendo un rol y responsabilizándose de él. • Comprende el entorno de las situaciones problemáticas que tienen un componente informático.
  • 3. Programa de Aplicación Programa que permite resolver la ecuación de primer grado 3 Programa que permite resolver la ecuación de primer grado a x + b = 0 ? a b x = -b / a #include <stdio.h> int a,b,x; main() { printf(“Ingrese valores de EC”); scanf(“%d %d”,&a,&b); if a ==0 printf (“error”); else { x = -b / a; printf(“La solución es %d:”,x); } printf(“Fin programa”); } Algoritmo EC 1er Grado Variables a,b,x de tipo entero Inicio Escribir(“Ingrese valores de EC”) Leer (a,b) Si a = 0 entonces escribir (“Error”) sino Inicio x=-b/a Escribir (“La solución es:”,x) Fin Escribir(“Fin programa”) Fin
  • 4. Pasos en la resolución de un problema • Entender el problema – Conceptualización – Objetivo – Contexto • Buscar soluciones • Elegir solución • Diseñar solución – Descomposición – Especificar tareas – Modelar solución • Implementar solución • Validar solución 4
  • 5. ¿Qué es un problema? • Es una situación concreta sobre la cual se quiere implementar una solución (ejemplos) • Solución: procedimiento que nos lleva a satisfacer ciertos requerimientos • Esquema básico para la resolución de un problema a través de un programa con un enfoque sistémico 5 Proceso Entrada Salida •Datos Externos •Datos auto generados •Lectura de dispositivo de almacenamiento •Informes •Datos para otro programa •Datos grabados en dispositivos externos de almacenamiento
  • 6. Datos y Variables • Datos: objetos simbólicos que representan objetos del mundo real. – Ejemplos: 10 de Marzo de 2003, 3.14 • Variables: no hace referencia a un objeto explícito – Ejemplos: velocidad del móvil, factor de crecimiento 6
  • 7. ¿Qué es un Modelo? • Estructura para dar razón y abstraer una realidad • Ejemplo: 7 Asignaturas Carrera Estudiantes Estudia Plan de Estudios Inscrita
  • 8. ¿Qué es un algoritmo? • Procedimiento detallado para resolver un problema en pasos y en un tiempo finito. • Se especifican en base a operaciones básicas que controlan las variables y el flujo del algoritmo • El algoritmo lleva desde un estado inicial a un estado final • El algoritmo recibe Entradas y entrega Salidas 8
  • 9. ¿Cómo desarrollar un algoritmo? • Imaginación • No reinventar la rueda • Dividir para conquistar • Para ser efectivo se requiere practicar constantemente • El diseño de algoritmos es una rama de la Ciencia de la Computación 9
  • 10. ¿Cómo se describe un algoritmo? • Lenguaje natural • Pseudo código • Lenguaje de programación • La precisión es importante – Un algoritmo no puede ser descrito de forma ambigua: • Todos tienen que entender lo mismo (incluido el computador!) 10
  • 11. Llamada telefónica • Se desea conceptualizar el problema de efectuar una llamada telefónica en un teléfono público que recibe monedas de $10, $50 y $100. El costo mínimo de la llamada es de $100 por 5 minutos. El proceso se inicia desde que se levanta el auricular y finaliza cuando se cuelga. 11
  • 12. Árboles de decisión • Herramienta útil para describir algoritmos que involucran gran cantidad de decisiones 12
  • 13. Conceptos Básicos de Algoritmos • La forma en que se ejecutan las operaciones básicas en un computador, es similar a lo que ocurre en nuestro cerebro. • Por ejemplo, para sumar dos valores: – Primero debemos pedirle a alguien que nos diga el primer valor. – Luego de que conocemos este valor, debemos almacenarlo (para recordarlo después) en una neurona (Suponemos que un valor se puede almacenar en una neurona). • Ya conocemos el primer valor y está almacenado en nuestro cerebro.
  • 14. Conceptos Básicos de Algoritmos • Ahora debemos pedir el segundo valor. • Una vez conocido, lo almacenamos en otra neurona distinta de la anterior. ¿ Por qué? • Ahora que conocemos los dos valores procedemos a sumarlos, y dicho resultado lo almacenamos en otra neurona distinta de las anteriores. • Por último, le decimos el resultado a la persona que nos entrego los números.
  • 15. Conceptos Básicos de Algoritmos – De lo anterior, al menos necesitamos 3 neuronas para sumar dos números. – Le pedimos explícitamente que nos dijeran dichos valores. – Le asignamos dichos valores a las neuronas – La suma la realizó nuestro cerebro de forma mecánica. Note que no existen detalles de la operaciones básicas (*,/,+, -). – Finalmente se da el resultado
  • 16. Conceptos Básicos de Algoritmos • Algoritmo para sumar dos números: – Definimos tres neuronas – Pedimos el primer valor – Almacenamos ese valor en la neurona 1. – Pedimos el segundo valor – Almacenamos ese valor en la neurona 2. – Almacenamos la suma de las neuronas 1 y 2 en la neurona 3 – Entregamos el resultado que se encuentra en la neurona 3.
  • 17. Conceptos Básicos de Algoritmos • Sin embargo, en los lenguajes no se pueden usar neuronas, pero podemos definir variables (Recuerde que las variables pueden tomar cualquier valor) • En lugar de usar neurona 1 y neurona 2, se utilizan espacios de memoria que llamaremos “var 1” y “var 2”, y así sucesivamente. También las podemos llamar “x1” y “x2” ó “x” e “y” ….
  • 18. Conceptos Básicos de Algoritmos Ejercicio: Cree un algoritmo que multiplique tres números. • Algoritmo para multiplicar tres números: – Definimos cuatro variables – Pedimos el primer valor – Almacenamos ese valor en var 1. – Pedimos el segundo valor – Almacenamos ese valor en var 2. – Pedimos el tercer valor – Almacenamos ese valor en var 3. – Almacenamos la multiplicación de las variables en var 4 – Entregamos el resultado que se encuentra en var 4.
  • 19. Conceptos Básicos de Algoritmos • La manera en que hemos detallado nuestros dos algoritmos se llama PSEUDO-CÓDIGO. Y este pseudo-código fue escrito en lenguaje natural. • Otra manera de poder detallar nuestros algoritmos es a través de los diagrama de flujo. Un diagrama de flujo es una representación simbólica de la lógica del algoritmo.
  • 20. Diagrama de Fujo • Nomenclatura: – Inicio del algoritmo – Término del algoritmo – Impresión de mensajes – Receptor de datos – Operación de datos – Bifurcación (Decisión) – Definición de variables – Conector Inicio Termino ? F V
  • 21. Diagrama de Flujo y Pseudo-Código Inicio Escribir “Mensaje 1” Fin Leer var1,x, y a = 3 * x + y b = a / var1 Entero var1, x , y Real a, b Si a > b VF Inicio de Algoritmo Definición de variables Impresión de mensajes Lectura de mensajes Transformación de datos Operaciones sobre los datos Bifurcación en la ejecución de instrucciones Conector Fin de algoritmo DIAGRAMA DE FLUJO NOMENCLATURA PSEUDO-CÓDIGO Inicio Variables Entero var1, x, y Real a, b Escribir (“Mensaje 1”) Leer (var1, x, y) a = 3 * x + y b = a / var1 Si a > b Entonces Inicio Instrucciones Fin Sino Inicio Instrucciones Fin Fin
  • 22. Diagrama de Fujo para el algoritmo que suma dos valores Inicio Termino var1,var,var3 Ingrese el primer valor var 1 Ingrese el segundo valor var 2 var3=var1+var2 El resultado es : var3 Se pide ingresar el segundo valor Se pide ingresar el primer valor Se asocia el número ingresado a var1 Se definen las variables var1, var2, var3 Se asocia el número ingresado a var1 Se asigna el resultado de la suma entre var1 y var2 a var3 Se muestra el resultado
  • 23. Diagrama de Flujo • Ejercicio: Cree el diagrama de flujo para el algoritmo que multiplica tres números y muestre el resultado • Ejercicio: Cree el diagrama de flujo para que divida dos números y muestre el resultado
  • 25. Algoritmos • Ejercicio. Usando diagrama de Flujo. Cree un algoritmos donde una persona ingrese su edad y muestre por pantalla si es mayor de edad.
  • 27. Algoritmos – Del ejemplo anterior podemos observar que la bifurcación permite seguir el flujo adecuado dada una condición. – Las condiciones que se evalúan en las bifurcaciones son siempre verdaderas o falsas. – Por ende, hay que colocar las instrucciones adecuadas a los valores que se evaluan en las bifurcaciones.
  • 28. Algoritmos – También es posible que existan bifurcaciones contiguas. – En las bifurcaciones o estructura de control, se evalúan proposiciones utilizando: • Operadores lógicos • Operadores aritméticos • Operadores Relacionales
  • 29. Algoritmos • Operadores Aritméticos: – * multiplicación – / División – + Suma – - Resta – % Módulo Ejemplo de módulo (o residuo de la división): 5%2 es 1 4%2 es 0
  • 30. Algoritmos • Operadores Lógicos: – Y, And, && Y V F V V F F F F
  • 31. Algoritmos • Operadores Lógicos: – O, Or, || O V F V V V F V F
  • 33. Algoritmos • Analicemos los siguientes casos var1=2, var2=0,var3=4 var4=(var1*var1)/var3 var4>=1 && var1!=0 Si No var4=1 Si
  • 34. Algoritmos • Analicemos los siguientes casos var1=2, var2=0,var3=4 var4=(var3%var1) (var4!=0 || var2>0) && (var3==4) Si No var4=0 No
  • 35. Algoritmos • Analicemos los siguientes casos var1=2, var4=1,var3=4 var4=(var4+var1) !(var1 && (var4>=var1)) Si No var4=3 No Cualquier proposición distinta de cero Es VERDADERO
  • 36. Algoritmos • Es importante notar que existen prioridades entre los operadores. Por lo tanto deben utilizarse paréntesis en los casos que correspondan
  • 37. Algoritmos • Ejercicio. Crear un algoritmo que muestre en forma ordenada tres número enteros ingresados desde teclado.
  • 39. Diagrama de Flujo  Ejercicio: Cree el diagrama de flujo para el algoritmo que multiplica tres números y muestre el resultado  Ejercicio: Cree el diagrama de flujo para que divida dos números y muestre el resultado  Ejercicio: Cree el diagrama de flujo para que resuelva la ecuación de primer grado y muestre el resultado  Ejercicio: Cree el diagrama de flujo para que resuelva la ecuación de segundo grado, para valores reales e imaginarios, y muestre el resultado  Ejercicio: Cree el diagrama de flujo permita sumar tres números ingresados por teclado y muestre el resultado  Ejercicio: Cree el diagrama de flujo que permita sumar “n” números y muestre el resultado. El valor de “n” debe ser ingresado por teclado al igual que los números que se sumarán.
  • 40. Algoritmos • Repaso de Bifurcaciones • Aprendizajes Esperados – Conceptos de Ciclos – Cuándo se aplican los ciclos
  • 41. Algoritmos • Ejercicio. Crear un algoritmo que muestre en forma ordenada tres número enteros ingresados desde teclado
  • 43. • Concepto de Ciclo – Un ciclo es la repetición de un conjunto de instrucciones. Dicho ciclo culmina cuando se cumple una condición de termino. • Cuándo se aplican los Ciclos – Se aplican cuando queremos ejecutar un conjunto de instrucciones varias veces. Algoritmos
  • 45. Algoritmos • Ejemplo: Crear un algoritmo que sume N elementos y muestre el resultado
  • 46. N var cont suma 02 11 122 33
  • 47. Algoritmos • Ejemplo: Crear un algoritmo que encuentre el número mayor de N números enteros positivos ingresados por teclado.
  • 48. = -1
  • 49. Algoritmos • Ejemplo: Crear un algoritmo que calcule ∑ n i 1