Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos
Grado en Business Analytics
ARQUITECTURA CONCEPTUAL DE UN ORDENADOR
Informática
Ordenador o computadora:
Memoria secundaria
Dispositivos de Dispositivos de
CPU
entrada salida
Memoria primaria
Ordenador
Memoria secundaria
Dispositivos de Dispositivos de
CPU
entrada • salida
Memoria primaria
Ordenador
Memoria
secundaria • Coordina y realiza todas las
operaciones
Dispositivos
CPU
Dispositivos • Desde la perspectiva del
de entrada de salida programador, bajando de nivel,
ejecuta las instrucciones en un
Memoria lenguaje denominado lenguaje
primaria máquina
Ordenador
Memoria
• Almacena datos y programas en ejecución.
secundaria
• Volátil
• Más rápida
Dispositivos Dispositivos
CPU • Formada por celdas enumeradas (dirección
de entrada de salida
de memoria) y acceso directo mediante la
dirección
• Palabra de memoria: cantidad de
Memoria información en bits que puede leerse o
primaria escribirse en la memoria de una sola vez
Ordenador
Memoria estática
Memoria
secundaria
Memoria libre
Dispositivos Dispositivos
CPU
de entrada de salida
Memoria
primaria
Pila de ejecución
Ordenador
Memoria
• Dispositivos de almacenamiento masivo de
secundaria información
• Almacena datos o programas para su
Dispositivos Dispositivos posterior ejecución
CPU
de entrada de salida
Memoria
primaria
• Controlador: procesadores especializados en
las operaciones de e/s
Ordenador
Memoria
primaria
• Controlador: procesadores especializados en
las operaciones de e/s
Algoritmos
Algoritmos
Grado en Business Analytics
NIVELES DE COMPUTACIÓN
Funcionamiento
Por ejemplo:
A = 1
B=C
IMPRIME_PANTALLA (A)
Funcionamiento
Por ejemplo:
A, B = LEER_TECLADO()
IMPRIME_PANTALLA (A+B)
Funcionamiento
4FX2 ~ 1110101010001 ….
Niveles de computación
Lenguaje Ensamblador: lenguaje en el que las instrucciones se
expresan con palabras cortas
• A cada instrucción de ensamblador, le corresponde una en
lenguaje máquina (1:1)
• La traducción lenguaje ensamblador a lenguaje máquina la
realiza un programa denominado ensamblador
• Portables
• Fáciles de entender num = int(input('Enter a number'))
for i in range(0, 6):
• Instrucciones potentes if i == num:
• Orientados a la resolución de tareas. break
print(i, ' ', end='')
• Por ejemplo, Python print('Done')
COMPILADOR /
Lenguaje ALTO NIVEL Lenguaje Máquina
INTÉRPRETE
Niveles de computación: intérprete
Traducen el código del programa (fuente) al lenguaje máquina
(objeto)
Intérprete
Lenguaje ALTO NIVEL Lenguaje Máquina
Niveles de computación: intérprete
¿Cuál es la diferencia?
FICHERO
00010001001111111 OBJETO
num = int(input('Enter a number'))
11001111010101011
for i in range(0, 6):
COMPILADOR ...
if i == num:
break
print(i, ' ', end='')
110010101010111100
print('Done')
1. ¿Cuál es el problema?
2. ¿Qué necesito para resolver el problema (datos de entrada)?
3. ¿Cómo es una solución (datos de salida)?.
4. ¿Qué pasos necesito para resolver el problema? una primera
descripción de los pasos que son necesarios para resolver el problema
1.Se irá definiendo o mejorando iterativamente
5. Posteriormente, cuando el diseño esté finalizado, el algoritmo puede ser
implementado en un lenguaje de programación.
Algoritmo
Estas preguntas dan como resultado una estructura que debe
seguir un algoritmo:
1. Pseudocódigo
2. Diagramas de flujo
3. Codificación: (Final de la asignatura, Programación I)
Representación
1. Pseudocódigo
2. Diagramas de flujo
3. Codificación: (Final de la asignatura, Programación I)
Representación
Convenciones:
1. Pseudocódigo
2. Diagramas de flujo
3. Codificación: (Final de la asignatura, Programación I)
Representación
Condición
Bloque de sentencias
Inicio o fin
Flujo de ejecución
Representación
Inicio
cont = 0
Este diagrama de flujo
representa un algoritmo que
tras inicializar el contador a 0, lo
va incrementando hasta que
sí alcanza el valor 5 para,
Escribir cont==5
posteriormente, escribir el valor
cont
de contador.
no
cont =
cont + 1
Representación
Inicio
A=1
NOMBRE = ‘PEDRO’
TIEMPO = 12.31
VARIABLE = DIRECCION_DE_VARIABLE_A
Variables
Por ejemplo:
A = 1
D = B*C
MAX(A)
IMPRIME_PANTALLA (A)
En un algoritmo se van a dar los siguientes elementos:
1. Variables
2. Operadores
3. Instrucciones o sentencias
1. Instrucción básica
2. Estructuras de control
3. Llamadas a procedimientos
Estructuras de control
Organizan la ejecución del código
a=3
b=4
c=2
Si a==3 or b == 2 and c==3
imprimir_pantalla('combinación 1 válida')
...
Si no:
si a>5:
salir
si no:
a = b
c = a
...
Estructuras de control
Evaluación de condiciones: ¿Cuál será el resultado?
imprimir_pantalla(‘combinación 1 válida’)
Estructuras de control
Evaluación de condiciones:
hacer secuencia 1
contador = 0
para contador en rango ( ):
imprimir_pantalla(contador)
Estructuras de control
Iteraciones: existen varias formas de realizar iteraciones
Ejemplos
contador = 0 0
para contador en rango (0,4): 1
imprimir_pantalla(contador) 2
3
contador = 0 5
para contador en rango (5,0,-2): 3
imprimir_pantalla(contador) 1
FUNCIONES O PROCEDIMIENTOS
Procedimientos o funciones
Una de las características que debe tener la función es que sea lo más
independiente del programa posible.
1. Facilito la reutilización
2. Mejoro el mantenimiento posterior del programa y de la función
Procedimientos o funciones
si es_entero(numero)==‘Falso’ o numero<=0:
devolver -1
si no:
si numero == 1:
devolver 1
si no:
devolver numero*factorial(numero – 1)
ARRAYS
TAD
TODO