TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Compiladores, Engenharia Informática

Por:   •  17/6/2023  •  Pesquisas Acadêmicas  •  771 Palavras (4 Páginas)  •  57 Visualizações

Página 1 de 4

[pic 1]

Universidade Lusíada de Lisboa
Compiladores, Engenharia Informática

1ª Frequência, 14.06.2022

  1. onsidere a linguagem das sequências binárias na forma 0n1m101m0n+1, m > 0, n > 0.
  1. [2 valores] Defina uma gramatica livre de contexto para a linguagem.
  2. [1 valor] Escreva a linguagem na forma normal de Chomsky.
  3. [2 valores] Construa um autómato em pilha
  1. Considere a seguinte gramática

S  AS | d [pic 2]

A  aA | bB[pic 3]

B  c[pic 4]

  1. [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

  1. [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.
  1. Considere que está a construir uma aplicação em django para guardar informação de amigos e suas idades.
  1. [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()

  1. [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()

  1. [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)

  1. [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

  • Maria, jovem
  • João, adulto

<!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>

  1. [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>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Escola</title>

    <style>

h1:first-child {
   color: white;
   text-align: center;
   padding: 20px;
   background-color: black;
}
h1:first-child:hover {
   color:grey;
}

    </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>
</head>
<body>
   <h1>Escola</h1>

    <button>Mensagem</button>
   <h1 id="mensagem"></h1>
</body>
</html>

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 %}

...

Baixar como (para membros premium)  txt (5.6 Kb)   pdf (144.3 Kb)   docx (213.5 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com