PUERTA | GATE-CS-2017 (Conjunto 1) | Pregunta 53

Considere la siguiente gramática:

stmt  -> if expr then else expr; stmt | ε
expr -> term relop term | term
term -> id | number
id ->  a | b | c
number -> [0-9]

donde relop es una operación relacional (p. ej., < >, ….), ε se refiere a la declaración vacía, y if
, then , else son terminales.

Considere un programa P que sigue la gramática anterior que contiene diez terminales if. El número
de rutas de flujos de control en P es ____________.

Por ejemplo, el programa

 if e1 then e2 else e3 

tiene 2 rutas de flujo de control, e 1 -> e 2 y e 1 -> e 3

(A) 20
(B) 1024
(C) 2048
(D) 10

Respuesta: (B)
Explicación: Número de rutas de flujo de control para 10 si terminales

  1. sidespuésmás; sentencia
  2. sidespuésmás; sidespuésmás; sentencia
  3. …………..

10 veces.

Observe que hay un punto y coma después de cada estructura if.

Ya que, cada estructura if tiene 2 flujos de control.
Por lo tanto, la 1.ª terminal tiene 2 flujos de control,
la 2.ª terminal tiene 2 flujos de control,
la 3.ª terminal tiene 2 flujos de control,
……….. La
9.ª terminal tiene 2 flujos de control
y la 10.ª terminal tiene 2 flujos de control.

Usando la ley de conteo de la multiplicación, obtenemos
= 2*2*2*2*2……10 veces = 2^10 = 1024 número de rutas de flujo de control para 10 terminales if.

1024 es la respuesta correcta.

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *