Programacion de computadores

download Programacion de computadores

of 48

description

Programacion

Transcript of Programacion de computadores

  • Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    UN - Virtual2008Mdulo 1Introduccin

  • CONTENIDO1. Arquitectura de un Computador

    2. Problemas

    3. Algoritmo

    4. Solucin de problemasAlgortmicosFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    UN - Virtual2008Programacin de ComputadoresModulo 1. Introduccin

  • Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    UN - Virtual20081. Arquitectura de un ComputadorEst dividida en dos partes importantes:

    Hardware: Es la que hace referencia a la parte fsica de un computador y de cualquier dispositivo electrnico.

    Software: Es la que hace referencia a la parte lgica de un computador.La Arquitectura Von NewmanProgramacin de ComputadoresModulo 1. IntroduccinCPU

  • Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de ComputadorHardwareLa Arquitectura Von NewmanUnidad central de ProcesoDispositivos de entrada, salida, almacenamiento, comunicacin y cmputoMemoriaProgramacin de ComputadoresModulo 1. IntroduccinCPU

  • Unidad Central de Proceso (CPU)Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura del ComputadorMicropocesador Athlon 64 X2 E6 3800+ Programacin de ComputadoresModulo 1. Introduccin

  • DispositivosFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorEntradaSalidaAlmacenamientoComunicacinCmputoProgramacin de ComputadoresModulo 1. Introduccin

  • Tipos de memoriaFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorProgramacin de ComputadoresModulo 1. Introduccin

    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 rpido, usada como puente entre la UCP y la memoria RAM, para evitar las demoras en la consulta de la memoria RAM.

  • Representacin en MemoriaElementos que pueden estar en dos estados (prendidos o apagados).

    El sistema de numeracin binario: representacin de este tipo de datos. Utiliza dos smbolos el 1 y el 0.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorProgramacin de ComputadoresModulo 1. Introduccin

  • Cdigo BinarioCada 1 en un nmero binario representa una potencia de 2 segn su posicin

    Ejemplo: El nmero binario 100110 representa el valor 38

    Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorProgramacin de ComputadoresModulo 1. Introduccin

    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

  • Medida de la MemoriaUnidad bsica de informacin: BIT que corresponde a un nico dgito 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 IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorProgramacin de ComputadoresModulo 1. Introduccin

  • Cantidades de Memoria1 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 BytesEjemplos:Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorProgramacin de ComputadoresModulo 1. Introduccin

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

    SoftwareFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorProgramacin de ComputadoresModulo 1. IntroduccinSistema Operativo

    Herramientas de Desarrollo

    Aplicaciones

  • LenguajeMaquinaLenguajeAlto NivelHardwareLenguajeEnsambladorSistema OperativoAplicacionesHerramientasArquitectura de SoftwareFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorProgramacin de ComputadoresModulo 1. Introduccin

  • Sistema OperativoSoftware encargado de administrar los recursos del sistema.Ofrece un conjunto de comandos a los humanos, para interactuar con la mquina.Puede ser escrito en lenguaje de alto nivel, en lenguaje ensamblador y/o en lenguaje mquina.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorProgramacin de ComputadoresModulo 1. Introduccin

  • Lenguaje de Mquinanico lenguaje que entiende el hardware (mquina).

    Especfico para cada hardware (procesador, dispositivos, etc.).

    Programa: almacenado en memoria, contiene instrucciones y datos.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorProgramacin de ComputadoresModulo 1. Introduccin

  • Lenguaje EnsambladorSoftware, generalmente escrito en lenguaje de mquina, capaz de traducir de lenguaje ensamblador a lenguaje de mquina.

    Usa mnemnicos para codificar las operaciones. Los datos y/o direcciones son codificados generalmente como nmeros en sistema hexadecimal.

    Es especfico (aunque no nico) para cada lenguaje de mquina.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorProgramacin de ComputadoresModulo 1. Introduccin

  • Lenguaje de Alto NivelEs un lenguaje con una estructura sintctica 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 aritmticas y relacionales.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorProgramacin de ComputadoresModulo 1. Introduccin

  • Lenguaje de Alto NivelCOMPILADORES e INTERPRETES: software capaz de traducir de un lenguaje de alto nivel al lenguaje de mquina. Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorC++ Java PythonProgramacin de ComputadoresModulo 1. Introduccin

  • AplicacionesAPLICACIN: software que le permite al computador realizar una tarea especfica.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorVideo JuegosHojas de CalculoProcesadores de TextoProgramacin de ComputadoresModulo 1. Introduccin

  • Herramientas de DesarrolloEs una aplicacin que presenta un ambiente en el que, empleando un lenguaje de programacin, se puede desarrollar nuevo software.

    Ejemplos: ambientes integrados de desarrollo como DevC++, Visual C++, en los que se emplea el lenguaje C++.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    1. Arquitectura de un ComputadorProgramacin de ComputadoresModulo 1. Introduccin

  • 2. ProblemasSe tiene un problema cuando se desea encontrar uno o varios objetos desconocidos (ya sean estos nmeros, smbolos, diagramas, figuras, u otras cosas), que cumplen condiciones o relaciones, previamente definidas, respecto a uno o varios objetos conocidos. Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    UN-VirtualProgramacin de ComputadoresModulo 1. Introduccin

  • Solucin de problemaSolucionar el problema es encontrar los objetos desconocidos.

    Para solucionar un problema se debe determinar de manera clara y concisa: cules son los objetos conocidos, las condiciones y de que tipo son los objetos desconocidos.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    2. ProblemasProgramacin de ComputadoresModulo 1. Introduccin

  • Tipos de problemas

    Problemas bien condicionados Problemas mal condicionados

    Problemas indecidibles

    Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    2. ProblemasProgramacin de ComputadoresModulo 1. Introduccin

  • Ejemplo de problema bien condicionadoUn 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 IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    2. ProblemasProgramacin de ComputadoresModulo 1. Introduccin

  • Ejemplos de problemas mal condicionadosDe las siguientes imgenes, cul es la ms llamativa?Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    2. ProblemasProgramacin de ComputadoresModulo 1. Introduccin

  • Ejemplos de problemas indecidibleExiste en la expansin decimal de Pi una secuencia de tamao n para cualquier nmero natural n?Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    2. ProblemasMdulo 1Introduccin

  • 3. AlgoritmoSecuencia bien definida y finita de tareas bien definidas, cada una de las cuales se puede realizar con una cantidad de recursos finitos.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    UN- VirtualProgramacin de ComputadoresModulo 1. Introduccin

  • Caractersticas de un AlgoritmoFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    2. ProblemasProgramacin de ComputadoresModulo 1. Introduccin

    PrecisinDe finitud o DeterminismoFinitudHay 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 idnticos.El algoritmo debe terminar en algn mo-mento y debe usar una can-tidad finita de recursos.

  • Estructura de un AlgoritmoFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    2. ProblemasProgramacin de ComputadoresModulo 1. Introduccin

    DatosInstruccionesEstructuras de controlPara almacenar informacin: 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 ejecutarn las ins-trucciones del algo-ritmo.

  • Ejemplo de algoritmoUn estudiante se encuentra en su casa (durmiendo) y debe ir a la universidad (a tomar la clase de programacin!!), Que debe hacer el estudiante?Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    2. ProblemasProgramacin de ComputadoresModulo 1. Introduccin

  • 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. Baarse.3.1.2. Vestirse.3.1.3. Desayunar.3.2. No, entonces3.2.1. Vestirse.Ejemplo de algoritmoFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    2. ProblemasProgramacin de ComputadoresModulo 1. Introduccin

  • 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 dems personas que esperan un bus.Ejemplo de algoritmoFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    3. AlgoritmosMdulo 1Introduccin

  • 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 saln donde se dicta su curso de programacin.14. Ingresar al saln.Ejemplo de algoritmoFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    3. AlgoritmosProgramacin de ComputadoresModulo 1. Introduccin

  • Representacin de AlgoritmosLas representaciones ms conocidas son:

    Diagramas de flujo.

    Pseudo-cdigo.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    3. AlgoritmosProgramacin de ComputadoresModulo 1. Introduccin

  • Diagramas de FlujoEsquema de representacin grfico de algoritmos.

    Usa elementos grficos como rectngulos y rombos.

    Se pueden usar operaciones matemticas.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    3. AlgoritmosProgramacin de ComputadoresModulo 1. Introduccin

  • Pseudo CdigoEsquema de representacin de algoritmos que usa un subconjunto del lenguaje natural del diseador de algoritmos.

    Elimina posibles ambigedades empleando una notacin que aunque libre es ms restringida que la del lenguaje natural. Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    3. AlgoritmosProgramacin de ComputadoresModulo 1. Introduccin

  • sino si B>C Mayor B sino Mayor C fin_sifin_siescribir MayorPseudo Cdigoleer A, B, Csi A>B si A>C Mayor A sino Mayor C fin_siFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    3. AlgoritmosProgramacin de ComputadoresModulo 1. Introduccin

  • 4. Solucin de Problemas AlgortmicosFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    UN - VirtualMdulo 1Introduccin

    Problema

    Programa

    Metodologa

  • Anlisis del problema. Especificacin del problema. Diseo del algoritmo. Prueba del algoritmo y refinamiento. Codificacin. Prueba y verificacin.

    Metodologa de ProgramacinFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    4. Solucin de Problemas AlgoritmicosProgramacin de ComputadoresModulo 1. Introduccin

  • Anlisis del ProblemaEntender de manera clara el problema que se esta resolviendo.

    Esta fase de la metodologa concuerda con el proceso de identificacin de objetos conocidos, objetos desconocidos y condiciones usado en la seccin de problemas.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    4. Solucin de Problemas Algoritmicos

    Programacin de ComputadoresModulo 1. Introduccin

  • Descripcin clara y precisa de:

    Las entradas del problema.Las salidas del problema.Las condiciones, es decir la dependencia que mantendrn las salidas obtenidas con las entradas recibidas.Especificacin del Problema Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    4. Solucin de Problemas Algoritmicos

    Programacin de ComputadoresModulo 1. Introduccin

  • Ejemplo de EspecificacinEntradas: 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 IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    4. Solucin de Problemas Algoritmicos

    Programacin de ComputadoresModulo 1. Introduccin

  • Problema: Construir un algoritmo que determine el mayor de tres nmeros enteros.

    Especificacin:

    Entradas: A,B,C (nmeros de entrada) de tipo entero.

    Salidas: Mayor de tipo entero.

    Condiciones: Mayor debe ser el valor mximode A, B y C.Ejemplo de EspecificacinFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    4. Solucin de Problemas Algoritmicos

    Programacin de ComputadoresModulo 1. Introduccin

  • Diseo del algoritmoEs la fase en la que se construye el algoritmo que permitir encontrar la solucin al problema.

    La forma adecuada de realizar este proceso es subdividirlo.

    Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    4. Solucin de Problemas Algoritmicos

    Programacin de ComputadoresModulo 1. Introduccin

  • Prueba del Algoritmo y RefinamientoProceso de seguimiento del algoritmo para verificar que cumple con la especificacin. Si no se cumple con la especificacin se va refinando hasta lograr el objetivo.

    Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    4. Solucin de Problemas Algoritmicos

    Programacin de ComputadoresModulo 1. Introduccin

  • CodificacinProceso en el cual se escribe el algoritmo en un lenguaje de programacin, utilizando el editor de la herramienta.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    4. Solucin de Problemas Algoritmicos

    Programacin de ComputadoresModulo 1. Introduccin

  • Prueba y VerificacinProceso en el cual se corrigen los errores de sintaxis y de lgica del programa, hasta lograr que el programa resuelva el problema.Facultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    4. Solucin de Problemas Algoritmicos

    Programacin de ComputadoresModulo 1. Introduccin

  • FINGracias por la atencin prestadaFacultad IngenieraDepartamento de Ingeniera de Sistemas e Industrial

    UN- VirtualProgramacin de ComputadoresModulo 1. Introduccin