1/6 • • • • Duração: minutos. consulta. Não esqueça de assinalar o seu nome, a sua turma e o nome do seu professor ao abaixo. Parte teórica (total: pontos) Cada questão tem apenas resposta certa. Cada resposta certa vale 0,3 ponto. Três respostas erradas uma certa. Respostas em branco serão consideradas. Serão consideradas as respostas assinaladas à e sem rasuras no quadro de respostas abaixo. Parte prática (total: pontos) Podem ser respondidas à ou à . • : __________________________________________ : _____________________________________ : _________________________ 29/11/2005 (marque com um "X"): Custódio Dirceu Marcus Vinícius ! " # $ % & % ' % % % % ( % % % % !" ! " # ! ! ! ! ( ) , -# " $ $ " " , 0 " " " " $ " %&' " " ' " " ' $ " %& %& %& * + /- " + + * * /- - . /- ' 2 1 ' - . ! " 5 0 + /- 3 + * " 4 /- ' " " ' + " " " 6 7 0 # $ 8 4 8 " //- ' 9 /- ' : + /- * 4 /- " 1 2/6 ; ) . " ) < =' ><) ' ? # @) ' ? ' 0 * 0 ! 0 0 B / 8 ) $" ! # F 5G F ;G ' &F G &F G F GD D 2 2 D 2 D H ( 8 ' H ( D H 5' H 5 D 2 84 - 8 . 7 8 1 K *M9 $8 # * K 4 $ * /- /L 4 N 0 0 0 0 0 P 0 8 H0 2 - 3 - 3 - 3 - 3 4 4 4 4 / ! ! " ! ! - 1 2 2 H ; L # K 4 ' 9 ' 4 4 4 -' L - 3* # 4 4 4 4 ' ' ' ' 3* # A A " //- A H 5' - @. 3 8 8 " 6 6 8 6 2 L 4 O ' . ' /@8 A ' ' # -# "8 &F G F G ? 0 0 I 0 J " " ' 3 ' 8 " ! /- . 1 - 9 + 8 + + ! 8 " + C 7 D . 0 D E = " " # 8 /N 8 /N 8 //' 8 /N 8 /- -' -' " //- " + " + N + ' 8 /- ' " + " ' " 8 3/6 6 6+ # $ %& ' ( No algoritmo ao lado, as variáveis x, y e p são de tipo inteiro. Descreva o código do programa (Java) que represente uma implementação desse algoritmo Q1( ) leia(x,y); se y > x temp ← x; x ← y; então p 1; enquanto y>0 faça p p * x; y y - 1; imprima(p); class ApQ1 { public static void main( String args[ ] ) { Keyboard kbd = Console.getInput( ); int x = kbd.readInt(“x = “ ); int y = kbd.readInt(“y = “ ); if( y > x ) { int temp = x; x = y; y = tem; } int p = 1; while( y > 0 ) { p = p * x; y = y – 1; } System.out.println(“\np = “ + p); } } y ← temp ; 4/6 # & %$ ' ( Descreva um programa (Java) para: dados o preço anterior e o novo preço de um produto, determinar a porcentagem de variação correspondente. Por exemplo: se preço anterior = 10,00 e novo preço = 12,40 a porcentagem de variação é 24,0% 0% < " D " C ?Q I R 6 8 ?Q I R D = ?) 8 8 = Q " FG < ? S R U 6 ' # R' # R' 1 8 T HH' " /- # RV ' 5/6 # ) %& ' ( O método descrito abaixo, de forma incompleta, possui como parâmetro de entrada e saída (passagem por referência) um vetor w com componentes de tipo valor inteiro. No primeiro componente desse vetor ( w[0] ) o valor armazenado é o índice do último elemento do vetor. Veja o exemplo: 0 7 1 51 2 17 3 51 4 32 5 22 6 51 7 18 7 componentes O método deve remover do vetor todos os componentes, a partir de w[2], cujos valores sejam iguais ao valor armazenado em w[1] . Por exemplo: considerando o conteúdo inicial registrado acima, o novo conteúdo do vetor (após a remoção) deve ser: 0 5 1 51 2 17 3 32 4 22 5 18 5 componentes O método utiliza a seguinte estratégia: copia em um vetor auxiliar o primeiro elemento e todos os outros que não são iguais ao primeiro. Utiliza também a posição zero para armazenar a quantidade de componentes do vetor. Indique no quadro abaixo o preenchimento adequado das 4 lacunas: static void removeVetor(int w[]){ LACUNA 1 ; int v[]=new int[20]; v[1]=w[1]; b=1; for(a=2; LACUNA 2 ; a=a+1){ if(w[a]!=w[1]){ b=b+1; v[b]= LACUNA 3 ; } } w[0]=b; for(a=1; a<=b; a=a+1) w[a]= LACUNA 4 ; } LACUNA 1 int a, b LACUNA 2 a <= w[ 0 ] LACUNA 3 w[ a ] LACUNA 4 v[ a ] 6/6 # ! * %& ' 3 ( 4# static void LerVetor(int x[ ] ) { Keyboard kbd = Console.getInput( ); x[0] = kbd.readInt("Digite a quantidade de componentes inferior a 20: "); for( int i = 1; i <= x[0]; i++) x[i] = kbd.readInt("x["+i+"]="); } 8 +4 /- , +4 P * $ " P 3 " " I ! $ " / 3 3 07 + , < " " FG < FG? W % ' ? ' X? F HG ' VV D = F (HG ' ' % 8 @ FGV R R' !,