Está en la página 1de 41

FACULTAD DE INGENIERIA Y

CIENCIAS BASICAS

COMPUTACIÓN PARA TODOS

INTRODUCCIÓN AL PENSAMIENTO ALGORITMICO

Profesor: Alexis Rojas Cordero

Línea de Investigación
Design and Optimization of HPC Systems for Specific Workloads

Facultad Ingeniería y Ciencias Básicas


1
pensamiento
algorítmico

2
CONTENIDO
1. Qué es software

2. Problemas

3. Algoritmo

4. Solución de problemas Algorítmicos

3
Software
Software: conjunto de instrucciones que le dicen
al hardware que hacer.
Sistema Operativo

Herramientas de Desarrollo

Aplicaciones

1. Arquitectura de un Computador 4
Arquitectura de Software
Lenguaje Lenguaje Lenguaje Hardware
Alto Nivel Ensamblador Maquina

Sistema Operativo

Aplicaciones Herramientas

1. Arquitectura de un Computador 5
Sistema Operativo

Software encargado de administrar los recursos del


sistema.
Ofrece un conjunto de comandos a los humanos,
para interactuar con la máquina.
Puede ser escrito en lenguaje de alto nivel, en
lenguaje ensamblador y/o en lenguaje máquina.

1. Arquitectura de un Computador 6
Lenguaje de Máquina

Único lenguaje que entiende el hardware


(máquina).

Específico para cada hardware (procesador,


dispositivos, etc.).

Programa: almacenado en memoria, contiene


instrucciones y datos.

1. Arquitectura de un Computador 7
Lenguaje Ensamblador
Software, generalmente escrito en lenguaje de
máquina, capaz de traducir de lenguaje ensamblador
a lenguaje de máquina.

Usa mnemónicos para codificar las operaciones. Los


datos y/o direcciones son codificados generalmente
como números en sistema hexadecimal.

Es específico (aunque no único) para cada lenguaje


de máquina.
1. Arquitectura de un Computador 8
Lenguaje de Alto Nivel
Es un lenguaje con una estructura sintáctica mas
rica que le permite mayor expresividad.

Cuenta con un conjunto de palabras reservadas,


para codificar estructuras de control e
instrucciones.

Permite el uso de expresiones aritméticas y


relacionales.

1. Arquitectura de un Computador 9
Lenguaje de Alto Nivel

COMPILADORES e INTERPRETES: software


capaz de traducir de un lenguaje de alto nivel al
lenguaje de máquina.

C++ Java Python

1. Arquitectura de un Computador 10
Aplicaciones
APLICACIÓN: software que le permite al
computador realizar una tarea específica.

Procesadores de
Texto Video Juegos Hojas de Calculo

1. Arquitectura de un Computador 11
Herramientas de Desarrollo
Es una aplicación que presenta un ambiente en el
que, empleando un lenguaje de programación, se
puede desarrollar nuevo software.

Ejemplos: ambientes integrados de desarrollo


como DevC++, Visual C++, en los que se emplea
el lenguaje C++, Eclipse, etc.

1. Arquitectura de un Computador 12
2. Problemas

Se tiene un problema cuando se desea encontrar


una o varias soluciones que cumplen condiciones o
relaciones, previamente definidas, respecto a uno o
varias entradas conocidas.

Dicho de otra manera, es la cuestión que se


plantea para hallar un dato desconocido a partir de
otros datos conocidos, o para determinar el método
que hay que seguir para obtener un resultado dado

13
Solución de problema
Solucionar el problema, es encontrar los
resultados desconocidos.

Para solucionar un problema se debe


determinar de manera clara y concisa: cuáles
son las entradas conocidas, las condiciones y
de que tipo son los datos desconocidos.

2. Problemas 14
Tipos de problemas

Problemas bien condicionados

Problemas mal condicionados

Problemas indecidibles

2. Problemas 15
Programación de Computadores
Modulo 1. Introducción

Ejemplo de problema bien


condicionado

Un granjero tiene cincuenta animales entre


conejos y gansos. Si la cantidad de patas de
los animales es ciento cuarenta, Cuantos
conejos y cuantos gansos tiene el granjero?

2. Problemas 16
Ejemplos de problemas mal
condicionados
De las siguientes imágenes, cuál
es la más llamativa?

2. Problemas 17
Ejemplos de problemas
indecidible
¿Existe en la expansión decimal de Pi una
secuencia de tamaño n para cualquier
número natural n?

(Ver película de Una Aventura Maravillosa)

2. Problemas 18
3. Algoritmo

Secuencia bien definida y finita de tareas


bien definidas, cada una de las cuales se
puede realizar con una cantidad de
recursos finitos.

19
Características de un Algoritmo
De finitud o
Precisión Finitud
Determinismo

Hay un orden Todas las veces que se El algoritmo


preciso en el realicen las tareas o debe terminar
cual deben pasos de un algoritmo, en algún mo-
ejecutarse las con las mismas condi- mento y debe
tareas que ciones iniciales, se de- usar una can-
conforman el ben obtener resultados tidad finita de
algoritmo. idénticos. recursos.

20
Estructura de un Algoritmo

Datos Instrucciones Estructuras de


control
Para almacenar Las acciones o Las que determinan
información: da- procesos que el el orden en que se
tos de entrada, algoritmo realiza ejecutarán las ins-
de salida o inter- sobre los datos. trucciones del algo-
medios. ritmo.

21
Ejemplo de algoritmo

Un estudiante se encuentra en su casa


(durmiendo) y debe ir a la universidad (a tomar
la clase de pensamiento algorítmico!!),
¿Que debe hacer el estudiante?

22
Ejemplo de algoritmo
1. Dormir hasta que suene el despertador (o lo llame
la mamá).
2. Mirar la hora.
3. Hay tiempo suficiente?
3.1. Si, entonces
3.1.1. Bañarse.
3.1.2. Vestirse.
3.1.3. Desayunar.
3.2. No, entonces
3.2.1. Vestirse.

2. Problemas 23
Ejemplo de algoritmo
4. Lavarse la boca.
5. Despedirse de la mamá y el papá.
6. Hay tiempo suficiente?
6.1. Si, entonces
6.1.1. Caminar al paradero.
6.2. No, entonces
6.2.1. Correr al paradero.
7. Hasta que pase un bus para la universidad hacer:
7.1. Esperar el bus
7.2. Ver a las demás personas que esperan un bus.

3. Algoritmos 24
Ejemplo de algoritmo
8. Tomar el bus.
9. Mientras que no llegue a la universidad hacer:
9.1. Seguir en el bus.
9.2. Pelear mentalmente con el conductor.
10. Timbrar.
11. Bajarse.
12. Entrar a la universidad.
13. Caminar hasta llegar al salón donde se dicta su
curso de pensamiento algorítmico.
14. Ingresar al salón.

3. Algoritmos 25
Representación de
Algoritmos

Las representaciones más conocidas son:


Diagramas de flujo.

Pseudo-código.

3. Algoritmos 26
Diagramas de Flujo

Esquema de representación gráfico de algoritmos.

Usa elementos gráficos como rectángulos y rombos.

Se pueden usar operaciones matemáticas.

3. Algoritmos 27
Pseudo Código
Esquema de representación de algoritmos que
usa un subconjunto del lenguaje natural del
diseñador de algoritmos.

Elimina posibles ambigüedades empleando una


notación que aunque libre es más restringida
que la del lenguaje natural.

3. Algoritmos 28
Pseudo Código
leer A, B, C sino
si A>B si B>C
si A>C Mayor  B
Mayor  A
sino
sino
Mayor  C
Mayor  C
fin_si fin_si
fin_si
escribir Mayor

3. Algoritmos 29
4. Soluciónde Problemas
Algorítmicos
Problema

Metodología

Programa

30
Metodología de
Programación
✓ Análisis del problema.
✓ Especificación del problema.
✓ Diseño del algoritmo.
✓ Prueba del algoritmo y refinamiento.
✓ Codificación.
✓ Prueba y verificación.
4. Solución de Problemas Algorítmicos 31
Análisis del Problema
Entender de manera clara el problema que se
esta resolviendo.

Esta fase de la metodología concuerda con el


proceso de identificación de objetos conocidos,
objetos desconocidos y condiciones usado en la
sección de problemas.

32
Especificación del Problema
Descripción clara y precisa de:

Las entradas del problema.


Las salidas del problema.
Las condiciones, es decir la dependencia que
mantendrán las salidas obtenidas con las
entradas recibidas.

33
Ejemplo de Especificación
Entradas: La cantidad total de animales (50),
cantidad de patas totales (140).

Salidas: La cantidad de conejos y la cantidad de


gansos.

Condiciones: La suma de conejos y gansos es


igual a cincuenta. La suma de las patas de los
conejos (cuatro por cada uno) y de los gansos
(dos por cada uno) es igual a ciento cuarenta.
34
Ejemplo de Especificación
Problema:
Construir un algoritmo que determine el mayor de tres
números enteros.

Especificación:

Entradas: A,B,C (números de entrada) de tipo entero.

Salidas: Mayor de tipo entero.

Condiciones: Mayor debe ser el valor máximo


de A, B y C.
35
Diseño del algoritmo
Es la fase en la que se construye el algoritmo
que permitirá encontrar la solución al
problema.

La forma adecuada de realizar este proceso es


subdividirlo.

36
Prueba del Algoritmo y
Refinamiento

Proceso de seguimiento del algoritmo para


verificar que cumple con la especificación. Si
no se cumple con la especificación se va
refinando hasta lograr el objetivo.

37
Codificación

Proceso en el cual se escribe el algoritmo en


un lenguaje de programación, utilizando el
editor de la herramienta.

38
Prueba y
Verificación

Proceso en el cual se corrigen los errores de


sintaxis y de lógica del programa, hasta lograr
que el programa resuelva el problema.

39
FIN
Gracias su atención

40
41

También podría gustarte