tema2_estructuras de lenguajes programaci-n_p2

45
Lenguajes de Programación Prof. Luis Eduardo Mathison B. Revisión Enero 2003/Modif. A.Perez Ago.2003

Upload: jose-javier-liscano-escalona

Post on 16-Jan-2016

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema2_Estructuras de Lenguajes Programaci-n_P2

Lenguajes de Programación

Prof. Luis Eduardo Mathison B.

Revisión Enero 2003/Modif. A.Perez Ago.2003

Page 2: Tema2_Estructuras de Lenguajes Programaci-n_P2

2Prof. Luis Eduardo Mathison B.

ContenidoTEMA 2

ESTRUCTURA DE LOS LENGUAJES DE ESTRUCTURA DE LOS LENGUAJES DE PROGRAMACIONPROGRAMACION

Lenguajes Naturales Vs. Lenguajes de Prog.

A. Caracteres

B.Símbolos Básicos de Caracteres Múltiples

C. Elementos básicos de un lenguaje de programación

D. Expresiones

E.Proposiciones

Page 3: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 3

Estructura de los Lenguajes de Programación

Los lenguajes de programación al igual que los lenguajes naturales poseen componentes muy bien diferenciados, es decir, posee símbolos, palabras, oraciones, párrafos; denominados de otra manera pero con la equivalencia respectiva

Page 4: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 4

LENGUAJES NATURALES LENGUAJES DE PROGRAMACIÓN

Párrafos Proposiciones  Oraciones Expresiones   Tipo de Palabras (verbos, sustantivos, etc.) Elementos Básicos    Palabras Símbolos Básicos  

Caracteres Caracteres

Estructura de los Lenguajes de Programación

Page 5: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 5

Estructura de los Lenguajes de Programación

a.     Caracteres Son los símbolos básicos con los cuales se construyen

estructuras sintácticas más complejas.

Los lenguajes naturales tienen alfabeto constituido por: letras (mayúsculas y minúsculas), dígitos y caracteres especiales ( ; , :, ? , etc.) estos símbolos son arbitrarios pero se les da un significado específico por algún acuerdo.

Page 6: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 6

Estructura de los Lenguajes de Programación

b. Símbolos Básicos de Caracteres Múltiples

  Son las palabras claves, reservadas o no, o los símbolos básicos delimitados.

Tienen su significado específico lo que implica que en su interpretación no habrá ambigüedad.

El traductor reconoce este significado y el programador debe emplear el símbolo básico de caracteres múltiples exactamente en el sentido definido.

Page 7: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 7

Estructura de los Lenguajes de Programación

b. Símbolos Básicos de Caracteres Múltiples

  Se dan casos en el cual dos caracteres especiales se concatenan para formar una simbología básica. Ejemplo : PASCAL la asignación es: :=

Una vez que se tiene el conjunto de los símbolos básicos, estos pueden ser utilizados para formar elementos del lenguaje a diferentes niveles de complejidad (diferentes unidades sintácticas).

Page 8: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 8

Estructura de los Lenguajes de Programación PASCAL

Fundamentos Básicos

Palabras reservadas Pascal Estandar y Turbo PascalABSOLUTE AND ARRAY ASM ASSEMBLER BEGIN

BOOLEAN BYTE CASE CHAR COMP CONSTCONSTRUCTOR DESTRUCTOR DIV DO DOUBLEDOWNTO ELSE END EXPORT EXPORTSEXTENDED EXTERNAL FAR FILE FOR FORWARD FUNCTION GOTO IF IMPLEMENTATION ININDEX INHERITED INLINE INTEGER INTERFACEINTERRUPT LABEL LIBRARY LONGINT MODNAME NEAR NIL NOT OBJECT OF OR

PACKED POINTER PRIVATE PROCEDUREPROGRAM PUBLIC REAL RECORD REPEATRESIDENT SET SHL SHORTINT SHR SINGLE

STRING THEN TO TYPE UNIT UNTIL USES

VAR VIRTUAL WHILE WITH WORD XOR

Page 9: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 9

Estructura de los Lenguajes de Programación

c.    Elementos básicos de un lenguaje de programación

  Son las estructuras sintácticas correspondientes a los conceptos más sencillos de los lenguajes de computación que manejan los algoritmos.

Los elementos básicos (E.B.) son:

1. Valores 3. Etiquetas

2. Nombres o identificadores 4. Cadenas

Page 10: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 10

Estructura de los Lenguajes de Programación

c.    Elementos básicos de un lenguaje de programación

1.      Valores a.  Valores Numéricos

b.  Valores Lógicos

2.   Nombres Simbólicos o Identificadores

3.  Etiquetas

4.  Cadenas

 

     

Page 11: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 11

Estructura de los Lenguajes de Programación

c.    Elementos básicos de un lenguaje de programación

1.   Valores a.  Valores NuméricosFORTRAN: clasifica los valores numéricos en enteros, reales y

complejos. COBOL:Literal Numérico: secuencia de dígitos (0,1,...,9). Puede contener

hasta 18 dígitos.

Literal No Numérico: secuencia de caracteres pertenecientes al conjunto de caracteres del COBOL y deben estar encerrados entre comillas y no mayor de 120 caracteres (depende de la versión).

b.      Valores Lógicos FORTRAN: .TRUE. .FALSE. COBOL: No posee valores lógicos.

     

Page 12: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 12

Estructura de los Lenguajes de Programación PASCAL

Tipos de datos

En Turbo Pascal existen diferentes tipos de datos, los cuales utilizamos para manipular la información.

Tipo Descripción Rango

Boolean Valores True o False

Byte Números enteros 0 .. +255

Char Caracteres ASCII '$', '%', '¦', 'ß', '¢'

Comp Números reales -9.2E18 a 9.2E18

Double Números reales 5.0E -324 a 1.7E +308

Extended Números reales 1.9E -4851 a 1.1E +4932

Integer Números enteros -32768 .. +32767

Longint Números enteros -2147483648 .. +2147483647

Real Números con decimales 2.9E -39 a 1.7E +38

Shortint Números enteros -128 .. + 127

Single Números reales 1.5E -45 a 3.4E +38

String Conjunto de caracteres 'La casa', 'El toro', 'Camion' Word Números enteros 0 .. +65535

Page 13: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 13

Estructura de los Lenguajes de Programación FORTRAN

FORTRAN: Admite palabras claves (no reservadas) y

las palabras delimitadas. Algunas de ellas son:

INTEGER, REAL, COMPLEX, LOGICAL, CHARACTER, DIMENSION, DATA, FORMAT, IMPLICIT, READ. DOUBLE PRECISION, WRITE, PRINT, STOP, IF, THEN, ELSE, ENDIF, DO, ENDDO, END, CALL, GOTO, RETURN, WHILE.

Palabras Delimitadas: (Operadores Logicos)

.EQ., .NE.,.LT., .LE., .GT., .GE.,.TRUE., .FALSE. , .AND.,

.OR., .NOT.

Page 14: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 14

Estructura de los Lenguajes de Programación

COBOL: palabras claves reservadas (no

admite delimitadas).

Algunas son: ACCEPT, DELETE, INITIATE, PICTURE,

ACCESS, DELIMITED, INPUT, PLUS, ADD, IS, DELIMITER, POINTER, POSITION, AFTER, ALL, DISPLAY, DETAIL, ADVANCING, DESCENDING, TABLE, LINE, DIVIDE, PROCEDURE, PROCEED, LEFT.

Page 15: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 15

Estructura de los Lenguajes de Programación PASCAL

2. IdentificadoresSon etiquetas que nos representan variables, constantes,

procedimientos, tipos de datos, funciones..

PASCAL: Los identificadores son una secuencia de 1 a 127 caracteres, en donde el primer carácter debe ser alfabético, y el resto no debe contener espacios en blanco y caracteres especiales como son: !, %, $, &...

FORTRAN: los identificadores pueden tener hasta 6 caracteres alfabéticos (A..Z) y/o dígitos (0..9), el primero debe ser alfabético y no se aceptan caracteres especiales. Además sí el carácter de inicio del identificador es I,J,K,L,M la variable automáticamente será asumida como tipo entero. Ej.: SUELDO, X23, A, N.

COBOL: es una secuencia de caracteres alfabéticos (A..Z), y/o dígitos (0..9) y/o el guión (-), hasta una longitud máxima de 30, donde al menos uno debe ser alfabético. El primero puede ser un dígito. El guión no puede ser ni el primero ni el último. Ej.: VENTAS-NETAS, 1SALDO-ANTERIOR, 123N.

Page 16: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 16

Estructura de los Lenguajes de Programación

c.    Elementos básicos de un lenguaje de programación

3.  Etiquetas FORTRAN: admite etiquetas formadas por números

enteros sin signo. Ej. 40, 80, 1, 10, 14, 12 ...COBOL: permite etiquetas formadas por números o

identificadores. Ej.: 20, LECTURA-REGISTRO.

4.  CadenasFORTRAN: ' ESTA ES UNA CADENA EN FORTRAN’COBOL: "CADENA EN COBOL"

 

     

Page 17: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 17

Estructura de los Lenguajes de Programación

d.     Expresiones

 Son unidades sintácticas mayores formadas por la agrupación definida de los símbolos básicos y los elementos básicos. Constituyen una regla que define el calculo de ciertos resultados. Si el resultado es: 

numérico: se trata de una expresión aritmética.

lógico: se denomina expresión booleana. etiqueta: se denomina expresión de designación.  cadena: se denomina expresión de cadena.

Page 18: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 18

Estructura de los Lenguajes de Programación

d.     Expresiones

  1.   Aritméticas Simples

2. BooleanasFORTRAN: A .LT. B COBOL: A IS GREATER THAN B

A GREATER THAN B

 

Page 19: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 19

Estructura de los Lenguajes de Programación PASCAL

Operaciones BásicasLas Operaciones se realizan por medio de operadores y

operandos, donde el operador es un símbolo que indica a el compilador la operación a realizar, los operandos son los datos a quienes aferctará el operador. Existen cuatro operadores basicos y

son los siguientes: Operadores Operación* Multiplicación/ División+ Suma- Resta

Operadores DIV y MODN_Entero:= Dividendo DIV Divisor ;

N_Entero:= DividendoMOD Divisor ;

Page 20: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 20

Estructura de los Lenguajes de Programación PASCAL

Prioridad de Operadores

Cuando realizamos alguna expresión muy compleja, nos encontraremos con mas de un operador, esto no representa ningún problema, debido a que los operadores tienen una jerarquía de ejecución, es decir se realizan de izquierda a derecha los operadores de mayor a menor jerarquía. El orden de jerarquía es el siguiente:

( ) Cuentan con la mayor jerarquía.

* / DIV MOD Cuentan con la mediana jerarquía.+ - Cuentan con la menor jerarquía.

Page 21: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 21

Estructura de los Lenguajes de Programación PASCAL

Operadores Lógicos

Son todas las operaciones comparativas que podemos realizar con nuestros datos, obteniendo como unico resultado un True o

False. La siguiente tabla muestra estos operadores:

Operadores Descripción

= Igual a

<> Distinto a

< Menor que

> Mayor que

<= Menor igual que

>= Mayor igual que

Not Negación de condición

Page 22: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 22

Estructura de los Lenguajes de Programación PASCAL

e.  Proposiciones

  Grupo de instrucciones consecutivas que describen un algoritmo. Evaluación y almacenamiento del valor

calculado. (Proposición de Asignación)    Bifurcación a una instrucción diferente a la

que correspondería ejecutar en la secuencia normal. (Proposición de Bifurcación)

   Ejecución de prueba de un valor para tomar una decisión según el resultado de dicha prueba. (Proposición de Prueba o Decisión).

   Provisión de E/S.

Page 23: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 23

Estructura de los Lenguajes de Programación PASCAL

e.  Proposiciones1.  Asignación

2. Bifurcación GO TO Etiqueta;

3. Prueba y Decisión o Condicional

4. Provision de E/S

Page 24: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 24

Estructura de los Lenguajes de Programación

e.  Proposiciones

  1.  Asignación

  Implica la evaluación de una expresión a la derecha de una símbolo que indica la asignación y el almacenamiento del valor calculado en una dirección simbólica indicada por un identificador a la izquierda del operador de asignación  

Page 25: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 25

Estructura de los Lenguajes de Programación PASCAL

Operaciones Aritméticas y Expresiones

Suma:= NumeroA + NumeroB ; { A Suma se le asignara el resultado de sumar NumeroA + NumeroB }

Nombre:= 'Carlos Ramirez' ; { A Nombre se le asignara la cadena 'Carlos Ramirez' }

Page 26: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 26

Estructura de los Lenguajes de Programación

e.  Proposiciones

  2. Bifurcación

  Permiten alterar el orden lógico de ejecución de las instrucciones, es decir permite que el programa no se ejecute secuencialmente. Su instrucción básica es el GO TO.

Page 27: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 27

Estructura de los Lenguajes de Programación

e.  Proposiciones

  3. Prueba y Decisión o Condicional

  Se utiliza para tomar una decisión basándose en el resultado de una prueba de una valor el cual debe ser verdadero o falso.

Page 28: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 28

Estructura de los Lenguajes de Programación PASCAL

e.  Proposiciones

1.  Asignación Pascal: Suma:= NumeroA + NumeroB ; Nombre:= 'Carlos ' ; FORTRAN B = X + Y - Z * KCOBOL COMPUTE A = X + Y - Z * K.

ADD X, Y TO W GIVING TOTAL.

2. Bifurcación GO TO Etiqueta;COBOL: ETIQUETA.

COMPUTE W = A + B - C - D.

…...GO TO ETIQUETA.

FORTRAN 45 W = B + C - D

GO TO 45

Page 29: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 29

Estructura de los Lenguajes de Programación PASCAL

e.  Proposiciones

3. Prueba y Decisión o CondicionalFORTRAN:

a) IF ARITMETICO: IF (A-B) 10,100,20 b) IF LOGICO: IF (A.EQ.B) X=B+C

Pascal:IF (A-B)<0 THEN GOTO 10

ELSE IF (A-B)=0 THEN GOTO 100 ELSE GOTO 20;

COBOL:IF SUELDO-BRUTO IS LESS THAN 100 GO TO CALC. IF SUELDO<100 COMPUTE X = B+C, ELSE COMPUTE X=0. IF SUELDO IS GREATER 100 AND HORAS LESS THAN 40

NEXT SENTENCE, OTHERWISE PERFORM CALCULAR.

Page 30: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 30

Estructura de los Lenguajes de Programación PASCAL

Sentencia IF ... THEN ... ELSE ... IF Condición THEN

Sentencia ELSE

Sentencia;

Sentencia CASE CASE Variable OF Valor 1 : Sentencia;

... Valor N : Sentencia

ELSE Sentencia

END ;

Page 31: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 31

Estructura de los Lenguajes de Programación PASCAL

Estructuras de Control :Bloques o Sentencias Compuestas

Ciclo FOR FOR Variable := V_Inicial To V_Final DO

Sentencia ;

Ciclo WHILE WHILE Condición DO Sentencia ;

Ciclo REPEAT UNTIL REPEAT

Sentencia ; ...

Sentencia ;

UNTIL Condición;

Page 32: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 32

Estructura de los Lenguajes de Programación ADA

CONTROL DE SECUENCIA

La ejecución de Ada esta orientada a sentencias como FORTRAN y Pascal.

ExpresionesExpresiones en Ada permiten primitivas y funciones definidas

para ser combinadas en secuencias de manera usual. Sentencias

Las estructuras de secuencias de control de sentencias son las usuales sentencias condicionales (if y case) y las sentencias de iteración (loop).

Todas las sentencias de control terminan con las sentencia end seguida con la palabra de dicha sentencia ejem: end if, end loop.

Asignacion: La asignación es similar que en Pascal. Ejem:

MyDay := ("SEP",12,1975);MyDay := (Year => 1975, Month =>"SEP", Day => 12);

Page 33: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 33

Estructura de los Lenguajes de Programación ADA

SENTENCIAS CONDICIONALES

Sentencia IfLa sentencia if tiene la siguiente forma:

if boolena expresion then - secuencias de sentencias

elsif boolean expresion then - secuencia de sentenciaselsif boolean expresion then

- secuencia de sentencias...else

- secuencia de sentenciasend if

Sentencia CASELa forma general de case es:

case expresion is when choice | ...| choice => secuencia de sentencias; when choice | ...| choice => secuencia de sentencias; ... when others => secuencia de sentencias;

end case;

Page 34: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 34

Estructura de los Lenguajes de Programación ADA

SENTENCIAS DE ITERACION

Sentencia LoopLa sentencia básica de iteración tiene la siguiente forma.

loop - secuencia de sentenciasend loop

La forma de terminar una sentencia de iteración loop se hace explicitamente con las sentencias exit, goto o return.

Setencias controladas pueden ser creadas con las sentencias while y for.

while boolean expresion ...

con for hay dos formas. for variable name in discrete_range; for variable name in reverse discrete_range;

Page 35: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 35

Estructura de los Lenguajes de Programación ADA

% vi Hola.ada with Text_IO; use Text_IO;procedure Doit is procedure Hola(x: in integer) is begin if x=2 then put("Hola Mundito"); else put ("Adios Mundito"); end if end Hola;y: integer;beginy:=2;Hola(y);end Doit;% ada Hola.ada%HolaHola Mundito

Page 36: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 36

Estructura de los Lenguajes de Programación Eiffel

indexing description: "Sequential lists, without commitment to a particular representation ";

deferred class LIST [G] inheritCHAIN [G] redefine forth end;feature -- Cursor movement forth is -- Move to next position; if no next position, -- ensure that `exhausted' will be true. deferred ensure then moved_forth: index = old index + 1 end;

feature -- Status reportafter: BOOLEAN is -- Is there no valid cursor position to the right of cursor? do Result := (index = count + 1) end;

before: BOOLEAN is -- Is there no valid cursor position to the left of cursor? do Result := (index = 0) end;

invariantbefore_definition: before = (index = 0); after_definition: after = (index = count + 1);

end -- class LIST

Page 37: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 37

Estructura de los Lenguajes de Programación FORTRAN

program ecuacionprint *,'Introduce a, b y c:'read *,a,b,craiz=b*b-4*a*cif (raiz .lt. 0) then

print *,'No tiene soluciones reales.'else if (raiz .eq. 0) then

sol=-b/(2*a)print *,'La unica solucion es:',sol

elseraiz=raiz**0.5sol1=(-b+raiz)/(2*a)sol2=(-b-raiz)/(2*a)print *,'Las soluciones son',sol1,'y',sol2

end ifstopend

Page 38: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 38

Estructura de los Lenguajes de Programación Cobol

===========PROGRAMA EN cobol==============

»» INICIO Antes de nada, identificamos nuestro programa. IDENTIFICATION DIVISION.PROGRAM-ID. PRUEBA.

ENVIRONMENT DIVISION.CONFIGURATION SECTION.OBJECT-COMPUTER. RMCOBOL-85 PROGRAM COLLATING SEQUENCE IS MAYUS-MINUS.SPECIAL-NAMES. Aqui hacemos que el valor de las mayúsculas y minúsculas sea el mismo y además

signamos el punto decimal como una coma. ALPHABET MAYUS-MINUS IS 1 THRU 65, 'A' ALSO 'a', 'B' ALSO 'b', 'C' ALSO 'c', 'D' ALSO 'd', 'E' ALSO 'e', 'F' ALSO 'f', 'G' ALSO 'g', 'H' ALSO 'h', 'I' ALSO 'i', 'J' ALSO 'j', 'K' ALSO 'k', 'L' ALSO 'l', 'M' ALSO 'm', 'N' ALSO 'n', 'O' ALSO 'o', 'P' ALSO 'p', 'Q' ALSO 'q', 'R' ALSO 'r', 'S' ALSO 's', 'T' ALSO 't', 'U' ALSO 'u', 'V' ALSO 'v', 'W' ALSO 'w', 'X' ALSO 'x', 'Y' ALSO 'y', 'Z' ALSO 'z', 92 THRU 97, 124 THRU 128 DECIMAL-POINT IS COMMA.

Page 39: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 39

Estructura de los Lenguajes de Programación Cobol

INPUT-OUTPUT SECTION.FILE-CONTROL.definimos los archivos con los que vamos a trabajar, su organización, su

acceso y sus claves. SELECT AGENDA ASSIGN TO RANDOM "AGENDA.DAT" ORGANIZATION INDEXED ACCESS DYNAMIC RECORD KEY KEYAGE ALTERNATE RECORD KEY KEYAGE1 FILE STATUS STAAGE. SELECT IMPRESORA ASSIGN TO PRINT "PRINTER1".DATA DIVISION.FILE SECTION.FD AGENDA LABEL RECORD STANDARD.01 REGAGE. 02 KEYAGE. 03 AGECOD PIC 9(4). 02 AGENOM PIC X(30). 02 AGEDOM PIC X(30). 02 AGEPOS PIC 99999. 02 AGEPOB PIC X(20). 02 AGEPRO PIC X(15).

Page 40: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 40

Estructura de los Lenguajes de Programación Cobol

WORKING-STORAGE SECTION.diversas variables que utilizaremos durante el programa.77 STAAGE PIC XX.77 ELE PIC 99.01 C4 PIC 9(4).01 DC4 PIC ZZZ9.01 MOTIVO PIC X(20). tablas para utilizar en el menu, con las opciones y unas frases explicativas

de la función de cada opción.01 TABLAOPCIONES. 02 FILLER PIC X(24) VALUE " CONTACTOS LISTADO ". 02 FILLER PIC X(12) VALUE " SALIR ".

01 TABLAMENSAJES1. 02 FILLER PIC X(26) VALUE "Altas, bajas, modificacion". 02 FILLER PIC X(26) VALUE "Listado por impresora de ". 02 FILLER PIC X(26) VALUE SPACES.

Page 41: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 41

Estructura de los Lenguajes de Programación Cobol

»» PROCEDURE Ahora es el momento de comenzar nuestra Procedure y colocar las Declaratives.

PROCEDURE DIVISION.DECLARATIVES.DECLA1 SECTION. USE AFTER ERROR PROCEDURE ON AGENDA.END DECLARATIVES.PRINCIPAL SECTION.antes de empezar, borramos toda la pantalla, abrimos el fichero y

comprobamos que esté perfecto para poder trabajar con el.INICIO. DISPLAY SPACES LINE 1 ERASE. OPEN I-O AGENDA. IF STAAGE NOT = "00" GO MENERROR. SALIR. MOVE 20402258 TO CUADRO PERFORM DIBUJAR THRU DIBUJA2. DISPLAY "DESEA SALIR ? " LINE 21 COL 42 LOW CONTROL "FCOLOR=BLUE". ACCEPT OP LINE 21 COL 56 OFF NO BEEP ON EXCEPTION ESCA NEXT SENTENCE. GO TRES.

Page 42: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 42

Estructura de los Lenguajes de Programación PROLOG

/*====Programa en Prolog=====*/quiere_a(maria,enrique). quiere_a(juan,jorge). quiere_a(maria,susana). quiere_a(maria,ana). quiere_a(susana,pablo). quiere_a(ana,jorge). varon(juan). varon(pablo). varon(jorge). varon(enrique). hembra(maria). hembra(susana). hembra(ana). teme_a(susana,pablo). teme_a(jorge,enrique). teme_a(maria,pablo). /* Esta linea es un comentario */ quiere_pero_teme_a(X,Y) :- quiere_a(X,Y), teme_a(X,Y). querido_por(X,Y) :- quiere_a(Y,X). puede_casarse_con(X,Y) :- quiere_a(X,Y), varon(X), hembra(Y). puede_casarse_con(X,Y) :- quiere_a(X,Y), hembra(X), varon(Y).

Page 43: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 43

Estructura de los Lenguajes de Programación c

static rqsort( low, high )register char *low, *high;/* Workhorse function called by the access routine, qsort(). */{ char *pivot, *base; static char *a, /* Used for exchange, will not be needed */ *b; /* during recusion, so they can be static.*/ static int tmp, /* That way they will not take up stack */ i; /* space. */

base = low ; /* Remember base address of array. */ pivot = high ; /* Partition off the pivot. */ high -= Width;do { while ( low < high && (*Comp)(low, pivot) <= 0 ) low += Width; while ( low < high && (*Comp)(high, pivot) >= 0 ) high -= Width;

if ( low < high ) /* Exchange low & high */ {

Page 44: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 44

Estructura de los Lenguajes de Programación Perl

9 # Declare any subroutines here11 sub xProduct(\@\@\@); # Declare as taking two pointers to

arrays12 sub dProduct(\@\@); # Declare as taking two pointers to arrays14 @one = ( 2, 4, 3);15 @two = ( 4, -1, 7);16 @result = ();18 $r = &dProduct(\@one,\@two);20 print "\n Dot Product = $r \n";22 &xProduct(\@one,\@two,\@result);24 print "\n Cross Product = \n";25 for ($i=0;$i<3;$i++) {26 for ($j=0;$j< 3;$j++) {27 printf " %4d", $result[$i][$j];28 } 29 print "\n";30 }32 exit (0);

Page 45: Tema2_Estructuras de Lenguajes Programaci-n_P2

Prof. Luis Eduardo Mathison B. 45

Lenguajes de Programación

Actividad Grupal

En la máquina y lenguaje concebido por su equipo en la actividad anterior responda:

¿Cuáles de las estructuras de los lenguajes de programación está presentes en su

concepción?

Entrega: el día de la 1era evaluación No 1.