Está en la página 1de 27

Algoritmia y Programación

Albeiro Aponte Vargas


Introducción a la algoritmia
Contenido
• Conceptos generales
– Computadora
– Programa
– Lenguajes de Programación
– Algoritmo
• El proceso de programación
• Estilos de programación
Conceptos Generales
• Computadora:
– Es uno de los productos más importantes del siglo
XX
– Son una herramienta esencial en muchas áreas:
industria, ciencia, educación, etc
– Las computadoras son inútiles sin una lista de
instrucciones a seguir (lenguajes de programación)
– Las computadoras son una herramienta para
resolver problemas
Conceptos Generales
• Computadora:
– Es un dispositivo electrónico-mecánico capaz de
ejecutar cálculos y tomar decisiones lógicas a
velocidades de millones y a veces miles de
millones de instrucciones por segundo

DATOS PROCESO INFORMACIÓN


Conceptos Generales
Conceptos Generales
• El programa
– Es el conjunto de instrucciones escritas de algún
lenguaje de programación y que ejecutadas
secuencialmente resuelven un problema
especifico

Programa = Estructura de datos +


Operaciones primitivas elementales +
Estructuras de control
Conceptos Generales
El lenguaje de programación
– Es el medio a través del cual le comunicamos a la
computadora la secuencia de instrucciones que
debe ejecutar para llevar a cabo actividades,
tareas o solución de problemas.
– Carácterísticas
• Alfabeto o conjunto de caracteres
– Alfabéticos
– Numéricos
– Especiales { [.], [,], [:], [#] y muchos otros }
Conceptos Generales
El lenguaje de programación
– Carácterísticas
• Vocabulario o léxico
– Es el conjunto de palabras reservadas en el lenguaje.
• Gramática
– Conjunto de lineamientos que se deben seguir para construir
frases, oraciones o instrucciones.
Conceptos Generales
Características de un buen programa
– Operatividad: mínimo que el programa funcione
– Legibilidad: estilo de programación
– Transportabilidad: Ejecutarse en cualquier entorno
sin hacer modificaciones
– Claridad: el programa debe indicar claramente lo
que el programador desea
– Modularidad: dividir el programa en un número
de módulos pequeños y fáciles. Cada módulo
debe realizar sólo una tarea específica
Algoritmo
• El objetivo fundamental de éste curso es
enseñar a resolver problemas mediante una
computadora. Para ello necesitamos estudiar
una metodología que nos ayudará en dicha
tarea
• El eje central de dicha metodología es el
concepto de algoritmo.
Algoritmo
• Un algoritmo es una serie de pasos ordenados que
describen el proceso que se debe seguir para dar
solución a un problema específico
• Un algoritmo es un conjunto finito de instrucciones que
especifican la secuencia de operaciones a realizar en
orden para resolver un problema
Algoritmo
• Sin algoritmo no puede existir programa
• Los algoritmos son independientes tanto del lenguaje
de programación en que se expresan como de la
computadora donde se ejecutan
• Un lenguaje de programación es un medio para
expresar un algoritmo y una computadora para
ejecutarlo
• La definición de un algoritmo debe describir 3 partes
– Entrada: 0 o más entradas
– Proceso: Pasos del algoritmo
– Salida: 1 o más salida
Algoritmo
Características
• Las características fundamentales son:
– Debe ser preciso
– Debe estar definido
– Debe ser finito
Algoritmo
• Ejercicios
– Elaborar un algoritmo para que guíe a una
persona normal a cambiar un foco fundido,
considerando que algún foco de nuestra casa está
fundido
– Supongamos que estamos tratando de entrenar a
un robot para que haga la tarea; en tal caso no
funcionará, tendremos que ser más específicos y
claros tomando en cuenta las capacidades
elementales del robot
Algoritmo
• Ejercicios
– Capacidades del robot
• Colocar la escalera
• Subir a la escalera
• Quitar el foco fundido
• Obtener foco de repuesto
• Colocar el foco de repuesto
• Bajar de la escalera
• Guardar la escalera
• Fin
El proceso de programación
Elaborar un programa implica llevar a cabo una
serie de pasos secuenciales y cronológicos, las
cuales son:
– Definición del problema
• Surge la necesidad de resolver algún problema
mediante la computadora
– Análisis del problema
• Entender en detalle el problema en cuestión
• Datos -> Proceso -> Información
El proceso de programación
• Diseño del programa
– Elaborar el algoritmo:
• Se diseña el algoritmo de la solución al problema
• Secuencia lógica y cronológica de los pasos que la
computadora debe seguir
– Técnicas como: pseudocódigo, diagramas de flujo, diagramas de
clase, etc.
– Prueba de escritorio
• Simular el funcionamiento del algoritmo con datos propios
respecto al problema
• Comprueban a mano los resultados a fin de validar la
correcta operación del algoritmo
El proceso de programación
• Codificación del programa
– Convertir las acciones del algoritmo en
instrucciones de computadora.
– El programa codificado debe editarse, compilarse,
probarse y depurarse
– Definir el tipo de lenguaje a utilizar
• Lenguajes de máquina
• Lenguajes de bajo nivel o ensamblador
• Lenguajes de alto nivel
El proceso de programación
• Codificación del programa
El proceso de programación
• Codificación del programa
– Los lenguajes ensamblador y de alto nivel deben ser traducidos
en programas objeto. Estos traductores se llaman Compiladores
e Interpretes
– Compiladores es un programa que se encargan de convertir las
instrucciones escritas en un lenguaje de programación en
instrucciones escritas en lenguaje máquina (0´s y 1´s) que la
computadora pueda entender
– Intérprete toma el programa fuente, lo traduce y a continuación
lo ejecuta.
El proceso de programación
Codificación del programa
• Fases de ejecución de un programa
El proceso de programación
• Implantación del programa
– Una vez que el programa está correcto, se instala y se
pone a funcionar.
– Debe ser supervisado continuamente para detectar
posibles cambios o ajustes que sea necesario
• Mantenimiento del programa
– Puede presentar errores
– Requerir cambios o ajustes en sus datos, procesos o
información
Paradigmas de programación
• Un paradigma define un conjunto de reglas,
patrones y estilos de programación que son
usados por un grupo de lenguajes de
programación
– Paradigma funcional
– Paradigma lógico
– Paradigma imperativo o procedimental
(estructurado)
– Paradigma orientado a objetos
Paradigma funcional
• El Programa es una Función (o un grupo de
funciones). Una Función puede llamar a otra
Función, o el resultado de una Función puede
ser usado como el argumento de otra Función
• La computación se realiza mediante la
evaluación de expresiones
• Lenguajes: LISP, Scheme, Haskell, Scala
Paradigma lógico
• La programación Lógica está basada en la
noción de relación, debido a que en la relación
es un concepto más general de una aplicación.
• Definición de reglas
• Unificación como elemento de computación
• Lenguajes: PROLOG,Mercury, Oz
Paradigma Imperativo
• Se dispone de un conjunto de operaciones
primitivas con una ejecución secuencial
• Es necesario diseñar una secuencia adecuada de
instrucciones
• Definición de procedimientos
• Definición de tipos de datos
• Chequeo de tipos en tiempo de compilación
• Cambio de estado de variables
• Ejemplos: PASCAL, ADA y C
Paradigma OO
• La programación orientada al objeto esta
basada en los objetos, clase, método, envió y
recepción de mensajes, herencia y
polimorfismo
• Objetos como abstracción de datos y
procedimientos
• Chequeo de tipos en tiempo de ejecución
• Ejemplos: C++, JAVA.