Pascal, un lenguaje de programaci - PowerPoint PPT Presentation

About This Presentation
Title:

Pascal, un lenguaje de programaci

Description:

Instrucciones y tipos de datos simples. Ingenier a T cnica en Inform tica de Gesti n. Departamento de Ingenier a del ... (se usa solamente el alfabeto ingl s) ... – PowerPoint PPT presentation

Number of Views:284
Avg rating:3.0/5.0
Slides: 55
Provided by: fdi7
Category:

less

Transcript and Presenter's Notes

Title: Pascal, un lenguaje de programaci


1
(No Transcript)
2
Pascal, un lenguaje de programación
  • En este tema estudiamos aspectos comunes a muchos
    lenguajes de programación
  • Prácticamente todos los lenguajes que siguen el
    paradigma imperativo ( dar órdenes al ordenador)
  • Por estudiar un lenguaje concreto usaremos Pascal
    que, como dijimos, es un lenguaje apropiado para
    aprender
  • Cómo podemos explicar Pascal?
  • De manera informal (lo habitual al principio)
  • De manera formal (usando BNF, EBNF o diagramas
    sintácticos para describir la sintaxis del
    lenguaje, por ejemplo)

3
Forma básica de un programa en Pascal
program nombre-programa const idCte1 valor1
... idCteN valorN var lista-variables1
tipo1 ... lista-variablesM
tipoM begin sentencia1 ... sentenciaK-1 sen
tenciaK end.
Datos deentrada
Sección de declaración de datos
Algoritmo
Datos desalida
Sección de código(programa principal)
4
Forma básica de un programa en Pascal
  • Ej Programa que convierte un valor expresado en
    pulgadas, proporcionado por el usuario a través
    de teclado, en el equivalente expresado en
    centímetros y lo muestra por pantalla
  • Implementación del algoritmo en Pascal
  • program conversion
  • const
  • centPorPulg 2.54
  • var
  • pulgadas, cent real
  • begin
  • writeln('Longitud?')
  • readln(pulgadas)
  • cent pulgadas centPorPulg
  • writeln('En cms', cent)
  • end.
  • Datos de entrada
  • Pulgadas
  • Datos de salida
  • Centímetros
  • Algoritmo
  • Obtención del valor expresado en pulgadas
  • Conversión al valor equivalente
  • Visualización del valor equivalente

5
Forma básica de un programa en Pascal
  • program conversion
  • const
  • centPorPulg 2.54
  • var
  • pulgadas , cent real
  • begin
  • writeln ( 'Longitud?' )
  • readln ( pulgadas )
  • cent pulgadas centPorPulg
  • writeln ( 'En cms' , cent )
  • end.

6
Uso del espacio en blanco y de los comentarios
  • Los elementos léxicos (que marcábamos con colores
    antes) pueden separarse por un número cualquiera
    de espacios en blanco, saltos de línea y
    tabuladores
  • El espacio dejado a la izquierda de cada línea
    (indentación) no tiene significado para la
    máquina
  • El objetivo de estos arreglos en el formato es
    simplemente hacer más legibles los programas para
    otros programadores
  • En cualquier parte del programa el programador
    puede escribir comentarios para explicar su
    código
  • Si son de una sola línea basta con comenzarlos
    por //
  • Si son varias líneas deben ir entre ( y )
    necesariamente
  • // Conversor PulgCent, por Federico Peinado.(
    Este programa convierte un número de
    pulgadas a su equivalente en centímetros. Ha
    sido escrito por Federico Peinado. )
  • Los comentarios ayudan a documentar bien nuestro
    trabajo!

7
Uso del espacio en blanco y de los comentarios
  • ( Este
    programa convierte pulgadas a centímetros. Por
    Federico Peinado
    )program conversion
  • const
  • centPorPulg 2.54
  • var
  • pulgadas, cent real
  • begin
  • writeln('Longitud?')
  • readln(pulgadas)
  • cent pulgadas centPorPulg
  • writeln('En cms', cent)
  • end.

program conversion const centPorPulg 2.54
var pulgadas,centreal begin writeln('Longitud
?')readln(pulgadas) cent pulgadas
centPorPulg writeln('En cms', cent) end.
Mismo programa, pero... qué formato es más
cómodo de leer?
8
Datos de un programa
  • Todos los datos tienen
  • Identificador
  • Nombre simbólico que se usa para representar el
    dato
  • Identifica de forma legible las celdas de memoria
    donde está guardado el dato
  • Tipo
  • El tipo de los valores que puede tener el dato
  • Ej Números enteros, números reales, cadenas de
    texto
  • Clasificación como Constante o Variable
  • Constante, si el valor del dato no cambia nunca
    en ningún momento de la ejecución del programa
  • Variable, si el valor del dato cambia o puede
    cambiar en algún momento de la ejecución del
    programa

9
Identificadores en Pascal
  • Un identificador es un nombre para un dato
    concreto
  • Si el valor de ese dato no cambia nunca, el
    identificador es una constante
  • Si el valor de ese dato puede cambiar durante la
    ejecución del programa, el identificador será una
    variable
  • Los identificadores deben ser autoexplicativos
  • Ej numero_alumnos está bastante claro
  • Ej nx6 no hay quien lo entienda
  • Sintaxis en EBNF
  • Identificador Letra Subrayado Letra
    Dígito
  • Letra a b ... z A B ...
    Z
  • Dígito 0 1 ... 9
  • Subrayado _

10
Identificadores en Pascal
  • Resumen informal de la sintaxis de un
    identificador de Pascal
  • No puede ser un número solo
  • Ha de empezar necesariamente por una letra
  • La ñ no es una letra válida, ni las vocales con
    tildes o con diéresis (se usa solamente el
    alfabeto inglés)
  • No puede acabar en subrayado (_), ni puede haber
    dos subrayados seguidos (__)
  • Y por supuesto no puede ser una palabra
    reservada!
  • Identificadores predefinidos en Pascal, por
    ejemplo program
  • La longitud de los identificadores en teoría no
    tiene límite
  • Pascal no distingue entre letras mayúsculas y
    minúsculas
  • NUMEntero, numEntero, numENTERO... todos hacen
    referencia exactamente al mismo dato!
  • No puede haber identificadores con nombres
    repetidos dentro de un mismo bloque de programa,
    para evitar confusiones

11
Identificadores en Pascal
  • Los siguientes son identificadores válidos en
    Pascal?
  • pulgadas cent valido
  • 2veces salu2 duda?
  • x x_ x_a

Explicación en PIZARRA
12
Constantes
  • Datos cuyo valor no cambia a lo largo de la
    ejecución del programa
  • Tipos de constantes en Pascal
  • Literales se usan a pelo en el programa, sin
    identificador
  • Longitud 2.54 a true
  • Constantes con nombre llevan un identificadorpi
    3.1416
  • La sentencia const de Pascal anuncia que se van a
    declarar e inicializar las constantes con nombre
    del programa
  • program conversion
  • const
  • centPorPulg 2.54
  • ...

13
Sintaxis de la sección de declaración de
constantes en Pascal
  • SeccionConstantes const DefCte
    DefCte
  • DefCte Identificador Valor
  • Identificador No terminal que ya hemos
    descrito antes
  • Valor Ventero Vreal Vcaracter
    Vbooleano Cadena Signo Identificador
  • Ventero Signo Digito Digito
  • Signo -
  • Vreal Fnormal Fcientifico
  • Fnormal Signo Pentera . Pdecimal
  • Pentera Digito Digito
  • Pdecimal Digito
  • Fcientifico Fnormal E Signo Pentera
  • Vbooleano true false
  • Vcaracter Car
  • Car a b ... z A B ...
    Z ? ...
  • Cadena Car

14
Constantes
  • Este es un ejemplo válido de declaración de
    constantes?
  • const
  • pi 3.1416
  • centPorPulg 2.54
  • iva 0.16
  • dolar
  • cinco 5
  • max 100
  • min -max
  • mensaje Error
  • El tipo de una constante se decide de manera
    automática al inicializarse, según el tipo del
    dato que reciba
  • Por ejemplo cinco será de tipo entero e iva será
    de tipo real

Explicación en PIZARRA
15
Variables
  • Datos cuyo valor cambia o puede cambiar a lo
    largo de la ejecución del programa
  • La sentencia var de Pascal anuncia que se van a
    declarar las variables del programa
  • program conversion
  • const
  • centPorPulg 2.54
  • var
  • pulgadas, cent real

16
Sintaxis de la sección de declaración de
variables en Pascal
  • SeccionVariables var DefVar DefVar
  • DefVar Identificador , Identificador
    Tipo
  • Identificador No terminal que ya hemos
    descrito antes
  • Tipo integer real char boolean
    DefinidoPorUsuario

var pulgadas, cent real letra char
valido boolean base integer altura
integer
17
Situación de constantes y variables en memoria
  • program conversion
  • const
  • centPorPulg 2.54
  • var
  • pulgadas, cent real
  • begin
  • ...
  • end.

Explicación en PIZARRA
18
Representación interna de los datos en memoria
  • La cadena 01110010 puede ser...
  • ... un número entero (el primer bit representa
    el signo?)
  • ... un número real (dónde estaría la coma y la
    parte decimal?)
  • ... un carácter textual (en que tipo de
    codificación?)
  • ... un valor booleano (sólo es significativo el
    último bit?)
  • Para programar hay que saber qué significan esos
    0s y 1s!
  • Asignar un tipo a un dato es una manera de
    indicar
  • Cuál es la interpretación correcta de las cadenas
    de 0s y 1s
  • Qué rango de posibles valores puede tomar el dato
  • Cuáles son las operaciones posibles sobre dicho
    dato
  • Los lenguajes de alto nivel, como Pascal, tienen
    una fuerte comprobación de tipos para evitar que
    el programador use los datos de manera
    incorrecta, sin tener en cuenta sus tipos
  • Ej No te deja multiplicar un número entero por
    un carácter textual

19
Ejemplo La codificación ASCII para caracteres
textuales
20
Tipo de Datos
  • Conjunto de valores posibles que pueden tomar
    unos datos junto con las operaciones que se
    pueden realizar sobre ellos
  • Tipos básicos (o predefinidos) en Pascal
  • Integer
  • Real
  • Char
  • Boolean

Integer y Real son tipos numéricos
Todos son tipos simples
21
Tipos de datos en Pascal
  • Integer (números enteros)
  • El rango de valores representable depende del
    entorno de desarrollo y la máquina que usemos
  • Ej En Turbo Pascal, se reservan 2 bytes para
    almacenar cada entero en complemento a 2, con lo
    que el rango va
  • desde -215 -32768
  • hasta (215-1) 32767
  • Otros tipos enteros en Turbo Pascal
  • ShortInt -128..127
  • LongInt (4 bytes) 2147483648..2147483647
  • Byte 0..255
  • Word 0..65535
  • De momento utilizaremos solo el tipo Integer

22
Tipos de datos en Pascal
  • Real (números reales)
  • Rango de valores representable usando 6 Bytes
    para almacenar los datos de tipo real, el rango
    va
  • desde 2.9 x 10-38
  • hasta 1.7 x 1038.
  • También tiene otra serie de tipos adicionales
    relacionados
  • Char (Caracteres)
  • Cualquier carácter de los 256 que forman la tabla
    ASCII
  • Boolean (Valores booleanos o lógicos)
  • Sólo pueden ser Verdadero (TRUE) o Falso
    (FALSE)

23
El tipo Integer de Pascal
  • Tipo ordinal(sus elementos pueden organizarse de
    menor a mayor y hay una manera obvia de pasar al
    siguiente)
  • Sintaxis de los números enteros en EBNF
  • V-entera - Digito Digito
  • Digito 0 1 ... 9
  • Constantes predefinidas en Pascal
  • maxint Valor máximo para números enteros
  • minint Valor mínimo para números enteros
  • Ej En Turbo Pascal son 32767 y -32768,
    respectivamente

24
Operadores para datos enteros
  • Aridad Posición Operandos
    Resultado Operación (num. Operandos)
  • - 1 prefijo entero
    entero cambio de signo (operador por
    delante)
  • 2 infijo entero
    entero suma (operador entre medias)
  • - 2 infijo enteros
    entero resta
  • 2 infijo enteros
    entero multiplicación
  • div 2 infijo enteros
    entero cociente de la división entera
  • mod 2 infijo enteros entero resto
    de la división entera

25
Expresiones aritméticas enteras
  • Ejemplos
  • var x integer
  • ...
  • 4 5 -17 x
  • 5 2 7 5 - 6 - 7
  • Cómo interpretar una expresión como 5 2 7?
    Y 5 - 6 - 7?
  • La resolución de ambigüedades producidas por el
    uso de operadores infijos se lleva a cabo
    asociando a cada operador
  • Una prioridad o precedencia
  • Una asociatividad
  • Los paréntesis sirve normalmente para llevar la
    contraria a dichas prioridades y
    asociatividades, ya que las expresiones entre
    paréntesis siempre se evalúan primero

26
Evaluación de expresiones
  • Prioridad
  • Un operador ? tiene prioridad sobre otro operador
    ? si, ante dos interpretaciones posibles de una
    expresión, se elige siempre aquélla que supone
    aplicar primero ?
  • Prioridad de los operadores aritméticos en Pascal
  • - (cambio de signo)
  • div mod
  • - (resta)
  • Cómo se interpreta 5 2 7?
  • Qué podemos usar si se desea otra interpretación?

Orden de aplicación
Explicación en PIZARRA
27
Evaluación de expresiones
  • Asociatividad
  • La expresión 5 - 6 - 7 sigue siendo ambigua
    porque estamos usando el mismo operador
  • Las reglas de asociatividad solucionan estas
    ambigüedades
  • Si un operador cualquiera (llamémosle ?) asocia a
    izquierdas, entonces a ? b ? c se interpreta como
    (a ? b) ? c
  • Si un operador cualquiera (llamémosle ?) asocia a
    derechas, entonces a ? b ? c se interpreta como
    a ? (b ? c)
  • En Pascal todos los operadores aritméticos
    infijos binarios asocian a izquierdas
  • Cómo se interpreta 5 - 6 - 7?
  • Qué podemos usar si se desea otra interpretación?

Explicación en PIZARRA
28
Evaluación de expresiones
  • Reglas para evaluar expresiones (en este orden)
  • Las subexpresiones entre paréntesis se evalúan
    primero. Si hay subexpresiones parentizadas
    anidadas (paréntesis dentro de paréntesis, etc.)
    se evalúan de dentro hacia fuera
  • Dentro de una expresión, los operadores se
    evalúan según su prioridad
  • Los operadores con igual prioridad que estén en
    una misma subexpresión se evalúan según la
    asociatividad de Pascal (siempre de izquierda a
    derecha)
  • Ejemplos
  • (4 6) 3 div 5 vs 4 6 3 div 5
  • (4 6) (10 - 5) mod 2 vs 4 6 (10 -
    5) mod 2
  • 10 mod ((4 2) - (3 2)) vs 10 mod (4
    2) - (3 2)

Explicación en PIZARRA
29
Funciones sobre datos enteros
  • Funciones aritméticas predefinidas en Pascal
  • abs (x) ? Valor absoluto. Resultado entero
  • cos (x) ? Coseno de x (en radianes).
    Resultado real
  • sin (x) ? Seno de x (en radianes). Resultado
    real
  • exp (x) ? ex. Resultado real
  • ln (x) ? Logaritmo neperiano de x. Resultado
    real
  • sqr (x) ? x2. Resultado entero
  • sqrt (x) ? ?x. Resultado real
  • donde x es constante, variable o expresión
    entera
  • Ejemplos
  • var num integer
  • ...
  • sqrt (4 num) exp (num 4 3)
  • cos (5 abs (-2)) ln (num (4 3))

30
Otras operaciones con enteros
  • Operadores relacionales (binarios)
  • gt lt gt lt ltgt
  • Los operandos son constantes, variables o
    expresiones enteras
  • El resultado es un valor booleano (verdadero o
    falso)
  • Función Impar
  • odd (x)
  • donde x es constante, variable o expresión
    entera el resultado es un valor booleano
    (verdadero si x es impar)
  • Predecesor y sucesor
  • pred (x)
  • succ (x)
  • donde x es constante, variable o expresión
    entera el resultado es el número entero anterior
    y el siguiente, respectivamente

31
El tipo Real de Pascal
  • Tipo ordenado (sus elementos pueden organizarse
    de menor a mayor)
  • Sintaxis de los números reales en EBNF
  • Vreal Fnormal Fcientifico
  • Fnormal Signo Pentera . Pdecimal
  • Pentera Digito Digito
  • Pdecimal Digito
  • Fcientifico Fnormal E Signo Pentera
  • Digito 0 1 ... 9
  • Signo -

32
Operadores para datos reales
  • Aridad Posición Operandos
    Resultado Operación
  • - 1 prefijo real real cambio de
    signo
  • 2 infijo reales real suma
  • - 2 infijo reales real resta
  • 2 infijo reales real
    multiplicación
  • / 2 infijo reales real cociente
    de la división real

33
Funciones sobre datos reales
  • Funciones aritméticas predefinidas
  • abs (x) ? Valor absoluto. Resultado real
  • cos (x) ? Coseno de x (en radianes). Resultado
    real
  • sin (x) ? Seno de x (en radianes). Resultado
    real
  • exp (x) ? ex. Resultado real
  • ln (x) ? Logaritmo neperiano de x. Resultado
    real
  • sqr (x) ? x2. Resultado real
  • sqrt (x) ? ?x. Resultado real
  • donde x es constante, variable o expresión real

34
Otras operaciones con datos reales
  • Operadores relacionales (binarios)
  • gt lt gt lt ltgt
  • Los operandos son constantes, variables o
    expresiones reales
  • El resultado es un valor booleano
  • Conversión explícita de tipo (de real a entero)
  • round (x) ? redondea al número entero más próximo
  • trunc (x) ? directamente elimina la parte decimal
  • donde x es constante, variable o expresión real
  • Ejemplos
  • round (8.8)
  • round (-8.7)
  • trunc (8 0.8)
  • trunc (-2.4)
  • round (9 - 0.5)

Explicación en PIZARRA
35
El tipo Char de Pascal
  • Tipo ordinal
  • El juego de caracteres varía de un estándar a
    otro
  • Dos estándares de uso común son ASCII y EBCDIC
  • Los juegos de caracteres incluyen dos clases de
    caracteres
  • Visibles pueden editarse e imprimirsePor
    ejemplo los dígitos, las letras, los símbolos de
    puntuación
  • Invisibles (también llamados caracteres de
    control)Por ejemplo el salto de línea, el fin
    de línea, el tabulador

36
El tipo Char de Pascal
  • Internamente cada carácter del juego de
    caracteres está representado por un código
    numérico
  • ord (x) --gt Obtención del código numérico
    asociado al carácter x
  • chr (x) --gt Convierte el código numérico x en el
    carácter correspondiente según el juego de
    caracters
  • Por ejemplo, en el juego de caracteres ASCII, el
    código numérico del carácter A es 65.
  • Es decir, el 65 es el código ASCII del carácter
    A

37
El tipo Char de Pascal
  • Predecesor y sucesor
  • pred (x)
  • succ (x)
  • donde x es una constante o una variable de tipo
    carácter
  • Operadores relacionales (binarios)
  • gt lt gt lt ltgt
  • Los operandos son constantes o variables de tipo
    carácter
  • El resultado es un valor booleano
  • Ojo! Lo que realmente se compara son los códigos
    numéricos de los caracteres comparados (gracias
    a esto es Char es un tipo ordenado)

38
El tipo Boolean de Pascal
  • Tipo ordinal
  • Dos únicos valores true y false
  • ord (false) es 0 ord(true) es 1
  • Expresiones booleanas simples
  • Operador relacional cuyos operandos son dos
    constantes, variables o expresiones del mismo
    tipo (o compatibles a nivel de comparación, es
    decir, que se pueden comparar)

x lt 0 x y gt y - z cos (r) 5 ltgt valor
x
39
El tipo Boolean de Pascal
  • Expresiones booleanas compuestas
  • Operadores lógicos binarios and (y-lógica) y or
    (o-lógica)
  • Operador lógico unario not (negación lógica)
  • Prioridad de los operadores en Pascal (añadiendo
    los operadores lógicos y relacionales)
  • - (unario) not
  • div mod / and
  • - (binario) or
  • lt lt gt gt ltgt

Orden de aplicación
40
El tipo Boolean de Pascal
  • Ejemplo
  • Escribe expresiones booleanas para representar
    las siguientes condiciones
  • Alguno de estos tres valores enteros i, j o k es
    par
  • Un valor entero j está en el intervalo 0, 100

Explicación en PIZARRA
41
El tipo Boolean de Pascal
  • Ejemplo Supón tres variables enteras A, B y C
    que tienen los valores 10, 15 y 20,
    respectivamente.
  • Evalúa, si es posible, las siguientes
    expresiones booleanas
  • A gt 5
  • A B C
  • (C 20) or (A gt 5) and (B gt C)
  • (C 20) and (A gt 5) or (B gt C)
  • not (A gt 5) or ((C 20) or (A gt 5)) and (B gt C)

Explicación en PIZARRA
42
La asignación
  • Instrucción básica de la programación imperativa
    para cambiar el estado en un programa
  • Sirve para cambiar el valor de una variable
  • El valor asignado debe ser compatible con el tipo
    de la variable
  • No se debe acceder a una variable antes de que se
    le haya asignado un valor ? Prohibido usar
    variables con basura!
  • Sintaxis en diagrama sintáctico

Constante
Asignación

Variable
Variable
Expresión
43
Ejemplos de asignaciones
  • Ejemplo
  • var
  • x integer
  • begin
  • ...
  • x 1
  • x x 3
  • ...
  • end.
  • Explicación de lo que ocurre en memoria

Explicación en PIZARRA
44
Ejemplos de asignaciones
  • Si x5, y10, z20 Cuál es valor de x después de
    recibir las siguientes asignaciones?
  • x y
  • x 5y
  • x 5
  • x xx
  • x x div x
  • x succ(y) succ(z) - z

Explicación en PIZARRA
45
Ejemplos de asignaciones
  • Dadas las siguientes declaraciones
  • const blanco
  • var p, q integer x, y real a, b boolean
    c1 char
  • indica si las siguientes sentencias son válidas
  • p trunc (y) x
  • a p q
  • a b and (ord (c1) ltgt A)
  • x x trunc (x)
  • x y div p
  • a odd (p-1)
  • p round (q / (10 div p))
  • p 100 div (4 div 5)
  • z succ (c1)

Explicación en PIZARRA
46
Salida por consola
  • La sentencia write de Pascal
  • Visualización/Impresión de información en la
    pantalla de la consola/ventana del usuario,
    durante la ejecución del programa
  • write (lista-de-salidas)
  • Elementos a visualizar separados por
    comas
  • (Se visualizan todos en la misma línea en
    pantalla)
  • Ejemplo
  • var
  • cent real
  • begin
  • ...
  • write(En cms, cent)
  • end.

47
Salida por consola
  • La sentencia writeln de Pascal
  • Visualización/Impresión de información en la
    pantalla de la consola/ventana del usuario,
    durante la ejecución del programa
  • writeln (lista-de-salidas) ó writeln
  • Elementos a visualizar separados por
    comas
  • (Se visualizan todos en la misma línea en
    pantalla y luego se salta de línea o sólo
    se salta de línea, con writeln a secas)
  • Ejemplo
  • var
  • cent real
  • begin
  • writeln(Longitud?)
  • ...
  • writeln(En cms, cent)
  • end.

48
Salida por consola
  • Enteros y caracteres
  • Por defecto, se usan tantas posiciones como
    dígitos tenga el número o una sóla posición si es
    un carácter
  • Elemento numeroPosiciones (Significa que se
    usan tantas posiciones como indica
    numeroPosiciones)
  • Ejemplo
  • var x, y integer
  • writeln (Resultado , x y 5)

Explicación en PIZARRA
49
Salida por consola
  • Reales
  • Elemento longitudTotal numeroDecimales
  • (Significa que se usa la notación habitual con
    longitudTotal indicando las posiciones que se
    usan -incluyendo punto decimal y signo si lo hay-
    de las cuales numeroDecimales se reservan para
    los decimales -redondeando si es necesario-)
  • Elemento longitudTotal
  • (Significa que se usa la notación científica con
    longitudTotal indicando las posiciones totales
    que se usan)
  • Notación científica por defecto
    e.ddddddddddE?xx ó -e.ddddddddddE?xx

50
Entrada por consola
  • La entrada por consola funciona de una manera
    peculiar
  • Hay un almacén de caracteres para ir guardando
    todos los caracteres (visibles o invisibles) que
    escriba el usuario
  • Ej. Al pulsar la tecla F introducimos el carácter
    F pero si luego pulsamos la tecla Enter
    introducimos además dos caracteres invisibles un
    salto de línea y un fin de línea
  • A continuación veremos sentencias que leen
    caracteres de ese almacén y, generalmente, borran
    todos los que han leído
  • Ej read, readln y eoln
  • Si una de estas instrucciones se encuentra el
    almacén vacío, la ejecución del programa se
    detendrá y aparecerá un cursor en la
    ventana/consola del usuario que permite escribir
    más

51
Entrada por consola
  • La sentencia read de Pascal
  • Lectura de información desde el almacén de
    caracteres
  • read (lista-de-variables)
  • variables destino separadas por comas
  • Lee los caracteres necesarios para formar cada
    dato(un sólo carácter si debe leer un dato de
    tipo char, varios si debe leer un dato de tipo
    integer formado con varios dígitos)y borra sólo
    esos caracteres leídos
  • Ejemplo
  • var letra char
  • begin
  • writeln(Letra favorita?)
  • read(letra)
  • ...
  • end.

2.50
52
Entrada por consola
  • La sentencia readln de Pascal
  • Lectura de información desde el almacén de
    caracteres
  • readln (lista-de-variables) o readln
  • variables destino separadas por comas
  • Lee los caracteres necesarios para formar cada
    dato(un sólo carácter si debe leer un dato de
    tipo char, varios si debe leer un dato de tipo
    integer formado con varios dígitos)y borra
    todos los del almacén (fin de línea incluido)
  • Ejemplo
  • var pulgadas real
  • begin
  • writeln(Longitud?)
  • readln(pulgadas)
  • ...
  • end.

2.51
53
Entrada por consola
  • La sentencia eoln de Pascal
  • Comprobación de fin de línea inminente en el
    almacén de caracteres
  • eoln
  • Si el primer carácter del almacén (el siguiente a
    leer) es un fin de línea devuelve cierto,
    devolviendo falso en caso contrario pero no
    borra ningún carácter del almacén!
  • Ejemplo
  • var final boolean
  • begin
  • final eoln
  • writeln(final)
  • ...
  • end.

2.52
54
Críticas, dudas, sugerencias
Federico Peinadowww.federicopeinado.es
Write a Comment
User Comments (0)
About PowerShow.com