·

Cursos Gerais ·

Programação

Send your question to AI and receive an answer instantly

Ask Question

Preview text

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS São Gabriel Disciplina Curso Turno Per. Linguagens de Programação Eng. de Computação / Sist. de Informação Manhã 3º / 4º Aluno: 3213929 - Nome Prova 1 1. Um programador implementou o seguinte tipo de dados em uma linguagem de programação como C: K = {x1, x2, x3} e (int + double) x (P : [0..30] -> K) x (Q : [0..180] -> float) Considerando que o programador utiliza uma linguagem com os tipos char e byte (8 bits), int (16 bits), float (32 bits), double (64 bits), responda: a (2pt) Escreva a declaração dos tipos acima em uma linguagem de programação do seu nível a sua escolha? b (2pt) Qual é a quantidade de memória em bytes necessária para armazenar uma variável do tipo composto acima? Responda em bytes. c (2pt) Quantos valores distintos são possíveis de armazenar em uma variável do tipo composto acima? d (2pt) O programador percebeu que a implementação do tipo Q estava gastando muita memória do dispositivo, tornando o programa inviável. De que outra forma ele poderia implementar o tipo Q, supondo que os dados representavam uma função analítica? Quais as vantagens e desvantagens dessa nova implementação? 2. LUA é uma linguagem de programação interpretada, de script, procedural, pequena, reflexiva e leve, projetada para expandir aplicações em geral, por ser uma linguagem extensível (que une partes de um programa feito em mais de uma linguagem), para prototipagem e para ser embarcada em softwares complexos, como jogos. LUA possui oito tipos de dados que são tratados como valores de primeira classe: nil, boolean, number, string, function, userdata, thread, and table. LUA não contém apoio explícito a herança, mas permite que ela seja executada com relativa facilidade com metatables. LUA também permite o tratamento de funções como variáveis de primeira classe. Um exemplo de LUA pode ser visto abaixo: function factorial(n) if n == 0 then return 1 else return n * factorial(n - 1) end end Baseado na descrição acima responda: 1. (2pt) Baseado no enunciado acima, podemos dizer que LUA é estaticamente ou dinamicamente tipada? Justifique sua resposta. 2. (2pt) É comum que linguagens modernas implementem mais de um paradigma. Cite três estruturas semânticas implementadas pela linguagem LUA que pertencem a três paradigmas diferentes, relacionando o paradigma correto a cada estrutura. 3. Considere o código abaixo: int f (int x) { int p; p = 5*x; do { p = p - x; } while (p > 0); } a (2pt) Suponha uma LP com Avaliação de Ordem Normal (Lazy evaluation ou Avaliação Tardia). É possível afirmarmos quantas iterações serão executadas pelo loop do-while da função f? Justifique e dê um exemplo de chamada de função que ilustre este argumento. b (3pt) Suponha uma LP com Avaliação de Ordem Aplicativa (Eager evaluation). É possível afirmarmos quantas iterações serão executadas pelo loop while da função f? Justifique e dê um exemplo de chamada de função que ilustre seu argumento. 4. Considere o código com sintaxe semelhante ao C++: void p(); int x; void f(int x) { static int c = 1; cout << c << ": "; c += x; x = x + 3; cout << x << " "; if (c < 5) f(c); cout << c << endl; } void p(int b) { cout << x << " : " << b; x = x + b; cout << " : " << x; } void main() { x = 3; cout << x; f(x); p(x+1); cout << x; } 3. (4pt) Execute o código segundo escopo estático e passagem de parâmetro por referência, com avaliação de ordem Aplicativa. Quando não for possível a passagem por referência, utilizar passagem por valor. b) (4pt) Execute o código supondo escopo dinâmico e passagem de parâmetro por valor, com avaliação de ordem Normal (ou avaliação tardia). N° lin | x | Fi | CiS | Piib | x++ | Saida -------------------------------------------------------- 01 | 3 | - | - | - | - | 3 | 27-7 | 3 | 1 | - | - | - | 3 ⬆️ | 08 | 3 | 4 | V | - | - | 3 1 | 9-7 | 3 | 4 | - | - | - | 3 1 | 08 | 3 | 7 | F | - | - | 3 7 | 9-11 | 3 | 7 | - | - | - | 3 7 | 3-13 | 3 | - | 5 | - | - | 3 5 | 3 | 3 | - | 5 | - | - | 3 5 | 15-16 | 8 | - | - | 5 | - | 8 5 | 34 | 8 | - | - | - | - | 8 | 4 Meu deus que prova é essa