Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Aula 7: Estrutura de Decisao
Fernanda Passos
Universidade Federal Fluminense
Programacao de Computadores IV
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 1 / 27
Agenda
1 Revisao e Contexto
2 Estrutura de Decisao
3 Estrutura de Decisao de Um Ramo
4 Estrutura de Decisao de Dois Ramos
5 Aninhamento de Blocos
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 2 / 27
Agenda
1 Revisao e Contexto
2 Estrutura de Decisao
3 Estrutura de Decisao de Um Ramo
4 Estrutura de Decisao de Dois Ramos
5 Aninhamento de Blocos
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 3 / 27
Aula Anterior:
Entrada de dados para o programa.I E para o pseudocodigo.I Simulando um programa.
Leitura de dados.I comando leia.
Escrita de dados.I comando escreva.
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 4 / 27
Foco da Aula de Hoje
Estrutura de controle de decisao:Apresentacao da interpretacao de um comando de decisao.Estrutura do comando de decisao em pseudocodigo.
ObjetivoDefinir a sintaxe do comando de decisao em pseudo codigo.Aprender a usar a estrutura de controle.
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 5 / 27
Agenda
1 Revisao e Contexto
2 Estrutura de Decisao
3 Estrutura de Decisao de Um Ramo
4 Estrutura de Decisao de Dois Ramos
5 Aninhamento de Blocos
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 6 / 27
Estrutura de Decisao
Tambem chamada de estrutura de selecao ou estrutura condicional.E utilizada quando uma sequencia de passos depende de alguma decisao.Serve para representar argumentos do tipo:
I se uma determinada condicao for verdadeira, faco um determinada sequencia de passos; ouI se uma determinada condicao for verdadeira, faco um determinada sequencia de passos; caso
contrario, faco outra sequencia de passos.Esta sequencia de passos chamamos de bloco.
I E um conjunto de passos que so sera executado se a condicao for atendida.A decisao condicional e logica: verdadeira ou falsa.Podemos ter uma estrutura de um ramo ou de dois ramos.
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 7 / 27
Agenda
1 Revisao e Contexto
2 Estrutura de Decisao
3 Estrutura de Decisao de Um Ramo
4 Estrutura de Decisao de Dois Ramos
5 Aninhamento de Blocos
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 8 / 27
Estrutura de Decisao de Um Ramo
Verifica a condição
Executa sequênciade passos
Executa passosapós condição
verdadeira
falsa
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 9 / 27
Sintaxe da Estrutura de Decisao de Um Ramo
Sintaxe:se <expressao logica> entao
<bloco de passos>;fim
se, entao e fim sao palavras reservadas.Expressao logica e sintaticamente obrigatoria e segue as regras ja vistas.Bloco de passos e obrigatorio.
I Passos a serem executados caso a expressao logica retorne verdadeiro.I Em caso falso, seguem-se os passos apos fim.
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 10 / 27
Exemplo de Estrutura de Decisao de Um Ramo
Deseja-se obter dois numeros, n1 e n2, e escrever se n1 e igual a n2.
Algoritmo 1: Exemplo de uma decisao de um ramo.1 inıcio2 real: N1, N2;
3 leia N1, N2;4 se N1 = N2 entao5 escreva N1, “e igual a”, N2;6 fim7 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 11 / 27
Exemplo de Estrutura de Decisao de Um Ramo
Deseja-se obter dois numeros, n1 e n2, e escrever se n1 e igual a n2.
Algoritmo 1: Exemplo de uma decisao de um ramo.1 inıcio2 real: N1, N2;
3 leia N1, N2;4 se N1 = N2 entao5 escreva N1, “e igual a”, N2;6 fim7 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 11 / 27
Exemplo de Estrutura de Decisao de Um Ramo (II)
Deseja-se obter dois numeros e escreve-los caso ambos sejam maior que 10.
Algoritmo 2: Outro exemplo de uma decisao de um ramo.1 inıcio2 real: N1, N2;
3 leia N1, N2;4 se N1 > 10 e N1 > 10 entao5 escreva N1, N2;6 fim7 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 12 / 27
Exemplo de Estrutura de Decisao de Um Ramo (II)
Deseja-se obter dois numeros e escreve-los caso ambos sejam maior que 10.
Algoritmo 2: Outro exemplo de uma decisao de um ramo.1 inıcio2 real: N1, N2;
3 leia N1, N2;4 se N1 > 10 e N1 > 10 entao5 escreva N1, N2;6 fim7 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 12 / 27
Agenda
1 Revisao e Contexto
2 Estrutura de Decisao
3 Estrutura de Decisao de Um Ramo
4 Estrutura de Decisao de Dois Ramos
5 Aninhamento de Blocos
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 13 / 27
Estrutura de Decisao de Dois Ramos
Verifica a condição
Executa passosapós condição
verdadeira falsa
Executa sequênciaalternativa de passos
Executa sequênciade passos
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 14 / 27
Sintaxe da Estrutura de Decisao de Dois Ramos
Sintaxe:se <expressao logica> entao
<bloco de passos>;senao
<bloco alternativo de passos>;fim
se, entao, senao e fim sao palavras reservadas.Primeiro bloco de passos e obrigatorio.
I Passos a serem executados caso a expressao logica retorne verdadeiro.Segundo bloco (alternativo) e opcional, tornando-se uma estrutura de decisao de um ramo.
I Passos a serem executados caso a expressao logica retorne falso.I Representa os passos para o “caso contrario”.
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 15 / 27
Exemplo de Estrutura de Decisao de Dois Ramos
Deseja-se obter um numero e escrever se ele e maior ou igual a 10 ou se e menor que 10.
Algoritmo 3: Exemplo de uma decisao de dois ramos.1 inıcio2 real: N;
3 leia N;4 se N >= 10 entao5 escreva N, “e maior ou igual a 10”;6 senao7 escreva N, “e menor que 10”;8 fim9 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 16 / 27
Exemplo de Estrutura de Decisao de Dois Ramos
Deseja-se obter um numero e escrever se ele e maior ou igual a 10 ou se e menor que 10.
Algoritmo 3: Exemplo de uma decisao de dois ramos.1 inıcio2 real: N;
3 leia N;4 se N >= 10 entao5 escreva N, “e maior ou igual a 10”;6 senao7 escreva N, “e menor que 10”;8 fim9 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 16 / 27
Exemplo de Estrutura de Decisao de Dois Ramos (II)Deseja-se obter dois numeros e escrever o resultado da divisao entre eles.
I Lembrar que o numero do denominador deve ser diferente de 0.
Algoritmo 4: Outro exemplo de uma decisao de dois ramos.1 inıcio2 real: N1, N2, resultado;
3 leia N1, N2;4 se N2 != 0 entao5 resultado ← N1/N2;6 escreva “O resultado da divisao e:”, resultado;7 senao8 escreva “Denominador e 0.“;9 escreva “Nao e possıvel calcular a divisao.”;
10 fim11 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 17 / 27
Exemplo de Estrutura de Decisao de Dois Ramos (II)Deseja-se obter dois numeros e escrever o resultado da divisao entre eles.
I Lembrar que o numero do denominador deve ser diferente de 0.
Algoritmo 4: Outro exemplo de uma decisao de dois ramos.1 inıcio2 real: N1, N2, resultado;
3 leia N1, N2;4 se N2 != 0 entao5 resultado ← N1/N2;6 escreva “O resultado da divisao e:”, resultado;7 senao8 escreva “Denominador e 0.“;9 escreva “Nao e possıvel calcular a divisao.”;
10 fim11 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 17 / 27
Exemplo de Estrutura de Decisao de Dois Ramos (II)Deseja-se obter dois numeros e escrever o resultado da divisao entre eles.
I Lembrar que o numero do denominador deve ser diferente de 0.
Algoritmo 4: Outro exemplo de uma decisao de dois ramos.1 inıcio2 real: N1, N2, resultado;
3 leia N1, N2;4 se N2 != 0 entao5 resultado ← N1/N2;6 escreva “O resultado da divisao e:”, resultado;7 senao8 escreva “Denominador e 0.“;9 escreva “Nao e possıvel calcular a divisao.”;
10 fim11 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 17 / 27
Agenda
1 Revisao e Contexto
2 Estrutura de Decisao
3 Estrutura de Decisao de Um Ramo
4 Estrutura de Decisao de Dois Ramos
5 Aninhamento de Blocos
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 18 / 27
Aninhamento de Estruturas de Controle
Dentro de cada bloco de passos de uma estrutura de controle,podemos ter qualquer tipo de passo.
I Inclusive uma nova estrutura de decisao.Quando inserimos novas estruturas de controle dentro de outraestrutura de controle, temos um aninhamento de blocos.
I Temos nıveis de aninhamento diferentes.I Blocos internos e externos.
Nív
el 1
Nív
el 2
Nív
el 3
Nív
el 4
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 19 / 27
Aninhamento de Estruturas de Controle de Decisao1 se <condicao 1> entao2 se <condicao 2> entao3 se <condicao 3> entao4 <bloco 3>5 senao6 <bloco 4>7 fim8 senao9 se <condicao 5> entao
10 <bloco 5>11 fim12 fim13 senao14 se <condicao 6> entao15 <bloco 6>16 senao17 <bloco 7>18 fim19 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 20 / 27
Aninhamento de Estruturas de Controle de Decisao (II)
Para fazer um aninhamento corretamente.I Deve-se colocar a estrutura aninhada completamente dentro do bloco da estrutura de nıvel
imediatamente acima.I O estrutura aninhada pode estar dentro do bloco se entao ou senao.I Checar o fim:
F todo se entao ou se entao senao devem apresentar um fim.Dicas:
I utilizar a identacao (espaco para a margem da esquerda);I utilizar uma linha que vai do inıcio ate o fim de um bloco.
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 21 / 27
Exemplo 1: Aninhamento de Estrutura de Decisao
Fazer um algoritmo que leia tres valores inteiros, determine e imprima o menor deles.
1 inıcio2 inteiro: a, b, c, menor;
3 leia a, b, c;4 escreva menor;5 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 22 / 27
Exemplo 1: Aninhamento de Estrutura de Decisao
Fazer um algoritmo que leia tres valores inteiros, determine e imprima o menor deles.
1 inıcio2 inteiro: a, b, c, menor;
3 leia a, b, c;4 Determinar o menor valor entre a, b e c;5 escreva menor;6 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 22 / 27
Exemplo 1: Aninhamento de Estrutura de Decisao
Fazer um algoritmo que leia tres valores inteiros, determine e imprima o menor deles.
1 inıcio2 inteiro: a, b, c, menor;
3 leia a, b, c;4 se a < b e a < c entao5 menor ← a;6 senao7 Determinar o menor valor entre b e c;8 fim9 escreva menor;
10 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 22 / 27
Exemplo 1: Aninhamento de Estrutura de Decisao
Fazer um algoritmo que leia tres valores inteiros, determine e imprima o menor deles.
1 inıcio2 inteiro: a, b, c, menor;
3 leia a, b, c;4 se a < b e a < c entao5 menor ← a;6 senao7 se b < c entao8 menor ← b;9 senao
10 menor ← c;11 fim12 fim13 escreva menor;14 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 22 / 27
Exemplo 1: Aninhamento de Estrutura de Decisao
Fazer um algoritmo que leia tres valores inteiros, determine e imprima o menor deles.
1 inıcio2 inteiro: a, b, c, menor;
3 leia a, b, c;4 se a < b e a < c entao5 menor ← a;6 senao7 se b < c entao8 menor ← b;9 senao
10 menor ← c;11 fim12 fim13 escreva menor;14 fim
1 inıcio2 inteiro: a, b, c, menor;
3 leia a, b, c;4 menor ← a;5 se b < menor entao6 menor ← b;7 se c < menor entao8 menor ← c;9 fim
10 fim11 escreva menor;12 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 22 / 27
Exemplo 2: Aninhamento de Estrutura de Decisao
Dados tres valores inteiros X, Y, Z, verificar se eles podem ser os comprimentos dos ladosde um triangulo e, se forem, verificar se e um triangulo equilatero, isosceles ou escaleno. Seeles nao formarem um triangulo, escrever uma mensagem.
I Sabe-se que o comprimento de cada lado de um triangulo e menor do que a soma doscomprimentos dos outros dois lados.
Solucao:I Entrada: X, Y e Z (inteiros).I Saıda: mensagem indicando se triangulo e equilatero, isosceles, escaleno ou inexistente.I Acoes:
1 ler a entrada;2 verificar se o comprimento de cada lado do triangulo e menor que a soma dos comprimentos dos
outros dois lados;3 Se for, verificar se e equilatero, isosceles ou escaleno;4 Caso contrario, indicar que o triangulo e inexistente.
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 23 / 27
Exemplo 2: Aninhamento de Estrutura de Decisao
Dados tres valores inteiros X, Y, Z, verificar se eles podem ser os comprimentos dos ladosde um triangulo e, se forem, verificar se e um triangulo equilatero, isosceles ou escaleno. Seeles nao formarem um triangulo, escrever uma mensagem.
I Sabe-se que o comprimento de cada lado de um triangulo e menor do que a soma doscomprimentos dos outros dois lados.
Solucao:I Entrada: X, Y e Z (inteiros).I Saıda: mensagem indicando se triangulo e equilatero, isosceles, escaleno ou inexistente.I Acoes:
1 ler a entrada;2 verificar se o comprimento de cada lado do triangulo e menor que a soma dos comprimentos dos
outros dois lados;3 Se for, verificar se e equilatero, isosceles ou escaleno;4 Caso contrario, indicar que o triangulo e inexistente.
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 23 / 27
Exemplo 2: Aninhamento de Estrutura de Decisao (II)
1 inıcio2 inteiro: X, Y, Z;
3 leia X, Y, Z;4 se (X < Y + Z ) e (Y < X + Z ) e (Z < X + Y ) entao5 Verificar o tipo de triangulo;6 senao7 escreva “O triangulo nao existe!”;8 fim9 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 24 / 27
Exemplo 2: Aninhamento de Estrutura de Decisao (II)
1 inıcio2 inteiro: X, Y, Z;
3 leia X, Y, Z;4 se (X < Y + Z ) e (Y < X + Z ) e (Z < X + Y ) entao5 se (X = Y ) e (X = Z ) entao6 escreva “Triangulo equilatero.”;7 senao8 Verificar se o triangulo e escaleno ou isosceles;9 fim
10 senao11 escreva “O triangulo nao existe!”;12 fim13 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 24 / 27
Exemplo 2: Aninhamento de Estrutura de Decisao (II)
1 inıcio2 inteiro: X, Y, Z;
3 leia X, Y, Z;4 se (X < Y + Z ) e (Y < X + Z ) e (Z < X + Y ) entao5 se (X = Y ) e (X = Z ) entao6 escreva “Triangulo equilatero.”;7 senao8 se (X 6= Y ) e (X 6= Z ) e (Y 6= Z ) entao9 escreva “Triangulo escaleno.”;
10 senao11 escreva “Triangulo isosceles.”;12 fim13 fim14 senao15 escreva “O triangulo nao existe!”;16 fim17 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 24 / 27
Exemplo 3: Aninhamento de Estrutura de Decisao
Dados tres valores inteiros, coloca-los em ordem crescente.
Solucao:I Entrada: tres valores inteiros.I Saıda: os tres valores na ordem crescente.I Ideia:
F 3 variaveis, A, B e C.F A devera possuir o menor valor;F B devera possuir o segundo menor valor; eF C devera possuir o maior valor.F Vamos, entao, realizar trocas entre os valores das variaveis.
I Acoes:1 ler os tres valores em A, B e C;2 Verificar, entre os tres, qual o menor valor e coloca-lo em A, se necessario;3 Entre os dois restantes, verificar qual o menor e troca-los, se necessario.4 Escrever os valores na ordem A, B e C.
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 25 / 27
Exemplo 3: Aninhamento de Estrutura de Decisao
Dados tres valores inteiros, coloca-los em ordem crescente.Solucao:
I Entrada: tres valores inteiros.I Saıda: os tres valores na ordem crescente.I Ideia:
F 3 variaveis, A, B e C.F A devera possuir o menor valor;F B devera possuir o segundo menor valor; eF C devera possuir o maior valor.F Vamos, entao, realizar trocas entre os valores das variaveis.
I Acoes:1 ler os tres valores em A, B e C;2 Verificar, entre os tres, qual o menor valor e coloca-lo em A, se necessario;3 Entre os dois restantes, verificar qual o menor e troca-los, se necessario.4 Escrever os valores na ordem A, B e C.
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 25 / 27
Exemplo 3: Aninhamento de Estrutura de Decisao (II)
1 inıcio2 inteiro: A, B, C;
3 leia A, B, C;4 se C < A ou C < B entao5 se B < C entao6 troca A e B;7 senao8 troca A e C;9 fim
10 fim
11 se C < B entao12 troca B e C;13 fim14 escreva A, B, C;15 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 26 / 27
Exemplo 3: Aninhamento de Estrutura de Decisao (II)
1 inıcio2 inteiro: A, B, C, auxiliar;
3 leia A, B, C;4 se C < A ou C < B entao5 se B < C entao6 auxiliar ← A;7 A ← B;8 B ← auxiliar;9 senao
10 auxiliar ← A;11 A ← C;12 C ← auxiliar;13 fim14 fim
15 se C < B entao16 auxiliar ← B;17 B ← C;18 C ← auxiliar;19 fim20 escreva A, B, C;21 fim
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 26 / 27
Exercıcios
1 Elabore um algoritmo que le um string que representa uma senha, verifica se a senha estacorreta ou nao, informando “Acesso autorizado” ou “Acesso negado”, conforme o caso.
2 Escreva um algoritmo em pseudocodigo que escreva se um numero e divisıvel pelo outro.3 Escreva um algoritmo que leia um valor e verifique se ele encontra-se no intervalo (5, 20].4 Escreva um algoritmo em pseudocodigo que indique o maior valor entre 3 numeros e o
escreva.5 Faca um algoritmo que leia tres notas de um aluno e calcule a media final deste aluno. Se
a nota obtida for maior ou igual a 6,0, indique que o aluno foi aprovado; se estiver nointervalo [4; 6, 0), VS e menor que 4 reprovado.
Fernanda Passos (UFF) Estrutura de Decisao Programacao de Computadores IV 27 / 27