INTRODUCCIO
N A LOS
ALGORITMOS
Henry Mosquera 1
Henry Mosquera
2
SISTEMAS DE PROCESAMIENTO DE
INFORMACION
Computadora: Maquina o
aparato electrónico capaz de
ejecutar ope...
Henry Mosquera 3
SISTEMAS DE PROCESAMIENTO DE
INFORMACION
Ejemplos:
• El termostato.
• Arturito
• Nosotros mismos.
¿Cómo e...
Henry Mosquera
4
SISTEMAS DE PROCESAMIENTO DE
INFORMACION
HARDWARE: Conjunto de
componentes físicos de la
computadora (equ...
Henry Mosquera
5
GENERALIDADES SOBRE LOS
ALGORITMOS
Metodología de programación: Consiste en la metodología aplicada para ...
Henry Mosquera
6
La Programación de ordenadores comenzó como un arte, y aún
hoy en día mucha gente aprende a programar sól...
Henry Mosquera
7
Un problema es una situación donde se desea algo sin poder ver inmediatamente la
serie de acciones a segu...
Henry Mosquera
8
Un cambio de línea debe ocurrir sólo después de una palabra, a menos que el usuario
pida explícitamente l...
Henry Mosquera
9
Lo indicado aquí se centra en la enseñanza de la programación “en pequeño”. La
habilidad para hacer progr...
Henry Mosquera
10
ALGORITMOS
Algoritmo es un método descrito paso a paso para resolver algún
problema.
Se conocen desde la...
Henry Mosquera
11
Las características de un algoritmo son las siguientes:
• Precisión: Los pasos se enuncian con precisión...
Henry Mosquera
12
Aunque a veces el lenguaje común es adecuado para expresar un
algoritmo, los informáticos utilizan un ps...
Henry Mosquera
13
Entre las estrategias generales para resolver problemas se encuentra el diseño
descendente.
Consiste en ...
Henry Mosquera
14
La recursividad es una técnica de programación que permite diseñar
programas de una forma eficiente y el...
Henry Mosquera
15
• Pila de control y registro de activación: zona de memoria utilizada por los
subprogramas durante su ej...
Henry Mosquera
16
Se puede concebir la recursividad como una alternativa a la iteración.
El concepto de recursividad va li...
Henry Mosquera 17
GENERALIDADES SOBRE LOS ALGORITMOS
• Describir los pasos para cruzar la calle.
• Describa los pasos para...
Henry Mosquera
18
GENERALIDADES SOBRE ALGORITMOS
Henry Mosquera
19
LENGUAJES DE PROGRAMACION
• Cuando el procesador es
una computadora el
algoritmo ha de expresarse en
una...
Henry Mosquera
20
LENGUAJES DE PROGRAMACION
LENGUAJE DE MAQUINA
• Están escritos en un lenguaje
directamente inteligible p...
Henry Mosquera 21
LENGUAJES DE PROGRAMACION
LENGUAJE DE BAJO NIVEL
• Es un lenguaje mas fácil de usar que el lenguaje de
m...
Henry Mosquera
22
LENGUAJES DE PROGRAMACION
LENGUAJE DE ALTO NIVEL
• Diseñados para que las personas
entiendan y escriban ...
Henry Mosquera 23
LENGUAJES DE PROGRAMACION
ALTO NIVEL
Bajo Nivel
Maquina
;Lenguaje ensamblador, sintaxis Intel para proce...
Henry Mosquera
24
TRADUCTORES DE LENGUAJE
Traductores de lenguaje
• Son los programas que
traducen a su vez los
programas ...
Henry Mosquera
25
• Compilación: Proceso de traducción
de programas. El resultado del
proceso de compilación es un
archivo...
copilado por: Olivia Portilla 26
BIBLIOGRAFIA
• Wikipedia.
• Motores de búsqueda.
• rodrigogu.blogcindario.com/ficheros/1_...
Henry Mosquera
Próxima SlideShare
Cargando en…5
×

Introduccion a los algoritmos (1)

255 visualizaciones

Publicado el

Algoritmos

Publicado en: Software
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
255
En SlideShare
0
De insertados
0
Número de insertados
6
Acciones
Compartido
0
Descargas
7
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Introduccion a los algoritmos (1)

  1. 1. INTRODUCCIO N A LOS ALGORITMOS Henry Mosquera 1
  2. 2. Henry Mosquera 2 SISTEMAS DE PROCESAMIENTO DE INFORMACION Computadora: Maquina o aparato electrónico capaz de ejecutar operaciones repetitivas a muy alta velocidad.
  3. 3. Henry Mosquera 3 SISTEMAS DE PROCESAMIENTO DE INFORMACION Ejemplos: • El termostato. • Arturito • Nosotros mismos. ¿Cómo el procesador transforma esos datos de entrada en información procesada? Algoritmo: Conjunto de instrucciones que especifica la secuencia de operaciones a realizar, en orden, para resolver un problema especifico, en otras palabras un algoritmo es una formula para la resolución de un problema.
  4. 4. Henry Mosquera 4 SISTEMAS DE PROCESAMIENTO DE INFORMACION HARDWARE: Conjunto de componentes físicos de la computadora (equipo físico) SOFTWARE: Conjunto de programas que controlan el funcionamiento de una computadora (equipo lógico). Memoria central Unidad central de procesamiento Dispositivos de entrada/salida E/s (Periféricos) Almacenamiento secundario (memoria auxiliar)
  5. 5. Henry Mosquera 5 GENERALIDADES SOBRE LOS ALGORITMOS Metodología de programación: Consiste en la metodología aplicada para la resolución de problemas mediante programas. Problema Diseño del algoritmo Programa de computador Descripción ordenada de la secuencia de pasos (sin ambigüedades) que conducen a la solución de problema dado (Análisis del problema y desarrollo del algoritmo). Expresar el algoritmo como un programa en el lenguaje de programación adecuado. Ejecución y validación del programa de computadora. Tarea que se desea resolver. La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida. Ejemplo: La receta de un sancocho.
  6. 6. Henry Mosquera 6 La Programación de ordenadores comenzó como un arte, y aún hoy en día mucha gente aprende a programar sólo mirando a otros proceder (ej. Un profesor, un amigo, etc.), y mediante el hábito, sin conocimiento de los principios que hay detrás de esta actividad. Sin embargo en los últimos años, la investigación en el área ha arrojado teoría suficiente para que se pueda comenzar a enseñar estos principios en los cursos básicos de enseñanza de informática. PROGRAMACION
  7. 7. Henry Mosquera 7 Un problema es una situación donde se desea algo sin poder ver inmediatamente la serie de acciones a seguir para obtener ese algo. Resolver un problema consiste primero que nada en comprender de qué trata y especificarlo lo más formalmente posible con el propósito de eliminar la ambigüedad, la inconsistencia y la incompletitud, con miras a obtener un enunciado claro, preciso, conciso y que capte todos los requerimientos. La especificación en lenguaje natural lleva consigo problemas y se usan lenguajes más formales como las matemáticas, para evitar estos problemas. PROBLEMA Ejemplo de ambigüedad: la frase “Mira al hombre en el patio con un telescopio” se presta a ambigüedad. ¿Utilizamos un telescopio para mirar al hombre en el patio o el hombre que miramos tiene un telescopio? Ejemplo de inconsistencia: Se entiende que en el enunciado podamos incurrir en contradicciones. Ejemplo sobre el procesador de textos: - Todas las líneas de texto tienen la misma longitud, indicada por el usuario.
  8. 8. Henry Mosquera 8 Un cambio de línea debe ocurrir sólo después de una palabra, a menos que el usuario pida explícitamente la división por sílabas. La inconsistencia resulta al preguntarse ¿Si la palabra es más larga que la línea? Entonces si el usuario no pide explícitamente la división por sílabas, esta línea tendrá mayor longitud. Ejemplo de incompletitud: Por incompletitud entendemos que no todos los términos estén bien definidos o que no estén comprendidos todos los requerimientos del problema. PROBLEMA En un manual de un procesador de textos encontramos la frase “Seleccionar es el proceso de designar las áreas de su documento sobre las cuales desea trabajar” ¿qué significa designar, colocar el “ratón” dónde? ¿qué significa área? ¿cómo deben ser las áreas? ¿es una sola área? En otras palabras, se trata de encontrar una representación del problema donde todo esté dicho, sea mediante gráficos, o utilizando otro lenguaje distinto al natural. En esta etapa interviene el proceso de abstracción, que permite simplificar el problema, buscando modelos abstractos equivalentes y eliminando informaciones superfluas.
  9. 9. Henry Mosquera 9 Lo indicado aquí se centra en la enseñanza de la programación “en pequeño”. La habilidad para hacer programas pequeños es necesaria para desarrollar programas grandes, aunque puede no ser suficiente, pues el desarrollo de programas grandes requiere de otras técnicas que no serán tratadas aquí. Los pasos generales para resolver un problema mediante un algoritmo son: • Especificación del problema. • Diseño y construcción del algoritmo. SOLUCION DE UN PROBLEMA La especificación de un problema consiste en precisar la información del problema, la cual la constituyen los datos de entrada y los resultados que se desea obtener, y formular las relaciones existentes entre los datos de entrada y los resultados. Para ello será necesario: • Identificar los objetos involucrados y darles un nombre (una variable que los identifique). • Reconocer el tipo de cada uno, que es conocer el conjunto de valores que los objetos pueden poseer y las operaciones que pueden efectuarse sobre estos. • Describir lo que se desea obtener en términos de relaciones entre los objetos involucrados.
  10. 10. Henry Mosquera 10 ALGORITMOS Algoritmo es un método descrito paso a paso para resolver algún problema. Se conocen desde la antigua Babilonia. La palabra surge del nombre de un matemático árabe del siglo XI, llamado al-Khowarizmi. Los algoritmos son fundamentales en las matemáticas y en la informática. Para resolver un problema en ordenador, hay que describir la solución como una serie de pasos precisos.
  11. 11. Henry Mosquera 11 Las características de un algoritmo son las siguientes: • Precisión: Los pasos se enuncian con precisión. • Unicidad: Los resultados intermedios quedan definidos de manera única. • Carácter finito: Se detiene después de ejecutar un número finito de instrucciones. • Entrada: Recibe una entrada. • Salida: Produce una salida. • Generalidad: Se aplica a un conjunto de entradas. CARACTERISTICAS DE LOS ALGORITMOS Ejemplo de algoritmo: 1. x:=a 2. Si b>x, entonces x:=b 3. Si c>x, entonces x:=c sirve para determinar el máximo de tres números. Procede mediante la comparación de los números uno por uno y copia el mayor en la variable x. Caso real, a=1, b=5, c=3. Se asigna x a 1, se asigna x a b (5), pues 5 es mayor que 1 y para terminar 3>5 es falso, luego no se hace asignación.
  12. 12. Henry Mosquera 12 Aunque a veces el lenguaje común es adecuado para expresar un algoritmo, los informáticos utilizan un pseudocódigo, por su precisión, estructura y universalidad. Se asemeja al código real de Pascal y C. Hay muchas versiones de pseudocódigo, cualquiera es válida siempre que no existan ambigüedades. PSEUDOCODIGO
  13. 13. Henry Mosquera 13 Entre las estrategias generales para resolver problemas se encuentra el diseño descendente. Consiste en expresar la solución del problema como una composición de las soluciones de problemas más “sencillos” de resolver. Una máquina es un mecanismo capaz de ejecutar un algoritmo expresado en función de las acciones elementales que ésta pueda ejecutar. Cuando resolvemos mediante diseño descendente, vamos refinando la solución en términos de algoritmos cuyas acciones elementales pueden ser ejecutadas por máquinas cada vez menos abstractas DISEÑO DESCENDENTE Ejemplo diseño descendente Cuando un algoritmo puede ser ejecutado por una máquina real (ordenador) decimos que el algoritmo es un programa. Un programa es un algoritmo destinado a comandar una máquina real. Aplicación de diseño descendente: Problema: Estoy en casa, deseo leer el periódico y no lo tengo. Una solución sería: • Salir de casa. • Ir al puesto de venta del periódico y comprarlo. • Regresar a casa. • Leer el periódico.
  14. 14. Henry Mosquera 14 La recursividad es una técnica de programación que permite diseñar programas de una forma eficiente y elegante. La utilización indiscriminada de la recursividad no es una buena estrategia. Algunas aplicaciones importantes de la recursividad: • Tipos recursivos de datos. • Backtracking o vuelta atrás ALGORITMOS RECURSIVOS FORMAS DE EJECUCIÓN RECURSIVAS La ejecución de un programa lleva consigo la invocación o activación de uno o varios subprogramas. Para comprender mejor en qué orden se producen tales activaciones y cómo se desarrollan sus necesidades de memoria, se utilizan los siguientes conceptos: • Árbol de activación: representación gráfica que muestra en qué orden se ejecutan un programa y los subprogramas que él contiene.
  15. 15. Henry Mosquera 15 • Pila de control y registro de activación: zona de memoria utilizada por los subprogramas durante su ejecución. La recursividad es una técnica de programación que permite transformar un problema de gran dificultad en otros subproblemas más simples del mismo tipo. Esta característica es fundamental en la recursividad, ya que, al ser el problema original y los subproblemas del mismo tipo, se puede utilizar un único algoritmo para resolverlos a todos, modificando solamente los argumentos de entrada. NOCIÓN DE LA RECURSIVIDAD Desde el punto de vista de la programación, se dice que un algoritmo es recursivo si al ejecutarse se invoca a sí mismo directa o indirectamente. Debido a ello la recursividad se puede clasificar como: • Directa: El algoritmo contiene una llamada a sí mismo. • Indirecta: El algoritmo P contiene una llamada a otro algoritmo Q que, a su vez, contiene una llamada directa o indirecta a P.
  16. 16. Henry Mosquera 16 Se puede concebir la recursividad como una alternativa a la iteración. El concepto de recursividad va ligado al de repetición. Son recursivos aquellos algoritmos que, estando encapsulados dentro de una función, son llamados desde ella misma una y otra vez, en contraposición a los algoritmos iterativos, que hacen uso de bucles mientras, repetir, para, etc. Algo es recursivo si se define en términos de sí mismo (cuando para definirse hace mención a sí mismo). ITERACIÓN
  17. 17. Henry Mosquera 17 GENERALIDADES SOBRE LOS ALGORITMOS • Describir los pasos para cruzar la calle. • Describa los pasos para llevar a una amiga a cine. • Describa los pasos para cambiar la llanta pinchada de una cicla. • Describa los pasos para cambiar un bombillo quemado.
  18. 18. Henry Mosquera 18 GENERALIDADES SOBRE ALGORITMOS
  19. 19. Henry Mosquera 19 LENGUAJES DE PROGRAMACION • Cuando el procesador es una computadora el algoritmo ha de expresarse en una forma que recibe el nombre de programa. Un programa se escribe en un lenguaje 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. Principales lenguajes utilizados en la actualidad: • Lenguaje de maquina. • Lenguaje de bajo nivel. • Lenguaje de alto nivel
  20. 20. Henry Mosquera 20 LENGUAJES DE PROGRAMACION LENGUAJE DE MAQUINA • Están escritos en un lenguaje directamente inteligible por la maquina. Las instrucciones consisten en cadenas binarias que especifican una operación, y las posiciones (dirección) de memoria implicadas en la operación. • Dependen del hardware de la computadora (PC diferente de Macintosh) 00001011011100001010
  21. 21. Henry Mosquera 21 LENGUAJES DE PROGRAMACION LENGUAJE DE BAJO NIVEL • Es un lenguaje mas fácil de usar que el lenguaje de maquina. • Las instrucciones del lenguaje ensamblador son conocidas como nemotécnicos (ADD, SUB, DIV, etc.). ADD N,M,P = 0110 1001 1010 1011 • Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora por lo que requiere de una fase de traducción a lenguaje de maquina. • Ensamblador. ADD N,M,P 0110 1001 1010 1011
  22. 22. Henry Mosquera 22 LENGUAJES DE PROGRAMACION LENGUAJE DE ALTO NIVEL • Diseñados para que las personas entiendan y escriban los programas de un modo mas fácil que usando lenguajes de maquina y ensamblador. • Es independiente de la maquina pues las instrucciones no dependen del hardware o maquina en particular. • Los programas escritos en lenguaje de alto nivel son portables o transportables, es decir que pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de maquinas. C, C++, COBOL, FORTRAN, Pascal, Java, Phyton.
  23. 23. Henry Mosquera 23 LENGUAJES DE PROGRAMACION ALTO NIVEL Bajo Nivel Maquina ;Lenguaje ensamblador, sintaxis Intel para procesadores x86 mov eax,1 ;mueve a al registro eax el valor 1 xor ebx, ebx ;pone en 0 el registro ebx int 80h ;llama a la interrupción 80h (80h = 128 sistema decimal) {Lenguaje Pascal} program suma; var x,s,r:integer; {declaración de las variables} begin {comienzo del programa principal} writeln('Ingrese 2 números enteros');{imprime el texto} readln(x,s); {lee 2 números y los coloca en las variables x y s} r:= x + s; {suma los 2 números y coloca el resultado en r} writeln('La suma es ',r); {imprime el resultado} readln; end.{termina el programa principal}
  24. 24. Henry Mosquera 24 TRADUCTORES DE LENGUAJE Traductores de lenguaje • Son los programas que traducen a su vez los programas fuente escritos en lenguajes de alto nivel a código de maquina. • Clasificación: • Compiladores: Lenguaje de alto nivel --> Lenguaje de maquina. • Interprete: Un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta.
  25. 25. Henry Mosquera 25 • Compilación: Proceso de traducción de programas. El resultado del proceso de compilación es un archivo objeto. • Enlazado: Proceso realizado por el linker o enlazador, básicamente este programa es el encargado de juntar todos los ficheros de codigo objeto, la información de todos los recursos necesarios (bibliotecas) , eliminar todos los recursos que no se necesitan y enlazar el código objeto con sus bibliotecas. El resultado final de este procedimiento es un ejecutable o una biblioteca. TERMINOLOGIA BASICA VI
  26. 26. copilado por: Olivia Portilla 26 BIBLIOGRAFIA • Wikipedia. • Motores de búsqueda. • rodrigogu.blogcindario.com/ficheros/1_sistemas_informacion • http://fccea.unicauca.edu.co/old/procesamiento.htm
  27. 27. Henry Mosquera

×