tema1.introduccion a la programación

Upload: maria-alvarez-lopez

Post on 04-Feb-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Tema1.Introduccion a La Programacin

    1/19

    11

    Tema 1

    Introduccin a la programacin

    2

    Introduccin.Conceptosprevios

    Informtica (RAE): Conjunto de conocimientos cientficos y tcnicas que

    hacen posible el tratamiento automtico de lainformacin por medio de computadoras electrnicas.

    Computadora: mquina capaz de aceptar unos datos de entrada,

    efectuar con ellos operaciones lgicas y aritmticas, yproporcionar la informacin resultante a travs de unmedio de salida.

  • 7/21/2019 Tema1.Introduccion a La Programacin

    2/19

    3

    1.1. Arquitectura Bsica

    Basada en la arquitectura inventada por VonNeumann en 1945.

    Idea: Crearuna mquina capaz de ejecutar instrucciones

    ledas de memoria y ejecutadas en la CPU comunicndose

    con el exterior a travs de la Unidad de E/S

    4

    ARQUITECTURA DE VON NEUMANN

  • 7/21/2019 Tema1.Introduccion a La Programacin

    3/19

    5

    ARQUITECTURA DE VON NEUMANN Memoria Principal: espacio de almacenamiento temporal dividido

    en celdas de igual tamao destinado a almacenar instrucciones ydatos.

    Unidad Central de Proceso: Se encarga de la ejecucin de lasinstrucciones almacenadas en la memoria.

    Unidad Aritmtica: encargada de realizar las operacionesaritmticas (sumas, restas, ...) y lgicas (and, or, not, ...).

    Unidad de Control: Su funcin es decodificar las instrucciones delprograma en ejecucin y generar todas las seales necesariaspara que puedan ser ejecutadas.

    Unidad de E/S: permite la comunicacin de la CPU y la memoria

    con el exterior: impresora, monitor, teclado, ... Registros: almacn temporal que se usa durante la ejecucin de

    las instrucciones.

    6

    1.2. TIPOS DE DISPOSITIVOS DE E/S

    Dispositivos de Entrada: permiten al usuariointroducir la informacin en el sistema. Los datosledos se almacenan en memoria. Ejempos:teclado, ratn, escanner, webcam ...

    Dispositivos de Salida: son los encargados demostrar los resultados obtenidos por la

    computadora al usuario. Ejemplos: monitor,impresora, ...

    Dispositivos de Entrada/Salida : permiten tantola entrada de informacin en la computadoracomo la salida de la misma. Ejemplos: tarjeta dered, mdem, etc.

  • 7/21/2019 Tema1.Introduccion a La Programacin

    4/19

    7

    2. Sistemas Operativos.Tipos

    Definicin: Un Sistema Operativo es un programa oconjunto de programas que acta como intermediarioentre el usuario y el hardware del ordenador, ocultando sucomplejidad mediante una interfaz sencilla de utilizar.

    Objetivos:

    Hacer cmoda la utilizacin de la computadora.

    Utilizar recursos de la computadora de formaeficiente.

    8

    Funciones del SO

    Gestin de procesos

    Gestin de memoria

    Gestin de dispositivos de E/S

    Gestin del sistema de ficheros

    Gestin de la red

    Proteccin

    Gran parte de estas funciones las realiza un componente

    importante del SO llamado kernel que es la parte del SO

    residente en memoria.

  • 7/21/2019 Tema1.Introduccion a La Programacin

    5/19

    9

    El ordenador y los algoritmos(1)

    Un ordenador es una mquina que ejecutaalgoritmos

    Algoritmo (RAE):Conjunto ordenado yfinito de operaciones que permite hallar lasolucin de un problema.

    La ejecucin o procesamiento de unalgoritmo supone la transformacin deuna informacin de salida o resultados.

    +Datos Algoritmo

    Programa

    10

    El ordenador y los algoritmos(2)

    Una tarea ejecutable por un ordenador dalugar a un problema algortmico

    El algoritmo es la solucin a ese problema(software)

    Cuando un algoritmo es ejecutado por los

    circuitos de un ordenador (hardware) seorigina un proceso que genera resultadosa partir de los datos.

    Unproceso se caracteriza por unasucesin de estados de determinadasmagnitudes que estn almacenadas en lamemoria delordenador, yque llamaremosvariables.

  • 7/21/2019 Tema1.Introduccion a La Programacin

    6/19

    11

    caractersticas de losalgoritmos

    Un algoritmo debe resolver el problema para el que fue formulado.Lgicamente no sirve un algoritmo que no resuelve ese problema. En elcaso de los programadores, a veces crean algoritmos que resuelvenproblemas diferentes al planteado.

    Los algoritmos son independientes del ordenador. Los algoritmos seescriben para poder ser utilizados en cualquier mquina.

    Los algoritmos deben de ser precisos. Los resultados de los clculosdeben de ser exactos, de manera rigurosa. No es vlido un algoritmo queslo aproxime la solucin.

    Los algoritmos deben de ser finitos. Deben de finalizar en algnmomento. No es un algoritmo vlido aquel que produce situaciones en lasque el algoritmo no termina.

    Los algoritmos deben de poder repetirse. Deben de permitir suejecucin las veces que haga falta. No son vlidos los que tras ejecutarseuna vez, ya no pueden volver a hacerlo por la razn que sea.

    12

    Algoritmos. Datos formales Los algoritmos se construyen utilizando

    elementos simples para que el lenguaje separezca ms al de las computadoras

    Los datos de los algoritmos son: Nmeros(10, 25, 5.32) Textos(Hola mundo) Lgicos(VERDADERO, FALSO, true, false) Datos compuestos (registros, listas)

  • 7/21/2019 Tema1.Introduccion a La Programacin

    7/19

    13

    Algoritmos. Datos formales Los algoritmos pueden tener

    expresiones, las cuales se componen de: Variables(x, resta, saldo) Operadores (+, -, *, >,

  • 7/21/2019 Tema1.Introduccion a La Programacin

    8/19

    15

    Diagramas de flujo

    Inicio Representa el principio del algoritmo

    Fin Representa el final del algoritmo

    Operacin

    Entrada o salida de datos

    Condicin

    Direccin del flujo del programa

    16

    Pseudocdigo

    Es otra forma derepresentar algoritmos

    Se asemeja ms a los

    lenguajes de programacinde alto nivel

  • 7/21/2019 Tema1.Introduccion a La Programacin

    9/19

    17

    Pseudocdigo.Instrucciones (1)

    ESCRIBIR. Muestra algo en eldispositivo de salida (la pantallanormalmente)

    LEER variable.Lee un dato (delteclado) y lo almacena en esavariable

    . Asignar valor

    Comparaciones: < >

    18

    Pseudocdigo.Instrucciones (2) SI condicinENTONCES instrucciones

    [SINOinstrucciones]FIN SI

    EN CASO DE variablevalor1:instrucciones

    valor2:instrucciones...EN OTRO CASO: instruccionesFIN EN CASO DE

  • 7/21/2019 Tema1.Introduccion a La Programacin

    10/19 1

    19

    Pseudocdigo.Instrucciones (3)

    MIENTRAS condicin HACERinstruccionesFIN MIENTRAS

    REPETIRinstruccionesHASTA condicin

    PARA variable DEvalorInicial AvalorFinal [INCREMENTO valor]

    instruccionesFIN PARA

    20

    Lenguajes de programacin.Tipos (I)Clasificacin cronolgica

    Lenguajes de primera generacin: A principio de los 50 se

    usaba el lenguaje mquina y el ensamblador.

    Lenguajes de segunda generacin: a finales de los 50

    principios de los 60 se ampla el uso de los lenguajes para las

    aplicaciones cientfico-militares y aparecen las aplicaciones de

    gestin. Fortran, Cobol y Algol.

    Lenguajes de tercera generacin: nacen con la

    programacin estructurada y presentan potentes posibilidades

    de estructuracin de datos y procedimientos. Pascal, C, etc.

    Lenguajes de cuarta generacin: combinan caractersticas

    procedurales y no procedurales. SQL, OASIS, lenguajes de

    generacin de informes, etc.

  • 7/21/2019 Tema1.Introduccion a La Programacin

    11/19

    21

    Lenguajes de programacin.Tipos (II)

    Segn su proximidad al lenguaje mquinaLenguajes de bajo nivel: la nica ventaja de estoslenguajes es que ocupan poco espacio en memoriay se ejecutan con mayor rapidez.

    Lenguaje mquina: cada instruccin se codificacomo una secuencia de 1's y 0's, lo que dificultael desarrollo de programas complejos.

    Lenguaje ensamblador: cada instruccin en

    ensamblador equivale a una instruccin enlenguaje mquina. Utiliza palabrasmnemotcnicas en lugar de cadenas de bits.

    22

    Lenguajes de alto nivel: surgen con posterioridad a los

    anteriores, se caracterizan por:

    Independencia de la mquina: se puede usar el mismo

    programa en diferentes equipos con la nica condicin de

    disponer de un programa traductor o compilador.

    Aproximarse al lenguaje natural: se sustituyen los

    mnemotcnicos por sentencias if...then...else, entre otras. Incluir rutinas de uso frecuente:disponen de una serie de

    libreras que se pueden utilizar siempre que se quiera sin

    necesidad de programarlas cada vez. Funciones matemticas,

    manejo de cadenas, etc.

    Lenguajes de programacin.Tipos (III)

  • 7/21/2019 Tema1.Introduccion a La Programacin

    12/19 1

    23

    Lenguajes de alto nivel

    24

    Segn funcionalidad

    Lenguajes para la educacin: Logo, Pilot, Eiffel, ...

    De propsito general: concebidos no para una aplicacin concreta,

    sino para ser eficaces en diversos campos. Pascal, C

    Lenguajes de inteligencia artificial: creados para la emulacin de

    programas que emulan comportamientos inteligentes. Lisp, Prolog.

    Orientados a la gestin:las aplicaciones de gestin se caracterizan

    por tener la necesidad de manejar grandes volmenes de informacin

    de forma fiable. Cobol, Clipper, PL/SQL, ...

    Cientficos:se caracterizan por realizar pocas operaciones de E/S y

    por el contrario una gran cantidad de clculos complejos. Fortran, Apl,

    ...

    Orientados a Internet: son lenguajes transversales a la mquina y al

    sistema operativo. PHP, Java.

    Orientados a tiempo real: pensados para dar respuesta a exigentes

    requisitos temporales.

    Lenguajes de programacin. Tipos

  • 7/21/2019 Tema1.Introduccion a La Programacin

    13/19 1

    25

    Segn traduccin a cdigo mquina

    Interpretados: la mxima es sentencia traducida, sentencia

    ejecutada. Toma un programa fuente y lo va traduciendo yejecutando simultneamente.

    Ventajas: posee una sintaxis ms elaborada que la de los

    ensambladores. Adems la velocidad de traduccin depende

    fundamentalmente de la sintaxis del lenguaje. Cuanto ms

    simple, ms rpido ser el anlisis de cada sentencia.

    Inconvenientes: una sentencia que tenga que ejecutarse varias

    veces tendr que traducirse tambin varias veces.

    La forma de evitar estos retardos consiste en adoptar una

    estrategia diferente a la traduccin-ejecucin. Consiste en

    traducir el programa completo y despus ejecutarlo. As surgenlos compiladores.

    Compilados: un compilador es un traductor que genera un

    programa objeto (programa escrito en un lenguaje de bajo nivel) a

    partir de un programa fuente (programa en lenguaje de alto nivel).

    Lenguajes de programacin. Tipos

    26

  • 7/21/2019 Tema1.Introduccion a La Programacin

    14/19 1

    27

    28

  • 7/21/2019 Tema1.Introduccion a La Programacin

    15/19 1

    29

    CICLO DE VIDA

    Las distintas fases del ciclo de vida de unprograma se realizan secuencialmente, encada una de las etapas se genera unadocumentacinque servir para iniciar lasiguiente. A este proceso se le conocecomo ciclo de vida clsicoo en cascada.

    En la elaboracin de aplicaciones existenunas fases a las que se denominan Ciclo

    de vida, ya que una vez que llegamos a laltima fase puede ser que sea necesariocomenzar el ciclo de nuevo en otra faseanterior.

    30

    Modelo Clsico o en cascada

  • 7/21/2019 Tema1.Introduccion a La Programacin

    16/19 1

    31

    ANLISIS

    Estudio de la situacin y requisitosexistentes. Se establece la viabilidaddel proyecto. Existen diversastcnicas para realizar el anlisisestructurado:

    Diagramas de flujos de datos

    Modelos de datos

    Diccionarios de datos

    Definicin de las interfaces de usuario

    32

    DISEO

    Se establece una solucin ptima con lossuficientes detalles para la realizacinfsica de la aplicacin.

    Se pueden establecer las siguientes etapas: Diseo externo

    Diseo de datos

    Diseo modular

    Diseo procedimental

    Al final de esta fase se obtiene el cuadernode carga.

  • 7/21/2019 Tema1.Introduccion a La Programacin

    17/19 1

    33

    CODIFICACIN YPRUEBAS

    El objetivo de estas pruebas esgarantizar que el sistema ha sidodesarrollado correctamente, sinerrores de diseo y/o programacin.Es conveniente que sean planteadasal menos tanto a nivel de cadamdulo (aislado del resto), como deintegracin del sistema.

    34

    EXPLOTACIN

    Esta etapa tiene como objetivo laverificacin de que el sistema desarrolladocumple con los requisitos expresadosinicialmente por el cliente y que han dadolugar al presente proyecto.

    Incluye: Formacin de los usuarios (para lacorrecta utilizacin del sistema),ydocumentacin necesaria para laexplotacin del sistema y el manual deuso o gua de la aplicacin.

  • 7/21/2019 Tema1.Introduccion a La Programacin

    18/19 1

    35

    MANTENIMIENTO

    DEPURAR, CORREGIR, MEJORAR YADAPTAR la aplicacin si no respondeexactamente a la solucin buscada.

    Clases de mantenimiento:

    Correctivo

    Adaptativo

    Perfectivo

    36

    Ensamblador/Linker: un ensamblador traduce unprograma en lenguaje ensamblador a cdigo mquina.Cada instruccin en ensamblador genera una instruccinen cdigo mquina. En el proceso de linkado se obtieneel programa ejecutable a partir del cdigo mquinaobtenido al ensamblar.

    Por lo tanto, un linker es un programa que tomalos ficheros de cdigo objeto, la informacin detodos los recursos necesarios (bibliotecas,libreras del lenguaje, etc), y enlaza el cdigoobjeto con su(s)biblioteca con lo que finalmenteproduce un fichero ejecutable (un fichero .exe).

    Utilidades para la programacin

    ProgramaFuente

    .c

    Programaobjeto.obj

    Programaejecutable

    .exeEnsamblar Linkar

  • 7/21/2019 Tema1.Introduccion a La Programacin

    19/19

    37

    Utilidades para la programacin(II)

    Intrprete:toma un programa fuente escrito en un lenguaje de altonivel y lo va traduciendo y ejecutando simultneamente.

    Compilador:es un traductor que genera un programa objeto a partir

    de un programa fuente escrito en un lenguaje de alto nivel.

    Depuradores:es una herramienta que permite depurar o limpiar los

    errores de un programa fuente. Normalmente esta herramienta est

    integrada en el entorno de programacin del lenguaje.

    RAD: abreviatura de Rapid Application Development. Se suele usar

    para referirnos a IDEs (Herramientas de Desarrollo Integrado) como

    Delphi, Foxpro, Eclipse, Visual Basic, etc.

    CASE:Computer Aided SW Engineering, persigue proporcionar un

    conjunto de herramientas, bien integradas, que enlacen yautomaticen todas las fases del ciclo de vida del SW.