Tema 2
Algoritmos y
Programas
Tema 6: Algoritmos y Programas
Introducción
● Un ordenador es un sistema para procesar
información
Entrada = Salida =
Procesador
Datos Resultados
Algoritm
o
2
Tema 6: Algoritmos y Programas
Concepto de algoritmo
● Algoritmo (según el DRAE):
(del árabe al-Khowârizmî) “Conjunto
ordenado y finito de operaciones que permite
hallar la solución de un problema”
– Ejemplos sencillos de algoritmos según esta
definición podrían ser una receta de cocina o las
instrucciones para armar una bicicleta.
3
Tema 6: Algoritmos y Programas
Concepto de algoritmo
● Características de un algoritmo:
– Preciso (no ambiguo): la instrucción a 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.
4
Tema 6: Algoritmos y Programas
Lenguajes
de representación algorítmica
● ¿Cómo se escribe un algoritmo?
Representándolo mediante un lenguaje 🡪
lenguaje de representación algorítmica
● Dos tipos de representación:
– Pseudocódigo
– Diagramas de flujo
5
Tema 6: Algoritmos y Programas
Representación algorítmica
● 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
6
Tema 6: Algoritmos y Programas
Representación algorítmica
● Diagrama de Flujo (DF):
– Representación gráfica del flujo de control de un
algoritmo
– Elementos del (DF):
Entrada/
Terminal Proceso
Salida
Dec Conectores
isió no
Subprograma
n
si
7
Tema 6: Algoritmos y Programas
Representación algorítmica
Pseudocódigo Diagrama de flujo
Entorn
o suma,
Inicio
num
// Iniciar variables
suma<- 2
num <- 4
// Suma de los números
repetir
suma <- suma + num
num <- num +2
mientras (num <= 100)
escribir // Escribir
(suma) resultado
Fin
8
Tema 6: Algoritmos y Programas
Ejemplos de algoritmo
● Hay que tener en cuenta que para resolver
un determinado problema existe más de un
algoritmo
– Todos encuentran la solución correcta…
pero unos lo hacen mejor que otros.
9
Tema 6: Algoritmos y Programas
Programas
● Programa: Algoritmo codificado en un
lenguaje de programación.
● Programar: Fraccionar un problema en
forma de instrucciones adecuadamente
formuladas para que un ordenador pueda
llevarlas a la práctica.
10
Tema 6: Algoritmos y Programas
Programas
● Las instrucciones se forman con elementos o
símbolos tomados de un determinado
repertorio, y se construyen siguiendo unas
reglas precisas.
● Todo lo relativo a los símbolos y reglas para
construir o redactar con ellos un programa
se denomina lenguaje de programación.
11
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
12
Tema 6: Algoritmos y Programas
Lenguajes de programación
Lenguajes de alto nivel
● FORTRAN (Formula Translation): Primer LAN(década de los 50).
Aplicaciones científico-técnicas (grandes computadores y
supercomputadores)
● COBOL (COmmon Busines Oriented Language): 1960. Aplicaciones
comerciales y de gestión.
● BASIC (Beginner’s All-purpose Symbolic Instruction Code).
Desarrollado a mediados de los 60 como lenguaje interactivo
paraprincipiantes de programación.
● Visual BASIC: es el lenguaje más popular. Versión de Microsoft del
BASIC. Permite crear programas en un ambiente visual (lenguaje de
4ª generación).
● C: Desarrollado en Bell Labs a comienzos de los 70. Es complejo,
pero es potente, flexible y eficiente (el más utilizado para PCs y
estaciones de trabajo).
13
Tema 6: Algoritmos y Programas
Lenguajes de programación
Lenguajes de alto nivel
● Pascal: Creado por Wirth en 1971. El mejor lenguaje para
aprender a programar y describir algoritmos.
● Ada: Es un lenguaje definido por el Ministerio de Defensa de
USA a finales de los 70. Esta basado en el Pascal y tiene unas
reglas muy estrictas.
● C++: Ideado a comienzos de los 80 en los BellLabs. Es una
variante del C que permite utilizar la moderna metodología de
la programación (“programación orientada a objetos”)
● Java: Desarrollado en 1991 por Sun, es similar a C++ pero
más sencillo de aprender y usar. Muy usado para programa
interactivos y dinámicos (“applets” de web). Se ha definido un
computador virtual Java compatible, cualquier computador con
un programa que lo emule puede ejecutar aplicaciones Java.
14
Tema 6: Algoritmos y Programas
Lenguajes de programación
Lenguajes de alto nivel
● Otros lenguajes (usados en Inteligencia artificial):
– LISP (LISt Processing): Finales de los 50. Procesamiento
de datos no numéricos (caracteres, palabras y otros
símbolos). Se usa en Inteligencia Artificial.
– PROLOG:(Programming Logic): Trabaja con relaciones
lógicas entre hechos. Muy usado en inteligencia artificial.
– LOGO: versión simplificada del LISP para niños.
15
Tema 6: Algoritmos y Programas
Lenguajes de programación
Traductores
● 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: 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.
16
Tema 6: Algoritmos y Programas
Lenguajes de programación
Compiladores
● Compilar ≈ Convertir de un formato a otro
– El significado deberá permanecer inalterado en la conversión
– La entrada está escrita en un lenguaje → Tiene estructura
– Semántica asociada y descrita en términos de esa estructura
● El compilador “comprende” el programa y recolecta su
significado en una representación semántica
intermedia
● A la hora de generar la salida → se genera estructura
y significado
17