Laboratorio Programación Imperativa Práctica 1 1. E/S en

Anuncio
Laboratorio Programación II
2010
Laboratorio Programación Imperativa
Práctica 1
Prof. Responsables: Federico Severino Guimpel, Natalia Colussi
Auxiliares: Pablo Rodriguez Monetti, Santiago Beltramone
E/S en PASCAL.
Operaciones sobre tipos básicos: Integer, Char, Real, Boolean, String.
Asignación.
Estructura de Selección Simple, if-then-else y Estructura de Seleccion Múltiple case-of-end.
1.
E/S en PASCAL
1. Dado el siguiente esqueleto de programa en PASCAL responda a las preguntas que se indican mas a
bajo. Para cada una de ellas deberá transcribir el programa compilarlo y observar el comportamiento.
1
2
3
4
5
6
7
8
9
10
11
12
Program Ejemplo1 ;
(* El programa muestra distintos formatos de salida . *)
Uses crt ;
Const
rInteres = 0.0515;
Var
iCont : Integer ;
rValor : Real ;
cLetra : Char ;
sCadena : String ;
bTest : Boolean ;
13
14
15
16
17
18
19
Begin
iCont :=0;
rValor := rInteres ;
cLetra := ’C ’;
sCadena := ’ Hola ’;
bTest := False ;
20
21
Clrscr ;
22
23
24
25
26
27
Writeln ( ’ La
Writeln ( ’ El
Writeln ( ’ El
Writeln ( ’ La
Writeln ( ’ El
constante es : ’ , rInteres ) ;
valor real es : ’ , rValor ) ;
entero es : ’ , iCont ) ;
letra es : ’ , cLetra , ’ y la String : ’ , sCadena ) ;
valor de testeo : ’ , bTest ) ;
28
29
Readln ;
30
31
End .
a) Reemplace en la lı́nea 23 la constante rInteres por la siguiente expresiones: rInteres:8,
rInteres:8:1, rInteres:8:3. ¿Qué sucede en cada caso?. Muestre los tres resultados juntos
y por separado.
1
Laboratorio Programación II
2010
b) Reemplace en la lı́nea 16 por la siguiente asignación rValor:= 310.0 * rInteres; y luego modifique en la lı́nea 24 la variable rValor por las siguientes expresiones: rValor:10:2, rValor:10:5,
rValor:8:5. ¿Qué sucede en cada caso?. Muestre los tres resultados juntos.
c) Declare una variable booleana bTest1 y ası́gnele el valor True. Luego reemplace en la lı́nea
27 la variable bTest por las siguientes expresiones: bTest or bTest1, bTest and bTest1, y
not bTest. Muestre los resultados de las operaciones asociándoles un texto que indique de que
operación se aplicó.
2.
Asignación y Estructura de Selección Simple if-then-else
1. Dadas las siguientes especificaciones completas o parciales obtener los programas en PASCAL que las
satisfagan.
a) |[ var a : Integer;
{a = A}
a :=?
{a = abs(A)}
]|
b) |[ var x : Real;
{x = X}
x :=?
{x = sgn(X)}
]|
c) |[ var a, b : Integer;
var f lag : Boolean;
{a ≥ 0 ∧ b ≥ 0}
f lag :=?
{f lag = par(a) ∧ par(b)}
]|
d) |[ const P I = 3,14159;
var radio, area : Real;
{radio ≥ 0}
area :=?
{area = P I × radio2 }
]|
e) |[ var z, x, y : Real;
{true}
z :=?
{z = max(x, y)}
]|
f ) |[ var a, b, c, x1, x2 : Real;
{b2 − 4 × a × c > 0}
x1, x2 :=?√
2 −4×a×c
{x1 = −b+√ b2×a
2 −4×a×c
x2 = −b− b2×a
}
]|
g) |[ var x, y, z : Real;
var c : Char;
{x = X ∧ y = Y ∧ z = Z ∧ (c = a ∨ c = g ∨ c = h)}
z :=?
p
{(c = g ∧ z = 3 (X × Y × Z)) ∨
(c = a ∧ z = (X + Y + Z)/3) ∨
(c = h ∧ X 6= 0 ∧ Y 6= 0 ∧ Z 6= 0 ∧ z = 1 + 31 + 1 )}
X
Y
Z
]|
2. Especifique y obtenga un programa que dados tres valores reales asociados a los lados de un triángulo
rectángulo calcula el perı́metro y el área.
3. Especifique y obtenga un programa dado una valor asociado a una temperatura y un caracter asociado
a la unidad de medida de la misma: c = celcius o f = fahrenheit, convierta la temperatura a la otra
unidad. Recordar la relación de conversión es: f ar = 1,8 × cel + 32.
4. Especifique y obtenga un programa que dados tres valores reales asociados a los lados de un triángulo
determina si este es equilátero, isósceles, o escaleno.
3.
Selección Múltiple (case-of-end).
1. Especifique y obtenga un programa de conversión de temperatura similar al resuelto en la sección
anterior, anteriormente, pero que ahora agrega una unidad de medida más: k = kelvin , siendo la
relación respecto a los grados celcius la siguiente : cel = kel − 273,15.
2. Especifique y obtenga un programa que dado dos valores reales y un caracter asociado a la siguiente
codificación: ‘+’, ‘-’, ‘/’, ’*’,’ %’, ’p’, o, ’r’ realiza las siguientes operaciones entre los valores dados:
suma, resta, división, producto, módulo, el promedio, la raı́z cuadra de la suma de dichos números.
2
Laboratorio Programación II
2010
3. Especifique y obtenga un programa que dado un dı́a, un mes y un año, determina cual es el siguiente
dı́a. Utilice para las variables dia, mes y año valores enteros de subrango. Para calcular el cuantos
dı́as tiene un mes en particular utilice una sentencia de selección múltiple, donde podrá asociar según
sea el mes cuantos dı́as le corresponde. Recuerde que: Enero, Marzo, Mayo, Julio, Agosto, Octubre,
y Diciembre tienen 31 dı́as; Abril, Junio, Septiembre, y Noviembre tienen 30 dı́as, y Febrero tiene 28
dı́as salvo año bisiesto que tiene 29 dı́as.
3
Descargar