(vale 1,0 ponto) Considere o seguinte programa escrito na sintaxe C:
void xpto(int a, int b, int c)
{
a = b + c;
b = a * c;
}
void main()
{
int x;
int y;
scanf("%d", &x);
scanf("%d", &y);
xpto(x, y, x + 2);
printf("%d", x);
printf("%d", y);
}Com base no programa apresentado, avalie as asserções a seguir.
A respeito dessas asserções, assinale a alternativa correta.
a. apenas as assertivas I e II.
b. apenas as assertivas I e III.
c. apenas as assertivas II e III.
d. apenas as assertivas II e IV.
e. apenas as assertivas III e IV.
(vale 1,0 ponto) Subprogramas são blocos de construção fundamentais de programas e, portanto, estão entre os conceitos mais importantes no projeto de linguagens de programação. Analise as assertivas a seguir, sobre as características de subprogramas.
A respeito dessas asserções, assinale a alternativa correta.
a. apenas as assertivas I e II.
b. apenas as assertivas I e III.
c. apenas as assertivas II e III.
d. apenas as assertivas II e IV.
e. apenas as assertivas III e IV.
(vale 1,0 ponto) Considere o seguinte programa escrito na sintaxe Pascal:
program SUB1;
var x, y: integer;
procedure SUB2;
begin
writeln('x = ', x);
writeln('y = ', y);
end;
procedure SUB3;
var x, y: integer;
begin
x := 3;
y := 6;
SUB4(SUB2);
end;
procedure SUB4(procedure SUBX)
var x: integer;
begin
x := 4;
SUBX;
end;
begin
x := 1;
y := 3;
SUB3;
end.Um aspecto interessante dos nomes de subprogramas passados como parâmetros é a questão referente ao ambiente de referenciamento correto para executar o subprograma passado. Com base no programa apresentado, avalie as asserções a seguir.
A respeito dessas asserções, assinale a alternativa correta.
a. apenas as assertivas I e II.
b. apenas as assertivas I e III.
c. apenas as assertivas II e III.
d. apenas as assertivas II e IV.
e. apenas as assertivas III e IV.
(vale 1,0 ponto) Considere o seguinte programa escrito na sintaxe Java:
public class AppleRed extends Apple
{
public AppleRed()
{
super(Color.red);
}
}
public class AppleGreen extends Apple
{
public AppleGreen()
{
super(Color.green);
}
}Com base no programa apresentado, avalie as asserções a seguir.
AppleRed é um Apple e por isso poderia ser armazenada em uma variável do tipo Apple, como por exemplo: Apple apple = new AppleRed();AppleGreen é um Apple e por isso poderia armazenar uma instância do tipo Apple, como por exemplo: AppleGreen apple = new Apple();Apple, uma instância de AppleGreen pode ser armazenada em variáveis do tipo AppleRed, como por exemplo: AppleRed apple = new AppleGreen();A respeito dessas asserções, assinale a alternativa correta.
a. apenas a assertiva I.
b. apenas a assertiva II.
c. apenas a assertiva III.
d. apenas as assertivas I e II.
e. apenas as assertivas I e III.
(vale 1,0 ponto) Considere o seguinte programa escrito na sintaxe Java:
public class MyException extends Exception {
public MyException() { super(); }
}
public class MyRuntime extends RuntimeException {
public MyRuntime() { super(); }
}
public class MyClass {
public int testException(int test) throws MyException {
if (test == 0) { throw new MyException(); }
return test;
}
public int testRuntime(int test) {
if (test == 0) { throw new MyRuntime(); }
return test;
}
}Supondo que o usuário deseje utilizar os métodos definidos por MyClass, julgue as assertivas a seguir.
testException de MyClass, o usuário deverá adicionar a classe MyException a declaração do método que utilizar o método testException.testRuntime de MyClass, o usuário deverá adicionar a classe MyRuntime a declaração do método que utilizar o método testRuntime.testException de MyClass, o usuário deverá inserir o método testException dentro de um bloco try-catch, em que a exceção MyException é tratada.testRuntime de MyClass, o usuário deverá inserir o método testRuntime dentro de um bloco try-catch, em que a exceção MyRuntime é tratada.A respeito dessas asserções, assinale a alternativa correta.
a. apenas as assertivas I e II.
b. apenas as assertivas I e III.
c. apenas as assertivas II e III.
d. apenas as assertivas II e IV.
e. apenas as assertivas III e IV.
(vale 1,0 ponto) Considere o seguinte programa escrito na sintaxe Java:
public class MyRunnable implements Runnable {
public void run() {
System.out.println("run");
throw new RuntimeException("exception");
}
public static void main(String[] args) {
Thread thread = new Thread(new MyRunnable());
thread.start();
System.out.println("end");
}
}Agora, considere as seguintes saídas a serem apresentadas ao usuário, na execução de um programa.
Quais das saídas apresentadas são plausíveis de serem visualizadas pelo usuário, na execução da classe MyRunnable.
a. apenas as assertivas I e II.
b. apenas as assertivas I e III.
c. apenas as assertivas II e III.
d. apenas as assertivas II e IV.
e. apenas as assertivas III e IV.
(vale 1,0 ponto) Desenvolva uma função ou um conjunto de funções em LISP, que apresente a somatória dos elementos contidos em uma lista, como no exemplo a seguir.
(soma '(1 2 (3 4 (5 6) 7 8) 9))
45(defun soma(lista)
(cond
((null lista) 0)
((atom (car lista))
(+ (car lista) (soma (cdr lista)))
)
(t
(+ (soma (car lista)) (soma (cdr lista)))
)
)
)(vale 1,0 ponto) Desenvolva um programa em PROLOG, que apresente a somatória dos elementos contidos em uma lista, como no exemplo a seguir.
?- soma([1, 2, [3, 4, [5, 6], 7, 8], 9], N), write(N), nl.
45soma([], 0).
soma([CAR|CDR], N) :- atomic(CAR), !, soma(CDR, N1), N is N1 + CAR.
soma([CAR|CDR], N) :- soma(CAR, N1), soma(CDR, N2), N is N1 + N2.