Algoritmo Introducción
Algoritmo Introducción
Algoritmo Introducción
Ordenadores
Algoritmos y
Programas
© Universidad de Guayaquil
Tema 6: Algoritmos y Programas
Objetivos
2
Tema 6: Algoritmos y Programas
Contenidos
1. Introducción
2. Concepto de algoritmo
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
3
Tema 6: Algoritmos y Programas
Introducción
Entrada = Salida =
Procesador
Datos Resultados
Algoritmo
4
Tema 6: Algoritmos y Programas
Introducción
análisis
diseño
IMPLEMENTACIÓN
PRUEBAS
documentación
5
Tema 6: Algoritmos y Programas
Contenidos
1. Introducción
2. Concepto de algoritmo
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
6
Tema 6: Algoritmos y Programas
Concepto de algoritmo
7
Tema 6: Algoritmos y Programas
Concepto de algoritmo
8
Tema 6: Algoritmos y Programas
Concepto de algoritmo
En Informática:
– Un algoritmo es una secuencia de pasos a
seguir para resolver un problema usando un
computador u ordenador.
– La algoritmia o ciencia de los algoritmos, es uno
de los pilares de la informática.
9
Tema 6: Algoritmos y Programas
Concepto de algoritmo
Definiciones básicas:
– Procesador:
Procesador cualquier entidad capaz de resolver
un problema
– Entorno:
Entorno conjunto de utensilios que el procesador
puede utilizar
– Estado:
Estado situación en la que se encuentra un
entorno en un momento dado.
10
Tema 6: Algoritmos y Programas
Concepto de algoritmo
Definiciones básicas
– Acción:
Conjunto finito de operaciones que permiten llegar de un
estado inicial bien definido a otro también bien definido.
– Tipos de acciones:
Acción primitiva o elemental
– Puede ser realizada directamente por el procesador.
Acción compuesta o abstracta
– Ha de descomponerse en acciones más elementales para poder
ser entendida por un procesador.
11
Tema 6: Algoritmos y Programas
Concepto de algoritmo
12
Tema 6: Algoritmos y Programas
Concepto de algoritmo
Características de un algoritmo:
– Preciso (no ambiguo): la instrucción para ejecutar
en cada paso queda determinada perfectamente.
– Determinista: debe comportarse del mismo modo
ante las mismas condiciones. Si se sigue dos
veces en el mismo entorno, el resultado obtenido
es el mismo.
– Finito: Tiene fin tras un número determinado de
pasos.
13
Tema 6: Algoritmos y Programas
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
14
Tema 6: Algoritmos y Programas
Lenguajes
de representación algorítmica
15
Tema 6: Algoritmos y Programas
Representación algorítmica
Pseudocódigo:
Pseudocódigo
– Lenguaje similar al natural, pero al que se añaden
reglas para conseguir una definición precisa del
algoritmo
– Algunas reglas:
Empieza por la palabra “Inicio” y termina con la palabra
“Fin”
Se escribe una acción por línea
Se subrayan las palabras clave
16
Tema 6: Algoritmos y Programas
Representación algorítmica
no Conectores
Decisión Subprograma
si
17
Tema 6: Algoritmos y Programas
Representación algorítmica
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
19
Tema 6: Algoritmos y Programas
Ejemplos de algoritmo
20
Tema 6: Algoritmos y Programas
Ejemplos de algoritmo
21
Tema 6: Algoritmos y Programas
Ejemplos de algoritmo
Método tradicional
981
* 1234
3924
2943
1962
981
1210554
22
Tema 6: Algoritmos y Programas
Ejemplos de algoritmo
Método tradicional
Pero en UK…
981 981
* 1234 * 1234
3924 981
2943 1962
1962 2943
981 3924
1210554 1210554
23
Tema 6: Algoritmos y Programas
Ejemplos de algoritmo
Multiplicación “à la russe”
– Se escriben el multiplicando y el multiplicador iniciando dos
columnas.
– Se obtienen los siguientes elementos de las columnas,
hasta que quede un 1 en la columna de la izquierda:
La columna de la izquierda se va dividiendo entre dos,
ignorando los restos.
La columna de la derecha se va multiplicando por dos.
– El resultado se obtiene sumando los números de la
columna de la derecha cuyo número correspondiente de la
columna izquierda sea impar.
– Sólo es necesario saber sumar, multiplicar por 2 y dividir
entre 2. Se encuentra en el hardware de las ALU’s.
24
Tema 6: Algoritmos y Programas
Ejemplos de algoritmo
Multiplicación “à la russe”
981 1234
490 2468
245 4936
122 9872
61 19744
30 39488
15 78976
7 157952
3 315904
1 631808
25
Tema 6: Algoritmos y Programas
Ejemplos de algoritmo
Multiplicación “à la russe”
981 1234
490
245 4936
122
61 19744
30
15 78976
7 157952
3 315904
1 631808
SUMA = 1210554
26
Tema 6: Algoritmos y Programas
Ejemplos de algoritmo
Divide y vencerás
– Números con precisión par
– Se dividen por la mitad ambos operandos
– Se realizan las 4 multiplicaciones cruzadas
– Se suman los resultados desplazando
previamente hacia la izquierda
– Algoritmo recursivo
27
Tema 6: Algoritmos y Programas
Ejemplos de algoritmo
Divide y vencerás
28
Tema 6: Algoritmos y Programas
Ejemplos de algoritmo
Ejercicio:
– ¿Cuál es mejor y por qué?
– ¿Qué criterios podemos utilizar para valorar un
algoritmo?
29
Tema 6: Algoritmos y Programas
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
30
Tema 6: Algoritmos y Programas
Programas
Programa:
Programa Algoritmo codificado en un
lenguaje de programación.
Programar:
Programar Fraccionar un problema en
forma de instrucciones adecuadamente
formuladas para que un ordenador pueda
llevarlas a la práctica.
31
Tema 6: Algoritmos y Programas
Programas
32
Tema 6: Algoritmos y Programas
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
33
Tema 6: Algoritmos y Programas
Lenguajes de programación
Clasificación
Lenguaje máquina:
– Es el que entienden los circuitos del computador (CPU)
– Inconvenientes:
depende del modelo de computadora;
el repertorio de instrucciones es muy reducido
es muy laborioso
Ensamblador (lenguaje de bajo nivel)
– Código nemotécnico para recordar mejor las instrucciones
máquina
– Se mantienen los otros inconvenientes del lenguaje máquina
Lenguajes de alto nivel
– No dependen de la computadora, y facilitan la tarea de
programación
34
Tema 6: Algoritmos y Programas
Lenguajes de programación
Lenguajes de alto nivel
35
Tema 6: Algoritmos y Programas
Lenguajes de programación
Lenguajes de alto nivel
36
Tema 6: Algoritmos y Programas
Lenguajes de programación
Lenguajes de alto nivel
37
Tema 6: Algoritmos y Programas
Lenguajes de programación
Traductores
Traducción:
Traducción Proceso por el cual se convierte el texto
del programa de entrada en el de salida.
– Lenguaje fuente: lenguaje en el que se escribe la entrada
– Lenguaje objeto: lenguaje en el que se escribe la salida.
En general, muy diferente del lenguaje fuente
Compilador:
Compilador Programa que acepta como entrada un
texto de programa escrito en un cierto lenguaje de
alto nivel y genera como salida texto de programa en
otro lenguaje, generalmente lenguaje máquina.
38
Tema 6: Algoritmos y Programas
Lenguajes de programación
Compiladores
Lenguajes de programación
Intérpretes
Lenguajes de programación
Compiladores vs. Intérpretes
Compiladores:
– El procesamiento del programa es considerable
– El mecanismo de interpretación previsto es la CPU (hw)
– La ejecución del programa traducido es relativamente rápida
Intérpretes:
– El procesamiento del programa es entre mínimo y moderado
– El mecanismo de interpretación es un programa (sw)
– La ejecución del programa es, en general, más lenta y más
segura
41
Tema 6: Algoritmos y Programas
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
42
Tema 6: Algoritmos y Programas
Proceso de programación
A n a lisis D is e ñ o T ra d u c ció n a c ó d ig o C
P ru e b a s d e e jec u c ió n C o m p ila c ió n al o rd e n a d o r
A.out cc vi
E rro r e n tiem p o
43 d e e je c u c ió n
Tema 6: Algoritmos y Programas
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
44
Tema 6: Algoritmos y Programas
Lenguaje C
45
Tema 6: Algoritmos y Programas
Lenguaje C
Características de C
– Propósito general
Válido para diversos objetivos
– Portable
NOTA: Sin embargo, siempre hay que compilar y probar un
programa en el ordenador “destino”
– Eficiente
Apropiado para la programación de sistemas
– Extendido.
Gran cantidad de bibliotecas de funciones, compiladores, etc.
Amplia difusión y uso.
46
Tema 6: Algoritmos y Programas
Bibliografía
47