Upload
facema-faculdade-de-ciencias-e-tecnologia-do-maranhao
View
32
Download
0
Embed Size (px)
Citation preview
Disciplina: Constr. de Algoritmos e Prog. de SistemasProfessor: Jeovane Reges
Caxias – MA2016
ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO
2
Link Drive
bit.ly/ads-algoritmos
3
Algoritmos
4
Controle de Fluxo
<Comandos de Decisões>
5
• Algoritmos• Comandos de Decisões• Introdução• Os algoritmos vistos até então, realizam
apenas instruções básicas: São conhecidos como algoritmos sequenciais.
• Alguns problemas mais complexos exigem maior controle sobre as suas operações.
• Esse controle é exercido com a utilização dos comandos de controle de fluxo.
6
• Algoritmos• Comandos de Decisões• Introdução• Os comandos de controle de fluxo,
dividem-se: Comandos de decisões; e Comandos de repetições.
7
Comandos de Decisões
8
• Algoritmos• Comandos de Decisões• Introdução• Comandos de decisões são também
conhecidos como comandos de seleções ou condicionais.
• Por condição entende-se qualquer "expressão" que resulte em uma resposta do tipo verdadeiro ou falso.
• Os comandos de decisões dividem-se em: simples, encadeado ou composto.
9
Comando se
10
• Algoritmos• Comandos de Decisões• Comando se• É a forma mais simples dos comandos de
decisões: se <expressão> entao.
• O critério de seleção é dado por uma expressão, cujo valor deve ser um dado do tipo lógico.
• Se esse valor for verdadeiro, então as instruções definidas dentro do comando são executadas; caso contrário, segue execução do programa.
11
• Algoritmos• Comandos de Decisões• Comando se
Exemplos:
Expressão Resultado10 < 128 + 610 % 3 = 020 / 3"5 > 3 && 15 < 20"
Logico
InteiroLogico
RealCaractere
12
• Algoritmos• Comandos de Decisões• Comando se
Sintaxe
se ([expressão]) entao // Executado se a expressão for verdadeira [bloco de comandos]fimse
As instruções aqui definidas, só serão executada se o valor declarado na expressão for VERDADEIRO.
13
A expressão passada no comando SE, deve ser do tipo lógica, caso contrário o código
não executa.
14
Exemplo 01Faça um algoritmo que dadas as duas
notas de aluno calcule a média das notas e diga se ele está aprovado.
15
• Algoritmos• Comandos de Decisões
Critérios de aprovação da Facema• Aprovado:
• A média deve ser maior ou igual a 7.0.
16
• Algoritmos • Exemplo 01• Solucionando o problema...
• Entrada:• n1 8 // primeira nota• n2 6.2 // segunda nota
• Solução:• media (n1 + n2)/2• Se a media for maior ou igual a 7,0 entao
o aluno está aprovado.
• Saída:• Aluno Aprovado
17
• Algoritmos• Comandos de Decisões• Exemplo: Algoritmo para calcular média
aritmética de um aluno e dizer se o mesmo foi aprovado.
algoritmo "Exemplo 01"var n1, n2, media: realinicio n1 8 n2 6.2 media (n1 + n2) / 2 se (media >= 7) entao escreval("Aluno aprovado!") fimse fimalgoritmo
18
• Algoritmos • Comandos de Decisões
ExemploInicio
Fim
Aprovado
n1, n2
media ≥ 7?
FV
media (n1 + n2) / 2
19
Da mesma forma que o algoritmo tem início e fim, o comando de
decisão também deve ser devidamente inicializado e
finalizado.
20
Problema IDado um número, informar se
ele é divisível por 2.
21
• Algoritmos• Comandos de Decisões
Resolução do Problema I
algoritmo "Problema 01"var numero: inteiroinicio escreva("Digite um valor: ") leia(numero)
se (numero % 2 = 0) entao escreval("Número divisível por 2") fimse fimalgoritmo
22
Comandos de Decisões
<Encadeados - CDE>
23
• Algoritmos• Comandos de Decisões• Encadeados
Sintaxe
se ([expressão 1]) entao se ([expressão 2]) entao //Executado se ambas as condições forem verdadeiro [bloco de comandos] fimsefimse
Se ambas as condições forem VERDADEIRAS, então as instruções aqui definidas serão
executada.
24
Problema IIDado um número, informar se
ele é divisível por 2 e 3.
25
• Algoritmos• Comandos de Decisões
Resolução do Problema II {1}
algoritmo "Problema 02"var numero: inteiroinicio escreva("Digite um valor: ") leia(numero)
se (numero % 2 = 0) entao se (numero % 3 = 0) entao escreval("Número divisível por 2 e 3") fimse fimse fimalgoritmo
26
• Algoritmos• Comandos de Decisões
Resolução do Problema II {2}
algoritmo "Problema 02"var numero: inteiroinicio escreva("Digite um valor: ") leia(numero)
se ((numero % 2 = 0) E (numero % 3 = 0)) entao escreva("Número divisível por 2 e 3") fimse fimalgoritmo
27
• Algoritmos• Comandos de Decisões• Comando se• Na execução do comando se a condição
será avaliada e: Se a condição for verdadeira, a sequência de
instruções será executada.
Se a condição for falsa, a sequência de instruções não será executada, e o programa continuará sua execução a partir do final do comando fimse.
28
Comando senao
29
• Algoritmos• Comandos de Decisões• Comando senao• As instruções definidas no comandos se são
executados quando uma determinada condição for atendida.
• Se a condição não for atendida, o algoritmo segue seu fluxo de execução natural.
• O comando SENAO, indica um segundo caminho a ser seguido. Quando a condição pré-estabelecida não for
atendida
30
Se o comando se diz o que fazer quando a condição é verdadeira, o comando senao trata o que fazer
quando a condição é falsa.
31
• Algoritmos• Comandos de Decisões• Comando senao
Sintaxe:
se ([expressão]) entao // Executado se a expressão do SE for verdadeira [bloco de comandos 1] senao // Executado se a expressão do SE for falsa [bloco de comandos 2]fimse
32
Exemplo 02Faça um algoritmo que dadas as duas notas de aluno, calcule a média das notas e diga
se ele está aprovado ou reprovado.
33
• Algoritmos• Comandos de Decisões
Critérios de aprovação da Facema• Aprovado:
• A média deve ser maior ou igual a 7.0.
• Reprovado:• A média deve ser menor do 7.0.
34
• Algoritmos • Exemplo 02• Solucionando o problema...
• Entrada:• n1 8 // primeira nota• n2 5.2 // segunda nota
• Solução:• media (n1 + n2)/2• Se a media for maior ou igual a 7.0 entao
o aluno está aprovado.• Senao está reprovado.
• Saída:• Aluno Aprovado• Aluno Reprovado
35
• Algoritmos• Comandos de Decisões
Exemplo:
algoritmo "Exemplo 02"var n1, n2, media: realinicio n1 8 n2 5.2 media (n1 + n2) / 2 se (media >= 7) entao escreva("Aluno Aprovado!") senao escreva("Aluno Reprovado!") fimse fimalgoritmo
36
• Algoritmos • Comandos de Decisões
ExemploInicio
Fim
Aprovado
n1, n2
media ≥ 7?
F V
media (n1 + n2) / 2
Reprovado
37
Problema IIIDado um número, informar se
ele é ou não múltiplo de 2.
38
• Algoritmos• Comandos de Decisões
Resolução do Problema IIIalgoritmo "Problema 03"var numero: inteiroinicio escreva("Digite um valor: ") leia(numero)
se (numero % 2 = 0) entao escreva("Número múltiplo de 2") senao escreva("Não é múltiplo de 2") fimse fimalgoritmo
39
Problema IVFaça um algoritmo que dados
dois números, apresente o maior deles.
40
• Algoritmos• Comandos de Decisões
Resolução do Problema IValgoritmo "Problema 04"var n1, n2: realinicio n1 19 n2 14
se (n1 > n2) entao escreva("Maior: ", n1) senao escreva("Maior: ", n2) fimse fimalgoritmo
41
Problema VO banco Algoritmos não permite que seus cliente façam empréstimos superior a 300% do seu salário. Dado o valor do salário e do
empréstimo informar se o empréstimo é permitido ou não.
42
• Algoritmos• Comandos de Decisões
Resolução do Problema Valgoritmo "Problema 05"var sal, emprestimo, valor_max: realinicio sal 2300 emprestimo 600 valor_max sal * 3.0 se (emprestimo < valor_max) entao escreva("Empréstimo permitido!") senao escreva("Empréstimo não permitido!") fimse fimalgoritmo
43
• Algoritmos• Comandos de Decisões• Comando senao• Antes, na execução do comando se,
tínhamos: Se a condição fosse verdadeira, a primeira
sequência de instruções (bloco se) era executada.
Caso contrário, a sequência de instruções não era executada e o programa seguia o seu fluxo padrão.
• Na execução do comando senao temos: Se a condição for falsa, a segunda sequência
de instruções (bloco senao) será executada.
44
O comando senao é opcional, e sua sequência de instruções "somente" será
executada se o valor da condição que está sendo testada no comando se for FALSA.
45
Aninhamento Se’s
46
• Algoritmos• Se’s aninhados• Funcionamento:• Em um aninhamento de Se’s, o programa
começa a "testar" as condições começando pela condição 1.
• Se o resultado dessa condição for verdadeiro, o programa executará o bloco de instruções associados a ele.
• Do contrário, executará o bloco de comandos associados ao comando senao se correspondente, se ele existir.
47
• Algoritmos• Comandos de Decisões• Se’s aninhados
Sintaxe:
se ([expressão 1]) entao [bloco 1] senao se ([expressão 2]) entao [bloco 2] senão [bloco 3] fimsefimse
48
Exemplo 03Faça um algoritmo que dadas as duas notas de aluno, calcule a média das notas e diga
se ele está aprovado, de final ou reprovado.
49
• Algoritmos• Comandos de Decisões
Critérios de aprovação da Facema• Aprovado:
• A média deve ser maior ou igual a 7.0.
• Reprovado:• A média deve ser menor do 4.0.
• De final:• A média deve ser menor do que 7.0 e
maior ou igual a 4.0.
50
• Algoritmos • Exemplo 03
• Entrada:• n1 8 // primeira nota• n2 5.2 // segunda nota
• Solução:• media (n1 + n2)/2• Se a media for maior ou igual a 7.0, entao o
aluno está aprovado.• Senao se a média for menor do 7.0 e maior ou
igual a 4.0, entao o aluno está de final.• Senao está reprovado.
• Saída:• Aluno Aprovado• Aluno de final• Aluno ReprovadoSo
luci
onan
do o
pro
blem
a...
51
• Algoritmos
algoritmo "Exemplo 03"var n1, n2, media: realinicio n1 8 n2 5.2 media (n1 + n2) / 2 se (media >= 7) entao escreva("Aluno aprovado!") senao se ((media < 7) E (media >= 4)) entao escreva("Aluno de final!") senao escreva("Aluno reprovado!") fimse fimse fimalgoritmo
Exem
plo
03
52
• Algoritmos • Comandos de Decisões
ExemploInicio
Fim
Aprovado
n1, n2
media ≥ 7?
F V
media (n1 + n2) / 2
Reprovado
media < 4?
Final
VF
53
Não existe aninhamento de senao’s.
se (cond1) sequência de comandos;senao sequência de comandos;senao //ERRO! sequência de comandos;
54
Comandos de Decisões
<Múltipla Escolha – Escolha .. Caso>
55
• Algoritmos• Comandos de Decisões• Múltipla Escolha• Nos comandos de decisões estudados, um
comando ou bloco de comandos é executado quando uma determinada condição é atendida.
• Porém, existem problemas em que uma expressão pode assumir quaisquer valores.
• Onde, para cada valor assumido, comandos diferentes são executados.
56
• Algoritmos• Comandos de Decisões• Múltipla Escolha
Sintaxe:
escolha([comando]) caso [opção 1] [bloco 1] caso [opção 2] [bloco 2] ... caso [opção n] [bloco n] outrocaso [bloco]fimescolha
57
• Algoritmos• Comandos de Decisões• Múltipla Escolha• O [comando] pode ser qualquer expressão
válida.
• Este é avaliado e o seu valor resultante é comparado com as opções distintas [opção 1], [opção 2], ..., [opção n].
• Se o valor for diferente de todos os casos, então o comando outrocaso é executado.
58
Exemplo 04Faça um algoritmos que apresente um menu para o usuário perguntando se
ele deseja:1 – Ir à praia ou 2 – Ir ao cinema
59
• Algoritmos
Resolução do problema :
algoritmo "Escolha Caso"var opcao: inteiroinicio escreval("Digite 1 para praia ou 2 para cinema") leia(opcao) escolha (opcao) caso 1 escreva("Levar protetor solar") caso 2 escreva("Comprar pipoca e coca-cola") outrocaso escreva("Leia um bom livro") fimescolha fimalgoritmo
Exem
plo
04
60
Problema VIDado o número de um mês
exiba o nome correspondente.// Se for dado o número 1 deverá imprimir
"Janeiro"
61
• Algoritmos• Comandos de Decisões
algoritmo "Problema 06"var mes: inteiroinicio escreva("Digite o número de um mês: ") leia(mes) escolha (mes) caso 1 escreval("Janeiro") caso 2 escreval("Fevereiro") outrocaso escreva("Mês inválido") fimescolha fimalgoritmoRe
solu
ção
do P
robl
ema
VI