Exerccios selecionados do captulo 2 do livro [Diverio&Menezes, 2000] Exerccio 2.2. Desenhe um fluxograma que corresponde a cada um dos seguintes programas a) P2 = ({r1: faa v_para r2}, r1) b) Composio at (programa iterativo) c) Programa sem instruo alguma d) Programa sem instruo de parada
Exerccio 2.3. Relativamente a programas iterativos:
a) Em que situao a execuo de: enquanto T faa V V pode no ser executado? b) Por que a operao constitui uma programa iterativo? c) Por que pode-se afirmar que: A traduo de um programa iterativo para um monoltico trivial.
Exerccio 2.4. Relativamente a computao:
a) Por que possvel afirmar que a computao de um programa monoltico em uma mquina, para um dado valor inicial de memria, determinstica?
Exerccio 2.5. Caracterize e diferencie computao e funo computada.
Exerccio 2.9. Escreva um programa iterativo onde a computao seja infinita. Exerccio 2.10. Relativamente a funo computada por um programa em uma mquina: dois_reg = ( 2, , , armazena_a, retorna_b, {subtrai_a, adiciona_b}, {a_zero} ) onde: armazena_a: 2 tal que n , armazena_a(n) = (n, 0) retorna_b: 2 tal que (n, m) 2, retorna_b(n, m) = m subtrai_a: 2 2 tal que (n, m) 2, subtrai_a(n, m) = (n 1, m), se n 0 subtrai_a(n, m) = (0, m), se n = 0 adiciona_b: 2 2 tal que (n, m) 2, adiciona_b(n, m) = (n, m+1) a_zero: 2 {v, f} tal que (n, m) 2, a_zero(n, m) = v, se n = 0 a_zero(n, m) = f, se n 0 mon_b a = ( IM, 1 ) tal que IM = { 1: se a_zero ento vp 9 seno vp 2, 2: faa subtrai_a vp 3, 3: faa adiciona_b vp 1 } ICEG Cincia da Computao Prof. Marcelo Cezar Pinto
UNIVERSIDADE DE PASSO FUNDO
LISTA DE EXERCCIOS DE TEORIA DA COMPUTAO (AULA 2) comp_infinita = ( { 1: faa adiciona_b vp 1 }, 1 ) a) Considere o programa monoltico mon_b a para a mquina dois_reg. A correspondente funo computada mon_b a, dois_reg total? b) Considere o programa monoltico comp_infinita para a mquina dois_reg. Para quais valores do domnio a funo computada comp_infinita, dois_reg definida?
Exerccio 2.12. Traduza os Fluxogramas das Figuras 2.30 a 2.34 ( pginas 60 a 62 do
livro [Diverio&Menezes, 2000] ) para Instrues Rotuladas Simples.
Exerccio 2.13. Traduza o programa iterativo abaixo em programa monoltico na forma
de: a) Fluxograma b) Instrues Rotuladas Simples (se T1 ento enquanto T2 faa ( at T3 faa ( F ; G ) ) seno ( ) ) Exerccio. Mostre a computao e a funo computada do programa MDC na mquina M4Reg para entrada (1071, 1029). M4Reg = ( 4, 2, , entra, sai, { copiaX,Y, moduloX,Y,Z }, { menorX,Y, zeroX } ), onde: A, B, C e D representam, respectivamente, a 1a, a 2a, a 3a e a 4a posio da memria entra: 2 4 tal que (k, l) 2, entra(k, l) = (k, l, 0, 0) sai: 4 tal que (k, l, m, n) 4, sai(k, l, m, n) = k copiaX,Y: 4 4 tal que (k, l, m, n) 4, copiaX,Y(k, l, m, n) = (k, l, k, n), se X = A e Y = C copiaX,Y(k, l, m, n) = (l, l, m, n), se X = B e Y = A copiaX,Y(k, l, m, n) = (k, m, m, n), se X = C e Y = B Ou seja, a operao copia o valor de X em Y. 4 moduloX,Y,Z: 4 tal que ( k, l, m, n) 4, moduloX,Y,Z(k, l, m, n) = (k, l, k mod l, n), se X=A, Y=B e Z=C Ou seja, a operao copia o resto da diviso de X por Y em Z. 4 4 menorX,Y: tal que ( k, l, m, n) 4, menorX,Y(k, l, m, n) = v, se X < Y e X, Y {A, B, C, D} menorX,Y(k, l, m, n) = f, se X Y e X, Y {A, B, C, D} Ou seja, o teste verifica se o valor de X menor que o de Y. zeroX: 4 4 tal que ( k, l, m, n) 4, zeroX(k, l, m, n) = v, se X = 0 e X {A, B, C, D} zeroX(k, l, m, n) = f, se X 0 e X {A, B, C, D} Ou seja, o teste verifica se o valor de X igual a zero. ICEG Cincia da Computao Prof. Marcelo Cezar Pinto
UNIVERSIDADE DE PASSO FUNDO
LISTA DE EXERCCIOS DE TEORIA DA COMPUTAO (AULA 2) MDC = (IMDC, 10) tal que IMDC = { 10: se menorA,B ento vp 11 seno vp 15, 11: faa copiaA,C vp 12, 12: faa copiaB,A vp 13, 13: faa copiaC,B vp 15, 15: se zeroB ento vp 20 seno vp 16, 16: faa moduloA,B,C vp 17, 17: faa copiaB,A vp 18, 18: faa copiaC,B vp 15 } Mostre a computao de MDC, M4Reg(2, 4) e de MDC, M4Reg(5, 5).