Cap3_Lógica

Page 1

III


Sumário

Aula 3 – Estruturas Condicionais ou de Seleção 3.1 Desvio e Seleção do Fluxo de Instruções ...............................................................................42 3.2 Se...entao...senao ................................................................................................................... 44 3.2.1 Resolvendo o “problema base” no VisuALG ..............................................................46 3.2.2 Condição Composta e os operadores booleanos.......................................................... 46 3.2.2 Aninhamento da estrutura se.........................................................................................48 3.3 Caso...escolha.......................................................................................................................... 48 3.3.1 Resolvendo o “problema base” no VisuALG...............................................................49 3.4 Atividades propostas para a aula 3..........................................................................................51

41


Aula 3 – Estruturas Condicionais ou de Seleção Objetivos Compreender o uso das estruturas condicionais ou de seleção no processo de criação de algoritmos.

Resolver algoritmos que incluem o uso de estruturas condicionais.

3.1 Desvio e Seleção do Fluxo de Instruções A nossa vida não é uma sequencia perfeita, sem desvios e sem obstáculos, você concorda? Ao acordarmos, podemos olhar para o céu e pensar: “parece que vai chover. Caso chova, seria bom ter um guarda-chuva na bolsa”. Outro exemplo: ao sair de casa e ir para o trabalho, você pode pensar “se o trânsito estiver bom, então vou fazer o caminho que sempre faço para chegar ao trabalho. Senão, vou optar por outro caminho, para evitar o congestionamento”. E como estas, existem inúmeras outras situações nas quais

trabalhamos

com condições e devemos tomar decisões. Estas decisões nos fazem seguir caminhos ou fluxos diferentes, mas que contribuem para alcançarmos o objetivo final.

Desta forma, se desenvolvermos algoritmos em

uma linguagem

em

que o computador

entenda, para automatizar alguma tarefa do dia a dia ou resolver algum problema para nós humanos, não podemos esperar que estes algoritmos também sejam perfeitamente lineares, sem desvios, sem obstáculos e sem tomadas de decisão e seleção !

As Estruturas Condicionais ou de Seleção são fundamentais para que seja possível construirmos programas que consigam tratar situações mais complexas do nosso dia a dia. Voltemos ao nosso problema base. Na estrutura sequencial, foi possível ler o nome e a nota de um aluno. Isso é muito trivial, considerando que existem critérios de aprovação que são estabelecidos pela escola onde o aluno está. Desta forma, se assumirmos que um aluno será aprovado em uma determinada disciplina, caso a sua nota seja maior ou igual a 6,0 (seis), temos uma condição ou critério de aprovação do mesmo. Caso contrário, o aluno estará reprovado. 42


Assim, devemos verificar o valor atual da nota do aluno e realizar um teste, ou seja:  Devemos ter o valor da sua nota armazenado em uma variável, por exemplo, na variável nota.  Com este valor armazenado, podemos testar ou verificar se ele está aprovado ou não, mediante a implementação de uma condição.  Se o valor armazenado na variável nota for maior ou igual a 6,0 (seis), então o aluno está aprovado. Caso contrário, o aluno está reprovado. Observe que a resposta do teste ou da condição deve sempre ser um valor verdadeiro (True) ou Falso (False). Veja o fluxograma abaixo.

Figura 3.1 - Fluxo do algoritmo quando existe uma estrutura condicional Fonte: Elaborado pela autora

Existem, basicamente, 2 (dois) tipos de instruções condicionais ou de seleção. São elas:  Se...entao...senao  Caso..escolha 43


3.2 Se...entao...senao Sintaxe para o se...entao...senao:

ou

Nas linguagens de programação existentes, conforme as suas sintaxes, as estruturas condicionais, assim como as outras estruturas, podem ser escritas de uma outra forma. Você tem que verificar o manual de cada linguagem de programação e descobrir como fazer para usar ou escrever estas instruções.

A cláusula se executa um bloco de instruções caso uma determinada condição seja verdadeira. A cláusula senao executa um bloco de instruções caso a condição seja falsa.

Não é necessário que todo se seja acompanhado de um senao, mas todo senao só pode existir após um se.

Na criação de algoritmos, a acentuação é ignorada. Ou seja, o senão não deve receber o acento. Desta forma, no conteúdo deste caderno, utilizaremos as acentuações corretas para fazer as devidas explicações, mas no momento de codificar os algoritmos, você deve ficar atento para não utilizar a acentuação destas palavras reservadas.

44


Palavra Reservada: palavras que não podem ser utilizadas como nomes de variáveis ou constantes por serem reservadas para uso da gramática da linguagem de programação utilizada. Exemplos de palavras reservadas na linguagem do VisuALG: algoritmo, var, literal, real, inteiro, inicio, escreva, escreval, leia, se, entao, senao, fimse, fimalgoritmo, dentre outras. A sintaxe abaixo trata apenas o valor verdadeiro da condição. Ou seja, nada acontece se

o

resultado da condição é falso.

Já neste sintaxe de instrução condicional o tratamento é mais completo, pois existem instruções que devem ser executadas caso a condição seja verdadeira (bloco abaixo do então) e existem outras instruções que serão executadas caso a condição seja falsa (bloco após o senão).

Observe que podem existir uma ou mais instruções caso a condição seja verdadeira ou falsa. Ou seja, um bloco de instruções é composto por uma ou mais instruções. Além disso, estas instruções podem ser estruturas sequenciais, estruturas condicionais ou estruturas de repetição. As estruturas de repetição serão vistas na próxima aula.

45


3.2.1 Resolvendo o “problema base” no VisuALG Voltemos ao nosso problema base: “aprovação de um aluno”. Se tomarmos que um aluno será aprovado em uma determinada disciplina caso a sua nota seja maior ou igual a 6,0 (seis), temos uma condição de aprovação. Caso contrário, temos uma situação de reprovação.

Os valores de entrada são: o nome e a nota do aluno. A nota do aluno assume o tipo “real”, pois valores do tipo 7.5 ou 3.4 podem ser aceitos.

Abra o VisuALG e digite o código abaixo. Salve-o como algoritmo_problema_base_condicional, execute e analise o resultado.

3.2.2 Condição Composta e os operadores booleanos Agora pense na seguinte situação: um aluno será aprovado caso a nota final seja maior ou igual a 6,0 (seis) e a sua frequência seja maior que 75 da carga horária da disciplina (por cento).

Neste caso, os dados de entrada são: o nome do aluno, a sua nota e a sua frequência. A condição é composta, pois dependerá do valor da nota e do valor da frequência. Neste momento, uma expressão booleana ou lógica é muito útil. 46


Uma expressão booleana é qualquer expressão que retorne true ou false e pode ser criada com os operadores de comparação e/ou lógicos. Saiba mais sobre operadores lógicos lendo este material http://pt.wikipedia.org/wiki/Operador_l%C3%B3gico Você consegue perceber o uso do operador lógico e

na condição proposta para o nosso

problema base? Observe as seguintes possibilidades para a condição apresentada. O aluno será aprovado apenas se

o

resultado

da condição

nota>=6

for

verdadeira e o

resultado

da

condição

frequência>=75 também for verdadeira, pois e foi o operador lógico utilizado.

Quadro 3.1 - Possibilidades para a condição de aprovação do exemplo proposto

Fazendo uma modificação no algoritmo criado anteriormente, temos o seguinte código.

47


3.2.2 Aninhamento da estrutura se

A estrutura de decisão se pode ser apresentada de forma aninhada, ou seja, com um se dentro de outro. Considere o seguinte exemplo: leia um número inteiro e verifique se ele é um número positivo, negativo ou é o zero. Uma possível solução algorítmica para este problema encontra-se a seguir:

No VisuALG, se existe um aninhamento da estrutura se, aquele se que vier após o senao deve ser colocado na linha seguinte. Por exemplo, observe o código colocado na linha 10. Teoricamente, não existe um limite para uma estrutura aninhada, mas quanto maior o aninhamento, mais difícil fica para entendermos o código desenvolvido.

Para resolver este problema, podemos utilizar a estrutura condicional caso...escolha. Esta estrutura será descrita a seguir.

3.3 Caso...escolha A estrutura caso...escolha trabalha com múltiplas opções de valores para a expressão que está sendo avaliada. 48


Sintaxe para o caso...escolha:

Esta estrutura é muito usada em:  algoritmos com chamadas de funções ou menus, o que torna o código mais fácil de ser entendido, se compararmos com o uso de estruturas se aninhadas.  a opção senao é opcional.  o rótulo é definido através de literais ou constantes numéricas inteiras, embora este item varie entre as linguagens de programação. 3.3.1 Resolvendo o “problema base” no VisuALG Suponha que o professor de educação física do nosso problema base pretenda classificar seus alunos atletas em categorias e ele quer automatizar esta tarefa construindo um algoritmo. Para isso, ele criou uma tabela que contém a faixa etária do aluno atleta e a sua categoria. A tabela está demonstrada abaixo:

A função do algoritmo é solicitar para o usuário, que neste caso é o professor de educação física, que entre com o nome e a idade (inteira) de um aluno. O algoritmo deve verificar qual é a categoria relacionada com a idade do aluno e exibi-la na tela. 49


Vamos implementar uma solução para este problema no VisuALG?

Observe que no código acima nós estamos armazenando o resultado dentro da variável categoria. Uma outra possibilidade seria escrever diretamente o nome da categoria associada à idade do aluno atleta.

50


3.4 Atividades propostas para a aula 3

1. Escreva um programa que leia um número inteiro. Se o número lido for positivo, escreva uma mensagem indicando se ele é par ou ímpar. Se o número for negativo, escreva a seguinte mensagem “Este número não é positivo”.

2. Faça um algoritmo que receba o valor do salário de uma pessoa e o valor de um financiamento pretendido. Caso o financiamento seja menor ou igual a 5 vezes o salário da pessoa, o algoritmo deverá escrever "Financiamento Concedido"; senão, ele deverá escrever "Financiamento Negado". Independente de conceder ou não o financiamento, o algoritmo escreverá depois a frase "Obrigado por nos consultar."

3. Faça um programa que gere o balanço de um edifício segundo as especificações: Dados

de

entrada:

total

de

apartamentos,

total

de

moradores

condomínio por apartamento. Cálculos: média de moradores por apartamento e total arrecadado. Resultado do programa: deve ser impresso na tela com o seguinte formato: *********************************************************** *

EDIFíCIO BOA VISTA

*

*********************************************************** * TOTAL DE APARTAMENTOS : ....... * TOTAL DE MORADORES : .......

* *

* VALOR DO CONDOMINIO : .......

*

*********************************************************** * BALANCO FINAL

*

*********************************************************** * MEDIA DE MORADORES/APTO : ....... * TOTAL ARRECADADO

*

: .......

*

***********************************************************

51

e

valor

do


52


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.