Estrutura Selecao do algorítmo
-
Upload
larissa-oliveira -
Category
Documents
-
view
33 -
download
0
description
Transcript of Estrutura Selecao do algorítmo
Introdução à Programação
1
slides de Deise Saccol
• Sintaxe diz respeito à forma como as instruções devem ser escritas.– Conjunto de regras formais que especificam a
composição dos algoritmos a partir de letras, dígitos e outros símbolos.
2
outros símbolos.
A violação da sintaxe de uma instrução
impede que o algoritmo seja executado!
• Semântica diz respeito ao significado lógico das
instruções que serão executadas pelo computador.
– Conjunto de regras que especificam o “significado” de
qualquer programa, sintaticamente válido.
3
A violação da semântica de um algoritmo não
impede que ele seja executado. Todavia, ele
processará um resultado errado!
Os erros sintáticos são identificados pelos tradutores, enquanto que os
erros semânticos não o são.
4
erros semânticos não o são.
Por isso que os erros semânticos exigem mais atenção para corrigi-los.
• Fluxograma (Diagrama de Módulos)– Seus principais símbolos gráficos são:
= Início e final do fluxograma
= Operação de entrada de dados
= Operação de saída de dados em impressora
5
= Operação de saída de dados em impressora
= Operações de processamento
= Decisão
= Operação de saída de dados em vídeo
= Seta de Fluxo de Dados= Conector de Fluxo de Dados
• Fluxograma do algoritmo Fahrenheit-Celsius
Início
Fahrenheit
Início do algoritmo
Entrada da temperatura (F)
6
Celsius = 5/9 * (Fahrenheit – 32)
Celsius
Fim
Cálculo da temperatura (C)
Apresentação do resultado
Fim do algoritmo
Ling. Algorítmica
Algoritmo Fahrenheit-CelsiusInício
Ler (Fahrenheit);Celsius � 5/9 * (Fahrenheit –
32);
FluxogramaDesc. Narrativa
Solicite a temperatura em Fahrenheit. Transforme de Fahrenheit para
Início
Fahrenheit
7
32);Escrever (Celsius);
Fim
Fahrenheit para Celsius.Informe a temperatura em Celsius.
Celsius = 5/9 * (Fahrenheit – 32)
Celsius
Fim
• Algoritmo ExemploInstruçõesEntradaSaída• Início• Leia(preçoUnit, qtd);• preçoTot � preçoUnit * qtd;• Escreva(preçoTot);• Fim.
Início
preçoUnit, qtd
Início
preçoUnit, qtd
8
• Fim.
preçoTot �qtd * preçoUnit
Fim
preçoUnit, qtd
preçoTot
preçoTotqtd * preçoUnit
preçoTotqtd * preçoUnit
Fim
preçoUnit, qtd
preçoTot
Algoritmo ExemploInstruçõesEntradaSaída
Início
Escreva(“informe preço unitário e quantidade”);
Leia(preçoUnit, qtd);
preçoTot ���� preçoUnit * qtd; “informe preço Unitário e QTD”
Início
“informe preço unitário e quantidade”
Início
9
preçoTot ���� preçoUnit * qtd;
Escrever(“Preço total = ”, preçoTot);
Fim.pre çoTot :=
qtd * pre çoUnit
Fim
preçoUnit , qtd
“Preço total =”+preçoTot
Unitário e QTD”
preçoTot ����
qtd * preçoUnit
Fim
preçoUnit , qtd
“Preço total =”,preçoTot
e quantidade”
Vantagens Desvantagens Descrição Narrativa
• O português é bastante conhecido por nós.
• Imprecisão. • Pouca confiabilidade (a imprecisão
acarreta a desconfiança). • Extensão (normalmente, escreve-se
muito para dizer pouca coisa). Fluxograma • Padrão mundial.
• Ferramenta bem conhecida. • Complica-se à medida que o
algoritmo cresce.
10
• Ferramenta bem conhecida. • Figuras dizem muito mais que
palavras.
algoritmo cresce. • Pouca atenção aos dados, não
oferecendo recursos para declará-los. Linguagem Algorítmica
• Independência de linguagem de programação.
• Usa o português como base. • Define-se melhor quais e como os
dados vão estar estruturados. • Passagem quase imediata do
algoritmo para uma linguagem de programação qualquer.
• Exige a definição de uma linguagem não real para trabalho.
• Não é padronizada.
• ESTRUTURAS DE DECISÃO– Comandos de decisão ou desvio fazem parte das
técnicas de programação, para construir estruturas de algoritmos que não são totalmente seqüenciais.
– Com as instruções de desvio pode-se fazer com que o algoritmo proceda de uma ou outra maneira, de acordo
11
algoritmo 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• CASO FOR...ENTÃO
• São estruturas que, dada a avaliação de umaexpressão lógica (condição), permitem a escolhade um fluxo de instruções a ser executado.– No máximo só podem existir dois fluxos de instruções:
um, se a condição for V, e outro, se a condição for F.
12
- Formato:• Se <operação lógica> então <ações>• Significado: Se a <operação lógica> resultar em
verdadeiro, então executar as <ações>. Senão, simplesmente ignorar as <ações> e seguir para a próxima instrução no algoritmo.
• Usada para decidir se um conjunto de ações
SE ... ENTÃO ...
13
• Usada para decidir se um conjunto de ações opcionais deve ser executado ou não, dependendo do valor de algum dado ou de algum resultado que já tenha sido calculado no algoritmo. O valor do dado ou do resultado anterior será testado na operação lógica.
• Exemplo da estrutura SE...ENTÃO:“Avisar se um número lido for negativo.”– PSEUDOCÓDIGO:
Ler NSe (N < 0)
então exibir “É negativo!” INÍCIO
14
então exibir “É negativo!”
– FLUXOGRAMA:INÍCIO
“É negativo!”
FIM
N
N < 0Sim
Não
OPERAÇÃO LÓGICA:
Poderá ser V ou F, depen-dendo do valor de N, que foi lido antes.
• Semântica: Se a avaliação da condição for V, um conjunto de comandos do bloco verdade é executado e prossegue-se o fluxo. Caso a avaliação da condição for F, salta-se para o primeiro comando após o fim da estrutura de decisão simples.
15
decisão simples.
Instrução(ões) executada(s) para
expressão = V
Executar comando(s)
VFExp. Lógica
Não faz nada!
Algoritmo ExemploDecisãoSimplesInícioEscreva(“Digite um valor”);Leia (x);Se (x > 0) Então
Escreva (“X > 0”);x
“Digite um valor”
Início
Fim. x
x>0VF
“X > 0”
Fim
- Formato:Se <operação lógica> então <ações 1>
senão <ações 2>• Significado: Se a <operação lógica> resultar em
verdadeiro, então executar <ações 1>. Senão, ignorar <ações 1> e executar <ações 2>.
• Usada para decidir entre duas alternativas de ações.
SE ... ENTÃO ...SENÃO...
17
• Usada para decidir entre duas alternativas de ações. Um dos dois conjuntos de ações será executado e o outro não, dependendo do valor de algum dado ou de algum resultado que já tenha sido calculado no algoritmo. O valor do dado ou do resultado anterior será testado na operação lógica, determinando qual conjunto de ações será executado.
• Exemplo da estrutura SE...ENTÃO...SENÃO:“Mostrar a diferença entre 2 números quaisquer.”– PSEUDOCÓDIGO:
Ler N1Ler N2Se (N1 > N2) então DIF = N1 - N2
18
Se (N1 > N2) então DIF = N1 - N2senão DIF = N2 - N1
Mostrar DIF
– (Obs.: Este algoritmo funciona mesmo se os dois números forem iguais, pois será calculado N2 - N1, o que resultará em 0. Também funciona se um ou ambos forem negativos. Experimente!)
– FLUXOGRAMA: INÍCIO
N1 > N2Sim
N1
N2
NãoDIF = N1 - N2DIF = N2 - N1
19
DIF
FIM
N1 > N2 DIF = N1 - N2DIF = N2 - N1
• Além de executar se a condição for V a decisãocomposta também executa se a condição for F.
• Sintaxes :
Se <expressão lógica> Então
<instrução única>; Se <expressão lógica> Então
Inicio<instrução única>;
Senão
<instrução única> ;
Seqüência
Inicio
<instrução1> ;
. . .
<instruçãoN> ;
Fim.
Senão
Seqüência ;
Se ... Então ... Senão ... encadeados
Se <operação lógica> então <ação 1>senão se <operação lógica> então <ação 2>
senão <ação 3>
Exemplo:
21
se (valor<0) então res = 0;senão se (valor>10) então res = 2;
senão res = 3;
Se ... Então ... Senão ... encadeadosO encadeamento de decisões composta é
utilizado para aninhar as estruturas Se Então Senão.
VF
VF
Exp. Lógica
Exp. Lógica
Instrução(ões) executada(s)
paraexpressão = V
22Executar
instrução(ões)
Instrução(ões) executada(s)
paraexpressão = V
Exp. Lógica
Instrução(ões) executada(s)
paraexpressão = F
ou outras decisões
compostas
Se ... Então ... Senão ... encadeados
Algoritmo ExemploDecisãoCompostaAninhadaInícioEscreva(“Digite um valor”);Leia (x);Se (x > 0) Então
Escreva (“X > 0”);Senão X
“Digite um valor”
Início
23
SenãoSe (x < 0) Então
Escreva (“X < 0”);Senão
Escreva (“X = 0”);Fim.
X
X>0VF
“X > 0”
Fim
“X < 0”
X< 0 V
“X = 0”
F
Se ... Então ... Senão ... encadeados
NOTE IEsta abordagem só é indicada quando há a necessidade de se testar condições dentro
24
necessidade de se testar condições dentro de condições. Nestes casos, normalmente, o algoritmo fica mais rápido, pois menos
testes podem ser efetuados!
Se ... Então ... Senão ... encadeadosSe (x > 0) Então
Escreva (“X > 0”);Se (x < 0) Então
Escreva (“X < 0”);Se (x = 0) Então
Escreva (“X = 0”);
Isso vai funcionar,mas é uma péssima prática!
25
Se um número é >0, então ele não pode ser =0 ou <0.
Por isso, o exemplo acima faz testes desnecessários !
Note que todas as condições SEMPRE são testadas!
Isso torna a execução do algoritmo mais lenta!
Se ... Então ... Senão ... encadeadosSe (x MOD 2 = 0) Então
Se (x > 0) Então
Se (x/2 >= 3) Então
Escreva (“X é par, positivo e maior igual a 6”).
26
O encadeamento acima é o mesmo que:
SE (x MOD 2 = 0) E (x > 0) E (x/2 >= 3) Então
Escreva (“X é par, positivo e maior igual a 6”).
– Formato:Caso <valor 1> então <ações 1>Caso <valor 2> então <ações 2>Caso <valor 3> então <ações 3>Caso <etc., quantos precisar>
• Significado: Se <valor> for igual a <valor 1>, então executar <ações 1>. Se for igual a <valor 2>, ignorar <ações 1> e executar <ações 2>, e assim por diante.
CASO ... ENTÃO...
27
executar <ações 1>. Se for igual a <valor 2>, ignorar <ações 1> e executar <ações 2>, e assim por diante.
• Usada para escolher apenas um conjunto de açõesdentre vários alternativos. Aqui o teste não é mais uma operação lógica: o próprio valor de algum dado ou resultado anterior (que pode ser de outros tipos além do lógico) é que vai determinar qual desses conjuntos de ações será executado.
• A decisão múltipla é uma especialização da estrutura
de decisão composta aninhada, que permite a
execução de opções mutuamente exclusivas.
• Sintaxe:
CASO ... ENTÃO...
28
• Sintaxe:Escolha <Seletor>
<Opção1> : <instrução(ões)> ;
. . .
<OpçãoN> : <instrução(ões)> ;
[ Senão <comando(s)> ;] opcional!
Fim Escolha.
• Semântica: realiza a comparação de igualdade paraidentificar qual opção tem o mesmo valor do seletor.Caso todas as condições sejam F, executa-se osenão (se este existir) ou sai-se da estrutura semexecutar nada.
CASO ... ENTÃO...
V
29
V
VComando(s)
Comando(s) S = Op1
F
S = OpN
F
. . .
Comando(s)
• Exemplo da estrutura CASO...ENTÃO:“Escolher uma das 4 operações básicas para aplicar em dois números.”– PSEUDOCÓDIGO:
• Ler N1• Ler N2
30
• Ler N2• Ler OPERACAO (que será do tipo caractere)• Caso OPERACAO:
“+” então RESULT = N1 + N2“-” então RESULT = N1 - N2“*” então RESULT = N1 * N2“/” então RESULT = N1 / N2caso contrario exibir “Operação não válida!”
• Exibir RESULT
– FLUXOGRAMA:INÍCIO
OPER
N1, N2
OPER
31
R
FIM
R = N1 + N2 R = N1 - N2 R = N1 * N2 R = N1 / N2
“+” “-” “*” “/”
Algoritmo ExemploDecisãoMúltipla
Início
Escreva(“Digite um caracter”);
Leia (x);
Escolha (x)
“A”,“E”,“I”,“O”,“U” : Escreva (“Vogal”);
“~”,“^”,“v” : Início“~”,“^”,“v” : Início
Escreva(“Operador”);
Escreva(“ Lógico”);
Fim;
Senão Escreva (“Caracter não reconhecido”);
Fim Escolha;
Fim.
ExercíciosLeia um número inteiro e mostre uma mensagem indicando
se esse número é par ou ímpar, e se é positivo ou negativo.
Leia quatro números inteiros e encontre a média aritmética simples entre as que correspondem a números pares. Lembre-se de que não pode haver divisão por zero.
33
Leia 4 notas, calcule a média dessas e escreva: Reprovado(média < 5), Recuperação (média >= 5 e < 7) eAprovado (média >= 7).
Ler um número inteiro, e verificar se o número correspondea um mês válido no calendário e escrever o nome do mês,senão escrever uma mensagem ‘Mês Inválido’.