Lenguajes%20de%20Programaci - PowerPoint PPT Presentation

About This Presentation
Title:

Lenguajes%20de%20Programaci

Description:

Title: FORTRAN90 Author: Familia Last modified by: MCC Created Date: 10/28/2004 3:41:34 AM Document presentation format: Presentaci n en pantalla Other titles – PowerPoint PPT presentation

Number of Views:79
Avg rating:3.0/5.0
Slides: 57
Provided by: FAMILIA107
Category:

less

Transcript and Presenter's Notes

Title: Lenguajes%20de%20Programaci


1
  • Lenguajes de Programación
  • Pascal
  • Profesora Ana Lilia Laureano - Cruces
  • Universidad Autónoma Metropolitana - Azcpotzalco

2
Pascal
  • Pascal es un lenguaje de programación
    desarrollado por Niklaus Wirth a principios de
    los 80s.
  • Fue desarrollado con fines didácticos, pero
    debido a su claridad y capacidad pronto se
    convirtió en un lenguaje de desarrollo.
  • Es un lenguaje multi-paradigma su estructura
    esta basada en programación estructurada y las
    últimas versiones aceptan programación orientada
    a objetos.
  • Herederos de esta claridad y capacidad son los
    lengujaes Modula Eiffel y Delphi.

3
Pascal
  • La estructura de un programa en Pascal es de la
    siguiente forma
  • PROGRAM nombre del programa
  • expresiones declarativas
  • subprogramas internos
  • BEGIN
  • expresiones de ejecución
  • END.
  • Los enunciados son la base del programa y a
    excepción del enunciado de asignación, todos
    empiezan con una palabra clave.

4
Pascal
  • Los comentarios se escriben encerrando el texto
    entre
  • ( Comentario )
  • Comentario
  • Tipos de Datos Se dividen en 2 clases, los
    numéricos (integer y real) y los no numéricos
    (character, string y logical).

5
Pascal
  • Asociado al tipo existen varias clases de ellos,
    de acuerdo al número de bits disponible para su
    almacenamiento, por lo que puede haber 2 clases
    de enteros shortint y longint.
  • Variables son aquellos valores que toman
    diferentes valores durante la ejecución del
    programa.
  • Constantes usadas para denominar los valores de
    un tipo en particular y cuyo valor no cambia a lo
    largo de la ejecución del progrma.
  • Identificadores utilizados para los nombres de
    las variables y constantes. Consiste entre 1 y 63
    caracteres alfanuméricos y deben empezar con una
    letra, no es sensible a mayúsculas o minúsculas,
    esto es, MINOMBRE significa lo mismo que
    MiNombre.

6
Una regla de oro
  • En Pascal no se puede utilizar nada que no haya
    sido previamente declarado.
  • Nada equivale a 1) constantes, 2) variables, 3)
    tipos derivados y definidos por el usuario y 4)
    abstracciones procedurales y funcionales.

7
Programa alumno (mòdulo 100) Const Type Var
x,y,z,a,b,c,d real Procedure nom1 (Var
x,y,z integer, dreal) Const Type Var
Procedure (argumentos) Function
(argumentos) Begin End Function nom2 (x,y,z
real) Real Const Type Var Procedure
(argumentos) Function (argumentos) Begin End
Begin ( programa principal) Procedure
nom1 (x,y,z,d) C nom2 (a,b,c) End. (
alumno)
8
Pascal
  • Asignación numérica El propósito es calcular el
    valor de una expresión numérica y asignarla a una
    variable. Su forma general es
  • variable expr x a b
  • Entradas y salidas de datos
  • Cuenta con formato libre, en ambos casos
  • Read o ReadLn y tiene la forma
  • Read (list) Readln (list)
  • donde list es una lista de variables separadas
    por comas Read (A, B, C)

9
Pascal
  • La declaración Write/WriteLn, se utiliza para la
    salida de datos. Su forma general es
  • Write (list)
  • WriteLn (list)
  • Donde list puede ser una lista de constantes,
    variables, expresiones y cadenas de caracteres
    separadas por comas
  • Write (la raiz cuadrada de, 2, es, sqrt(2.0))
  • También podemos usar la declaración mascaras para
    los reales WriteLn (ExpresionRealAnchoTotalDecim
    ales)
  • X 78.291
  • WriteLn (x01) 78.3 con cero aseguro que no
    hay blancos
  • WriteLn (x02) 78.29 que preceden al numero
  • WriteLn (x00) 78
  • WriteLn (x ,x03) x 78.291
  • WriteLn (x04) 78.2910

10
Tipos de variables
  • Var
  • a integer
  • b real
  • opcion char
  • apellido string
  • Encontre boolean
  • El tipo string puede almacenar hasta 255
    caracteres

11
Tipos derivadas
  • Un tipo de variable derivada es aquel que se basa
    en los tipos básicos.
  • Arreglos
  • Registro
  • Conjunto
  • Definidos por el usuario

12
Arreglos
  • En Pascal el tipo ARRAY sirve para almacenar
    elementos del mismo tipo de forma secuencial. Los
    datos tipo ARRAY pueden ser unidimensionales,
    bidimensionales, tridimensionales n-dimensionales.

13
Arreglos
  • Var
  • X array 1..5 of integer
  • X array 1..5 of real
  • X array 1..5 of boolean
  • X array 1..5 of char
  • X array 1..5 of string

14
Array n-dimensional
  • Const
  • TamMax 30
  • Type ( Tipos definidos por el usuario)
  • Ventas array 1..TamMax, 1..5 of integer
  • Var
  • Ventas tipoventas

15
El Tipo Registro
  • Este tipo de datos permite agrupar datos de
    diferente tipo. En Pascal se designan como
    RECORD.
  • Type ( Tipos definidos por el usuario)
  • Record RegPers Record
  • Nombre string 20
  • NumTel string 9
  • Sexo
    char
  • End (RegPers)
  • Var
  • persona RegPers
  • MuchasPer array 1..TamMax of RegPers

16
Cómo accesar los campos de un registro
nombre numtel sexo
Laura
5761-2779
f
Persona
Laura
4561-2759
f
1
MuchasPer
Pedro
3461-2379
m
.
Ana
3061-2279
f
Mauricio
9161-2979
m
.
Javier
7561-5779
m
.
Emiliano
5561-8779
m
n
17
  • Persona.Nombre Laura
  • Persona.NumTel 5761-2779
  • Persona.Sexo f
  • With Persona DO
  • Begin
  • Nombre Laura
  • NumTel 5761-2779
  • Sexo f
  • End (with)

18
El tipo Conjunto
  • Este tipo permite agrupar un conjunto de valores
    que se conocen como tipo base.
  • Type identificadorTipo Set Of TipoBase
  • Type
  • Monedas (penny, nickel, dime, quarter)
  • TipoConjMon set of monedas
  • Var
  • ConjMoneda TipoConjMon
  • Vocales, mayusculas set of char

19
Inicialización de las variables tipo conjunto
  • Una vez que se ha declarado una variable tipo
    conjunto es necesario inicializarla.
  • ConjMoneda nickel, dime
  • Vocales a, e, i, o, u
  • mayuscuas A..Z

20
Pertenencia a un Conjunto
  • Se usa la palabra reservada in para probar si un
    valor particular es miembro de un conjunto.
  • Ejemplos
  • If char in vocales then
  • If quartes in ConjMon then
  • If g in a,b,c,d then

21
Operaciones con conjuntos
  • La unión
  • X Y
  • 1,2,5,6 1,2,4,7 1,2,4,5,6,7
  • La intersección
  • X Y
  • 1,2,5,6 1,2,4,7 1,2
  • La diferencia
  • X Y todos los elementos de X que no están en Y
  • 1,2,5,6 - 1,2,4,7 5,6

22
Conjunto vacío
  • El conjunto vacío representado por , es un
    conjunto sin elementos.
  • a..z A.. Z
  • También sirve para inicializar una variable,
    antes de iniciar un ciclo al cual se le agregan
    elementos de un conjunto.
  • Los operadores relacionales se pueden aplicar a
    los conjuntos.

23
Conjuntos y Operadores relacionales
  • X Y es true cuando los conjuntos son iguales.
  • X ltgt Y es true cuando los conjuntos no son
    iguales.
  • XltY es true cuando X es un subconjunto de Y.
  • X gtY es true cuando Y es un subconjunto de X.

24
Pascal ciclo de progresión aritmética
  • For i j to k do
  • Begin
  • block
  • End
  • donde i es una variable de tipo enumerado, j y k
    son expresiones discretas, y block es cualquier
    número de declaraciones, las cuales se ejecutan
    repetidamente dependiendo del valor de j y k.
  • For i 1 to 10 do
  • Write (i)

25
Pascal condición sencilla
  • Decisiones Declaración IF-THEN-ELSE
  • IF (expresión-lógica) THEN
  • Begin
  • block 1
  • End
  • ELSE
  • Begin
  • block E
  • End
  • La expresión Const
  • se utiliza como expresión de inicialización de
    constantes
  • Const
  • pi 3.141593
  • dos 2

26
Pascal operadores relacionales
  • Operadores relacionales
  • lt menor que a lt 5
  • lt menor o igual que b lt 4
  • igual b 3
  • lt gt diferente a lt gt 0
  • gt mayor que b gt 4
  • gt mayor o igual que x gt 0
  • Operadores lógicos
  • not Negación lógica
  • and Intersección lógica
  • or Unión lógica
  • xor Or Excluyente

27
Operadores Booleanos and
p q p and q
V V V
V F F
F V F
F F F
28
Operadores Booleanos or
p q p or q
V V V
V F V
F V V
F F F
29
Operadores Booleanos xor ssi p o q es verdadera
p q p xor q
V V F
V F V
F V V
F F F
30
Ejemplos
  • 65 lt estatura lt 75
  • if (estatura gt 65) and (estatura lt 75) then
  • if (calif gt 65) and (calif2 gt 65) then
  • write (contratado)
  • else
  • write (rechazado)

31
Precedencia de operadores
Precedencia Operadores numèricos Operadores lógicos y relacionales
Máxima Menos unuario Not
Segunda ,/, div, mod And
Tercera , - Or, xor
Mínima lt,gt,gt,lt,ltgt,
32
Precedencia de operadores
  • Cuando se encuentran dos operadores con la misma
    precedencia, la evaluación se lleva a cabo de izq
    a der.
  • Para alterar la precedencia es necesario el uso
    de paréntesis.

33
Estructuras de Selección
  • Construcción CASE
  • Similar a IF-THEN-ELSE, permite seleccionar
    entre un número de situaciones o casos basados en
    un SELECTOR, este debe ser de tipo ordinal. La
    (expr) debe dar como resultado un tipo ordinal.
  • CASE (expr)
  • SELECTOR1
  • (BEGIN)
  • block 1
  • (END)
  • SELECTOR2
  • block 2
  • ELSE
  • block d
  • END

34
Pascal
  • Ejemplo
  • ReadLn (ch)
  • CASE (ch)
  • a, e, i, o, u
  • WriteLn (vocal)
  • Else
  • WriteLn (consonante u otro caracter)
  • END

35
Pascal ciclos condiconales
  • Repite
  • Repeat
  • block
  • Until (expr-lógica verdadera)
  • Mientras
  • While (expr-lógica verdadera)
  • begin
  • block
  • end

36
Pascal
  • invitado 0
  • REPEAT
  • invitado invitado 1
  • WriteLn (tu invitado )
  • ReadLn (nombre)
  • UNTIL (invitado 10)
  • WHILE (invitado lt 10) DO
  • begin
  • invitado invitado 1
  • WriteLn (tu invitado )
  • ReadLn (nombre)
  • end
  • END DO

37
Comparación entre los ciclos condicionales
repeat y while
  • El cuerpo de acciones del repeat siempre se
    ejecuta al menos una vez.
  • Lo anterior implica que la expresión lógica que
    controla el repeat se encuentra al final.
  • Y que las variables involucradas en la expresión
    lógica que controla el while deben haber sido
    inicializadas antes de que sean instanciadas.

38
  • Tanto el repeat como el while sirven para modelar
    una tarea iterativa controlada por una condición.
  • La diferencia entre las expresiones lógicas que
    controlan a la condición, es que una es la
    negación de la otra.
  • En el caso de los ciclos NO_Condicionales, es
    claro que se utilizan cuando se conoce el número
    de veces que se desea se repita el conjunto de
    instrucciones que se encuentran anidadas.

39
Pascal
  • Los Programas diseñados con los principios de
    programación estructurada y un diseño modular
    descendente son estructurados por medio de
    abstracciones procedurales y funcionales. Estos
    procedimientos se comunican con el programa
    principal de manera específica, a través del paso
    de datos y son invocados o llamados desde éste.
  • Existen dos formas de estructurar el programa a
    través de funciones (abstracciones-funcionales)
    y procedimientos (abstracciones-procedurales).
  • El paso de datos se conoce como paso de
    parámetros, estos pueden ser pasados por
    referencia o por valor.

40
Pascal
  • Paso de parámetros por referencia
  • Es un mecanismo que permite el paso de un
    parámetro utilizando una dirección de memoria con
    el fin de facilitar ya sea el retorno al programa
    principal de un valor producido por un
    subprograma o el retorno al programa principal de
    un valor modificado por el subprograma.
  • Ejemplo
  • Var a,b integer ! Producido o ! modificado

41
Pascal
  • Parámetros por valor
  • Es un mecanismo que permite el paso de un
    parámetro utilizando su valor con el fin de
    evitar su modificación, de esta forma al terminar
    de ejecutarse el subprograma y retornar el
    control al programa principal el valor de ese
    parámetro continúa siendo el mismo. En otras
    palabras el valor de este parámetro sólo puede
    ser utilizado.
  • a, b integer ! Sólo puede ser
    utilizado

42
(No Transcript)
43
Pascal
  • Ejemplo de abstracción funcional (function)
  • PROGRAM cubo
  • se usa una función definida por el programador
    para elevar al cubo
  • var
  • num, cubo longint
  • Function encubo (ninteger)longint
    parametros formales
  • begin
  • encubo nnn
  • end encubo
  • begin programa_principal
  • write (escriba un entero )
  • readln (num)
  • cubo encubo (num) parametros
    actuales
  • writeln (num,al cubo es , cubo)
  • end. programa_principal

44
Pascal
  • Ejemplo de abstracción procedural (procedure)
  • PROGRAM cubo
  • se usa una función definida por el programador
    para elevar al cubo
  • var
  • num, cubo longint
  • Procedure encubo (ninteger var
    cubolongint) parametros formales
  • begin
  • cubo nnn
  • end encubo
  • begin programa_principal
  • write (escriba un entero )
  • readln (num)
  • encubo (num, cubo) parametros actuales
  • writeln (num,al cubo es , cubo)
  • end. programa_principal

45
Pascal
  • Recursión Muchas funciones matemáticas pueden
    estar definidas recursivamente, es decir que
    están definidas en términos de casos más simples
    de ellas mismas.
  • Para implementarlas es necesario que una función
    se invoque a sí misma. en Pascal esto es posible
    tanto para abstracciones funcionales como
    procedurales. Y estas son funciones o
    procedimeintos que se llaman a si mismos.

46
Pascal
  • Ejemplo de función recursiva
  • function fact (ninteger) longinteger
  • Begin
  • if n 1 then
  • fact 1
  • else
  • fact n fact (n-1)
  • End fact

47
Pascal
  • Ejemplo de procedimiento recursivo
  • program proced_recur
  • procedure tarea (ninteger)
  • Begin
  • if n 1 then
  • writeln (n 1 Regresa)
  • else
  • begin
  • writeln (n, hola)
  • tarea (n-1)
  • writeln (n, adios)
  • end else
  • end tarea
  • begin
  • tarea (4)
  • end.

48
Pascal compilación separada
  • Unidades son contenedores físicos que permiten
    albergar expresiones declarativas o abstracciones
    procedurales o funcionales. Estos módulos pueden
    ser compilados por separado o pueden estar dentro
    de un programa
  • Puede contener más de una abstracción funcional o
    procedural, o
  • Puede tener expresiones declarativas y/o de
    especificación accesibles a todas las unidades
    del programa.

49
Pascal
  • Las Unidades son un cierto tipo de programa
    externo.
  • Unit (nombre)
  • Interface publicos
  • declaraciones uses, const, type, o var, si
    existen
  • encabezados de procedimientos y funciones
  • Implementation
  • declaraciones completas de los procedimientos y
    funciones
  • End.
  • Los identificadores declarados en la parte de
    interfaz, son públicos lo que significa que
    pueden ser leídos por cualquier programa o unidad
    que declara esta unidad.
  • En la sección implementación, aquí se detallan
    las definiciones completas de los subprogramas
    con el encabezado repetido. El último debe
    terminar en

50
Pascal
  • Precaución debe utilizar el mismo identificador
    para el nombre de la unidad y del archivo en el
    que guardará el código.
  • Ejem. Unit InfoMat, el archivo debe llamarse
    InfoMat.pas

51
Pascal
  • UNIT InfoMat
  • Interface
  • Uses
  • Const
  • MaxLongVect 50
  • Type
  • Tipo1 integer
  • TipoDeElemento Record
  • NumFil,
  • NumCol
    integer
  • Info array
    1..maxlogvec of Tipo1
  • End
  • Implementation
  • End.

52
Pascal
  • Unit Matriz
  • USES InfoMat
  • Interface
  • Function InicMatriz (n,minteger)
    TipoDeElemento
  • Function AsignaMatriz (mat TipoDeElemento,
    i1,i2integer valTipo1) TipoDeElemento
  • Function ElemMatriz (mat TipoDeElemento,
    i1,i2integer) Tipo1
  • Function FilasMatriz (mat TipoDeElemento)
    integer
  • Function ColMatriz (mat TipoDeElemento)
    integer
  • Function SumaMatriz (mat1,mat2 TipoDeElemento)
    TipoDeElemento
  • Function RestaMatriz (mat1,mat2 TipoDeElemento)
    TipoDeElemento
  • Function Transpuesta (mat TipoDeElemento)
    TipoDeElemento
  • Function Multiplica (mat1,mat2 TipoDeElemento)
    TipoDeElemento

53
Pascal
  • Implementation
  • Function InicMatriz (n,minteger)TipoDeElemento
  • Var
  • iinteger mat TipoDeElemento
  • Begin
  • mat.NumFil n mat.NumCol m
  • For i 1 to MaxLongVec
  • Mat.infoi 0
  • InicMatriz mat
  • End

54
  • Function AsignaMatriz (mat TipoDeElemento,
    i1,i2integer valtipo1) TipoDeElemento
  • Begin
  • Mat.info(i2-1)mat.NumFil) i1 val
  • AsignaMatriz mat
  • End
  • Function ElemMatriz (matTipoDeElemento
    i1,i2integer)Tipo1
  • Begin
  • ElemMatriz mat.info((i2-1) mat.NumFil)
    i1
  • End
  • .
  • .
  • End.

55
Pascal uso de el TAD Matriz
  • Program Matrices
  • Uses Matriz, InfoMat
  • Var mat1,mat2,MatSum,MatRes,MatMul,MatTTransp
    TipoElemento
  • Op integer
  • .
  • .
  • .

56
fin
Write a Comment
User Comments (0)
About PowerShow.com