Você está na página 1de 5

Matemáti a Dis reta e Programação (2021/2022) ISEL  LEIM

Exame de Épo a de Re urso 18 de fevereiro de 2022

Leia atentamente o enun iado. Resolva ada grupo I e II em folhas separadas, indi ando em ada uma delas o seu
nome e número. Indique o(s) grupo(s) não entregue(s).

[Cotação℄ I.
[?? val℄ 1. Mostre que a proposição ((p _ q) ^ (p ! r) ^ (q ! r )) ! r é uma tautologia.
[?? val℄ 2. Considere o onjunto par ialmente ordenado (P; j) onde P = f2; 3; 5; 6; 15; 30g
e j é a relação de divisibilidade,

x jy , x divide y , y é múltiplo de x:

(a) Construa o diagrama de Hasse de (P; j) e indique os seus elementos maximais


e minimais.
(b) Indique a altura e a largura de (P; j). Justique apresentando uma adeia e
uma anti- adeia maximais.
( ) Considere o sub onjunto S = f5; 6g de P . Indique, aso existam, os majo-
rantes, minorantes, supremo, ínmo, máximo e mínimo de S em P .
[?? val℄ 3. Um número dn    d1 d0 diz-se uma api ua se dn    d1 d0 = , onde
d0 d1    dn

d0 ; d1 ; : : : ; dn são dígitos. Mostre que a api ua d0 d1 d2 d2 d1 d0 é divisível por 11.


[?? val.℄ 4. Considere a have públi a RSA (n = 22; e = 7). Obtenha a have privada e
desen ripte a mensagem C = 20.
[?? val.℄ 5. Considere o seguinte autómato:

s2
1 s4
1 1
0
Iní io s0 0 s5 0,1
0 0,1

s1
1 s3

(a) Justique se o autómato a eita a palavra vazia e a palavra 00001.


(b) Indique uma expressão regular que dena a linguagem re onhe ida pelo autó-
mato.
( ) Indique as regras de produção de uma gramáti a que permita gerar a lin-
guagem re onhe ida pelo autómato.
[Cotação] II – Python 3

[1 val.] 1. A execução do programa Python 3 que se segue gera um erro. Qual?


def g(b):
i = 0
r = []
while i < len(b):
r.append(b[i+1] - b[i])
i = i + 1
return r
print(g([3, 2, 0]))

[1 val.] 2. Considere a execução do programa Python 3 que se segue. Qual é o


output produzido?
x = 1
def a(y):
print(x)
def b(y):
global x
x = 2
print(x)
a(b(a(3)))

[3 val.] 3. Em Python 3, escreva a função get_sequencia. A função get_sequencia


tem seis argumentos: grelha, valor, linha, coluna, incremento_linha
e incremento_coluna, por esta ordem.

• O argumento grelha é uma lista com linhas. Uma linha é uma


lista com números inteiros. Todas as linhas têm o mesmo número
de elementos. O argumento grelha representa portanto uma
tabela retangular de números.
• O argumento valor é um número inteiro.
• O argumento linha é um número inteiro, que representa o número
de uma linha. A contagem das linhas inicia-se em 1.
• O argumento coluna é um número inteiro, que representa o número
de uma coluna. A contagem das colunas inicia-se em 1.
• O argumento incremento_linha é o número inteiro -1, 0 ou 1.
• O argumento incremento_coluna é o número inteiro -1, 0 ou 1.

A função get_sequencia retorna:

• Uma lista com todas posições seguidas da grelha, iguais a valor,


com início na linha linha, coluna coluna, segundo a direção
definida pelos argumentos incremento_linha e incremento_coluna.
Cada posição é um tuplo, com o número de linha e o número de
coluna, da posição, pela ordem linha, coluna. Se não houver nen-
huma posição com valor igual a valor, retorna uma lista vazia. Se
a posição correspondente à linha linha, e à coluna coluna, não
existir, retorna uma lista vazia.

Exemplos
x = [[0, 0, 0],
[1, 1, 2],
[1, 1, 2]]
print(get_sequencia(x, 0, 1, 1, 0, 1))
print(get_sequencia(x, 0, 1, 1, 0, -1))
print(get_sequencia(x, 1, 1, 1, 0, 1))
print(get_sequencia(x, 2, 2, 3, 1, 0))
print(get_sequencia(x, 1, 3, 2, -1, -1))
print(get_sequencia(x, 1, 10, 10, -1, -1))

Output
[(1, 1), (1, 2), (1, 3)]
[(1, 1)]
[]
[(2, 3), (3, 3)]
[(3, 2), (2, 1)]
[]

[1 val.] 4. Considere a execução do programa Python 3 que se segue. Qual é o


output produzido?
x = [1, 2, 3]
print(x[0:3])
print(x[0:-1])
print(x[-1])

[3 val.] 5. Em Python 3, escreva a função get_valor. A função get_valor tem


três argumentos: grelha, linha e coluna, por esta ordem.

• O argumento grelha é uma lista com linhas. Uma linha é uma


lista com números inteiros. Todas as linhas têm o mesmo número
de elementos. O argumento grelha representa portanto uma
tabela retangular de números.
• O argumento linha é um número inteiro, que representa o número
de uma linha. A contagem das linhas inicia-se em 1.
• O argumento coluna é um número inteiro, que representa o número
de uma coluna. A contagem das colunas inicia-se em 1.

A função get_valor retorna:


• o valor da grelha, na linha linha, coluna coluna, caso a posição
correspondente à linha e à coluna, exista.
• None, caso a posição correspondente à linha e à coluna, não
exista.

Exemplos
x = [[1, 2, 3],
[4, 5, 6]]
print(get_valor(x, 2, 3))
print(get_valor(x, 2, 4))
print(get_valor(x, 0, 2))
print(get_valor(x, 1, -1))

Output
6
None
None
None

[1 val.] 6. A execução do programa Python 3 que se segue gera um erro. Qual?


def f(a):
for n in a:
v = v + n
return v
print(f([7, 0, -1]))

Você também pode gostar