PRINCIPIOS DE
ALGORITMOS
Jhon Paul Anampa García
SEMANA 1
Algoritmo para
cambiar la llanta de un auto
• Aflojar los pernos
• Levantar el auto con la gata
• Sacar los pernos de la llanta
• Quitar la llanta
• Colocar la llanta de repuesto
• Colocar y apretar los pernos
• Bajar la gata
Ejemplo de algoritmo
Algoritmo: características
Preciso
Cada paso
debe estar
especificado
con claridad,
sin
ambigüedad
Finito
Al realizar
seguimiento
del algoritmo,
debe finalizar,
es decir, debe
tener un
número finito
de pasos.
Entrada
Se muestran 6 características.
Las 5 primeras fueron planteadas por Donald Knuth.
Salida
Un algoritmo
tiene una o
más salidas.
Eficacia
Todas las
operaciones
a realizar
deben ser
suficienteme
nte básicas.
Definido
Si se sigue
varias veces el
algoritmo,
ingresando los
mismos datos,
se debe
obtener los
mismos
resultados.
El algoritmo
tiene cero o
más entradas.
Eficiencia y Eficacia de un algoritmo
Algoritmo eficiente Algoritmo eficaz
Cuando logra
alcanzar el objetivo
empleando la menor
cantidad de recursos,
pasos y esfuerzos
humano.
Cuando alcanza o
logra el objetivo
planteado de forma
prioritaria.
Un algoritmo puede ser eficaz al resolver un problema, pero no eficiente pues emplea demasiados recursos,
lo ideal es obtener un algoritmo que sea conjuntamente eficiente y eficaz.
Fortaleza o robustez de un algoritmo
• Un algoritmo debe contemplar diversos escenarios de
un problema a resolver.
• Un algoritmo robusto controla los giros inesperados en
un problema.
• En conclusión, es flexible a cambios.
Algoritmos
• Sirven para resolver un tipo de
problema específico.
• Son consecuencias de pasos
concretos.
• Requiere la definición de la
entrada y la salida.
• Adecuados para ser ejecutados
por un computador
Análisis del problema
Revisar los detalles del
problema hasta
comprender la tarea que
se desea resolver.
Diseño del algoritmo
Descripción ordenada de la
secuencia de pasos (sin
ambiguedades) que conducen a
la solución de problemas dado
(Análisis del problema y
desarrollo del algoritmo).
Realizar prueba de escritorio.
Corregir errores y volver a
realizar pruebas.
Implementación del
algoritmo
Expresar el algoritmo como un
programa en el lenguaje de
programación adecuado.
Ejecución y validación del
programa de computadora.
Fases en el desarrollo de un algoritmo
Consiste en la metodología aplicada para la resolución de problemas.
La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida.
Ejemplo: La receta de un postre.
Análisis del problema Diseño del algoritmo
Implementación del
algoritmo
Fases en el desarrollo de un algoritmo
La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida.
Ejemplo: La receta de un cebiche.
Consiste en la metodología aplicada para la resolución de problemas.
Algoritmos presentes en la vida diaria
Entradas Proceso Salida
¿Qué hacer para ver una película Star Wars?
Algoritmo general
Ir al cine Comprar la entrada Ver la película Regresar a casa
Algoritmo: refinar el anterior
Agregar más pasos importantes,
especificar algunos, etc.
Algoritmos de la vida cotidiano
Describa los
pasos para cruzar la calle.
Describa los pasos
para cambiar un foco quemado.
Describa los pasos
para llevar a un(a) amigo(a) al cine.
Describa los pasos para
cambiar la llanta de una bicicleta.
Resumiendo
• Fase del desarrollo de un algoritmo:
..................., ……………… y …………..
• Algoritmo: secuencia ordenada de ……………..
• Características del algoritmo: …………………..,
………………, ……………, ……………………, ………………..
Y ………………
Complete:
Análisis del problema Diseño del algoritmo
Implementación del
algoritmo
Fases en el desarrollo de un algoritmo
La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida.
Ejemplo: La receta de un cebiche.
Consiste en la metodología aplicada para la resolución de problemas.
Estructura de un Algoritmo
Entrada Proceso Salida
Es la introducción
de datos para ser
transformados
Es el conjunto de
operaciones a
realizar para dar
solución al
problema.
Son los resultados
obtenidos a través
del proceso.
Solucionar Problemas
Entradas
Procesador
Salidas
Algoritmo
Instrucciones
Es la forma de representar la secuencia lógica de ejecución de
instrucciones.
Esta puede ser a través de:
1) Diagramas de flujo
2) Pseudocódigo
Diseño de algoritmos
Alternativas de solución
PSEUDOCÓDIGO
Pseudocódigo
Es un lenguaje de especificación (descripción) de algoritmos . El pseudocódigo tiene
que traducirse posteriormente a un lenguaje de programación.
Es empleado para representar la solución de un algoritmo empleando lenguaje natural
escrito estableciendo la secuencia de pasos sin imprecisiones y de manera clara.
Ventajas:
• Se enfoca en la lógica del programa y no en las reglas de un lenguaje específico.
• Se puede traducir fácilmente a lenguajes estructurados (Pascal, C, C++).
Es empleado para representar
la solución de un algoritmo
empleando figuras
geométricas, donde cada una
de ellas representa en
particular una tarea específica
que realizar.
Diagrama de
Flujo Proceso sumas
Definir n1, n2, suma Com…
‘Ingrese dos números’
n1, n2
Suma ← n1 + n2
‘Suma: ’ ,suma
FinProceso
←
←
←
←
←
←
Diagrama de Flujo
Diagrama de flujo Pseudocódigo
Símbolos Significado Palabras reservadas
Inicio / Fin Inicio / Fin
Lectura / Escritura Leer / Escribir
Proceso + - * / ←
Selectiva Si – entonces
Proceso repetitivo Mientras / desde / repetir
Dirección o flujo
Expresa los algoritmos
como
Lenguajes de Programación
Programación
Algoritmo Instrucción
Programa
Lenguaje de
Programación
Lenguaje de
Máquina
Lenguaje de
Bajo Nivel
Lenguaje de
Alto Nivel
Se expresa
en forma de
Se escribe con un
Se clasifica como:
Son pasos que se
ejecutan en un
Lenguajes de Programación
• Programación: Actividad que
consiste en expresar un
algoritmo en forma de
programa.
• Instrucción: Es cada uno de los
pasos que se ejecutan en el
programa.
Lenguajes de Programación
Principales lenguajes utilizados en la actualidad:
• Lenguaje de máquina: combinación de ceros (0) y unos (1) que crean
instrucciones entendibles por el hardware para lleva a cabo operaciones.
• Lenguaje de bajo nivel: entre ellos es lenguaje ensamblador, un intermedio
entre el lenguaje máquina y el natural. Usa abreviaturas de letras y números
que son nemotécnicas.
• Lenguaje de alto nivel: lenguajes más cercanos a nuestro lenguaje natural.
Por ejemplo: Java
Tipos de datos
Tipos de datos
Caracteres
Caracteres que
reconoce el
computador
Ejemplo: a, v, 3, $,
ñ
Numérico
Enteros (sin
decimales)
Ejemplo: 1, 4, -2, 0
Reales (con
decimales)
Ejemplo: 1.3, 34,1
Lógicos
Contiene valores
lógicos
Ejemplo: verdadero
y falso
Variable
Permite almacenar de forma temporal un valor y el cual puede cambiar durante la
ejecución del algoritmo o programa.
Toda variable tiene un nombre que sirve para identificarla.
Ejemplo:
prom <- (calf1+calf2+calf3)/3´
* Las variables son: prom, calf1, calf2, calf3.
Declarando una variable
Declaración de variables: Estas deben ser declaradas previamente, indicando de
cada una de ellas:
• Nombre
• Tipo de dato
Ejemplo:
• Edad
• Precio
¿Qué tipo de dato son las variables?
• Edad: Entero
• Precio: Real
• Altura: Real
Variable
• Posición de memoria que posee valor, tipo, nombre (identificador), tamaño.
• Identificador de variable: inicia con letra minúscula, sigue con letra, dígito,
guion bajo ( _ ).
• Si el identificador tiene más de una palabra, la primera letra a partir de la
segunda palabra se escribirá con mayúscula.
• Identificador debe ser significativo.
• LEER
• ESCRIBIR
• PROCESO
• SI
• PARA
• MIENTRAS
• SEGÚN
• HACER
• SINO
• REAL
Las palabras reservadas
Son aquellas palabras que no podemos utilizar para
nombrar a una variable.
Estas palabras le sirven al computador para interpretar
lo que deseamos codificar por ejemplo:
• Si queremos ingresar el valor de una variable, antes del
nombre de la variable colocamos la palabra reservada LEER
Leer nota
• Si queremos mostrar un mensaje colocamos la palabra
ESCRIBIR antes del mensaje
Escribir “hola”
Operadores
Operación Operador en PseInt Ejemplo
Adición + 10 + 2 = 12
Sustracción - 10 - 2 = 8
Multiplicación * 10 * 2 = 20
División / 10 / 2 = 5
Potencia ^ 10 ^ 2 = 100
Raíz
RAIZ
RC
RAIZ(100) = 10
Residuo
%
mod
10 % 2 = 0
10 mod 3 = 1
Parte entera TRUNC
TRUNC(10 / 3) = 3
TRUNC(2.34) = 2
Además, PseInt nos
permite definir un
número trascendental
muy usado que es Pi,
para usarlo solo
debemos escribir PI:
Ejemplo: Si queremos
calcular el doble de PI
colocamos: 2*PI
Operador de asignación
Para asignarle un valor a una variable (que la variable almacene el
valor que le indicamos) no se emplea el signo “=”, sino la combinación
de: “<“ y “-”
nombre <- “Utp”
edad <- 25
Ejemplo 1
Entrada: ingresamos dos números
Datos: a, b
Proceso: sumamos los números y el
resultado se guarda en suma
suma=a+b
Salida: mostramos el valor en pantalla
Resultado: suma
Proceso Operadores
Definir a,b, suma Como Real
Escribir "Ingrese dos
números"
Leer a, b
suma <- a+b
Escribir "La suma es ", suma
FinProceso
Ejercicio
propuesto
Escriba seudocódigo para calcular el promedio de
tres números
Resumiendo
• Para plantear la solución al problema debe considerarse
tres etapas: Entrada, ………… y ……………
• Un algoritmo se puede representar de manera escrita
mediante: ………………………………….……..
• Un algoritmo se puede representar de manera gráfica
mediante: …………………………………….……
Complete:
Resumiendo
• ¿El seudocódigo funciona en la computadora?
• ¿Cómo denominamos a la actividad que consiste en
expresar un algoritmo en forma de programa?
Resumiendo
Gracias

Semana 1 - Principios de Algoritmos.pdf

  • 1.
    PRINCIPIOS DE ALGORITMOS Jhon PaulAnampa García SEMANA 1
  • 2.
    Algoritmo para cambiar lallanta de un auto • Aflojar los pernos • Levantar el auto con la gata • Sacar los pernos de la llanta • Quitar la llanta • Colocar la llanta de repuesto • Colocar y apretar los pernos • Bajar la gata Ejemplo de algoritmo
  • 3.
    Algoritmo: características Preciso Cada paso debeestar especificado con claridad, sin ambigüedad Finito Al realizar seguimiento del algoritmo, debe finalizar, es decir, debe tener un número finito de pasos. Entrada Se muestran 6 características. Las 5 primeras fueron planteadas por Donald Knuth. Salida Un algoritmo tiene una o más salidas. Eficacia Todas las operaciones a realizar deben ser suficienteme nte básicas. Definido Si se sigue varias veces el algoritmo, ingresando los mismos datos, se debe obtener los mismos resultados. El algoritmo tiene cero o más entradas.
  • 4.
    Eficiencia y Eficaciade un algoritmo Algoritmo eficiente Algoritmo eficaz Cuando logra alcanzar el objetivo empleando la menor cantidad de recursos, pasos y esfuerzos humano. Cuando alcanza o logra el objetivo planteado de forma prioritaria. Un algoritmo puede ser eficaz al resolver un problema, pero no eficiente pues emplea demasiados recursos, lo ideal es obtener un algoritmo que sea conjuntamente eficiente y eficaz.
  • 5.
    Fortaleza o robustezde un algoritmo • Un algoritmo debe contemplar diversos escenarios de un problema a resolver. • Un algoritmo robusto controla los giros inesperados en un problema. • En conclusión, es flexible a cambios.
  • 6.
    Algoritmos • Sirven pararesolver un tipo de problema específico. • Son consecuencias de pasos concretos. • Requiere la definición de la entrada y la salida. • Adecuados para ser ejecutados por un computador
  • 7.
    Análisis del problema Revisarlos detalles del problema hasta comprender la tarea que se desea resolver. Diseño del algoritmo Descripción ordenada de la secuencia de pasos (sin ambiguedades) que conducen a la solución de problemas dado (Análisis del problema y desarrollo del algoritmo). Realizar prueba de escritorio. Corregir errores y volver a realizar pruebas. Implementación del algoritmo Expresar el algoritmo como un programa en el lenguaje de programación adecuado. Ejecución y validación del programa de computadora. Fases en el desarrollo de un algoritmo Consiste en la metodología aplicada para la resolución de problemas. La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida. Ejemplo: La receta de un postre.
  • 8.
    Análisis del problemaDiseño del algoritmo Implementación del algoritmo Fases en el desarrollo de un algoritmo La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida. Ejemplo: La receta de un cebiche. Consiste en la metodología aplicada para la resolución de problemas.
  • 9.
    Algoritmos presentes enla vida diaria Entradas Proceso Salida
  • 10.
    ¿Qué hacer paraver una película Star Wars? Algoritmo general Ir al cine Comprar la entrada Ver la película Regresar a casa
  • 11.
    Algoritmo: refinar elanterior Agregar más pasos importantes, especificar algunos, etc.
  • 12.
    Algoritmos de lavida cotidiano Describa los pasos para cruzar la calle. Describa los pasos para cambiar un foco quemado. Describa los pasos para llevar a un(a) amigo(a) al cine. Describa los pasos para cambiar la llanta de una bicicleta.
  • 13.
    Resumiendo • Fase deldesarrollo de un algoritmo: ..................., ……………… y ………….. • Algoritmo: secuencia ordenada de …………….. • Características del algoritmo: ………………….., ………………, ……………, ……………………, ……………….. Y ……………… Complete:
  • 14.
    Análisis del problemaDiseño del algoritmo Implementación del algoritmo Fases en el desarrollo de un algoritmo La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida. Ejemplo: La receta de un cebiche. Consiste en la metodología aplicada para la resolución de problemas.
  • 15.
    Estructura de unAlgoritmo Entrada Proceso Salida Es la introducción de datos para ser transformados Es el conjunto de operaciones a realizar para dar solución al problema. Son los resultados obtenidos a través del proceso.
  • 16.
  • 17.
    Es la formade representar la secuencia lógica de ejecución de instrucciones. Esta puede ser a través de: 1) Diagramas de flujo 2) Pseudocódigo Diseño de algoritmos Alternativas de solución
  • 18.
    PSEUDOCÓDIGO Pseudocódigo Es un lenguajede especificación (descripción) de algoritmos . El pseudocódigo tiene que traducirse posteriormente a un lenguaje de programación. Es empleado para representar la solución de un algoritmo empleando lenguaje natural escrito estableciendo la secuencia de pasos sin imprecisiones y de manera clara. Ventajas: • Se enfoca en la lógica del programa y no en las reglas de un lenguaje específico. • Se puede traducir fácilmente a lenguajes estructurados (Pascal, C, C++).
  • 19.
    Es empleado pararepresentar la solución de un algoritmo empleando figuras geométricas, donde cada una de ellas representa en particular una tarea específica que realizar. Diagrama de Flujo Proceso sumas Definir n1, n2, suma Com… ‘Ingrese dos números’ n1, n2 Suma ← n1 + n2 ‘Suma: ’ ,suma FinProceso ← ← ← ← ← ←
  • 20.
    Diagrama de Flujo Diagramade flujo Pseudocódigo Símbolos Significado Palabras reservadas Inicio / Fin Inicio / Fin Lectura / Escritura Leer / Escribir Proceso + - * / ← Selectiva Si – entonces Proceso repetitivo Mientras / desde / repetir Dirección o flujo
  • 21.
    Expresa los algoritmos como Lenguajesde Programación Programación Algoritmo Instrucción Programa Lenguaje de Programación Lenguaje de Máquina Lenguaje de Bajo Nivel Lenguaje de Alto Nivel Se expresa en forma de Se escribe con un Se clasifica como: Son pasos que se ejecutan en un
  • 22.
    Lenguajes de Programación •Programación: Actividad que consiste en expresar un algoritmo en forma de programa. • Instrucción: Es cada uno de los pasos que se ejecutan en el programa.
  • 23.
    Lenguajes de Programación Principaleslenguajes utilizados en la actualidad: • Lenguaje de máquina: combinación de ceros (0) y unos (1) que crean instrucciones entendibles por el hardware para lleva a cabo operaciones. • Lenguaje de bajo nivel: entre ellos es lenguaje ensamblador, un intermedio entre el lenguaje máquina y el natural. Usa abreviaturas de letras y números que son nemotécnicas. • Lenguaje de alto nivel: lenguajes más cercanos a nuestro lenguaje natural. Por ejemplo: Java
  • 24.
    Tipos de datos Tiposde datos Caracteres Caracteres que reconoce el computador Ejemplo: a, v, 3, $, ñ Numérico Enteros (sin decimales) Ejemplo: 1, 4, -2, 0 Reales (con decimales) Ejemplo: 1.3, 34,1 Lógicos Contiene valores lógicos Ejemplo: verdadero y falso
  • 25.
    Variable Permite almacenar deforma temporal un valor y el cual puede cambiar durante la ejecución del algoritmo o programa. Toda variable tiene un nombre que sirve para identificarla. Ejemplo: prom <- (calf1+calf2+calf3)/3´ * Las variables son: prom, calf1, calf2, calf3.
  • 26.
    Declarando una variable Declaraciónde variables: Estas deben ser declaradas previamente, indicando de cada una de ellas: • Nombre • Tipo de dato Ejemplo: • Edad • Precio
  • 27.
    ¿Qué tipo dedato son las variables? • Edad: Entero • Precio: Real • Altura: Real
  • 28.
    Variable • Posición dememoria que posee valor, tipo, nombre (identificador), tamaño. • Identificador de variable: inicia con letra minúscula, sigue con letra, dígito, guion bajo ( _ ). • Si el identificador tiene más de una palabra, la primera letra a partir de la segunda palabra se escribirá con mayúscula. • Identificador debe ser significativo.
  • 29.
    • LEER • ESCRIBIR •PROCESO • SI • PARA • MIENTRAS • SEGÚN • HACER • SINO • REAL Las palabras reservadas Son aquellas palabras que no podemos utilizar para nombrar a una variable. Estas palabras le sirven al computador para interpretar lo que deseamos codificar por ejemplo: • Si queremos ingresar el valor de una variable, antes del nombre de la variable colocamos la palabra reservada LEER Leer nota • Si queremos mostrar un mensaje colocamos la palabra ESCRIBIR antes del mensaje Escribir “hola”
  • 30.
    Operadores Operación Operador enPseInt Ejemplo Adición + 10 + 2 = 12 Sustracción - 10 - 2 = 8 Multiplicación * 10 * 2 = 20 División / 10 / 2 = 5 Potencia ^ 10 ^ 2 = 100 Raíz RAIZ RC RAIZ(100) = 10 Residuo % mod 10 % 2 = 0 10 mod 3 = 1 Parte entera TRUNC TRUNC(10 / 3) = 3 TRUNC(2.34) = 2 Además, PseInt nos permite definir un número trascendental muy usado que es Pi, para usarlo solo debemos escribir PI: Ejemplo: Si queremos calcular el doble de PI colocamos: 2*PI
  • 31.
    Operador de asignación Paraasignarle un valor a una variable (que la variable almacene el valor que le indicamos) no se emplea el signo “=”, sino la combinación de: “<“ y “-” nombre <- “Utp” edad <- 25
  • 32.
    Ejemplo 1 Entrada: ingresamosdos números Datos: a, b Proceso: sumamos los números y el resultado se guarda en suma suma=a+b Salida: mostramos el valor en pantalla Resultado: suma Proceso Operadores Definir a,b, suma Como Real Escribir "Ingrese dos números" Leer a, b suma <- a+b Escribir "La suma es ", suma FinProceso
  • 33.
    Ejercicio propuesto Escriba seudocódigo paracalcular el promedio de tres números
  • 34.
    Resumiendo • Para plantearla solución al problema debe considerarse tres etapas: Entrada, ………… y …………… • Un algoritmo se puede representar de manera escrita mediante: ………………………………….…….. • Un algoritmo se puede representar de manera gráfica mediante: …………………………………….…… Complete:
  • 35.
    Resumiendo • ¿El seudocódigofunciona en la computadora? • ¿Cómo denominamos a la actividad que consiste en expresar un algoritmo en forma de programa? Resumiendo
  • 36.