33
Introdução à Programação 1 slides de Deise Saccol

Estrutura Selecao do algorítmo

Embed Size (px)

DESCRIPTION

Algorítmo

Citation preview

Page 1: Estrutura Selecao do algorítmo

Introdução à Programação

1

slides de Deise Saccol

Page 2: Estrutura Selecao do algorítmo

• 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

• 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

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

• 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

• 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

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

• 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

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

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

• 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

• 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

- 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

• 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

• 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

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

- 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

• 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

– 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

• 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

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

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

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

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

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

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

– 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

• 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

• 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

• 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

– 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

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

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’.