Estrutura de decisão e repetição, Lógica de Programação.(7)

Marcadores:

Daew, galerinha.
Vamos falar sobre um assunto muito importante, estrura de decisão e repetição, então vamos prestar bastante atenção!
Como vimos no capítulo anterior em “Operações Lógicas”, verificamos que na maioria das
vezes necessitamos tomar decisões no andamento do algoritmo. Essas decisões interferem
diretamente no andamento do programa. Trabalharemos com dois tipos de estrutura. A estrutura
de Decisão e a estrutura de Repetição.

Comandos de Decisão
Os comandos de decisão ou desvio fazem parte das técnicas de programação que
conduzem a estruturas de programas que não são totalmente seqüenciais. Com as instruções de
SALTO ou DESVIO pode-se fazer com que o programa proceda de uma ou outra maneira, de
acordo com as decisões lógicas tomadas em função dos dados ou resultados anteriores. As
principais estruturas de decisão são: “Se Então”, “Se então Senão” e “Caso Selecione”
Se então / IF .. THEN
A estrutura de decisão “SE/IF” normalmente vem acompanhada de um comando,
ou seja, se determinada condição for satisfeita pelo comando SE/IF então execute
determinado comando.

Imagine um algoritmo que determinado aluno somente estará aprovado se sua
média for maior ou igual a 5.0, veja no exemplo de algoritmo como ficaria.


SE MEDIA >= 5.0 ENTÃO ALUNO APROVADO


Em diagrama de blocos ficaria assim: Em Visual Basic

IF MEDIA >= 5 Then
Text1 = “APROVADO”
ENDIF

Se então se não / IF .. THEN .. ELSE

A estrutura de decisão “SE/ENTÃO/SENÃO”, funciona exatamente como a
estrutura “SE”, com apenas uma diferença, em “SE” somente podemos executar comandos
caso a condição seja verdadeira, diferente de “SE/SENÃO” pois sempre um comando será
executado independente da condição, ou seja, caso a condição seja “verdadeira” o
comando da condição será executado, caso contrário o comando da condição “falsa” será
executado


Em algoritmo ficaria assim:

SE MÉDIA >= 5.0 ENTÃO
ALUNO APROVADO
SENÃO
ALUNO REPROVADO


Em diagrama:
Em Visual Basic

IF MEDIA >= 5 Then
Text1 = “APROVADO”
ELSE
Text1 = “REPROVADO”
ENDIF

No exemplo acima está sendo executada uma condição que, se for verdadeira,
executa o comando “APROVADO”, caso contrário executa o segundo comando
“REPROVADO”. Podemos também dentro de uma mesma condição testar outras
condições. Como no exemplo abaixo: Clique na imagem para amplia-lá.
Em Visual Basic

IF MEDIA >= 5 Then
IF MEDIA >= 7.0 then
Text1 = “Aluno APROVADO”
ELSE
Text1 = “Aluno Necessita fazer outra Avaliação”
ENDIF
ELSE
Text1 = “Aluno REPROVADO”
ENDIF

Caso selecione / SELECT .. CASE
A estrutura de decisão CASO/SELECIONE é utilizada para testar, na condição,
uma única expressão, que produz um resultado, ou, então, o valor de uma variável, em que
está armazenado um determinado conteúdo. Compara-se, então, o resultado obtido no
teste com os valores fornecidos em cada cláusula “Caso”.

No exemplo do diagrama de blocos abaixo, é recebido uma variável “Op” e testado
seu conteúdo, caso uma das condições seja satisfeita, é atribuído para a variável Titulo a
String “Opção X”, caso contrário é atribuído a string “Opção Errada”.

Clique aqui, para ver o algoritmo.
Em Visual Basic utilizamos a seguinte seqüência de comandos para representar o
diagrama anterior.

TITULO = “”
OP = INPUTBOX(“DIGITE A OPÇÃO”)
SELECT CASE OP
CASE 1
TITULO = “OPÇÃO 1”
CASE 2
TITULO = “OPÇÃO 2”
CASE 3
TITULO = “OPÇÃO 3”
CASE 4
TITULO = “OPÇÃO 4”
CASE 5
TITULO = “OPÇÃO 5”
CASE ELSE
TITULO = “OPÇÃO ERRADA”
END SELECT

LABEL1.CAPTION = TITULO

Exercícios

1) João Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o
rendimento diário de seu trabalho. Toda vez que ele traz um peso de peixes maior que o
estabelecido pelo regulamento de pesca do estado de São Paulo (50 quilos) deve pagar
um multa de R$ 4,00 por quilo excedente. João precisa que você faça um diagrama de
blocos que leia a variável P (peso de peixes) e verifique se há excesso. Se houver, gravar
na variável E (Excesso) e na variável M o valor da multa que João deverá pagar. Caso
contrário mostrar tais variáveis com o conteúdo ZERO.

2) Elabore um diagrama de bloco que leia as variáveis C e N, respectivamente código e
número de horas trabalhadas de um operário. E calcule o salário sabendo-se que ele
ganha R$ 10,00 por hora. Quando o número de horas exceder a 50 calcule o excesso de
pagamento armazenando-o na variável E, caso contrário zerar tal variável. A hora
excedente de trabalho vale R$ 20,00. No final do processamento imprimir o salário total e o
salário excedente.

3) Desenvolva um diagrama que:

• Leia 4 (quatro) números;
• Calcule o quadrado de cada um;
• Se o valor resultante do quadrado do terceiro for >= 1000, imprima-o e finalize;
• Caso contrário, imprima os valores lidos e seus respectivos quadrados.

4) Faça um diagrama de bloco que leia um número inteiro e mostre uma mensagem
indicando se este número é par ou ímpar, e se é positivo ou negativo.

5) A Secretaria de Meio Ambiente que controla o índice de poluição mantém 3 grupos de
indústrias que são altamente poluentes do meio ambiente. O índice de poluição aceitável
varia de 0,05 até 0,25. Se o índice sobe para 0,3 as indústrias do 1º grupo são intimadas a
suspenderem suas atividades, se o índice crescer para 0,4 as industrias do 1º e 2º grupo
são intimadas a suspenderem suas atividades, se o índice atingir 0,5 todos os grupos
devem ser notificados a paralisarem suas atividades. Faça um diagrama de bloco que leia
o índice de poluição medido e emita a notificação adequada aos diferentes grupos de
empresas.

6) Elabore um algoritmo que dada a idade de um nadador classifique-o em uma das
seguintes categorias:

Infantil A = 5 a 7 anos
Infantil B = 8 a 11 anos
Juvenil A = 12 a 13 anos
Juvenil B = 14 a 17 anos
Adultos = Maiores de 18 anos

7) Elabore um algoritmo que gera e escreve os números ímpares dos números lidos entre
100 e 200.

8) Construa um algoritmo que leia 500 valores inteiros e positivos e:

• Encontre o maior valor
• Encontre o menor valor
• Calcule a média dos números lidos

Por hoje é só,

Atenciosamente, equipe ocoder™.

Comments (0)

Postar um comentário