Você está na página 1de 20

Programação

Inserir Título Aqui


de
Inserir Título Aqui
Computadores
Estruturas de Decisão

Responsável pelo Conteúdo:


Prof. Me. Hugo Fernandes

Revisão Textual:
Prof.ª Esp. Kelciane da Rocha Campos
Estruturas de Decisão

Nesta unidade, trabalharemos os seguintes tópicos:


• Estruturas de Decisão;
• Blocos de Decisão.

Fonte: Getty Images


Objetivos
• Utilizar estruturas de decisão para testar uma ou mais condições e de acordo com o re-
sultado, Verdadeiro ou Falso, seguir um bloco de instruções;
• Estudar os conceitos e a sintaxe de três tipos de estruturas de decisão, bem como exem-
plos de suas aplicações.

Caro Aluno(a)!

Normalmente, com a correria do dia a dia, não nos organizamos e deixamos para o úl-
timo momento o acesso ao estudo, o que implicará o não aprofundamento no material
trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas.

Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você
poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns
dias e determinar como o seu “momento do estudo”.

No material de cada Unidade, há videoaulas e leituras indicadas, assim como sugestões


de materiais complementares, elementos didáticos que ampliarão sua interpretação e
auxiliarão o pleno entendimento dos temas abordados.

Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de
discussão, pois estes ajudarão a verificar o quanto você absorveu do conteúdo, além de
propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de
troca de ideias e aprendizagem.

Bons Estudos!
UNIDADE
Estruturas de Decisão

Contextualização
Em muitos momentos, nosso aplicativo deve tomar decisões de acordo com as condi-
ções pré-estabelecidas. As estruturas de decisão exigem que o programador especifique
uma ou mais condições a serem avaliadas ou testadas pelo programa, juntamente com
uma declaração ou instruções a serem executadas. No Scratch, como em qualquer outra
linguagem de programação, as condições são testadas e retornam sempre um resultado
do tipo Boolean (verdadeiro ou falso).

Nesse contexto, iremos estudar os conceitos e a sintaxe de três tipos de estruturas de


decisão, bem como exemplos de suas aplicações.

6
Estruturas de Decisão
Em muitos momentos, nosso aplicativo deve tomar decisões de acordo com as con-
dições pré-estabelecidas. As estruturas de decisão exigem que o programador especifi-
que uma ou mais condições a serem avaliadas ou testadas pelo programa, juntamente
com uma declaração ou instruções a serem executadas.

Figura 1

O modelo acima representa um fluxograma em que temos uma estrutura de decisão,


e de acordo com a resposta do teste da condição, falso ou verdadeiro, o programa
executa um bloco de instruções e segue para a finalização do algoritmo.

Fluxograma e pseudocódigo: https://goo.gl/i1WgUz

No Scratch, como em qualquer outra linguagem de programação, as condições são


testadas e retornam sempre um resultado do tipo Boolean (verdadeiro ou falso). A sin-
taxe do comando sempre é: testar a condição e executar uma instrução.

Figura 2

7
7
UNIDADE
Estruturas de Decisão

Aqui devemos nos atentar ao detalhe do “encaixe” do bloco em formato de hexá-


gono. Isso significa que podemos encaixar, como condição, somente blocos com essa
forma. Esses blocos são os operadores relacionais e operadores lógicos e alguns
blocos da categoria Sensores.

Operadores relacionais
Operadores relacionais são utilizados para comparar valores entre dois termos. O
resultado dessa comparação sempre irá retornar um valor booleano, ou seja, true ou
false. No Scratch, temos os seguintes operadores:

Tabela 1
OPERADORES RELACIONAIS
Operador Nome Descrição Exemplo

Verifica se os valores de dois


operandos são iguais ou não; se a
= Igualdade
resposta for sim, a condição torna-
se verdadeira (true).

Verifica se o valor do operando


esquerdo é maior que o valor
> Maior que
do operando à direita; se sim, a
condição torna-se verdadeira (true).

Verifica se o valor do operando


esquerdo é menor que o valor
< Menor que
do operando à direita; se sim, a
condição torna-se verdadeira (true).

Operadores lógicos
Um operador lógico é um operador que retorna um resultado booleano (true ou false),
baseado no resultado booleano de uma ou duas outras expressões. O conceito de opera-
dores lógicos é simples. Eles permitem que um programa tome uma decisão com base em
múltiplas condições. Cada operando é considerado uma condição que pode ser avaliada de
acordo com o valor (verdadeiro ou falso). Os operadores lógicos no Scratch são e, ou e não.

Tabela 2
OPERADORES LÓGICOS
Operador Descrição Exemplo

Retorna verdadeiro se ambas


as expressões resultarem como
e verdadeiras. Todas as expressões são
avaliadas antes que o operador e
seja aplicado.

8
OPERADORES LÓGICOS
Operador Descrição Exemplo

Retorna verdadeiro se pelo menos


uma das expressões resultar
como verdadeira. Caso a primeira
ou
expressão retorne como verdadeira,
o restante da expressão não é
avaliado.

Retorna verdadeiro se a expressão


à direita for avaliada como falsa.
não
Retorna falso se a expressão à
direita for verdadeira.

Blocos de Decisão
A linguagem Scratch fornece os seguintes tipos de declarações de tomada de decisão:

Tabela 3
Bloco de comando Nome do conceito em
(categoria controle) programação
se... então (if... then)

se... então... senão (if...


then... else)

se... então... senão... se (if...


then... else... if)

Estrutura se... então


A estrutura se... então é utilizada para testar uma condição e caso retorne verdadeiro,
executa um bloco de instruções. Toda declaração se... então segue uma sintaxe padrão:
teste uma condição e, se for verdade, execute uma ação.

9
9
UNIDADE
Estruturas de Decisão

Se (condição) então

executa bloco de instruções

Desvio Condicional Simples: https://goo.gl/8mT5hg

Vamos a um exemplo. Um programa deve obter as notas A e B de um aluno, somar


as notas e, em seguida, verificar se a nota do aluno é maior que seis (6); se sim, o progra-
ma exibe na tela a mensagem “Aprovado”. A seguir, temos um fluxograma descrevendo
esse algoritmo.

Figura 3

Qual é a condição para que o aluno possa ser aprovado?

A condição é que a soma das notas A e B deve ser maior que seis (6); caso o teste
dessa condição retorne verdadeiro, o programa executa as instruções previstas para
esta situação.

10
Nesse cenário, vejamos o seguinte exemplo no Scratch:

Figura 4

Explicando o código
• Linha 1 – bloco “quando for clicado”. Esse bloco indica que o programa será exe-
cutado quando o usuário clicar no ícone da bandeira verde.
• Linha 2 – bloco “pergunte e espere”. Esse bloco é responsável pela funcionalidade
de entrada de dados. Nesse caso, essa instrução solicita ao usuário que digite a
primeira nota.
• Linha 3 – bloco “mude para”. Esse bloco é responsável por alterar o valor contido
na variável “nota_A”. O resultado da resposta solicitada na linha 3 será inserido na
variável “nota_A”.
• Linha 4 – bloco “pergunte e espere”. Esse bloco é responsável pela funcionalidade
de entrada de dados. Nesse caso, essa instrução solicita ao usuário que digite a
segunda nota.
• Linha 5 – bloco “mude para”. Esse bloco é responsável por alterar o valor contido
na variável “nota_B”. O resultado da resposta solicitada na linha 3 será inserido na
variável “nota_B”.
• Linha 6 – nessa linha, utiliza-se o bloco “mude para” para alterar o valor contido na
variável “soma”. Para isso, utilizamos o bloco “+” da categoria Operadores.
• Linha 7 – bloco “se... então”. Esse bloco testa a condição proposta pelo operador
relacional “>” (maior). Ou seja, caso o teste resulte em verdadeiro (a soma for maior
que 6), será executada a linha 8.

11
11
UNIDADE
Estruturas de Decisão

• Linha 8 – bloco “diga por”. Esse bloco é responsável por exibir mensagens em
texto na área do ator. Nesse caso específico, essa linha será executada somente se
a condição testada pelo bloco “se... então” for verdadeira.

Estrutura se... então... senão


Na estrutura se... então... senão, além de ser testada uma condição e executado um
bloco de instruções no caso de retorno do teste ser verdadeiro, também são descritas as
instruções para quando o retorno for falso. Utilizamos essa estrutura quando o programa
deve tomar duas decisões.

Toda declaração se... então... senão segue uma sintaxe padrão: teste uma condição
e, se for verdade, execute o bloco de instrução 1; caso contrário, o bloco de instrução 2.

Se (condição) então

executa bloco de instruções 1

senão

executa bloco de instruções 2

Estrutura de decisão SE-ENTÃO-


-SENÃO: https://goo.gl/mWJnqh

Continuemos com o exemplo anterior,


em que nosso programa recebe duas notas e
em seguida efetua a soma entre as duas. Ire-
mos complementar com mais uma decisão.
Caso a condição retorne falso, o programa
irá imprimir na tela o texto “Reprovado”.
Na Figura 5 temos um fluxograma descre-
vendo esse algoritmo.

Do mesmo modo que o algoritmo ante-


rior, a condição para o aluno ser aprovado
é possuir uma nota maior que seis (6); con-
tudo, nesse novo algoritmo, temos previstas
instruções em caso de o retorno ser falso,
ou seja, caso o aluno possua nota menor ou
igual a seis (6).

Vejamos a implementação desse algorit-


mo no Scratch:
Figura 5

12
Figura 6

Explicando o código
• Linha 1 – bloco “quando for clicado”. Esse bloco indica que o programa será exe-
cutado quando o usuário clicar no ícone da bandeira verde.
• Linha 2 – bloco “pergunte e espere”. Esse bloco é responsável pela funcionalidade
de entrada de dados. Nesse caso, essa instrução solicita ao usuário que digite a
primeira nota.
• Linha 3 – bloco “mude para”. Esse bloco é responsável por alterar o valor contido
na variável “nota_A”. O resultado da resposta solicitada na linha 3 será inserido na
variável “nota_A”.
• Linha 4 – bloco “pergunte e espere”. Esse bloco é responsável pela funcionalidade
de entrada de dados. Nesse caso, essa instrução solicita ao usuário que digite a
segunda nota.
• Linha 5 – bloco “mude para”. Esse bloco é responsável por alterar o valor contido
na variável “nota_B”. O resultado da resposta solicitada na linha 3 será inserido na
variável “nota_B”.
• Linha 6 – nessa linha, utiliza-se o bloco “mude para” para alterar o valor contido na
variável “soma”. Para isso, utilizamos o bloco “+” da categoria Operadores.
• Linha 7 – bloco “se... então... senão”. Esse bloco testa a condição proposta pelo
operador relacional “>” (maior). Ou seja, caso o teste resulte em verdadeiro (a soma
for maior que 6), será executada a linha 8. Por outro lado, se o teste resultar falso,
a linha 9 será executada.
• Linha 8 – bloco “diga por”. Esse bloco é responsável por exibir mensagens em
texto na área do ator. Essa linha será executada somente se a condição testada pelo
bloco “se... então... senão” for verdadeira.
• Linha 9 – bloco “diga por”. Essa linha será executada somente se a condição testa-
da pelo bloco “se... então... senão” for falsa.

13
13
UNIDADE
Estruturas de Decisão

Estrutura se... então... senão... se


Utilizamos a estrutura se... então... senão... se quando é necessário avaliar mais do
que dois resultados e condições possíveis.

A sintaxe para essa estrutura é:

Se (condição) então

executa bloco de instruções 1

senão

Se (condição2) então

executa bloco de instruções 2

EDesvio Condicional Aninhado (SE...ENTÃO...SENÃO...SE): https://goo.gl/3hQmAb

Vamos dar continuidade ao exemplo do programa que recebe duas notas e em segui-
da efetua a soma das notas e exibe na tela “Aprovado” ou “Reprovado”. Iremos com-
plementar com mais uma condição. Caso a nota seja inferior a seis (6), porém superior
a quatro (4), o programa irá imprimir na tela o texto “Avaliação Final”.

A seguir temos um fluxograma descrevendo esse algoritmo.

Figura 6

14
A condição para o aluno ser aprovado é possuir uma nota maior que seis (6); porém
abaixo dessa nota, temos uma nova condição. O aluno pode efetuar a avaliação final
se sua nota for maior que quatro (4). Se sua nota for menor ou igual a quatro (4), será
reprovado.

No Scratch, essa estrutura se dá por meio do encaixe entre blocos “se... então” e/ou
“se... então...senão”. Vejamos a implementação desse algoritmo no Scratch:

Figura 7

Explicando o código
• Linha 1 – bloco “quando for clicado”. Esse bloco indica que o programa será exe-
cutado quando o usuário clicar no ícone da bandeira verde.
• Linha 2 – bloco “pergunte e espere”. Esse bloco é responsável pela funcionalidade
de entrada de dados. Nesse caso, essa instrução solicita ao usuário que digite a
primeira nota.
• Linha 3 – bloco “mude para”. Esse bloco é responsável por alterar o valor contido
na variável “nota_A”. O resultado da resposta solicitada na linha 3 será inserido na
variável “nota_A”.
• Linha 4 – bloco “pergunte e espere”. Esse bloco é responsável pela funcionalidade
de entrada de dados. Nesse caso, essa instrução solicita ao usuário que digite a
segunda nota.
• Linha 5 – bloco “mude para”. Esse bloco é responsável por alterar o valor contido
na variável “nota_B”. O resultado da resposta solicitada na linha 3 será inserido na
variável “nota_B”.
• Linha 6 – nessa linha, utiliza-se o bloco “mude para” para alterar o valor contido na
variável “soma”. Para isso, utilizamos o bloco “+” da categoria Operadores.

15
15
UNIDADE
Estruturas de Decisão

• Linha 7 – bloco “se... então... senão”. Esse bloco testa a condição proposta pelo
operador relacional “>” (maior). Ou seja, caso o teste resulte em verdadeiro (a soma
for maior que 6), será executada a linha 8. Por outro lado, se o teste resultar falso,
o bloco se... então... senão na linha 9 será executado.
• Linha 8 – bloco “diga por”. Essa linha será executada somente se a condição testa-
da pelo bloco “se... então... senão” for verdadeira.
• Linha 9 – bloco “se... então... senão”. Essa linha será executada somente se a con-
dição da linha 7 retornar falso. Uma vez executado, esse bloco testa a condição:
Soma “>” (maior) que “4”. Caso retorne verdadeiro, a linha 10 será executada;
caso retorne falso, será executada a linha 11.
• Linha 10 – bloco “diga por”. Essa linha será executada somente se a condição tes-
tada pelo bloco “se... então... senão” da linha 9 for verdadeira.
• Linha 11 – bloco “diga por”. Essa linha será executada somente se a condição tes-
tada pelo bloco “se... então... senão” da linha 9 for falso.

Considerações finais
Concluímos nossa unidade de estudo sobre estruturas de decisão.

Ao longo desta unidade, exploramos as principais estruturas de decisão juntamente


com o uso de operadores lógicos e relacionais.

Para avançar nos estudos de programação de computadores, deve-se ter em mente


que o domínio na criação de algoritmos é fundamental.

Dito isso, deixo como sugestão a leitura do livro Algoritmos: lógica para desenvol-
vimento de programação de computadores, dos autores José Augusto N. G. Manza-
no e Jayr F. de Oliveira.

Até breve!

16
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:

Livros
Algoritmos: Lógica para desenvolvimento de programação de computadores
MANZANO, José Augusto N. G.; OLIVEIRA, Jayr F. de. Algoritmos: lógica para desenvol-
vimento de programação de computadores. 28ª edição. Cap. 4 - Programação com decisão.

Vídeos
Lógica de programação com Scratch - Parte 3 - Condicionais e mais operadores
Tutorial sobre Scratch focando em condicionais. Vamos entender o funcionamento dos
dois tipos de condicionais se... então e se... então... senão.
https://youtu.be/YiPCIvItJnc

Leitura
Estruturas de condição encadeadas
https://goo.gl/oRsLq6
Algoritmo - estruturas condicionais
https://goo.gl/ycyXNt

17
17
UNIDADE
Estruturas de Decisão

Referências
MARJI, Majed. Aprenda a programar com Scratch: uma introdução visual à pro-
gramação com jogos, arte, ciência e matemática. São Paulo: Novatec Editora, 2014.

SCRATCH. Scratch. 2019. Disponível em: <https://Scratch.mit.edu/about/>,


Acesso em: 15 de jan. de 2019.

18

Você também pode gostar