cap02.pdf

7
  UNIVERSIDAD TECNICA FEDERICO SANTA MARI A DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 2. Acciones Primitivas. Prof. Leopoldo Silva Bijit . 07-07-20 03 4 2. ACCIONES PRIMITIVAS.  En los lenguajes de alto nivel existen cuatro instrucciones primitivas que reflejan lo que un computador puede realizar (en este nivel de abstracción). Se describirán las instrucciones empleando las secuencias de caracteres definidas en el Lenguaje Pascal; y se explicarán las acciones que se efectúan en el proceso o computación, dentro de una Máquina Virtual Pascal. Se denomina máquina virtual, pues es una visión de cómo funciona el computador visto por un programador Pascal. 2.1 Entrada de Datos.  También se denomina lectura de variables. Se codifica, en el texto: read(variable)  Donde: read: es el nombre de la inst rucción. Significa lea en castellano. variable: es el nombre de una variable de algún tipo declarado previamente. los paréntesis delimitan el nombre de la variable. Se interpreta, en el proceso: lee un valor, de acuerdo al tipo de la variable, y lo deposita en la memoria en el lugar que tiene asignado el nombre de dicha variable. lee el valor que se digite en el teclado o artefacto físico de entrada.  Ejemplo: la lectura de una variable entera, consiste de la secuencia de dígitos decimales, digitados en el teclado; el fin del número se detecta al digitar un espacio (barra espaciadora) o al oprimir cualquier carácter que no sea un dígito decimal. Esta acción primitiva modela el canal de entrada; decir, el proceso de comunicación desde el medio externo hacia el computador.

Transcript of cap02.pdf

  • UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

    Programacin en Pascal Captulo 2. Acciones Primitivas.

    Prof. Leopoldo Silva Bijit. 07-07-2003 4

    2. ACCIONES PRIMITIVAS. En los lenguajes de alto nivel existen cuatro instrucciones primitivas que reflejan lo que un computador puede realizar (en este nivel de abstraccin). Se describirn las instrucciones empleando las secuencias de caracteres definidas en el Lenguaje Pascal; y se explicarn las acciones que se efectan en el proceso o computacin, dentro de una Mquina Virtual Pascal. Se denomina mquina virtual, pues es una visin de cmo funciona el computador visto por un programador Pascal. 2.1 Entrada de Datos. Tambin se denomina lectura de variables. Se codifica, en el texto:

    read(variable) Donde:

    read: es el nombre de la instruccin. Significa lea en castellano. variable: es el nombre de una variable de algn tipo declarado previamente. los parntesis delimitan el nombre de la variable.

    Se interpreta, en el proceso: lee un valor, de acuerdo al tipo de la variable, y lo deposita en la memoria en el lugar que

    tiene asignado el nombre de dicha variable.

    lee el valor que se digite en el teclado o artefacto fsico de entrada. Ejemplo: la lectura de una variable entera, consiste de la secuencia de dgitos decimales, digitados en el teclado; el fin del nmero se detecta al digitar un espacio (barra espaciadora) o al oprimir cualquier carcter que no sea un dgito decimal. Esta accin primitiva modela el canal de entrada; decir, el proceso de comunicacin desde el medio externo hacia el computador.

  • UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

    Programacin en Pascal Captulo 2. Acciones Primitivas.

    Prof. Leopoldo Silva Bijit. 07-07-2003 5

    2.2 Asignacin. Se codifica:

    Variable := expresin Donde:

    variable: es el nombre de una variable declarada previamente. la secuencia de caracteres := es el delimitador que separa la variable de la expresin, y que denota asignacin.

    expresin: es una frmula que define la computacin de un valor cuyo tipo debe ser compatible con el de la variable de la izquierda. En la frmula pueden aparecer variables y constantes relacionadas por los operadores permitidos para el tipo de datos.

    Se interpreta: lee desde la memoria el valor que tienen las variables en ese instante. luego realiza las operaciones descritas en la frmula. finalmente deposita el valor del resultado en el espacio asociado a la variable que figura a la

    izquierda del smbolo de asignacin. Ejemplo : x := y+z Si las variables de la expresin son de tipo numrico (enteros o reales), se dice que es una expresin aritmtica. Si las variables de la expresin tienen el tipo Booleano (valores verdaderos o falsos) se dice que es una expresin lgica, o condicin. Tambin se dice lo mismo, si los operadores en la expresin son del tipo relacional (mayor, igual, menor, etc.). La asignacin es una accin primitiva que modela la capacidad aritmtico-lgica del procesador y tambin los procesos de comunicacin entre la memoria y la unidad de proceso.

  • UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

    Programacin en Pascal Captulo 2. Acciones Primitivas.

    Prof. Leopoldo Silva Bijit. 07-07-2003 6

    2.3 Salida de Datos. Se codifica:

    write(expresin) Donde:

    write: es el nombre de la instruccin. Significa escriba en castellano. expresin: con el mismo significado dado en 2.2 los parntesis delimitan la expresin

    Se interpreta: calcula el valor de la expresin y lo enva, de acuerdo al tipo, como una secuencia de

    caracteres hacia el terminal. Por ejemplo: un valor lgico verdadero es enviado hacia el terminal como la secuencia de

    caracteres TRUE, que significa verdad en castellano.

    La secuencia de caracteres se escriben en la misma lnea en que se encontraba el cursor, antes de ejecutar la instruccin de salida.

    Esta accin primitiva modela el canal de salida; es decir, el proceso de comunicacin desde el computador hacia el medio externo. 2.4 Instrucciones de Salto. Secuenciacin. Las instrucciones anteriores especifican claramente la informacin de entrada, la forma de manipulacin (ya sea movimiento de datos, o clculo) y dnde depositar el resultado. Falta an especificar cual es la prxima instruccin que debe efectuarse. Sin este mecanismo no es posible establecer la secuencia finita de instrucciones o algoritmo. Existen dos mecanismos bsicos para establecer el orden en que deben efectuarse las acciones primitivas: a) Concatenacin. Accin compuesta. Se codifica:

    Begin accin1; accin2 end

  • UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

    Programacin en Pascal Captulo 2. Acciones Primitivas.

    Prof. Leopoldo Silva Bijit. 07-07-2003 7

    Donde:

    accin1 y accin2 son algunas de las acciones primitivas ya descritas. el ; (punto y coma) es un delimitador que separa las acciones. Begin (principio) y end (fin) marcan el comienzo y el fin, respectivamente, de una serie de acciones que se efectuarn en forma secuencial.

    Se interpreta: Se realiza accin1, la siguiente accin que debe realizarse es la accin2. La secuencia de caracteres, incluyendo el Begin y end, representan una accin compuesta

    o estructurada secuencialmente, en base a acciones primitivas. La accin compuesta se ilustra con dos acciones; pero evidentemente, pueden establecerse

    secuencias de ms acciones. b) Salto condicionado. Se denomina condicin a una expresin lgica que puede adoptar un valor verdadero o falso. Un salto implica que la siguiente instruccin a realizar debe tener una referencia que la identifique. El nombre de la instruccin a la que debe saltarse suele denominarse rtulo (label en ingls). Por razones que se darn ms adelante, no emplearemos en Pascal un cdigo para esta instruccin; a pesar de que puede implementarse con el repertorio disponible. Si la condicin es verdadera la siguiente instruccin a realizar es la especificada por el rtulo asociado al valor verdadero; si el valor de la condicin es falso la siguiente instruccin a realizar es la especificada por el rtulo asociado al valor falso. En Pascal puede implementarse a travs de la alternativa y el salto incondicional. c) Salto incondicional. Se codifica:

    goto rtulo Donde:

  • UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

    Programacin en Pascal Captulo 2. Acciones Primitivas.

    Prof. Leopoldo Silva Bijit. 07-07-2003 8

    goto es el nombre de la instruccin. Significa 'vaya a' en espaol. rtulo es el identificador de la instruccin que deber efectuarse a continuacin. En Pascal es un nmero entero seguido de dos puntos, que debe preceder a la instruccin.

    En Pascal es la nica instruccin de salto disponible. Los saltos modelan el secuenciador de instrucciones que es parte de la unidad de control del procesador. 2.5 Diagramas de Flujo. Las tres primeras acciones primitivas descritas actan sobre datos, mientras que las instrucciones de salto corresponden a acciones de control o secuenciacin. Las acciones sobre datos pueden representarse en forma grfica mediante el siguiente smbolo: La flecha de entrada ilustra la entrada de los datos, a la accin; y simboliza el estado de las variables (es decir, sus valores) antes de efectuar la accin. Dentro del rectngulo suele describirse la accin propiamente tal. La flecha de salida simboliza el estado de las variables despus de realizada la accin. Una instruccin de salto condicionado puede describirse por el siguiente smbolo: La flecha de entrada simboliza los valores de las variables que permiten determinar el valor lgico de la condicin.

    accin

    condicin

    rtuloF

    rtuloV

    F

    V

  • UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

    Programacin en Pascal Captulo 2. Acciones Primitivas.

    Prof. Leopoldo Silva Bijit. 07-07-2003 9

    Las flechas de salida van hacia puntos del diagrama de flujo, de acuerdo al valor de la condicin. Puede demostrarse que cualquier algoritmo puede describirse, en forma grfica, mediante diagramas de flujo que empleen las componentes bsicas definidas antes. Debido a la gran libertad que implica saltar hacia cualquier instruccin, desde cualquier lugar del programa, los algoritmos secuenciados de esta forma son difciles de entender y explicar. Para entender un programa, el programador debe mantenerse consciente de cmo las instrucciones son interpretadas por la mquina; ya que a medida que transcurre el tiempo van cambiando los valores de las variables; y, por lo tanto, los saltos dependen del valor de las condiciones en un determinado instante. La posibilidad de efectuar saltos hacia atrs; es decir, hacia segmentos previos, crea la situacin que se esquematiza en el diagrama siguiente: El programador para revisar su cdigo, debe tener presente que la evaluacin de la condicin C depende de la va por la que se est ingresando en el test de la condicin. En general, el esfuerzo intelectual para comprender en forma global un diagrama aumenta a medida que aumentan los bloques que tengan ms de una entrada o ms de una salida. La relacin entre los distintos bloques de acciones sobre los datos, se denomina estructura de las acciones. Tambin suele llamarse flujo del control. Puede decirse que mientras ms compleja sea la estructura ms difcil ser mantener consciente la secuencia de acciones. En programacin no slo interesa producir un programa correcto; sino adems interesa demostrar, de modo convincente la correccin de l. Existen numerosos mtodos recientes de prueba y verificacin de programas, pero sigue siendo importante para probar que un programa es correcto el entenderlo. Por estas razones, si bien las instrucciones descritas dan un gran nmero, casi ilimitado, de estructuras posibles, es conveniente e imperativo someterse a estructuras de control simple.

    condicin

    rtuloF

    rtuloV

    F

    V

  • UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

    Programacin en Pascal Captulo 2. Acciones Primitivas.

    Prof. Leopoldo Silva Bijit. 07-07-2003 10

    Que en lo posible reduzcan el tiempo de anlisis de un programa a un tiempo proporcional al nmero de instrucciones que lo componen. Es decir, que no existan bloques con entradas mltiples; o lo que es equivalente, que no existan saltos hacia atrs. De esta forma se podrn leer los programas de arriba hacia abajo sin saltos.