Questões de Informática · ProGPe UFSCAR

InformáticaLinguagens de programaçãoProGPe UFSCAR 2014

UFSCAR

Questão de Informática

Uma das maneiras de se conseguir a raiz quadrada de um número, é subtrair deste número todos os ímpares consecutivos a partir de 1, até que o resultado destas subtrações seja menor ou igual a zero. A quantidade de vezes que se conseguir realizar as subtrações é a raiz quadrada exata ou aproximada. Conseguimos diferenciar, entre exata ou aproximada, se o resultado das subtrações for igual a zero ou negativo, respectivamente. A seguir, é apresentada uma implementação na linguagem C, mas esta implementação contém dois erros. 01 #include <stdio.h> 02 #include <stdlib.h> 03 int main() { 04 int n, impar, contador; 05 printf("Numero: "); 06 scanf("%d",&n); 07 impar = 1; 08 contador = 0; 09 while( n >= 0 ) { 10 n = n - impar; 11 impar = impar + 1; 12 contador = contador + 1; 13 } 14 if( n == 0 ) 15 printf("Raiz exata = %d", contador); 16 else 17 printf("Raiz aproximada = %d", contador); 18 return 0; 19 } Considere as possíveis alterações: I. Linha 08: contador = 1 II. Linha 09: while( n > 0 ) III. Linha 11: impar = impar + 2 IV. Linha 12: contador = contador + 2 V. Linha 14: if( n < 0 ) Quais das alterações corrigem a implementação apresentada anteriormente?

Sua resposta

Mais questões de Linguagens de programação

Ver as 2.504 questões de Linguagens de programação

Questão de prova oficial, com o gabarito definitivo publicado pela banca. Reproduzida para fins de estudo.