Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Técnologías en la educación matemática – Dra. Marcela Capobianco – 1 de 37
Tecnologías en la Educación Tecnologías en la Educación MatemáticaMatemática
Dra. Marcela CapobiancoDCIC - UNS
Módulo 5: Módulo 5: Lenguaje Pascal:Lenguaje Pascal:tipos de datos tipos de datos
estructuras de controlestructuras de control
Técnologías en la educación matemática – Dra. Marcela Capobianco – 2 de 37
CopyrightCopyright● Copyright © 2010 M. Capobianco
● Se asegura la libertad para copiar, distribuir y modificar este documento de acuerdo a los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta delantera o trasera.
● Una copia de esta licencia está siempre disponible en la página http://www.gnu.org/copyleft/fdl.html.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 3 de 37
Tipos de datos en PascalTipos de datos en Pascal● Tipo de dato: es el conjunto de valores que
puede tomar un dato (en Pascal: una variable, una constante o una función)
● Tipos predefinidos en Pascal:– Integer: es un subconjunto de los números enteros
– Real: es un subconjunto de los números reales
– Boolean: es el conjunto {true, false} (valores lógicos)
– Char: es el conjunto de caracteres del código ASCII (letras, dígitos, y símbolos)
Técnologías en la educación matemática – Dra. Marcela Capobianco – 4 de 37
Ejercicios de repasoEjercicios de repaso● Escribir las siguiente expresiones aritméticas
en lenguaje Pascal:
2x+3y2-4z
x+yx-y
zx.y
a.x+b.y3
a.w-b.y
-a+br2-1
√a-1
√2 + a
Técnologías en la educación matemática – Dra. Marcela Capobianco – 5 de 37
Ejercicios de repasoEjercicios de repaso● Escribir un programa en Pascal para
intercambiar el contenido de dos variables leídas por teclado
● Para cada uno de los siguientes casos, definir dos constantes utilizando nombres significativos: precios, años, días, letras
Técnologías en la educación matemática – Dra. Marcela Capobianco – 6 de 37
Tipos de datos en PascalTipos de datos en Pascal● Indicar un tipo de dato apropiado para cada
una de las siguientes variables
Precio: Es_Nro_Primo:Letra:Dia:Mes:
Precio: Es_Nro_Primo:Letra:Dia:Mes:
NombreDia:
NombreMes:
ColorPrimario:
PaloDeBarajaEspanola:
NumeroDeCarta:
NombreDia:
NombreMes:
ColorPrimario:
PaloDeBarajaEspanola:
NumeroDeCarta:
Técnologías en la educación matemática – Dra. Marcela Capobianco – 7 de 37
Tipos de datos en PascalTipos de datos en PascalREALBOOLEAN: {true, false},CHAR {código ASCII}INTEGER {-32768, ..., 0, 1, ... 32767}
REALBOOLEAN: {true, false},CHAR {código ASCII}INTEGER {-32768, ..., 0, 1, ... 32767}
Tipos Predefinidos
Tipos Predefinidos
Tipos enumeradosTipos subrangosTipos enumeradosTipos subrangosTipos definidos
por el programador
Tipos definidos por el
programador
nos permiten ser más específicos, dando claridad y abstracción
nos permiten ser más específicos, dando claridad y abstracción
Técnologías en la educación matemática – Dra. Marcela Capobianco – 8 de 37
Dónde se definenDónde se definen
PROGRAM <nombre>;CONST {aquí se definen las constantes}TYPE {aquí el programador define los tipos }VAR {aquí declara las variables con su tipo}...
PROGRAM <nombre>;CONST {aquí se definen las constantes}TYPE {aquí el programador define los tipos }VAR {aquí declara las variables con su tipo}...
Técnologías en la educación matemática – Dra. Marcela Capobianco – 9 de 37
Redefinición de tiposRedefinición de tipos● El programador puede redefinir tipos TYPE Entero = integer;
Logico = boolean;NroReal = real;Letra = char;
VAR Precio : NroReal; Num: Entero;Es_Primo: Logico; Inicial: Letra;
. . . .
Inicial := ‘A’;Es_Par := (Num MOD 2 ) = 0
TYPE Entero = integer;Logico = boolean;NroReal = real;Letra = char;
VAR Precio : NroReal; Num: Entero;Es_Primo: Logico; Inicial: Letra;
. . . .
Inicial := ‘A’;Es_Par := (Num MOD 2 ) = 0
Técnologías en la educación matemática – Dra. Marcela Capobianco – 10 de 37
ConvencionesConvenciones● Se puede anteponer una T a las definiciones
de tipos (no es obligatorio, pero sí recomendable hacerlo)TYPE TEntero = integer;
TLogico = boolean; TNroReal = real;TLetra = char;
VAR Precio : TNroReal; Num: TEntero;
esPrimo: TLogico; Inicial: TLetra;
. . . .
TYPE TEntero = integer; TLogico = boolean; TNroReal = real;TLetra = char;
VAR Precio : TNroReal; Num: TEntero;
esPrimo: TLogico; Inicial: TLetra;
. . . .
Técnologías en la educación matemática – Dra. Marcela Capobianco – 11 de 37
Tipos enumeradosTipos enumerados● El programador puede definir nuevos tipos,
enumerando los valores que lo forman● Esos valores deben ser identificadores de
Pascal● Este tipo definido por el usuario se denomina
enumerado
Técnologías en la educación matemática – Dra. Marcela Capobianco – 12 de 37
Tipos enumeradosTipos enumerados
<nombre-tipo-enum>= ( ident-1, ident-2, ..., ident-N)<nombre-tipo-enum>= ( ident-1, ident-2, ..., ident-N)
valores posibles para el tipo (lista de identificadores
separados con coma)
valores posibles para el tipo (lista de identificadores
separados con coma)
nombre del tipo (identificador)
nombre del tipo (identificador)
Computadoras = ( IBM, Compaq, Toshiba , Sun, Apple)Computadoras = ( IBM, Compaq, Toshiba , Sun, Apple)
EjemploEjemplo
Técnologías en la educación matemática – Dra. Marcela Capobianco – 13 de 37
EjemplosEjemplosTYPE TipoColorprimario = (rojo, azul,amarillo);TipoPaloBaraja = (Oro,Copa,Espada,Basto);TDiasSemana = (lunes,martes,miercoles,jueves, viernes,sabado,domingo);VARNombreDia: TDiasSemana; ColorPrimario:TipoColorPrimario;PaloDeCarta:TipoPaloBaraja; ....
NombreDia := lunes; PaloDeCarta:=Basto;
TYPE TipoColorprimario = (rojo, azul,amarillo);TipoPaloBaraja = (Oro,Copa,Espada,Basto);TDiasSemana = (lunes,martes,miercoles,jueves, viernes,sabado,domingo);VARNombreDia: TDiasSemana; ColorPrimario:TipoColorPrimario;PaloDeCarta:TipoPaloBaraja; ....
NombreDia := lunes; PaloDeCarta:=Basto;
Técnologías en la educación matemática – Dra. Marcela Capobianco – 14 de 37
Tipos enumeradosTipos enumerados● Cuidado! Pascal prohibe utilizar las sentencias
write, writeln, read o readln con tipos enumerados definidos por el programador.
● Si V es una variable de un tipo enumerado definido por el programador, entonces....
read(V)read(V) readln(V)readln(V) write(V)write(V) writeln(V)writeln(V)
Técnologías en la educación matemática – Dra. Marcela Capobianco – 15 de 37
Tipos subrangosTipos subrangos● Los tipos ordinales son todos aquellos donde los
elementos están ordenados (según cierto criterio) ● Cada elemento (excepto el último) tiene un
sucesor y cada elemento (excepto el primero) tiene un predecesor
● Tipos ordinales predefinidos: integer, boolean, char● El programador puede definir nuevos tipos
subrangos, indicando un valor inicial y un valor final de un tipo ordinal cualquiera
Técnologías en la educación matemática – Dra. Marcela Capobianco – 16 de 37
Tipos ordinalesTipos ordinales
........ 00-32768-32768 -32767-32767 ........11 327663276622
Ej: INTEGEREj: INTEGERpredecesorpredecesor sucesorsucesor
MaxIntMaxInt
Ej: CHAREj: CHAR
........ ‘Z’‘Z’ ‘A’ ‘A’ ........‘a’‘a’ ‘b’‘b’ ‘c’‘c’........
predecesorpredecesor sucesorsucesor
Técnologías en la educación matemática – Dra. Marcela Capobianco – 17 de 37
Tipos SubrangosTipos Subrangos<nombre-subrango> = <valor-inicio>.. <valor-tope><nombre-subrango> = <valor-inicio>.. <valor-tope>
valores posibles para el tipo (todos los valores desde valor_inicio hasta valor_tope)
valores posibles para el tipo (todos los valores desde valor_inicio hasta valor_tope)
nombre del tipo (identificador)
nombre del tipo (identificador)
NotaAprobado = 4..10 ;NotaAprobado = 4..10 ;
EjemploEjemplo
Técnologías en la educación matemática – Dra. Marcela Capobianco – 18 de 37
EjemplosEjemplosTYPE
TNumeroMes = 1..12;
TNumeroDeCarta = 1..12;
TLetrasMayusculas = ‘A’ .. ‘Z’;
TDiasSemana = (lun,mar,mie,jue,vie,sab,dom);
TDiasLaborables = lun.. vie ;
TFinDeSemana = sab..dom;
Técnologías en la educación matemática – Dra. Marcela Capobianco – 19 de 37
Tipos OrdinalesTipos OrdinalesBOOLEAN: {false, true},CHAR {código ascii}INTEGER {-32768, ..., 0, 1, ... 32767}
BOOLEAN: {false, true},CHAR {código ascii}INTEGER {-32768, ..., 0, 1, ... 32767}
Tipos enumeradosTipos subrangosTipos enumeradosTipos subrangos
OperacionesCaracterísticas
OperacionesCaracterísticas
¿Por qué REAL no es ordinal?
¿Por qué REAL no es ordinal?
Tipos Ordinales
Tipos Ordinales
Pueden usarse los operadores relacionales< <= > >= <>
Pueden usarse los operadores relacionales< <= > >= <>
Pueden usarse las funciones pred, ord y succ
Pueden usarse las funciones pred, ord y succ
Técnologías en la educación matemática – Dra. Marcela Capobianco – 20 de 37
Funciones para Funciones para tipos ordinalestipos ordinales
● ORD ( V ): dado un valor V de un tipo ordinal T, devuelve la posición de V en la sucesión de valores de T
● Ejemplos: ORD(‘B’) es 66 ORD(3) es 3
Técnologías en la educación matemática – Dra. Marcela Capobianco – 21 de 37
EjemplosEjemplos● Dado el tipo
Tdias=(lun, mar, mie, jue,vie, sab,dom)ord(lun) es 0ord(mar) es 1ord(dom) es 6
● ord(false) es 0 y ord(true) es 1● lun < mar y sab < dom
Técnologías en la educación matemática – Dra. Marcela Capobianco – 22 de 37
Funciones para Funciones para tipos ordinalestipos ordinales
● PRED ( V ): dado un valor V de un tipo ordinal T, devuelve el valor anterior a V en la sucesión de valores de T
● PRED(‘B’) es ‘A’, PRED(3) es 2 y PRED(true) es false
● En Tdias=(lun, mar, mie, jue,vie, sab,dom)pred (dom) es sabpred(sab) es viepred(lun) no existe
Técnologías en la educación matemática – Dra. Marcela Capobianco – 23 de 37
Funciones para Funciones para tipos ordinalestipos ordinales
● SUCC( V ): dado un valor V de un tipo ordinal T, devuelve el valor siguiente a V en la sucesión de valores de T
● SUCC(‘A’) es ‘B’, SUCC(3) es 4 y SUCC(false) es true
● En Tdias=(lun, mar, mie, jue,vie, sab,dom)succ (lun) es marsucc(sab) es domsucc(dom) no existe
Técnologías en la educación matemática – Dra. Marcela Capobianco – 24 de 37
EjerciciosEjercicios● Definir tipos enumerados para representar los
siguientes datos:
a)Las provincias argentinas.
b)Los días de la semana.
c)Los meses del año.
d)Las cuatro estaciones del año.
e)Las vocales.
f) Los colores del arco iris.
g)Los doce signos del zodíaco.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 25 de 37
EjerciciosEjercicios● Definir tipos subrangos para representar datos
como los siguientes. Se pueden usar los enumerados definidos anteriormente.– Las provincias de la mesopotamia argentina.
– Los días laborales de la semana.
– Los días del fin de semana.
– Las letras mayúsculas
– Los enteros no negativos.
– Los números naturales de tres cifras.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 26 de 37
Estructuras de controlEstructuras de control● Las sentencias o estructuras de control nos
permiten especificar el flujo de control del programa
● Las sentencias de control en Pascal, que permiten programación estructurada son: – Asignación
– Secuencia
– Condicionales
– Repetitivas
– Llamadas a procedimientos
Técnologías en la educación matemática – Dra. Marcela Capobianco – 27 de 37
Sentencias simples y Sentencias simples y compuestascompuestas
Sentencia
o proposición
Sentencia
o proposición
simplesimple
compuestacompuesta
BEGIN <sentencia1>; <sentencia2>; ... <sentenciaK>END
BEGIN <sentencia1>; <sentencia2>; ... <sentenciaK>END
a:=1a:=1
Técnologías en la educación matemática – Dra. Marcela Capobianco – 28 de 37
Sentencia compuestaSentencia compuesta● Permite definir una secuencia de acciones.
Comienza con BEGIN y termina con END● Las sentencias que forman una sentencia
compuesta se separan una de otra con punto y coma
Técnologías en la educación matemática – Dra. Marcela Capobianco – 29 de 37
EjemploEjemploBEGIN
PrecioBase := 200;
Iva:= Precio * 0.20;
PrecioFinal:= PrecioBase + Iva;
END
BEGIN
PrecioBase := 200;
Iva:= Precio * 0.20;
PrecioFinal:= PrecioBase + Iva;
END
Técnologías en la educación matemática – Dra. Marcela Capobianco – 30 de 37
Uso del punto y comaUso del punto y coma
● El punto y coma se lo utiliza en Pascal como un “separador” de sentencias
writeln(‘Hola!’);
i := 1; j:=2; k:= 3;
writeln(‘Nada más’);
writeln(‘Hola!’);
i := 1; j:=2; k:= 3;
writeln(‘Nada más’);
writeln(‘Hola!’);
i := 1;
j:=2;
k:= 3;
writeln(‘Nada más’);
writeln(‘Hola!’);
i := 1;
j:=2;
k:= 3;
writeln(‘Nada más’);
equivalente
Técnologías en la educación matemática – Dra. Marcela Capobianco – 31 de 37
Uso del punto y comaUso del punto y coma● ¿Qué sucede cuando nos olvidamos de un
punto y coma?● ¿Cómo nos advierte el compilador de los
errores sintácticos?
Técnologías en la educación matemática – Dra. Marcela Capobianco – 32 de 37
Condicionales en Condicionales en PascalPascal
SI <condición>ENTONCES
< secuencia de acciones >
SI NO < secuencia de acciones >
SI <condición>ENTONCES
< secuencia de acciones >
SI NO < secuencia de acciones >
IF <expresión BOOLEAN>THEN < sentencia(simple o
compuesta) >
ELSE < sentencia (simple ocompuesta >
IF <expresión BOOLEAN>THEN < sentencia(simple o
compuesta) >
ELSE < sentencia (simple ocompuesta >
AlgoritmosAlgoritmos PascalPascal
Técnologías en la educación matemática – Dra. Marcela Capobianco – 33 de 37
EjemploEjemploPROGRAM Intercambio;
VAR A,B,AUX: INTEGER;BEGINREADLN(A);READLN(B);IF A = BTHEN WRITE(‘IGUALES’)ELSEBEGIN AUX := A; A := B; B := AUX;END;END.
PROGRAM Intercambio;
VAR A,B,AUX: INTEGER;BEGINREADLN(A);READLN(B);IF A = BTHEN WRITE(‘IGUALES’)ELSEBEGIN AUX := A; A := B; B := AUX;END;END.
ALGORITMO Intercambio;DATOS DE ENTRADA: A,B DATOS DE SALIDA: A,BDATOS AUXILIARES: AUX
COMIENZOPIDO(A)PIDO(B)SI A = BENTONCES MOSTRAR(‘IGUALES’)SINO AUX ← A A ← B B ← AUXFIN.
ALGORITMO Intercambio;DATOS DE ENTRADA: A,B DATOS DE SALIDA: A,BDATOS AUXILIARES: AUX
COMIENZOPIDO(A)PIDO(B)SI A = BENTONCES MOSTRAR(‘IGUALES’)SINO AUX ← A A ← B B ← AUXFIN.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 34 de 37
EjerciciosEjercicios● Escribir un programa para que dados tres
números a, b, y c, calcule el producto de a y b si la diferencia entre a y b es mayor que c, de lo contrario, calcule el cociente entre a y b.
● Escribir un programa para determinar si un número n es par.
● Escribir un programa que reciba dos números naturales n y d, y determine si n es divisible por d.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 35 de 37
EjerciciosEjercicios● Dado el sueldo básico de un empleado,
escribir un programa que calcule el monto final que debe abonársele sabiendo que si el sueldo básico es de p pesos por mes, debe agregarse un incremento calculado como un porcentaje a partir de p según la categoría a la que pertenezca:
– 0 < p < 800 : 10%– 800 <= p <2000 : 5%– 2000=p : 3%
Técnologías en la educación matemática – Dra. Marcela Capobianco – 36 de 37
EjerciciosEjercicios● Definir el tipo enumerado LetrasGriegas con
identificadores ALFA, BETA, DELTA, GAMMA y OMEGA ordenados en forma tal que respeten el siguientes conjuntos de criterios. Recordar que el ordinal del primer valor definido en el enumerado es 0– Pred(DELTA) es GAMMA
– OMEGA < GAMMA es False
– Ord(BETA) = 2
– Succ(OMEGA) = ALFA.
–
Técnologías en la educación matemática – Dra. Marcela Capobianco – 37 de 37
EjerciciosEjercicios● En una materia de la escuela, un alumno
aprueba un examen con A,B o C y lo desaprueba si se saca D o E. ¿Cuál de las siguientes definiciones de tipos es conveniente usar para una variable que represente la nota de un alumno? ¿Por qué?
a)Type Notas=(A,B,C,D,E);
b)Type Notas='A'..'E';
c)Type Notas=char;