1. República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación
Unidad Educativa de Talentos Deportivos Táchira
San Cristóbal – Estado Táchira
DESARROLLO DE ALGORITMOS
UNIDAD I – COMPUTACIÓN
Conceptos Básicos de Algoritmos
Docente: Pablo Contramaestre
Octubre 2012
2. Introducción
La principal razón para que las personas aprendan lenguajes y
técnicas de
programación es utilizar el computador como una herramienta para
resolver problemas.
La resolución de un problema exige al menos los siguientes pasos:
1.- Definición o análisis del problema.
2.- Diseño del algoritmo.
3.- Transformación del algoritmo en un programa.
4.- Ejecución y validación del programa
3. Definición de problema
Los problemas son una serie de inquietudes que se plantean para
ser resueltas. La naturaleza de los problemas varía con el contexto
en que se presenta: problemas matemáticos, químicos, filosóficos,
etc.
Es importante que al tratar un problema se tenga una descripción
simple y precisa del mismo, de lo contrario resultaría complejo
tratar de simular, o programar su solución en un computador.
Un programador es una persona que resuelve problemas, y para
llegar a ser un programador eficaz se necesita aprender a resolver
problemas de un modo riguroso y sistemático.
Diseño
Problema Análisis Programa
algoritmo
4. Algoritmo y sus caracteristicas
Serie de pasos lógicos y ordenados con los cuales le damos solución a un
problema determinado o a un objetivo específico. Sin algoritmos no puede
existir un programa. Los algoritmos son independientes tanto del lenguaje de
programación como del computador que los ejecuta.
La palabra “Algoritmo” viene de un matemático persa que vivió en el siglo IX
llamado Mohammed Al-Khowârizî, cuyo apellido traducido al latín es
Algorismus.
Características de un algoritmo:
• Preciso: indicar el orden de realización de las instrucciones.
• Definido: si se sigue el algoritmo dos veces, se debe obtener el mismo resultado.
• Finito: siempre debe terminar despues de un número finito de pasos.
Ejemplo: Obtener el área de un rectángulo.
1. Obtener la medida de la base del rectángulo
2. Obtener la medida de la altura del rectángulo
3. Multiplicar la medida de la base por la medida de la altura.
5. Ejemplo de Algoritmo
Ejemplo tradicional de un algoritmo: Cambiar la llanta pinchada de un carro .
INICIO
1. Buscar herramientas, llanta de repuesto y triángulo de señalización
2. Ubicar el triángulo en el lugar adecuado
3. Ir al lugar de la llanta averiada
4. Sacar las tuercas
5. Colocar el gato
6. Levantar el carro
7. Sacar la llanta
8. Colocar la llanta de Repuesto
9. Colocar las tuercas
10. Apretar las tuercas
11. Guardar las herramientas
FIN
6. Fases de un algoritmo
Fase de Análisis: consiste en el estudio detallado del problema con el fin
de obtener una serie de documentos (especificación) en los cuales quedan
totalmente definido el proceso a seguir en la automatización
Diseño: consiste en la realización del algoritmo que resuelve el problema
de acuerdo a la especificación dada en la fase anterior. El algoritmo se
representa mediante pseudocódigo.
Codificación: consiste en la traducción del algoritmo a un programa escrito
en un lenguaje de programación
Compilación/Interpretación: consiste en obtener el programa ejecutable u
objeto a partir del programa fuente
Prueba: consiste en determinar si el programa funciona correctamente y
realiza las operaciones que esperamos de él.
7. Clasificación de los Algoritmos
Algoritmos para ser ejecutados por personas:
Para que un algoritmo sea ejecutado por una persona, debe estar escrito
de tal manera que esta persona lo entienda claramente
Normas:
• Debe escribirse en el idioma de la persona que realizará el algoritmo
• Debe enumerar cada uno de los pasos a realizar en un orden lógico.
• Debe utilizar palabras que comprenda claramente la persona que realizará
el algoritmo.
Ejemplos:
Las recetas de cocina, los manuales de funcionamiento, itinerarios, guía de
matricula etc.
8. Clasificación de los Algoritmos
Algoritmos para ser ejecutados por computadores:
Los pasos para la solución de un problema utilizando como herramienta la
computadora son:
1. Diseño del algoritmo que describa la secuencia ordenada de pasos, que
conducen a la solución de un problema dado(análisis del problema y
desarrollo del algoritmo).
2. Expresar el algoritmo como un programa en un lenguaje de
programación adecuado( fase de codificación). La actividad de expresar un
algoritmo en forma de programa se denomina programación.
3. Ejecución y validación de programa por la computadora.
9. Definición de pseudocódigo
Serie de instrucciones abstractas que resuelven un problema. Es una
herramienta útil para el seguimiento de la lógica de un algoritmo, facilita la
transcripción a un lenguaje de programación. Con el pseudocódigo
representamos los pasos de un algoritmo a través de palabras, utilizando
una nomenclatura estandarizada para el significado de cada paso.
Ej. Obtener el área de un rectángulo.
1. Inicio
2. Leer BASE
3. Leer ALTURA
4. AREA = BASE * ALTURA
5. Escribir AREA
6. Fin
10. Lenguajes de programación
Lenguaje: conjunto de reglas y convenciones que se utilizan para
comunicar información.
Lenguaje de Programación: es un lenguaje que permite la traducción de
un algoritmo para que sea entendible por el computador. Son los lenguajes
utilizados para escribir programas de computadores.
Tipos de Lenguaje de Programación:
* Lenguaje de Máquina
* Lenguaje de Bajo Nivel (Ensamblador)
* Lenguaje de Alto Nivel
11. Lenguaje de máquina
Son aquellos que están escritos en lenguaje directamente inteligibles por la
máquina, ya que sus instrucciones son cadenas binarias (0’s ,1’s) que
especifican una operación.
- Las instrucciones en lenguaje máquina dependen del Hardware de la
computadora, difiere de una PC a otra.
- La ventaja de los lenguajes máquina es que ofrecen mayor velocidad de
ejecución.
- Existen algunas desventajas: dificultad y lentitud en la codificación, poca
fiabilidad, los programas no son portables.
11001010 00010111 11110101 00101011
00010111 11110101 00101011 00101011
11001010 00010111 11110101 00101011
11001010 11110101 00101011 00101011
12. Lenguaje de bajo nivel
Son lenguajes que permiten escribir programas con instrucciones similares
al lenguaje humano.
Son más fáciles de utilizar que los lenguajes de máquina, pero éstos
también dependen de la máquina en particular.
El mejor ejemplo es el lenguaje ensamblador
Un programa escrito en lenguaje ensamblador requiere una fase de
traducción
Entre las desventajas tenemos: que este lenguaje depende de la máquina
y demanda una mayor exigencia para los programadores, ya que deben
conocer tanto las técnicas de programación así como el interior de la
máquina.
14. Lenguaje de Alto Nivel
- Son los más utilizados por los programadores
- Son independientes de la máquina
- Los programas escritos en estos lenguajes son portables
- Aumento de la ocupación de la memoria
- Las estructuras de los programas se basan en reglas sintácticas
Ejemplos: C, C++, Pascal, Ada, Prolog, Smalltalk, Visual Basic, Delphi,
Java,...
Ejemplo de lenguaje de alto nivel
#include <stdio.h>
int main(void)
{
printf("Hola, Mundon");
}
15. Ejemplos de Algoritmos
ALGORITMO PARA CAMBIAR UNA BOMBILLA QUEMADA
INICIO
1. Buscar una bombilla nueva
2. Buscar una escalera o similar
3. Ir al lugar de la bombilla quemada
4. Instalar la escalera
5. Subir a la escalera
6. Sacar la bombilla quemada
7. Colocar la nueva bombilla
8. Ajustar la bombilla
9. Bajarse de la escalera
10. Probar la bombilla instalada
11. Retirar la escalera
12. Votar la bombilla quemada
13. Guardar la escalera
FIN
16. Ejemplos de Algoritmos
ALGORITMO PASOS PARA IR AL CINE
INICIO
1. Revisar la cartelera de cine
2. Seleccionar la película de mi interés
3. Seleccionar el horario de mi interés
4. A la hora adecuada, desplazarme hasta el cine
5. Hacer la fila para comprar boletos
6. Comprar los boletos
7. Hacer la fila para entrada a la sala
8. Entrar a la sala
9. Buscar mi puesto asignado
10. Ubicarme en el puesto asignado
11. Disfrutar de la película
FIN
17. Gracias por su atención
Correo: pcontramaestre@gmail.com
Twitter: @pcontramaestre