Identificadores y Variables

Anuncio
Universidad de la República
Facultad de Ciencias
Centro de Matemática
Introducción a la Computación – Curso 2007
Práctico 1: Identificadores y Variables
En este primer práctico dedicado al lenguaje Pascal manejaremos los conceptos básicos de
identificador y variable. Aunque FreePascal permite una mayor cantidad de identificadores
válidos (admite por ejemplo el uso de sub-guiones) asumiremos en este práctico que todo identificador deberá pertenecer al lenguaje identif icador = letra{letra|digito}, donde letra es
el lenguaje de las letras minúsculas y mayúsculas, y digito = ‘0’|‘1’|‘2’|‘3’|‘4’|‘5’|‘6’|‘7’|‘8’|‘9’.
1. Determine cuáles de los siguientes identificadores son válidos.
Promedio
$XYZ
A1234
A*b
1234A
Jorge
Can Can
506-74-3981
Program
4 2
2. Explique por qué no usarı́a los siguientes identificadores para sus definiciones.
1986
Integer
Vel*Tiempo
Var
End
Sqrt
1End
$EFECTIVO
3. Determine cuáles de las siguientes declaraciones de constantes son válidas.
CONST
CONST
CONST
CONST
impuesto = 0.09;
pi := 3.14;
diez = 9;
Acalif := 90;
4. Determine cuáles de las siguientes declaraciones de variables son válidas.
VAR num1, num2 : Real;
VAR total, suma, cuenta : Integer, Real;
VAR idestudiante, numsegsocial : Integer;
VAR num1; num2 : Integer;
VARnum1, num2 : Real;
Var num1, num2:Integer;
5. Determine cuáles de las siguientes son constantes enteras válidas en Pascal.
189
-5555
2.5e03
-2.5
6,632
+199
‘33’
maxint
199.
6. Determine cuáles de las siguientes son constantes reales válidas en Pascal.
-0.01
3.e-06
.025
+8.3e2
-3.6
1.0e1.
69.
maxreal
3.6e-06
2.2
7. Determine cuáles de las siguientes son constantes de carácter válidas en Pascal.
A
’A’
’CAT’
’8’
’?’
’??’
1
8. Determine cuáles de las siguientes son constantes válidas en Pascal. Determine el tipo
de cada expresión.
’e’
999
-0.000
e
3.e
’?’
false
-maxint
!
9. Suponga que tiene la siguiente declaración de variables:
VAR
temp, valor : Integer;
num, suma
: Real;
Determine cuáles de las siguientes proposiciones de asignación son válidas:
num := temp + valor;
num := suma;
valor := num + 3;
temp := num * suma
valor := num + temp;
valor := temp + 3;
num := num * suma;
10. Determine el tipo y evalúe las siguientes expresiones.
6 DIV 2 - 6 MOD 5
3 + 14 MOD (2 * 3)
5 MOD 8 + 8 MOD 5 7 MOD 2 + 13 DIV 3 - 2.5
6 - 2.1 * 3 + 1
14 MOD 2 * 6 + 3
3.2 + 14 MOD (2 * 3)
6 - 2 MOD (1 + 4) + 5
11. Dadas las siguientes declaraciones de variables:
VAR
ventas, total, perdida : Integer;
calif
: Real;
Determine cuáles de las siguientes proposiciones de asignación son válidas.
calif := ventas + total + perdida;
calif := ventas DIV total;
ventas := calif / total;
ventas := ventas + 5.0
calif := ventas / total
calif := calif DIV perdida
12. Evalúe las siguientes expresiones:
sqrt (16)
sqr (5)
trunc (10.1)
trunc (-13.8)
round (-3.5)
trunc (8.6)
round (10.7)
abs (-12)
-round (8.6)
13. Considere las proposiciones de asignación siguientes :
2
acosto
bcosto
ccosto
dcosto
:=
:=
:=
:=
4.0;
1.0;
-2.0;
5.5
Evalúe las siguientes expresiones:
sqrt (acosto / bcosto - ccosto + dcosto - 2.5)
trunc (dcosto) * abs (ccosto * (bcosto / acosto))
14. Dadas las siguientes declaraciones de variables:
VAR
num, suma, total : Integer;
valor
: Real;
car1, car2
: Char;
Determine cuáles de las siguientes proposiciones de asignación son válidas:
num := num + num;
suma := num / total;
valor := total * num + suma;
car2 := car1;
car2 := ‘car1’
num := suma / total;
valor := total;
valor := total + car1;
car2 := car1 + 1;
15. Determine el tipo y evalúe las siguientes expresiones en Pascal.
5 + sqr(3) - 4 + trunc(3.6 - 2.1)
6 + 9 * 8 DIV 2 * round(1.362) - 2 * 3
3 * sqrt(8 MOD 6 * 10 DIV 5)
trunc(12 / 5 * sqrt(4 + 4 * 3) / 4)
16. Cual es la salida estándar, en Pascal estándar, del siguiente programa :
PROGRAM Verificar (output);
VAR
i: Integer;
r: Real;
BEGIN
r := i + 1;
WriteLn(i,r)
END.
17. Escriba un programa de que utilice las funciones ln y exp de Pascal para calcular ab
donde a > 0.
3
18. Introduzca los siguientes programas en Pascal. Trate de anticipar cuál va a ser la salida.
Después, ejecútelo y compare lo que esperaba con la salida que se exhibe.
PROGRAM Muestra1 (output);
CONST
pi = 3.1415926535;
r1 = 2.0;
r2 = 5.0;
VAR
area: Real;
BEGIN
area := pi * r1 * r1;
WriteLn (r1, area); (* Exhibir valor de r1 y area *)
area := pi * sqr (r2);
WriteLn (r2, area) (* Exhibir valor de r2 y area *)
END.
PROGRAM Muestra2 (input, output);
CONST
medio = 0.5;
VAR
num : Real;
a, b : Integer;
BEGIN
ReadLn(num); (* Obtener un valor para num de
la entrada estandar *)
a := round (num);
b := trunc (num + medio);
WriteLn (num, a, b) (* Exhibir num, a, y b *)
END.
Cuando el segundo programa espere datos de entrada, introduzca un número real y
digite . Ejecute el programa varias veces, y use números tanto positivos como negativos,
con partes fraccionarias mayores, menores, y exactamente iguales que 0.5.
19. Implemente los siguientes programas en Pascal. Luego verifique que funcionen correctamente para varios datos de entrada. Aplique todas las herramientas de Pascal que ha
aprendido hasta el momento.
a) Calcular el perı́odo de un péndulo de longitud l. El perı́odo de un péndulo está dado
por la ecuación:
4
s
t = 2π ·
l
g
donde g es la constante gravitatoria. Implemente el programa de modo que l sea
leı́do de la entrada estándar.
b) Calcular el área de un triángulo en función de la longitud de sus lados a b y c,
mediante la famosa fórmula de Heron:
A=
p
a+b+c
s(s − a)(s − b)(s − c) donde s =
2
5
Descargar