Você está na página 1de 38

1

CONSTRUÇÃO DE
ALGORÍTMOS
Decisão Simples, Composta e Encadeada

Profa. Germano Manente Neto


Construção de Algorítmos
2

 Para criar algoritmos necessita-se de:


 Entrada(s), processamento(s) e saída(s);
 No entanto estes três mecanismos não são suficientes.

 Quando se pretende resolver um problema é preciso


tomar decisões, da mesma forma o programa de
computador precisa “tomar decisões”, ou seja, reagir
diante de situações de entrada ou processamento para
realizar determinadas ações.
Construção de Algorítmos
3

 Na realidade o programa de computador é


desenvolvido de forma que ele reaja mediante
alternativas de soluções dependentes das entradas que
foram realizadas
Estrutura de Decisão Simples
4

 Permite ao computador mediante a entrada ou


resgate de informações decidir se vai ou não
executar um determinado comando.
 O computador:
 Analisa a condição;
 Caso ela seja verdadeira executa o comando;
 Caso ela seja falsa, ele “pula” para o primeiro comando
abaixo da cláusula então.
Estrutura de Decisão Simples
5

Início

Comando A

V
Decisão
F
Comando 1

Fim
Estrutura de Decisão Simples
6

 Para que o computador realize mais de uma operação


(comandos) é preciso colocar um bloco de comando,
delimitado pelas palavras início e fim.

 Se <Condição> Então Se a condição resultar


início verdadeiro, então o bloco (a
seqüência de comandos de
<Comando1> comando1 até comandoN) será
Porque a
marcação de <Comando2> executado.
início e fim é
necessária?? <Comando3>
Caso contrário (condição retornar
.... falso), executa o primeiro
<ComandoN> comando abaixo da instrução fim.
fim
Estrutura de Decisão Simples
7

 Exemplo 1: Escrever um algorítmo que leia o nome


e o salário de um funcionário. Caso o salário dele
seja menor ou igual a R$ 150.00, ele receberá um
abono de R$ 30.00.
Estrutura de Decisão Simples
8

Algoritmo verificaSalario;
variáveis
nome : caracter;
salario : real;
inicio
escreva (‘Digite o nome do funcionário: ’);
leia (nome);
escreva (‘Digite o salário do funcionário: ’);
leia (salario);
se (salario <= 150) então
salario:= salario + 30;
escreva (‘O salário do funcionário ’ , Nome, ‘ é: ’ , salario);
fim.
Estrutura de Decisão Simples
9

 Entendo o algoritmo:
 O algoritmo pede que seja informado o nome e o salário do
funcionário.
 O próximo passo é testar se o salário lido é menor ou igual
a 150.
 Caso o resultado da condição (Salario <= 150) seja
verdadeiro todos os comandos vinculados à cláusula do
comando Então serão executados.
 Caso contrário (condição resultar falso), será executado o
primeiro comando após a cláusula Então, ou seja, o
comando escreva.
Estrutura de Decisão Simples
10

 Exemplo 2: Escreva um algoritmo que leia 3 notas


de um determinado aluno, e calcule a média deste
aluno.
 Verifique se o aluno foi aprovado.
 Para um aluno ser aprovado a média deve ser maior
ou igual a 7.0.
 Escreva a média do aluno e a mensagem
correspondente Aprovado, caso a condição seja
verdadeira.
Estrutura de Decisão Simples
 Algoritmo CalculaMedia;
11
 variáveis
 nota1, nota2, nota3, media: real;
 inicio
 escreva (‘Digite a primeira nota do aluno: ’);
 leia (nota1); Executa a
 escreva (‘Digite a segunda nota do aluno: ’); entrada de
 leia (nota2); dados
 escreva (‘Digite a terceira nota do aluno: ’); (leitura)
 leia (nota3);
 media:= (nota1 + nota2 + nota3)/3; Executa o cálculo da
média
 se (media >= 7.0) então
 inicio Verifica o resultado da
 escreva (‘Aluno Aprovado.’); condição para saber se
os comandos da
 escreva ( ‘Media = ’ , media);
condição serão
 Fim executados.
 escreva (‘ Fim do Algoritmo....’);
 Fim.
Estrutura de Decisão Composta
12

 Ao se testar condições só poderão ser obtidos dois


resultados:
 Verdadeiro ou
 Falso.
 A estrutura de decisão simples permite apenas que
se execute ou não determinados comandos quando
a condição é verdadeira.
Estrutura de Decisão Composta
13

 Na composta, a estrutura deverá apresentar duas


alternativas:
 Uma a ser executada caso a condição testada retorne
um valor verdadeiro;
 E outra, caso a condição retornar falso.
 Pode-se ter apenas uma das duas respostas, ou seja:
 Uma e somente uma destas alternativas sempre será
executada.
Estrutura de Decisão Composta
14

 Sintaxe do comando:
se <condição> então
<Comando1>
senão
<Comando2>;

 Se a condição resultar verdadeiro, o Comando1


será executado, caso contrário (condição resultar
falso), o Comando2 será executado.
Estrutura de Decisão Composta
15
Início

Comando A

F V
condição

Comando 2 Comando 1

Fim
Estrutura de Decisão Composta
16

se <Condição> então Se a condição resultar


início {bloco p/ condição = .V.} verdadeiro, serão
<Comando1>; executados:
<Comando2>; Comando1,
..... Comando2 até
<ComandoN>;
ComandoN,
fim
senão
início {bloco p/ condição = .F.}
<Comando3>; Caso contrário (condição
<Comando4>; resultar falso), serão
..... executados:
<ComandoM>; Comando3,
fim; Comando4 até
ComandoM.
Estrutura de Decisão Composta
17

 Exemplo1:
 Analisando novamente o algorítmo que calcula a
média do aluno, agora usando estrutura de decisão
composta, informar que o aluno está reprovado caso a
nota não seja >=7,0:
Estrutura de Decisão Composta (parte2)
18

Algoritmo verificaMedia;
variáveis
nota1, nota2, nota3, media : real;
nome: caracter;
inicio
escreva (‘Entre com o nome do aluno: ’);
leia (nome);
escreva (‘Entre com a primeira nota: ’);
leia (nota1);
escreva (‘Entre com a segunda nota: ’);
leia (nota2);
escreva (‘Entre com a terceira nota: ’);
leia (nota3);
Estrutura de Decisão Composta (parte3)
19

media:= ((nota1 + nota2 + nota3)/3);


se (media >= 7.0) então
inicio
escreva (‘O aluno’, nome, ‘ foi Aprovado.’);
escreva ( ‘Media = ’, media);
fim
senão
inicio
escreva (‘O aluno’, nome, ‘ foi reprovado.’);
escreva ( ‘Media = ’ , media);
fim
escreva (‘ Fim do Algoritmo....’);
Fim.
Estrutura de Decisão Composta
20

Algoritmo Maior;  Exemplo 2: escrever um


variáveis algorítmo que leia 2 valores e
A, B : inteiro; escreva o maior deles.
inicio
escreva (‘Entre com o primeiro valor: ’);
leia (A);
escreva (‘Entre com o segundo valor: ’);
leia (B);
se (A > B) então
escreva (‘O Maior número lido é ’ , A)
senão
escreva (‘O Maior número lido é ’, B);
escreva (‘ Fim do Algoritmo....’);
Fim.
Estrutura de Decisão Composta
21

 Entendo o algoritmo
 Após a leitura dos dois valores, o computador:
 faz a avaliação da expressão lógica (A > B) e
 decide se deve executar os comandos da parte verdadeira ou
 da parte falsa do comando se,
 ou seja, caso o valor de A seja maior que de B ele escreverá
o valor de A, caso contrário, o valor de B for maior,
escreverá, o valor de B como sendo o maior.
 Problema no algorítmo:
 Caso os valores digitados sejam iguais teremos um problema com o
algorítmo que, só é possível corrígi-lo, com o uso de uma estrutura de
decisão encadeada.
Estrutura de Decisão Encadeada
22

 Encadeada => ligada a outros.


 Em alguns casos não basta uma única condição para
que se possa obter um resultado.
 Para tanto é preciso estabelecerem verificações de
condições sucessivas, onde:
 uma determinada ação poderá ser executada se um conjunto
anterior de instruções ou condições for satisfeito.
 Sendo a ação executada, esta poderá ainda estabelecer
novas condições.

 Isto significa que pode-se utilizar uma condição


dentro de outra condição.
Estrutura de Decisão Encadeada
23

 Este tipo de estrutura poderá possuir diversos


níveis de condição, sendo chamadas de:
 aninhamentos ou;
 encadeamentos.
Estrutura de Decisão Encadeada
24

se <condição1> então
Se a condição1 resultar
<comando1> verdadeiro, será executado o
senão Comando1,
se <condição2> então caso contrário (condição1 resultar
<comando2> falso), será testada a outra
condição (condição2).
senão
<comando3>;
Se a condição2 resultar
verdadeiro, será executado o
Comando2,
caso contrário (condição2 resultar
falso), será executado o
Comando3.
Estrutura de Decisão Encadeada
25

Algoritmo Maior2; Exemplo1:


Ecrever um algorítmo que mostre o maior
variáveis número lido e ou a expressão ‘Os números são
A, B : inteiro; iguais’ caso sejam realmente iguais.
inicio
escreva (‘Entre com o primeiro número: ’);
leia (A);
escreva (‘Entre com o segundo número: ’);
leia (B);
se (A > B) então
escreva (‘O Maior número lido é ’, A)
senão
se (A = B) então
escreva (‘Os números são iguais’)
senão
escreva (‘O Maior número lido é ’, B);
escreva (‘Fim do Algoritmo...’);
fim.
Estrutura de Decisão Encadeada
26

Entendendo o algorítmo:

A diferença entre o algorítmo do slide 20 e o do slide 25 é


que dentro da parte falsa da seleção existe outra estrutura
de decisão.

Cada bloco de comando funciona como se fosse um “outro


algorítmo”, podendo ter quantas estruturas de seleção
forem necessárias.
Estrutura de Algoritmo Maior3;
Decisão variáveis
A, B, C, Maior : inteiro;
27
Encadeada inicio
escreva (‘Entre com o primeiro número: ’);
leia (A);
escreva (‘Entre com o segundo número: ’);
leia (B);
Exemplo2:
escreva (‘Entre com o terceiro número: ’);
Escreva um algorítmo leia (C);
que leia 3 números e se (A > B) então
escreva o maior deles. se (A > C) então
Maior:= A
senão
Maior:= C
senão
se (B > C) então
Maior:= B
senão
Maior:= C;
escreva (‘O Maior número lido é ’, Maior);
Fim
Estrutura de Decisão Encadeada
28

Entendendo o algorítmo:
Um algoritmo só pode testar variáveis duas a duas, ou
seja, é impossível fazer um teste do tipo Se (A>B>C).
Assim deve-se escolher duas e compará-las.
Escolhe-se ao acaso A e B e as compara-se:
• se A for maior que B então provavelmente o maior
valor é A ou C, basta comparar ambas para descobrir o
maior valor;
• se B for maior que A, precisamos comparar B com
C para descobrir a maior delas.
•Ao realizar as comparações necessárias, atribui-se à
variável MAIOR a variável de maior valor e em seguida ela
é escrita na tela.
Estrutura de
Algoritmo Maior3;
Decisão variáveis
29
Encadeada A, B, C, Maior : inteiro;
inicio
escreva (‘Entre com o primeiro número: ’);
leia (A);
Exemplo3: escreva (‘Entre com o segundo número: ’);
Pode-se escrever o mesmo leia (B);
algoritmo utilizando os escreva (‘Entre com o terceiro número: ’);
operadores lógicos:
leia (C);
 e, ou, não.
se (A > B) e (A>C) então
Maior:= A
senão
se (B > C) então
Maior:= B
senão
Maior:= C;
escreva (‘O Maior número lido é ’, Maior);
fim.
Estrutura de Decisão encadeada
30

 Exemplo4
 E, se considerarmos que os 3 números podem ser
iguais??? Como ficaria o programa anterior?

 Faça-o!
31

ATIVIDADE 02
Exercícios
32

 (...)
 Início
1) Dado o seguinte  se EXP_REL_1 então
trecho de algoritmo,  COMANDO1
responda as questões  senão
do próximo slide (33).  se EXP_REL_2 então
se EXP_REL_3 então

COMANDO2
 senão
 início

COMANDO3
 COMANDO4
 fim
 senão
 COMANDO5;

 Fim
Continuação Exercício 1
33

a) Se EXP_REL_1 for verdadeira, qual comando será


executado?
b) Se EXP_REL_1 for falsa, EXP_REL_2 verdadeira
e EXP_REL_3 verdadeira, qual comando será
executado?
c) Se EXP_REL_1 for falsa, EXP_REL_2 verdadeira
e EXP_REL_3 falsa, qual comando será
executado?
d) Quais os valores de EXP_REL_1 e EXP_REL_2
para que somente o COMANDO5 seja executado?
2. Supondo as seguintes declarações de variáveis e
atribuições, determine o resultado das expressões que
estão indicadas logo abaixo, sendo:
34
x:= 6.8 y:= 5.3 letra:= ‘S’ sexo:=‘M’
e considerando a variável resultado como sendo do tipo lógico.

a) se (x > 6.0) .e. (Y > 6.0) e) se (.não.((x > 6.0) .ou. (Y > 5.0)))
então Resultado:= .V. então Resultado:= .V.
senão Resultado:= .F.; senão Resultado:= .F.;
f) se ((letra = 'S') .e. (letra = 's'))
b) se (x > 5.0) .ou. (y > 9.0)
então Resultado:= .V.
então Resultado:= .V.
senão Resultado:= .F.;
senão Resultado:= .F.;
g) se (sexo = ‘M’) .ou. (sexo = ‘m’) .e. (x
c) se (.não.(x > 6.0) .e. .não. (Y > 6.0)) > 6.9)
então Resultado:= .V. então Resultado:= .V.
senão Resultado:= .F.; senão Resultado:= .F.;
h) se ((sexo = ‘M’) .ou. (sexo = ‘m’)) .e.
d) se (.não.(x > 6.0) .ou. (y > 5.0))
(x > 6.9)
então Resultado:= .V.
então Resultado:= .V.
senão Resultado:= .F.;
senão Resultado:= .F.;
35

3. Faça um algoritmo que leia um valor qualquer e


verifique se este valor é positivo, nulo ou negativo.
4. Faça um algoritmo que leia um valor qualquer e
verifique se este valor é múltiplo de 7.
5. Faça um algoritmo que receba a idade de uma
pessoa e mostre uma mensagem informando se esta
pessoa é maior de idade ou não. (OBS.: Para uma
pessoa ser maior de idade, basta ter uma idade
superior ou igual a 18 anos).
6. Faça um algoritmo que leia um valor qualquer e
verifique se este valor é par ou ímpar.
7. Faça um algoritmo que receba a idade de um nadador
e mostre a sua categoria seguindo as regras:
36

Categoria Idade
Infantil A 5 – 7 anos
Infantil B 8 – 10 anos
Juvenil A 11 – 13 anos
Juvenil B 14 – 17 anos
Sênior maiores de 18 anos
37

8. Escreva um algoritmo que leia dois valores


quaisquer e calcule a soma destes valores. Após
informe em qual intervalo a soma se encontra:
 Intervalo de 0 a 20;
 Intervalo de 21 a 40;
 Intervalo de 41 a 60;
 Acima de 61.
9. Um vendedor necessita de um algoritmo que calcule o
preço total devido por um cliente. O algoritmo deve
receber o código de um produto e a quantidade
38
comprada e calcular o preço total, usando a tabela
abaixo:

Código do Produto Preço Unitário


1001 R$ 5.32
1324 R$ 6.45
6548 R$ 2.37
0987 R$ 4.26

Você também pode gostar