Compiladores, Engenharia Informática
Por: Arthur Diniz • 17/6/2023 • Pesquisas Acadêmicas • 771 Palavras (4 Páginas) • 56 Visualizações
[pic 1] | Universidade Lusíada de Lisboa 1ª Frequência, 14.06.2022 |
- onsidere a linguagem das sequências binárias na forma 0n1m101m0n+1, m > 0, n > 0.
- [2 valores] Defina uma gramatica livre de contexto para a linguagem.
- [1 valor] Escreva a linguagem na forma normal de Chomsky.
- [2 valores] Construa um autómato em pilha
- Considere a seguinte gramática
S AS | d [pic 2]
A aA | bB[pic 3]
B c[pic 4]
- [3 valores] Construa a tabela LL(1). Verifique se a sequência aabcd faz parte da gramática. Para tal, identifique os vários passos da pilha, entrada, descrevendo as ações
- [3 valores] Construa a tabela de análise LR(0). Verifique se a sequência abcd faz parte da gramática. Para tal, identifique os vários passos da pilha, entrada, descrevendo as ações.
- Considere que está a construir uma aplicação em django para guardar informação de amigos e suas idades.
- [1 valor] Defina a classe Amigo(models.Model), que constará no ficheiro models.py, que permita definir na base de dados uma tabela que armazene, para cada amigo, o seu nome e idade.
class Amigo(models.Model):
nome = models.CharField(max_length=50)
idade = models.IntegerField()
- [2 valores] Escreva as instruções em necessárias para criar dois objetos da classe Amigo, e armazená-los na base de dados, com a seguinte informação: Maria, 17 anos, Joao, 23 anos.
a = Amigo(nome="Maria", idade=17)
a.save()
b = Amigo(nome="Joao", idade=23)
b.save()
- [2 valores] Defina a função amigos_view(request), do ficheiro views.py, que renderize um ficheiro template index.html, existente na pasta templates/amigos, com todos os dados armazenados na base de dados. Deverá para tal passar no contexto informação de todos os amigos.
def index(request):
amigos = Amigo.objects.all()
context = {'amigos': amigos }
return render(request, 'amigos/index.html', context)
- [2 valores] Complete o conteúdo do ficheiro index.html em baixo, por baixo do elemento h1, recorrendo à linguagem de template Django, por forma a apresentar a lista dos amigos existentes na base de dados. Deverá indicar, para cada amigo, o seu nome, e se é jovem (< 18 anos) ou adulto (≥ 18 anos). Exemplo de resultado esperado da página index.html renderizada:
Amigos
|
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Amigos</title> </head> <body> <h1>Amigos</h1> <h1>Amigos</h1> <ul> {% for amigo in amigos %} {% if amigo.idade > 18 %} <li>{{ amigo.nome }}, adulto</li> {% else %} <li>{{ amigo.nome }}, jovem</li> {% endif %} {% endfor %} </ul> </body> </html> |
- [2 valores] Escreva o conteúdo do script mensagem.js que faça com que, quando clique no botão mensagem, seja inserida, no elemento h1 com id="mensagem", a mensagem “Escola difícil - vida fácil”. Esse texto deverá ter a cor azul.
<!DOCTYPE html> <style> h1:first-child { </stlye> <script> const frase = "Escola difícil - vida fácil."; document.addEventListener('DOMContentLoaded', function() { document.querySelector('button').onclick = () => { document.querySelector('#mensagem').innerHTML = frase; document.querySelector('#mensagem').style.color = "blue"; }; }); </script> <button>Mensagem</button> |
Glossário
Django
urls
urlpatterns = [...]
path(route, view, kwargs=None, name=None)
include(module)
Views
HttpResponse(string)
HttpResponseRedirect(path)
redirect(to, *args)
reverse(viewname,args=None)
render(request, template_name, context=None)
Template language
{{ variable }}
{% extends route_str or variable %}
{% include route_str or variable %}
{% load static %}
{% static file_str or variable %}
{% url viewname_str *args %}
{% csrf_token %}
{% block content %}... {% endblock content %}
{% for element in list %}... {% endfor %}
...