• Nenhum resultado encontrado

Desvio condicional composto

No documento Livro Logica Programacao b (páginas 59-65)

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.

No documento Livro Logica Programacao b (páginas 59-65)