virtualword
Te invitamos a registrarte para poder acceder a todo el contenido gratuito que esta comunidad provee.

Saludos Wink

Lección 005: Preguntas y aplicaciones

Ir abajo

Lección 005: Preguntas y aplicaciones

Mensaje  Kyshuo Ayame el Miér Jul 24, 2013 11:30 am

En la quinta lección vimos varios aspectos más acerca de Pascal llegando a tener una breve reseña sobre lo que es la selección. Los siguientes ejercicios aplican todo lo dado hasta el momento:

Ejercicio 1: Constantes

Parte a: Determina cuáles de las siguientes declaraciones de constantes son válidas:


  • CONST impuesto = 0.09;
  • CONST pi := 3.14;
  • CONST diez = 9;
  • $Acalif := 90;


Aquellas que selecciones como inválidas explica el motivo.

Parte b: Determina cuáles de las siguientes son constantes enteras válidas en Pascal.

  • 189
  • -2.5
  • `33'
  • -5555
  • 6,632
  • 2.5e03
  • +199
  • 199



Parte c: Determina cuáles de las siguientes son constantes reales válidas en Pascal:

  • -0.01
  • .025
  • -3.6
  • 69.
  • 3.6e-06
  • 3.e-06
  • +8.3e2
  • 1.0e1.



Parte d: Determina cuáles de las siguientes son constantes de carácter válidas en Pascal.

  • A
  • 'A'
  • 'CAT'
  • '8'
  • '?'
  • '??'



Parte e: Determina cuáles de las siguientes son constantes válidas en Pascal. Determina también el tipo de cada expresión:

  • 'e'
  • e
  • false
  • 999
  • 3.e
  • -maxint
  • -0.000
  • '?'
  • !


==========================================================================

Ejercicio 2: Introduce los siguientes programas en Pascal. Trata de anticipar cuál va a ser la salida estándar. Después, ejecútalo y compara lo que esperabas con la salida que se exhibe:

Código:
     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.

Código:
     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 programa espere datos de entrada, introduce un número real.
Ejecuta el programa varias veces, y usa números tanto positivos como negativos, con partes fraccionarias mayores, menores, y exactamente iguales que 0.5.

==========================================================================

Ejercicio 3: Supone que se tiene la siguiente secuencia de proposiciones de entrada (considera que todas las variables se declararon como enteras):

Código:
read (x,y,z);
readln (a);
readln (b,c);
read (d) ;

Obtén los valores de las variables a, b, c, d, x, y, y z si se utilizaron estos datos de entrada:

Código:
8 7 2 1 3
1 4 4 6 2
3 7

Indica los valores con los que quedarán las variables al final. Luego implementa un programa en Pascal declarando estas variables y usando las mismas instrucciones de entrada, ejecútalo y luego ingresa los datos exactamente igual que como se muestran arriba. Compara tus resultados con los obtenidos por el programa.

==========================================================================

Ejercicio 4: Dadas las siguientes declaraciones de variables

Código:
VAR
   a,b,c: integer;
   x,y,z: real;

y los siguientes datos de entrada

Código:
3 2.3 -6.5
1 5 2.1

encuentra los errores, si existen, al ejecutar las siguientes secuencias de proposiciones.

Código:
read (x,y,z)
read (a,b,x)
read (a,x,y); read (b,z,c)
readln (a,x); read (b,c,y,z)

==========================================================================

Ejercicio 5: ¿ Qué se exhibirá cuando se ejecuten las siguientes proposiciones Pascal ?
Código:
writeln (‘Valor1 es ‘, 3); writeln (‘Valor2 es ‘, 5); writeln (‘La suma es ‘, 3 + 5)

==========================================================================

Ejercicio 6:

¿ Qué se exhibirá cuando se ejecuten las siguientes proposiciones Pascal ?
Código:
writeln (86, 39); writeln (‘a = ‘); writeln (32.5); writeln (‘a = ‘, 86, ‘b = ‘, 32.5)

==========================================================================

Ejercicio 7: ¿Qué se exhibirá cuando se ejecute el siguiente programa en Pascal ?

Código:
PROGRAM adivina (input, output);
VAR
   a,b,c: integer;
   x,y,z: real;
BEGIN
   a := 0;
   b := 2;
   c := 1;
   x := 5.2;
   y := 3.6;
   z := 4.1;
   write ('Los valores son');
   write (a, b, c);
   writeln (x, y, z);
   writeln ('La suma es', x + y + z);
   writeln ('El producto es', a * b * c)
END.


==========================================================================

Ejercicio 8: Determina la salida exacta del siguiente programa en Pascal.

Código:
PROGRAM salea (input, output);
VAR
a: char;
b: integer;
BEGIN
a := 'x';
b := -12;
writeln (a:2, b:5)
END.

==========================================================================

Ejercicio 9:

Supone que a, b, c, y d son variables enteras. Determine los valores de a, b, c, y d después de la ejecución de las siguientes proposiciones con los datos que se muestran:

proposicióndatos
readln (a, b)2 15 6 4
readln ( c )1 -3 7 9
read (d)8 12 -1 5
==========================================================================

Ejercicio 10: Supon que m y t son variables enteras con los valores 4 y -18 respectivamente. Determina la salida exacta de la siguiente proposición :

Código:
write (‘Valor’:8,m:2,t:4)

==========================================================================

Ejercicio 11: Supone que a, b y c son variables enteras. Un usuario escribe la siguiente secuencia de caracteres en la terminal (donde b representa un espacio en blanco) :

Código:
1b2
3b4

Indique cuál proposición o secuencia de proposiciones no producirá los valores a = 1, b = 2, y c = 3:

Código:
read (a); readln (b); read ( c)
Código:
readln (a, b, c)
Código:
read (a, b, c)
Código:
read (a); read (b); readln; read ( c)
Código:
readln (a); readln (b); readln ( c)

==========================================================================

Ejercicio 12: ¿Cuáles de las siguientes proposiciones hará que se escriba la palabra PRIMERA en las columnas 1 a 7, el valor de la variable entera siguiente de manera que termine en la columna 20, y que se escriba la palabra ULTIMA en las columnas 75 a 80 ?

Código:
write ('PRIMERA', siguiente:13, 'ULTIMA':60)
Código:
write ('PRIMERA':7, siguiente:20, 'ULTIMA':80)
Código:
write ('PRIMERA':7, SIGUIENTE:13, 'ULTIMA':60)
Código:
write ('PRIMERA':SIGUIENTE:20, 'ULTIMA':80)
Código:
write ('PRIMERA':7, siguiente:5, 'ULTIMA':56)

==========================================================================

Ejercicio 13: Supone que x, y, y z son variables enteras. Considera el siguiente segmento de programa :

Código:
readln (x);
readln (y);
readln (z);

y las siguientes líneas escritas por un usuario cuando se ejecuta el segmento de programa (b representa un espacio en blanco).

Código:
12b34b56
7b9b1
bbbbbb
b11b22

Indica los valores almacenados en x, y, y z luego de la ejecutar el segmento de programa con los datos ingresados por el usuario.

==========================================================================

Ejercicio 14: ¿Cuál será la salida exacta que se produce cuando se ejecuta el siguiente programa?

Código:
PROGRAM prueba (input, output);
CONST hey = 'HOLA';
VAR r, s : real;
BEGIN
r := 6.1;
s := 7.2;
writeln (hey:6);
write ('R = ');
write (r:5:2);
writeln;
write ('S = ');
write (s:3:1)
END.

==========================================================================

Ejercicio 15:

¿Cómo maneja el sistema del lector los caracteres de tabulación en la entrada de datos?
Para averiguarlo, ejecuta el siguiente programa y proporciona como datos de entrada un carácter de tabulación, un punto y un retorno de carro.

Código:
PROGRAM tab (input, output);
VAR c1, c2, c3 : char;
BEGIN
read (c1, c2, c3);
writeln (ord (c1), ord (c2), ord (c3))
END.

==========================================================================

Ejercicio 16: ¿Qué salida producirá el siguiente programa cuando se teclee la línea de datos siguiente?

Código:
1.2#3#.#4

El carácter # representa al espacio.

Código:
PROGRAM entraro (input, output);
VAR c : char;
r : real;
e : integer;
BEGIN
readln (r, c, e);
writeln (r, c, e)
END.

==========================================================================

Ejercicio 17: ¿Qué exhibirán las siguientes proposiciones (suponiendo que r es una variable real)?

Código:
r := 91.2;
writeln (r:3:0)

==========================================================================

Ejercicio 18: ¿Permite el lector de variables de Pascal ingresar booleanas en proposiciones read ? Si es así, ¿ qué se debe escribir para proporcionar los datos true y false ?

==========================================================================

Ejercicio 19: En los datos de entrada se proporcionan dos tiempos como enteros de la forma hhmm donde hh representa las horas (menos de 24) y mm los minutos (menos de 60). Determina la suma de estos dos tiempos, y exhibe el resultado en la forma d hhmm,
donde d es días, ya sea cero o uno.

Código:
Ejemplo de entrada : 1345 2153.
Ejemplo de salida : 1 1138.

==========================================================================

Ejercicio 20: El error relativo en una medición m es la razón de la diferencia absoluta entre
la medición y el valor verdadero v al valor verdadero. Supone que los datos de entrada se dan en una sola línea que incluye dos números reales que representan la medición m y el valor verdadero v. Calcula el error relativo de la medición y exhíbe junto con la medición y el valor verdadero. Incluye etiquetas descriptivas para los valores exhibidos.

Código:
Ejemplo de entrada : 51.0 51.3.
Ejemplo de salida : Medición = 5.1000000000e+01
Valor verdadero = 5.1300000000e+01 \\ Error relativo = 5.8479532164e-0003.

==========================================================================

Ejercicio 21: No es posible utilizar una computadora para generar números aleatorios genuinos ya que es preciso utilizar un algoritmo para generar los números, lo que implica que es posible predecir los números generados. Lo que sí pueden hacer las computadoras es generar números seudoaleatorios (números que, estadísticamente, parecen ser aleatorios). Una técnica antigua que no produce buenos resultados se llama método del cuadrado medio. Funciona así : dado un número a, para generar el siguiente número de la secuencia se extraen los dígitos que están en la posición de las decenas y las centenas de a2. Por ejemplo, si a es 53,
entonces a2 es 2809, y el siguiente número seudoaleatorio será 80. Se ve que el siguiente número seudoaleatorio a 80 es 40. Si se continúa este proceso se obtiene 60, 60, 60.

Escribe un programa en Pascal que lea un entero de dos dígitos y determine el siguiente número
seudoaleatorio que se generaría si se usara el método del cuadrado medio.

Supone que la entrada consta de una sola línea que contiene al entero de dos dígitos.
Exhibe el número de dos dígitos original, el cuadrado de este entero, y el siguiente número,
todos con etiquetas apropiadas.

Código:
Ejemplo de entrada : 53.
Ejemplo de salida : Numero introducido = 53
Cuadrado del numero = 2809
Siguiente numero seudoaleatorio = 80.

==========================================================================

Ejercicio 22: La función exp de Pascal calcula un valor igual a la suma de la serie infinita

Código:
1 + [x/ 1!] + [(x2)/ 2!] + [(x3)/ 3!] + [(x4)/ 4!]

Supone que los datos de entrada consisten en un solo valor real para x entre 0.0 y 1.0. Determine la suma de los primeros cinco términos de la serie infinita y el valor de exp(x) mediante la función estándar.

Exhibe estos valores y el valor de x acompañados de etiquetas apropiadas.

Código:
Ejemplo de entrada : 0.5.
Ejemplo de salida : Valor introducido = 5.0000000000e-01
Suma de la serie = 1.648437619e+00
Exp (x) = 1.6487212707e+00.

==========================================================================

Ejercicio 23: Con el resultado del ejercicio 6 de las prácticas de la lección 4, escribe un programa para determinar la raíz cuadrada de un número positivo a mediante el cálculo de a0.5.
La entrada consistirá en una sola línea conteniendo el número real a.

Exhíbe a, a0.5, y sqrt(a) con etiquetas apropiadas.

Código:
Ejemplo de entrada : 12.7.
Ejemplo de salida : Valor introducido = 1.2700000000e+00
Raiz cuadrada calculada = 3.5637059362e+00
Raiz cuadrada de Pascal = 3.5637059362e+00.

==========================================================================

Ejercicio 24: Escribe un programa que tenga como única entrada un número octal (base ocho) de tres dígitos. Exhibe el número octal original y el número equivalente en base 10.
Por ejemplo, el número octal de tres dígitos 415 equivale al valor decimal
Código:
4 ×82 + 1 ×81 + 5 ×80, o sea, 269
Recuerde que Pascal considerará el número introducido como número decimal.

Código:
Ejemplo de entrada : 217.
Ejemplo de salida : Octal 217 = Decimal 143.

==========================================================================

Navegación:
avatar
Kyshuo Ayame
Admin

Mensajes : 105
Fecha de inscripción : 14/11/2012
Edad : 29

Ver perfil de usuario http://virtualworld.forouruguay.net

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.