Problema do else pendurado. Determine a saída
para cada um dos seguintes códigos quando x for 9 e y
for 11, e quando x for 11 e y for 9. O compilador ignora o
recuo em um programa em C. Além disso, o compilador
sempre associa um else com o if anterior, a menos
que seja informado de que deve proceder de outra for-
ma pela colocação das chaves { }. Visto que, à primeira
vista, você pode não saber ao certo a que if um else
corresponde, isso é conhecido como o problema do ‘else
pendurado’. Eliminamos o recuo do código a seguir para
tornar o problema mais desafiador. [Dica: aplique as
convenções de recuo que você aprendeu.]
b) if ( x
if ( y > 10 )
printf( “*****\n” );
}
else {
printf( “#####\n” );
printf( “$$$$$\n” );
}
Passo 1
Olá, tudo bem? Ficou com dúvida nesse exercício? Vem que eu te ajudo!
O exercício pergunta o que o programa exibe em duas situações diferentes. Na primeira , e na segunda . Tem duas formas de descobrir o que isso, a primeira é a mais óbvia, usando o copilador. A segunda é entendendo a função de cada linha no programa.
Passo 2
Vamos começar pela primeira forma, você pode ter copiado e colado o programa no copilador e não deu em nada... Perceba que falta alguns recursos no programa.
“ Aff, mas eu colequei aquelas coisas que tem em todo programa, #include...”
Acredito que sim, mas não estou me referindo a isso, note que estão sem um valor definido para p programa saber o que deve fazer. Dessa forma é necessário colocar a instrução de printf solicitando que o usuário defina um valor, e um scanf para que ele tenha espaço para colocar. E agora sim, você já pode fazer os testes.
Passo 3
Resolvendo pela segunda forma precisamos entender o que essa estrutura do programa significa. O programa é formado por uma estrutura que eu chamo de condição, perceba que o programa usa dois comandos chave, “if” e “else”. O que eles significam?
O “if” seria o “se”, o que seria isso no programa..
Se o número que o usuário me der for menor que 10, eu preciso imprimir tal coisa... e aí vem o “else”, ele seria o “se não” eu faço isso. Certo?
Passo 4
Outro ponto importante nesse programa é o uso das chaves, perceba que ela delimita o “If” necessário para que o comando aconteça como planejado. Nesse caso ela fala que quando meu ele já pode exibir o printf, independente do valor de .
Agora que você aprendeu esses conceitos, é só colocar a mão na massa!
Resposta
Dessa forma se , o programa exibe:
Insira o valor de x:
9
Insira o valor de y:
11
*****
Se , o programa exibe:
Insira o valor de x:
11
Insira o valor de y:
9
#####
$$$$$
Espero ter ajudado!