Você está na página 1de 4

% Lista Exercicios 1 % Thiago Prado % RA 1295225

Exerccios
1.5) [C, D, E, F, H, I]
1.6)
a. teoria Prefixos: e, t, te, teo, teor, teori, teoria Sufixos: e, a, ia, ria, oria, eoria, teoria
b. universidade Prefixos: e, u, un, uni, univ, unive, univer, univers, universi, universid, universida,
universidad, universidade Sufixos: e, e, de, ade, dade, idade, sidade, rsidade, ersidade, versidade,
iversidade, niversidade, universidade
c. aaa Prefixos: e, a, aa, aaa Sufixo: e, a, aa, aaa
d. abccba Prefixo: e, a, ab, abc, abcc, abccb, abccba Sufixo: e, a, ba, cba, ccba, bccba, abccba
e. abcabc Prefixo: e, a, ab, abc, abca, abcab, abcabc Sufixo: e, c, bc, abc, cabc, bcabc, abcabc
1.7)
a. Fechamento Dado o alfabeto = {ab} e a palavra w=ab w = ab w = abab w = ababab w* =
abab...ab Como mostrado acima, o fechamento vlido.
b. Comutatividade Dado o alfabeto = {a,b,c,d} e as palavras v=ab e w=cd vw = abcd wv = cdab
Como mostrado acima, a comutatividade no vlida.
c. Elemento Neutro Dado o alfabeto = {ab} e a palavra w=ab w = w = w = ab Como mostrado
acima, o elemento neutro vlido.
d. Associatividade Dado o alfabeto = {a,b,c,d} e as palavras v=ab, w=cd e t=bc (vw)t = v(wt) =
abcdbc Como mostrado acima, a associatividade vlida.
1.8)
Quando utiliza-se o elemento nulo no caso da concatenao de palavras de uma linguagem e
quando se coloca o zero numa adio dos nmeros naturais, entretanto, apenas quando ambos
estiverem na posio mais a esquerda, para que o zero no possua nenhum valor significativo.
2.1)
Um exemplo de programa monoltico em C:
rotulo1:
...
...
...

goto rotulo1;
...

Esse comando exemplifica a utilizao dos rtulos definidos para programas monolticos. Note que
a nomeao de um rtulo ocorre logo antes do inicio do bloco a ser rotulado e o comando goto
responsvel por voltar a execuo ao bloco correspondente ao rtulo utilizado no comando. Um
exemplo de programa iterativo em C:
if (...)
{
while (...)
{
...
}
}
else if (...)
{
...
}
else
{
...
}

notvel que os if's n cdigo acima correspondam aos testes necessrios para escolher qual
parte do cdigo ser executada e o comando while o comando enquanto, permitindo que
iteraes sejam feitas conforme o necessrio, isto , enquanto o teste no inicio do comando while
erdadeiro.
Um exemplo de programa recursivo em C:
int funcao1(int valor)
{
if(valor <= 0) return valor;
else
{
return funcao1(valor 1);
}
}

Essa funo exibe claramente o conceito de sub-rotinas, neste caso, uma funo que faz a
subtrao de um valor qualquer inteiro at que ele se torne menor ou igual a zero. Observe que a
sub-rotina constantemente chamada at que valor fique menor ou igual zero.
2.3)
Relativamente a programas iterativos:
a. V no pode ser executado quando T for falso.

b. Porque cada identificador de operao constitui um programa iterativo, e como a operao vazia
um identificador de operao, logo, ele iterativa.
c. Por que possvel mapear todo o programa iterativo para o fluxograma utilizando componentes
bsicos de partida, parada, operao e teste, e a combinao destes componentes criam estruturas
mais complexas como o enquanto ou o at. E a partir do fluxograma possvel reescrever de
maneira fcil o programa monoltico, pois o fluxograma pode ser escrito em forma texto atravs
das instrues rotuladas.
2.6)
Seja M(V, X, Y, piX, piY, PiF, PiT) uma mquina e P um programa iterativo para uma mquina M.
Uma computao para o programa P em M uma cadeia de pares do tipo:
(I0,V0)(I1,V1)(I2,V2)...
Sendo uma cadeia (finita ou infinita) de composies sequenciais, onde I0 o programa iterativo
inicial da memria e V0 sendo o valor piX(x), que o valor inicial da memria. Para cada (Ik,Vk),
onde k={0,1,2,...}, F sendo uma operao, T sendo um teste e V, V1, V2 programas iterativos,
obtem-se:
Operao seguida de um programa: Ik = F;V
Ento (Ik+1,Vk+1)=(V, pif(Vk))
Um programa seguido por outro programa: Ik = V;V1
Ento(Ik+1,Vk+1)=(V;V1,Vk)
Teste: Ik = (se T ento V seno V1);V2
Ento(Ik+1,Vk+1) =(V;V2,Vk) se pit(Vk) = verdadeiro = (V1;V2,Vk) se pit(Vk) = falso
Enquanto: Ik = (enquanto T faa V); V1
Ento(Ik+1,Vk+1) = (V;(enquanto T faa V);V1,Vk) se pit(Vk) = verdadeiro = (V1, Vk) se pit(Vk) = falso
At: Ik = (at T faa V); V1
Ento (Ik+1,Vk+1) = (V1, Vk) se pit(Vk) = verdadeiro = (V;(at T faa V);V1,Vk) se pit(Vk) = falso
2.8)
Seja M(V, X, Y, piX, piY, piF, piT) uma mquina e P um programa iterativo para uma mquina M.
Uma computao para o programa P em M uma cadeia de pares do tipo:
(I0,V0)(I1,V1)(I2,V2)...(In,Vn)

Sendo uma cadeia finita de tamanho n, onde I0 o programa iterativo inicial da memria e V0
sendo o valor piX(x), que o valor inicial da memria. Para cada (Ik,Vk), onde k={0,1,2,...}, F sendo
uma operao, T sendo um teste e V, V1, V2 programas iterativos, obtem-se:
Operao seguida de um programa: Ik = F;V
Ento (Ik+1,Vk+1)=(V, pif(Vk))
Um programa seguido por outro programa: Ik = V;V1
Ento(Ik+1,Vk+1)=(V;V1,Vk)
Teste: Ik = (se T ento V seno V1);V2
Ento(Ik+1,Vk+1) =(V;V2,Vk) se pit(Vk) = verdadeiro = (V1;V2,Vk) se pit(Vk) = falso enquanto: Ik =
(enquanto T faa V); V1
Ento(Ik+1,Vk+1) = (V;(enquanto T faa V);V1,Vk) se pit(Vk) = verdadeiro = (V1, Vk) se pit(Vk) = falso
At: Ik = (at T faa V); V1
Ento (Ik+1,Vk+1) = (V1, Vk) se pit(Vk) = verdadeiro = (V;(at T faa V);V1,Vk) se pit(Vk) = falso

Você também pode gostar