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

Saludos Wink

Lección 006: Estructuras de control: secuencia y selección

Ir abajo

Lección 006: Estructuras de control: secuencia y selección

Mensaje  Kyshuo Ayame el Sáb Jul 27, 2013 1:12 pm

Ejercicio 1: Indica cuáles de las siguientes expresiones booleanas son verdaderas:



    • 2 < 4
    • -2 < 0
    • 0 > 1
    • '5' < '6'
    • 'A' < 'Z'
    • TRUE < FALSE
    • ('b' < 'd') AND (0 < 1)
    • (5 < 1) OR (0 > -1)
    • ('c' >= 'f') OR ('C' <= 'C')
    • NOT (2=2) AND (maxint < maxint)


  • Suponiendo que p = TRUE, q = TRUE y r = FALSE evalua las siguientes expresiones indicando si darán TRUE o FALSE al final:

    • (p AND q) AND (3 < 5)
    • (‘0′ < ‘2′) AND (p AND r)
    • NOT (p AND r) OR (p AND q)
    • NOT (p AND r) OR NOT (p AND q)






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

Ejercicio 2: Indica el valor de las siguientes expresiones para x = 0 usando siempre la semántica de circuito corto:


  • (x <> 0) AND (abs(x)/x <> 1)
  • (x = 0) AND (abs(x)/x <> 1)
  • (abs(x)/x <> 1) AND (x <> 0)
  • (x <> 0) OR (abs(x)/x <> 1)
  • (x = 0) OR (abs(x)/x <> 1)
  • (abs(x)/x <> 1) OR (x <> 0)


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

Ejercicio 3

Considera la siguiente instrucción:


Código:
IF (calif >= 90) OR (calif < 60) THEN
     Write ('Extrema')
 ELSE
     Write ('Media')

Indica qué se exhibe según el valor dado para calif:

  • calif:= 90
  • calif:= 60
  • calif:= 0
  • calif:= 70
  • calif:= -90


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

Ejercicio 4: Considera la siguiente instrucción IF anidada:


Código:
IF a > b THEN
   IF a > c THEN
      Write ('A es el grande')

Escribe una sola instrucción IF que sea equivalente a ésta pero que no contenga otra instrucción IF anidada.

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

Ejercicio 5: Considera el siguiente segmento de programa :


Código:
x := 7;
y := 8;
IF x > y THEN
     x := x + 1
ELSE
     y := y + 1

Determine el valor que queda en las variables x e y.

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

Ejercicio 6: Considera el siguiente segmento de programa:

Código:
x := 10;
 y := 11;
 z := 12;
 IF (x > y) OR (z > y) THEN
 IF x > z THEN
 IF y > z THEN
 WriteLn ('Termine.')
 ELSE Writeln ('No termino aun.')
 ELSE writeln ('Nunca llega aqui.')


  • Indica los mensajes que se exhiben en su ejecución.
  • Reescribe el código anterior con una indentación adecuada.


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

Ejercicio 7: Indica qué es lo que se exhibe al ejecutar los siguientes segmentos de programa:

Código:
VAR
         x, y, z : Integer;
 ...
 x := 1;
 y := 2;
 z := 3;
 IF x > y THEN
     IF y > z THEN
        IF x > z THEN
          WriteLn (x)
        ELSE
          WriteLn (y)
     ELSE
       WriteLn (z)

El resultado será una de estas opciones:

  • 1
  • 2
  • 3
  • No sale nada.


Código:
VAR
     a, b : Integer;
 ...
 a := 0;
 b := -1;
 IF a > 0 THEN
     WriteLn ('A')
 ELSE
     IF b < 0 THEN
         WriteLn ('B')
     ELSE
         WriteLn ('C')


  • 'A'
  • 'B'
  • 'C'
  • No sale nada.


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

Ejercicio 8: Determina el valor que se exhibirá después de la ejecución de la siguiente instrucción CASE :

Código:
...
 VAR
    letra : Char;
 ...
 letra := 'E';
 CASE letra OF
    'A': WriteLn ('El valor es 1.');
    'E': WriteLn ('El valor es 5.');
    'I': WriteLn ('El valor es 9.');
    'O': WriteLn ('El valor es 15.');
    'U': WriteLn ('El valor es 21.');
 END

==========================================================================
Ejercicio 9: Escribe proposiciones CASE equivalentes a la siguientes proposiciones IF:

Código:
IF k = 0 THEN
     r := r + 1
 ELSE
     IF k = 1 THEN
         s := s + 1
     ELSE
         IF (k = 2) OR (k = 3) OR (k = 4) THEN
           t := t + 2

Código:
IF (calif = 'D') OR (calif = 'F') THEN
     WriteLn ('Trabajo deficiente.')
 ELSE
     IF (calif = 'C') OR (calif = 'B') THEN
         WriteLn ('Buen trabajo.')
     ELSE IF calif = 'A' THEN
         WriteLn ('Trabajo excelente.')

¿Qué sucede en tu sistema cuando se ejecuta el siguiente segmento de código?

Código:
val := 3;
 CASE val OF
    1: WriteLn ('uno');
    2: WriteLn ('dos')
 END;
 WriteLn ('Despues del CASE');


  • El programa aborta.
  • El programa da un mensaje de error.
  • El programa despliega el mensaje ‘Despues del CASE’.
  • Sucede otra cosa.


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

Ejercicio 10: Escribir un programa que ingrese de la entrada un entero de hasta cuatro cifras y lo despliegue con el punto de la manera habitual, esto es: separando la cifra de los millares (si la hay) de la cifra de las centenas.

Ejemplos
EntradaSalida
12341.234
567567
2323
56785.678
==========================================================================

Ejercicio 11: La solución de un sistema de ecuaciones lineales con dos incógnitas, se puede obtener mediante la regla de Cramer. Supone que el sistema de ecuaciones es:

a x + b y = c
d x + e y = f


La regla de Cramer dice que, si existe una solución, esta es:

Código:
x = (ce - fb) / (ae - db)
y = (af - dc) / (ae -db)

Escribe un programa en PASCAL que lea de la entrada estándar los valores a, b, c, d, e , y f, que determine la solución del sistema de ecuaciones correspondiente y la imprima en caso de que exista, o que imprima un mensaje de error en caso contrario.

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

Ejercicio 12:

El costo de enviar por correo una carta es


  • $0.22 para cartas que pesan hasta una onza (inclusive)
  • $0.22 más $0.17 por onza adicional o fracción para cartas que pesan más de una onza.


Dado el peso de una carta como un número real de onzas, exhiba el costo de enviar la carta en la forma que se muestra en el ejemplo:

Código:
Ejemplo de entrada 1 :
0.50
Ejemplo de salida:
Peso Costo
0.50 $0.22

Código:
Ejemplo de entrada 2 :
1.00
Ejemplo de salida:
Peso Costo
1.00 $0.22

Código:
Ejemplo de entrada 3 :
1.01
Ejemplo de salida:
Peso Costo
1.01 $0.39

Código:
Ejemplo de entrada 4 :
3.00
Ejemplo de salida:
Peso Costo
3.00 $0.56

Código:
Ejemplo de entrada 5 :
3.40
Ejemplo de salida:
Peso Costo
3.40 $0.73

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

Ejercicio 13: Lee de la entrada estándar un entero positivo n de exactamente cuatro dígitos, y otro entero positivo d de exactamente 1 dígito. Si d aparece en la representación decimal de n, entonces exhiba el número n con un signo de suma (+) debajo de cada aparición de d. En caso contrario, exhibe el mensaje ‘d no aparece en n’.

Ejemplo 1:
Código:
Ingrese un entero de 4 digitos: 1100
Ingrese un entero de 1 digito: 0
1100
  ++

Ejemplo 2:
Código:
Ingrese un entero de 4 dígitos: 1100
Ingrese un entero de 1 dígito: 5
5 no aparece en 1100

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

Ejercicio 14 Escribir un programa en PASCAL que encuentre las raíces de la ecuación cuadrática:

a x2 + bx + c = 0

donde a, b, y c son valores reales leídos de la entrada estándar y donde la salida debe cumplir con la siguiente especificación:

Primero desplegar el valor de los coeficientes de la ecuación:

Código:
a = xx.x b = xx.x c = xx.x

Y luego imprimir uno de los siguientes mensajes, según que corresponda:

Código:
Dos raices reales diferentes: xxx.xxx y xxx.xxx
Dos raices reales iguales: xxx.xxx
Dos raices complejas diferentes: xxx.xxx (+/-) i xxx.xxx

El número de dígitos que se emplee para exhibir las raíces de la ecuación pueden variar.

Por ejemplo, para la entrada:

Código:
2.0 3.0 1.0

La salida sería:

Código:
a = 2.0 b = 3.0 c = 1.0
Dos raices reales diferentes: -1.000 y -0.500


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

Ejercicio 15: Escribe un programa en PASCAL que convierta un número positivo hexadecimal tomado de la entrada estándar de tres dígitos en su equivalente en base 10. Un dígito hexadecimal es uno de los dígitos 0 a 9 o A(10), B(11), C(12), D(13), E(14), o F(15). El equivalente decimal de un número hexadecimal de la forma abc es

Código:
a * 16[sup]2[/sup] + b * 16[sup]1[/sup] + c*16[sup]0[/sup]


Código:
Ejemplo de entrada : 7EB
Ejemplo de salida: 2027

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

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.