Download - Estrutura Selecao do algorítmo
![Page 1: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/1.jpg)
Introdução à Programação
1
slides de Deise Saccol
![Page 2: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/2.jpg)
• 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!
![Page 3: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/3.jpg)
• 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!
![Page 4: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/4.jpg)
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.
![Page 5: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/5.jpg)
• 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
![Page 6: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/6.jpg)
• 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
![Page 7: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/7.jpg)
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
![Page 8: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/8.jpg)
• 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
![Page 9: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/9.jpg)
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”
![Page 10: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/10.jpg)
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.
![Page 11: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/11.jpg)
• 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
![Page 12: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/12.jpg)
• 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
![Page 13: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/13.jpg)
- 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.
![Page 14: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/14.jpg)
• 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.
![Page 15: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/15.jpg)
• 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!
![Page 16: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/16.jpg)
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
![Page 17: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/17.jpg)
- 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.
![Page 18: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/18.jpg)
• 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!)
![Page 19: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/19.jpg)
– FLUXOGRAMA: INÍCIO
N1 > N2Sim
N1
N2
NãoDIF = N1 - N2DIF = N2 - N1
19
DIF
FIM
N1 > N2 DIF = N1 - N2DIF = N2 - N1
![Page 20: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/20.jpg)
• 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 ;
![Page 21: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/21.jpg)
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;
![Page 22: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/22.jpg)
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
![Page 23: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/23.jpg)
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
![Page 24: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/24.jpg)
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!
![Page 25: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/25.jpg)
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!
![Page 26: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/26.jpg)
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”).
![Page 27: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/27.jpg)
– 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.
![Page 28: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/28.jpg)
• 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.
![Page 29: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/29.jpg)
• 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)
![Page 30: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/30.jpg)
• 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
![Page 31: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/31.jpg)
– FLUXOGRAMA:INÍCIO
OPER
N1, N2
OPER
31
R
FIM
R = N1 + N2 R = N1 - N2 R = N1 * N2 R = N1 / N2
“+” “-” “*” “/”
![Page 32: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/32.jpg)
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.
![Page 33: Estrutura Selecao do algorítmo](https://reader035.vdocuments.pub/reader035/viewer/2022062423/55cf8efe550346703b97da59/html5/thumbnails/33.jpg)
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’.