Estrutura de seleção simples
5.2 Desvio condicional composto
Como você pôde observar, no desvio condicional simples é avaliada uma condição e, caso ela seja verdadeira, é executada a lista de comando inter- nos dessa estrutura. Caso o resultado da avaliação seja falso, é ignorada a seqüência de comandos e o algoritmo prossegue normalmente a execução das instruções existentes após esse desvio condicional (após o fimse). Ou seja, a
execução dos comandos internos à estrutura condicional simples podem ou não ser executados.
No desvio condicional composto (ou estrutura condicional composta, ou se composto), temos a possibilidade de dar duas opções de execução: uma
se a condição for verdadeira e outra se a condição for falsa. Logo sempre será obrigatoriamente executado um dos conjuntos de instruções da estrutura. Analise a sintaxe a seguir e você poderá entender melhor esse conceito.
Quadro 2 Sintaxe e fluxograma do desvio condicional composto.
SINTAXE EM
PSEUDOCÓDIGO FLUXOGRAMA
Dessa forma, no desvio condicional composto, se a condição for verda- deira, então será executado somente o primeiro bloco de comandos da estrutura. Senão, será executado apenas o segundo bloco de comandos. Após a execução de um dos blocos de comandos, o algoritmo prosseguirá sua execução normal a partir da primeira linha de instruções logo após o fimse. Simples, não é?
Vamos incrementar um pouco mais o nosso algoritmo para cálculo da média, convertendo o desvio condicional simples em composto, de forma que o algoritmo informe a aprovação ou o não atingimento de média por parte do aluno. Vejamos como ficaria o pseudocódigo na figura seguinte.
Figura 3 Exemplo de desvio condicional composto.
Se o conteúdo da variável media for maior ou igual a 6,será executada esta linha de comando.
Resultado da execução do algoritmo. Se o conteúdo da
variável media for menor do que 6, será executada esta linha de comando.
Agora já é possível desenvolver algoritmos para solucionar problemas um pouco mais complexos, que exijam diferentes ações, conforme avaliações realizadas sobre os dados no decorrer do programa.
Vamos exercitar mais um pouco, acompanhando o raciocínio para resol- ver os problemas a seguir.
Problema um: implementar um algoritmo que solicite a digitação de
um valor inteiro, e informe se esse valor é par ou ímpar.
Figura 4 Exemplo de desvio condicional composto.
Declaração de uma variável para armazenamento do valor informado
Mensagem de orientação ao usuário
Armazenamento do número digitado na
variável valor O desvio condicional testa se o conteúdo da variável valor
é divisível por 2. Se for, informa que ele é par, senão,
informa que ele é ímpar Resultado de execução
do algoritmo, inserindo como exemplo o
número 128
Problema dois: implementar um algoritmo que solicite a digitação
de dois números e, após isso, se são iguais ou se um deles é maior do que o outro.
Problema três: implementar um algoritmo que permita jogar Par ou
Ímpar contra o computador, seguindo as seguintes regras:
2 o computador solicita a entrada de um número inteiro pelo usuário
e, após isso, informa um número aleatório de 0 a 5;
2 o computador vencerá sempre que a soma dos números informados
por ele e pelo usuário resultarem em um número par;
2 o jogador humano vencerá sempre que a soma dos números infor-
mados por ele e pelo computador resultarem em um número ímpar;
2 após o lançamento dos dois números, o algoritmo deve realizar os
cálculos e informar o vencedor.
Claro como a água? Não? Então vamos explicar cada linha do bloco principal para que não fique nenhuma dúvida.
Iniciamos com a declaração de três variáveis. Uma para armazenar o valor informado pelo jogador humano, outra para o número do computador, e uma terceira para armazenar a soma dos dois primeiros.
inteiro humano , computador , total
As duas linhas seguintes apresentam uma mensagem na tela solicitando que o jogador humano informe um número inteiro, armazenando-o na vari- ável humano.
escrever “Digite um número inteiro: ” ler humano
Após isso, é a vez de o computador escolher seu lançamento, que é rea- lizado de forma aleatória. Para isso, vamos utilizar duas funções predefinidas no portugol:
2 aleatorio()– função utilizada para gerar um número aleatório do tipo Real, compreendido entre 0.0 e 1.0 (inclusive). Como é uma função sem argumento, nada deve ser informado entre os parênteses que a compõe. Como a função gerará números Reais compreendidos no intervalo de 0.0 a 1.0 (ex.: 0.0, 0.01, 0.2, 0.5, 0.9, 1.0) e necessitamos de valores de 0 a 5, multiplicaremos o resultado da chamada da função
aleatorio() por 5, uma vez que o menor número possível é 0.0, que multiplicado por 5 continuaria sendo 0.0, e o maior número possível é 1.0, o qual multiplicado por 5 resulta em 5.0. Dessa forma, o conjunto exemplificado anteriormente teria sua representação multiplicada por 5 (ex.: 0.0, 0.05, 1.0, 2.5, 4.5, 5.0);
2 int() – função utilizada para retornar à parte inteira de um número
Real. É uma função que necessita de um argumento, ou seja, o valor a ser convertido deve ser passado entre os parênteses dessa função. Fazendo isso com o número gerado aleatoriamente pelo o compu- tador, teríamos apenas a parte inteira do exemplo anterior (ex.: 0, 0, 1, 2, 4, 5), ou seja, números inteiros entre 0 e 5, como solicitado no
Utilizando essas duas funções existentes no Portugol IDE (também exis- tentes na grande maioria das linguagens de programação), podemos atribuir um valor inteiro de 0 a 5, escolhido ao acaso (aleatoriamente) pelo computador.
Figura 7 Instruções para gerar um valor aleatório entre 0 e 5.
computador <– int ( aleatorio ( ) * 5 )
Gera um valor aleatório de 0.0 a 1.0
Converte o resultado da função aleatória para valores de 0.0 a 5.0 Retorna apenas a parte inteira, obtendo valores inteiros de 0 a 5
3 2 1 3 1 2
Nas linhas seguintes, o algoritmo exibe o número aleatório gerado e armazenado na variável computador ; atribui à variável total o resultado da
soma do conteúdo da variável humano com a variável computador e exibe
em tela o conteúdo atual da variável total, respectivamente.
escrever “Eu escolhi ” , computador
total <- humano + computador
escrever “\nO total é ” , total
Bom... Agora basta verificar se o conteúdo da variável total é par ou
ímpar para definir quem ganhou o jogo e qual a mensagem que deve ser exibida na tela. Isso é feito de forma bem simples, dentro de um desvio con- dicional composto no qual a condição verificará se o resto da divisão (%) do
valor contido em total por 2 é 0. Se o resto for 0, significa que o valor é par.
Senão, só poderá ser ímpar. Temos então:
se total % 2 = 0 entao
escrever “\nPAR – Ganhei! É a superioridade da
máquina!!”
senao
escrever “\nÍMPAR – Parabéns! Você ganhou.” fmse
Pois é. A explicação é muito mais extensa do que a real dificuldade do problema. Mas, certamente, você deve ter compreendido bem o funciona- mento das estruturas de seleção simples e composta. Não deixe de realizar as atividades propostas para uma melhor fixação desse conteúdo.