Conferencia1 - Programacion de Computadores

51
rogramación de rogramación de omputadores omputadores Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial UN - Virtual 2008 Módulo 1 Introducc ión

description

 

Transcript of Conferencia1 - Programacion de Computadores

Page 1: Conferencia1 - Programacion de Computadores

rogramación rogramación dedeomputadoreomputadoress

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

UN - Virtual2008

Módulo 1Introducción

Page 2: Conferencia1 - Programacion de Computadores

• ¿Por qué se inventaron los computadores?

• ¿Encuentra alguna relación entre como se encuentran diseñados los computadores y el ser humano?

• ¿Qué cree que es la programación de computadores?

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

UN - Virtual2008

Programación de ComputadoresModulo 1. Introducción

Page 3: Conferencia1 - Programacion de Computadores

CONTENIDO1. Arquitectura de un Computador

2. Problemas

3. Algoritmo

4. Solución de problemasAlgorítmicos

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

UN - Virtual2008

Programación de ComputadoresModulo 1. Introducción

Page 4: Conferencia1 - Programacion de Computadores

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

UN - Virtual2008

Los precursores del Computador

Programación de ComputadoresModulo 1. Introducción

Abaco

La maquina calculadora de

Pascal

1642 Motor de diferencias de

Babbage

1812 Mark I

1944Eniac

1947

PC

Page 5: Conferencia1 - Programacion de Computadores

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

UN - Virtual2008

Módulo 1Introducción

Page 6: Conferencia1 - Programacion de Computadores

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

UN - Virtual2008

1. Arquitectura de un ComputadorEstá dividida en dos

partes importantes:

Hardware: Es la que hace referencia a la parte física de un computador y de cualquier dispositivo electrónico.

Software: Es la que hace referencia a la parte lógica de un computador.

Programación de ComputadoresModulo 1. Introducción

CPU

Page 7: Conferencia1 - Programacion de Computadores

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de Computador

Hardware

La Arquitectura Von Newman

• Unidad central de Proceso

• Dispositivos de entrada, salida, almacenamiento, comunicación y cómputo

• Memoria

Programación de ComputadoresModulo 1. Introducción

CPU

Page 8: Conferencia1 - Programacion de Computadores

Unidad Central de Proceso (CPU)

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura del Computador

Microprocesador Athlon 64 X2 E6 3800+

Programación de ComputadoresModulo 1. Introducción

Page 9: Conferencia1 - Programacion de Computadores

Dispositivos

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Entrada Salida

AlmacenamientoComunicación

Cómputo

Programación de ComputadoresModulo 1. Introducción

Page 10: Conferencia1 - Programacion de Computadores

RAM (Random Access Memory): Memoria de escritura y lectura. El contenido solo se mantiene mientras el computador está encendido.

ROM (Read Only Memory): Memoria de solo lectura, es permanente y no se afecta por el encendido o apagado del computador.

Caché: Memoria de acceso muy rápido, usada como puente entre la UCP y la memoria RAM, para evitar las demoras en la consulta de la memoria RAM.

Tipos de memoria

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Programación de ComputadoresModulo 1. Introducción

Page 11: Conferencia1 - Programacion de Computadores

Representación en Memoria

Elementos que pueden estar en dos estados (prendidos o apagados).

El sistema de numeración binario: representación de este tipo de datos. Utiliza dos símbolos el 1 y el 0.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Programación de ComputadoresModulo 1. Introducción

Page 12: Conferencia1 - Programacion de Computadores

Código BinarioCada 1 en un número binario representa una potencia de 2 según su posición

Ejemplo: El número binario 100110 representa el valor 38

1 0 0 1 1 0

25 24 23 22 21 20

1*32 + 0*16+ 0*8+ 1*4+ 1*2+ 0*1= 38

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Programación de ComputadoresModulo 1. Introducción

Page 13: Conferencia1 - Programacion de Computadores

Medida de la Memoria

Unidad básica de información: BIT que corresponde a un único dígito binario (puede tomar los valores 1 o 0).

BYTE: conjunto de 8 bits. 256 valores diferentes: desde el 00000000 (0 en decimal) al 11111111 (255 en decimal).

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Programación de ComputadoresModulo 1. Introducción

Page 14: Conferencia1 - Programacion de Computadores

Cantidades de Memoria

1 Kilo Byte = 210 Bytes = 1024 Bytes1 Mega Byte = 210 KBytes = 220 Bytes = 1048576 Bytes1 Giga Byte = 210 MBytes = 230 Bytes1 Tera Byte = 210 GBytes = 240 Bytes

Ejemplos:

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Programación de ComputadoresModulo 1. Introducción

Page 15: Conferencia1 - Programacion de Computadores

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

Software

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Programación de ComputadoresModulo 1. Introducción

Sistema Operativo

Herramientas de Desarrollo

Aplicaciones

Page 16: Conferencia1 - Programacion de Computadores

LenguajeMaquina

LenguajeAlto Nivel

HardwareLenguajeEnsamblador

Sistema Operativo

Aplicaciones

Herramientas

Arquitectura de Software

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Programación de ComputadoresModulo 1. Introducción

Page 17: Conferencia1 - Programacion de Computadores

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.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Programación de ComputadoresModulo 1. Introducción

Page 18: Conferencia1 - Programacion de Computadores

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.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Programación de ComputadoresModulo 1. Introducción

Page 19: Conferencia1 - Programacion de Computadores

Lenguaje EnsambladorUsa 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.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Programación de ComputadoresModulo 1. Introducción

Page 20: Conferencia1 - Programacion de Computadores

Lenguaje de Alto NivelEs 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.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Programación de ComputadoresModulo 1. Introducción

Page 21: Conferencia1 - Programacion de Computadores

Compiladores e interpretes

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

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

C++ Java Python

Programación de ComputadoresModulo 1. Introducción

Page 22: Conferencia1 - Programacion de Computadores

AplicacionesAPLICACIÓN: software que le permite al computador realizar una tarea específica.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Video Juegos Hojas de CalculoProcesadores de Texto

Programación de ComputadoresModulo 1. Introducción

Page 23: Conferencia1 - Programacion de Computadores

Herramientas de Desarrollo

Son aplicaciones con las cuales se puede desarrollar nuevo software.

Ejemplos: ambientes integrados de desarrollo como DevC++, Visual C++, en los que se emplea el lenguaje C++.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

1. Arquitectura de un Computador

Programación de ComputadoresModulo 1. Introducción

Page 24: Conferencia1 - Programacion de Computadores

2. Problemas

Se tiene un problema cuando se desea encontrar uno o varios objetos desconocidos (ya sean estos números, símbolos, diagramas, figuras, u otras cosas), que cumplen condiciones o relaciones, previamente definidas, respecto a uno o varios objetos conocidos.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

UN-Virtual

Programación de ComputadoresModulo 1. Introducción

Page 25: Conferencia1 - Programacion de Computadores

Solución de problemaSolucionar el problema es encontrar los objetos desconocidos.

Para solucionar un problema se debe determinar de manera clara y concisa: cuáles son los objetos conocidos, las condiciones y de que tipo son los objetos desconocidos.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

2. Problemas

Programación de ComputadoresModulo 1. Introducción

Page 26: Conferencia1 - Programacion de Computadores

Tipos de problemas

Problemas bien condicionados

Problemas mal condicionados

Problemas indecidibles

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

2. Problemas

Programación de ComputadoresModulo 1. Introducción

Page 27: Conferencia1 - Programacion de Computadores

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?

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

2. Problemas

Programación de ComputadoresModulo 1. Introducción

Page 28: Conferencia1 - Programacion de Computadores

Ejemplos de problemas mal condicionados

De las siguientes imágenes, cuál es la más llamativa?

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

2. Problemas

Programación de ComputadoresModulo 1. Introducción

Page 29: Conferencia1 - Programacion de Computadores

Ejemplos de problemas indecidible

¿Existe en la expansión decimal de Pi una secuencia de tamaño n para cualquier número natural n?

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

2. Problemas

Módulo 1Introducción

Page 30: Conferencia1 - Programacion de Computadores

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.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

UN- Virtual

Programación de ComputadoresModulo 1. Introducción

Page 31: Conferencia1 - Programacion de Computadores

Características de un Algoritmo

PrecisiónDefinitud o Determinismo

Finitud

Hay un orden preciso en el cual deben ejecutarse las tareas que conforman el algoritmo.

Todas las veces que se realicen las tareas o pasos de un algoritmo, con las mismas condi-ciones iniciales, se de-ben obtener resultados idénticos.

El algoritmo debe terminar en algún mo-mento y debe usar una can-tidad finita de recursos.Facultad Ingeniería

Departamento de Ingeniería de Sistemas e Industrial 2. Problemas

Programación de ComputadoresModulo 1. Introducción

Page 32: Conferencia1 - Programacion de Computadores

Datos Instrucciones

Estructuras de control

Para almacenar información: da-tos de entrada, de salida o inter-medios.

Las acciones o procesos que el algoritmo realiza sobre los datos.

Las que determinan el orden en que se ejecutarán las ins-trucciones del algo-ritmo.

Estructura de un Algoritmo

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

2. Problemas

Programación de ComputadoresModulo 1. Introducción

Page 33: Conferencia1 - Programacion de Computadores

Ejemplo de algoritmo

Un estudiante se encuentra en su casa (durmiendo) y debe ir a la universidad (a

tomar la clase de programación!!), ¿Que debe hacer el estudiante?

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

2. Problemas

Programación de ComputadoresModulo 1. Introducción

Page 34: Conferencia1 - Programacion de Computadores

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, entonces3.2.1. Vestirse.

Ejemplo de algoritmo

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

2. Problemas

Programación de ComputadoresModulo 1. Introducción

Page 35: Conferencia1 - Programacion de Computadores

4. Lavarse la boca.5. Despedirse de la mamá y el papá.6. Hay tiempo suficiente?

6.1. Si, entonces6.1.1. Caminar al paradero.

6.2. No, entonces6.2.1. Correr al paradero.

7. Hasta que pase un bus para la universidad hacer:

7.1. Esperar el bus7.2. Ver a las demás personas que esperan un bus.

Ejemplo de algoritmo

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

3. Algoritmos

Módulo 1Introducción

Page 36: Conferencia1 - Programacion de Computadores

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 programación.14. Ingresar al salón.

Ejemplo de algoritmo

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

3. Algoritmos

Programación de ComputadoresModulo 1. Introducción

Page 37: Conferencia1 - Programacion de Computadores

Representación de Algoritmos

Las representaciones más conocidas son:

Diagramas de flujo.

Pseudo-código.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

3. Algoritmos

Programación de ComputadoresModulo 1. Introducción

Page 38: Conferencia1 - Programacion de Computadores

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.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

3. Algoritmos

Programación de ComputadoresModulo 1. Introducción

Page 39: Conferencia1 - Programacion de Computadores

Pseudo Código

Esquema de representación de algoritmos similar al lenguaje natural y cercana a la utilizada en los lenguajes de programación.

Elimina posibles ambigüedades empleando una notación que aunque libre es más restringida que la del lenguaje natural.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

3. Algoritmos

Programación de ComputadoresModulo 1. Introducción

Page 40: Conferencia1 - Programacion de Computadores

sino si B>C

Mayor B

sino

Mayor C

fin_sifin_siescribir Mayor

Pseudo Códigoleer A, B, Csi A>B si A>C Mayor A sino Mayor C fin_si

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

3. Algoritmos

Programación de ComputadoresModulo 1. Introducción

Page 41: Conferencia1 - Programacion de Computadores

4. Solución de Problemas

AlgorítmicosProblema

Programa

Metodología

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

UN - Virtual

Módulo 1Introducción

Page 42: Conferencia1 - Programacion de Computadores

Análisis del problema. Especificación del problema. Diseño del algoritmo. Prueba del algoritmo y

refinamiento. Codificación. Prueba y verificación.

Metodología de Programación

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

4. Solución de Problemas Algoritmicos

Programación de ComputadoresModulo 1. Introducción

Page 43: Conferencia1 - Programacion de Computadores

Análisis del ProblemaEntender 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.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

4. Solución de Problemas Algoritmicos

Programación de ComputadoresModulo 1. Introducción

Page 44: Conferencia1 - Programacion de Computadores

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.

Especificación del Problema

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

4. Solución de Problemas Algoritmicos

Programación de ComputadoresModulo 1. Introducción

Page 45: Conferencia1 - Programacion de Computadores

Ejemplo de EspecificaciónEntradas: 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.Facultad Ingeniería

Departamento de Ingeniería de Sistemas e Industrial 4. Solución de Problemas

Algoritmicos

Programación de ComputadoresModulo 1. Introducción

Page 46: Conferencia1 - Programacion de Computadores

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áximode A, B y C.

Ejemplo de Especificación

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

4. Solución de Problemas Algoritmicos

Programación de ComputadoresModulo 1. Introducción

Page 47: Conferencia1 - Programacion de Computadores

Diseño del algoritmoEs 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.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

4. Solución de Problemas Algoritmicos

Programación de ComputadoresModulo 1. Introducción

Page 48: Conferencia1 - Programacion de Computadores

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.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

4. Solución de Problemas Algoritmicos

Programación de ComputadoresModulo 1. Introducción

Page 49: Conferencia1 - Programacion de Computadores

Codificación

Proceso en el cual se escribe el algoritmo en un lenguaje de programación, utilizando el editor de la herramienta.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

4. Solución de Problemas Algoritmicos

Programación de ComputadoresModulo 1. Introducción

Page 50: Conferencia1 - Programacion de Computadores

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.

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

4. Solución de Problemas Algoritmicos

Programación de ComputadoresModulo 1. Introducción

Page 51: Conferencia1 - Programacion de Computadores

FIN

Gracias por la atención prestada

Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial

UN- Virtual

Programación de ComputadoresModulo 1. Introducción