SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Aula 06
Decisão por seleção
Vetores
Ênio Prates Vasconcelos Filho
Faculdades Alfa
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tópicos
Δ Decisão por seleção:
Δ Vetores;
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Estruturas Condicionais
Δ Até o momento, já estudamos as seguintes estruturas de decisão:
• Desvio Condicional Simples
se (condição) então
//instruções
senão
//instruções
fim_se
• Desvio Condicional Encadeado
se (condição) então
//instruções
senão
se (condição) então
//instruções
senão
//instruções
fim_se
fim_se
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Comando de seleção múltipla
Δ Em algumas situações é necessário termos várias soluções ligadas a
repostas diferentes;
Δ O comando se...então nos permite implementar tais situações, porém de
forma limitada e, em alguns casos, ineficiente:
• Imagine implementar 100 estruturas do tipo se para 100 condições
diferentes!
• Tal comando obriga o programador a escrever várias linhas de código;
Δ A tomada de decisão por seleção é uma alternativa mais rápida ao uso de
tomadas de decisão sequenciais ou encadeadas;
Δ Essa estrutura lógica de condição é útil e pode ser usada em situações em
que se possui um grande número de verificações lógicas a serem realizadas,
tanto de forma sequencial quanto de forma encadeada;
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Comando de seleção múltipla
Δ Diagrama:
• após a verificação de cada condição da estrutura
de decisão por seleção ocorre o desvio do fluxo
para a ação prevista;
• Após a ação prevista, o fluxo do programa é
desviado para o único conector existente em
toda a estrutura;
• Se a primeira condição (CONDIÇÃO 1) do
primeiro simbolo de decisão possuir resultado
lógico verdadeiro, são executadas as instruções
indicadas pela linha sinalizada com a letra S.
• Após a efetivação das instruções o fluxo do
programa é desviado para o conector que dá
continuidade à execução.
• O mesmo raciocínio aplicado á primeira condição
se aplica às demais condições previstas no bloco;
• Se uma das condições gerar resultado lógico
falso, o fluxo do programa é desviado pela linha
sinalizada pelo rótulo N para a próxima condição
de avaliação;
• Se nenhuma das condições for satisfeita,
executa-se a Ação para nenhuma condição
Satisfeita.
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Comando de seleção múltipla
Δ Estrutura Padrão caso/seja...faça;
caso <variável>
seja <opção 1> faça
//instruções para condição 1 verdadeira
seja <opção 2> faça
//instruções para condição 2 verdadeira
seja <opção 3> faça
//instruções para condição 3 verdadeira
senao
//instruções para nenhuma condição verdadeira
fim_caso
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Comando de seleção múltipla
Δ As palavras reservadas caso e fim_caso delimitam a região que fará a
seleção múltipla;
Δ O comando caso seleciona uma expressão ou variável para ser comparada
com os valores especificados nos comandos seja;
Δ O comando caso tem o funcionamento similar ao comando se, visto
anteriormente;
Δ A diferença principal fica pela maior facilidade em montar soluções de
múltiplas escolhas dentro do algoritmo;
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Comando de seleção múltipla
Δ Exemplo:
programa exemplo_caso
var sexo: caractere
inicio
escreval(“Digite seu sexo (M ou F)”)
leia(sexo)
caso(sexo)
seja (“M”)
escreval(“O usuário é Homem”)
seja (“F”)
escreval(“O usuário é Mulher”)
senao
escreval(“caractere inválido”)
fim_caso
fim
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Comando de seleção múltipla
Δ Exemplo 2:
programa menor_idade
var idade: inteiro
inicio
escreval(“Digite sua idade:”)
leia (idade)
caso(idade)
seja 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
escreval(“Menor de idade”)
senao
escreval(“Maior de idade”)
fim_caso
fim
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo – Resolução de problemas
Δ Desenvolver um programa de computador que leia um valor numérico inteiro entre os valores 1 e 12 e
apresente por extenso o nome do mês correspondente ao valor entrado. Caso sejam fornecidos valores
menores que 1 e maiores que 12, o programa deve apresentar a mensagem "Valor inválido“;
Δ Solução
1. Efetuar a leitura de um valor numérico
inteiro (variável MÊS).
2. Se a variável MÊS for igual a 1, apresentar a
mensagem" Janeiro".
3. Se a variável MÊS for igual a 2, apresentar a
mensagem "Fevereiro".
4. Se a variável MÊS for igual a 3, apresentar a
mensagem "Março".
5. Se a variável MÊS for igual a 4, apresentar a
mensagem "Abril".
6. Se a variável MÊS for igual a 5, apresentar a
mensagem "Maio".
7. Se a variável MÊS for igual a 6, apresentar a
mensagem" Junho”.
8. Se a variável MÊS for igual a 7, apresentar a
mensagem "Julho",
9. Se a variável MÊS for igual a 8, apresentar a
mensagem "Agosto",
10. Se a variável MÊS for igual a 9, apresentar a
mensagem "Setembro".
11. Se a variável MÊS for iguat a 10, apresentar a
mensagem "Outubro",
12. Se a variável MÊS for igual a 11, apresentar a
mensagem “Novembro".
13. Se a variável MÊS for igual a 12, apresentar a
mensagem “Dezembro".
14. Se a variável MÊS for menor que 1 ou maior que 12,
apresentar a mensagem "Valor inválido".
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo – Resolução de problemas
Δ Desenvolver um programa de computador que leia um valor numérico inteiro entre os valores 1 e 12 e
apresente por extenso o nome do mês correspondente ao valor entrado. Caso sejam fornecidos valores
menores que 1 e maiores que 12, o programa deve apresentar a mensagem "Valor inválido“;
Δ Solução
programa mes
var
mes: inteiro
inicio
escreval ("Digite o No do Mês")
leia(mes)
caso(mes)
seja (1) faca
escreval ("Janeiro")
seja (2) faca
escreval ("Fevereiro")
seja (3) faca
escreval ("Março")
seja (4) faca
escreval ("Abril")
seja (5) faca
escreval ("Maio")
seja (6) faca
escreval ("Junho")
seja (7) faca
escreval ("Julho")
seja (8) faca
escreval ("Agosto")
seja (9) faca
escreval ("Setembro")
seja (10) faca
escreval ("Outubro")
seja (11) faca
escreval ("Novembro")
seja (12) faca
escreval ("Dezembro")
senao
escreval ("Algarismo inválido")
fim_caso
Fim
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Comando de seleção múltipla
Δ Limitações:
• A instrução caso/seja ...faça/senão/fim_caso é útil apenas nos casos em que
há tomadas de decisão sequenciais ou encadeadas utilizando as ações
previstas com o operador relacional "igual a“;
• Outro detalhe importante é que o comando senão na estrutura de tomada de
decisão por seleção é opcional.
• Ele pode ser omitido quando não se desejar deixar definida uma ação quando
as condições gerais não forem satisfeitas;
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para vocês
1. Faça um algoritmo que lê um número de 1 a 7 e informa o dia da semana
correspondente, sendo domingo o número 1. Caso o número não
corresponder a um dia da semana, é exibida uma mensagem de erro;
2. Faça um algoritmo (utilizando o comando caso) que, baseado no código
digitado pelo usuário, retorne o nome e valor do produto.
• Sabendo que
o001 – Parafuso (R$ 0,15)
o002 – Porca (R$ 0,05)
o003 – Prego (R$ 0,10)
o004 – Martelo (R$ 40,00)
o005 – Tomada (R$ 3,00)
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para Vocês
3. Faça um algoritmo que receba dois números, um operador matemático (+,-,*,/)
e efetue o cálculo matemático baseado no operador digitado. O resultado
deverá ser exibido em seguida. Utilize o comando caso.
• Exemplo:
Caso “+”
resultado <- valor1 + valor2
Caso “-”
...
4. Elabore um algoritmo que, dada a idade válida de um nadador, classifique-o
em uma das categorias abaixo. Ao final, exiba a idade digitada, a categoria e
verifique se o usuário quer digitar outra idade:
• Não aceito: 0 a 4 anos
• Infantil: 5 a 10 anos
• Juvenil: 11 a 17 anos
• Sênior: 18 a 20 anos
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Vetores (arrays)
Δ Até agora as variáveis comuns serviram bem aos nossos propósitos, mas há
situações em que precisamos armazenar muitos dados de um mesmo tipo
em nossos programas.
Δ Exemplo:
• "Tenho uma equipe de vendas com 10 integrantes e gostaria de poder digitar
o nome do vendedor e o valor das vendas mensais do mesmo. Ao final, o
programa deve apresentar o nome e o valor calculado da comissão de cada
vendedor, que é de 10%.".
Δ Como resolver esse problema?
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Vetores (arrays)
Δ Este é um caso típico de uso de vetores (arrays), pois somente com
variáveis, precisaríamos ter uma variável para cada vendedor e uma
variável para cada valor de venda:
var
vendedor_1, vendedor_2, vendedor_3, ..., vendedor_n: caractere
vendas_1, vendas_2, vendas_3, ..., vendas_n: Real
inicio
escreva (“Digite o nome do primeiro vendedor”)
leia (vendedor_1)
escreva (“Digite o valor das vendas desse vendedor.”)
leia (vendas_1)
escreva (“Digite o nome do segundo vendedor”)
leia (“vendedor_2”)
escreva (“Digite o valor das vendas desse vendedor.”)
leia (vendas_2)
. . .
escreva (“Vendedor “, vendedor_1, “ comissão: “ , comissao_1)
escreva (“Vendedor “, vendedor_1, “ comissão: “ , comissao_1)
. . .
fim
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Vetores (arrays)
Δ Veja que se tivéssemos 20 vendedores teríamos que ter 40 variáveis.
Δ Além do fato que teríamos que ficar repetindo as solicitações dos nomes e valores
durante muitas linhas de código.
Δ Vejamos um desenho simbolizando um vetor:
Δ Na figura acima vemos uma representação de um vetor armazenado na memória do
computador. Esse vetor tem 4 posições, que são chamadas índices. Podemos notar que
os índices de vetores começam em 1 e vão aumentando progressivamente de acordo
com o tamanho do mesmo.
Δ O índice é como se fosse uma "etiqueta" através da qual podemos acessar uma
determinada posição do vetor. Por exemplo, vemos que no índice 1 temos o valor 10, no
índice 2, no índice o valor 32 e assim por diante.
Δ Mas o vetor inteiro, com todos os dados pode ser atribuído a somente uma variável,
dando um nome para o mesmo.
Memória
Índice = 1
Valor = 10
Índice = 2
Valor = 32
Índice = 3
Valor = 8
Índice = 4
Valor = 17
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Vetores (arrays)
Δ Se precisarmos acessar algum valor do vetor, utilizamos o seu índice dentro
de colchetes []. Digamos que tivéssemos definido o nome vet_num e se
quiséssemos mostrar o conteúdo do vetor na segunda posição, poderíamos
declarar:
escreval (vet_num[2])
Δ O resultado apresentado seria 32, que é o conteúdo do vetor no índice 2.
Δ Para atribuir um valor a uma determinada posição do vetor, também
utilizamos o índice:
vet_num[4]<-15
Vet_num[1]<-50
Δ O vetor agora teria os valores:
Memória
Índice = 1
Valor = 50
Índice = 2
Valor = 32
Índice = 3
Valor = 8
Índice = 4
Valor = 15
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Formalizando Vetores (array)
Δ Um vetor existirá obedecendo sempre ao mesmo tipo de dado, e por esta
razão é chamado de estrutura de dados homogênea;
Δ Um vetor também é chamado de matriz unidimensional;
Δ Caracteriza-se por ser definida uma única variável dimensionada com um
determinado tamanho;
Δ A dimensão de um vetor é constituída por constantes inteiras e positivas;
Δ Exemplo de declaração de um vetor de 8 posições:
• vet_num: conjunto[1..8] de inteiro
Δ Deve-se considerar que à manipulação dos elementos de um vetor ocorrera
de forma individualizada, pois não é possível efetuar a manipulação de
todos os elementos do conjunto ao mesmo tempo;
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo
Δ Utilizar matrizes unidimensionais (vetores) em uma determinada situação:
• Calcular e apresentar a média geral de uma turma de 8 alunos. A média a ser
obtida deve ser a média geral das médias de cada aluno obtida durante o ano
letivo.
Δ Solução:
• será necessário somar todas as médias e dividi-las por 8. A tabela seguinte
apresenta o número de alunos, suas notas bimestrais e respectivas médias
anuais. E da média de cada aluno que será efetuado o cálculo da média da
turma.
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo
Δ Solução: Diagrama de blocos
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo
Δ Algoritmo:
programa MEDIA_TURMA
var
MD : conjunto [ 1 . . 8 ] de real
SOMA, MÉDIA : real
I : inteiro
início
SOMA <- 0
I<-1
para I de 1 até 8 passo 1 faca
leia (MD[I])
SOMA <- SOMA + MD [ I]
fim_para
MEDIA <- SOMA / 8
escreval (MEDIA)
fim
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo 2
Δ Vamos agora ler os dados de um vetor:
programa MEDIA_TURMA
var
MD : conjunto [1 . . 8] de real
SOMA , MÉDIA : real
i : inteiro
inicio
SOMA <- O
i<-1
para i de 1 até 8 passo 1 faça
leia (MD[i])
SOMA <-SOMA + MD [i]
fim_para
MÉDIA <- SOMA / 8
i<-1
para i de 1 até 8 passo 1 faça
escreva MD [i]
fim_para
escreva MÉDIA
fim
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo
Δ Desenvolver um programa que leia cinco elementos numéricos inteiros de
uma matriz A do tipo vetor. No final, apresentar o total da soma de todos
os elementos da matriz A que sejam pares.
Δ Solução:
Δ CUIDADO: Não confundir índice com elemento da matriz!
Δ Algoritmo:
1. Iniciar o contador de índice, variável i como 1, estendendo essa contagem
até 5.
2. Ler os cinco valores, um a um.
3. Verificar se o elemento é par. Se sim, efetuar a soma dos elementos.
4. Apresentar o tolal de todos os elementos pares da matriz.
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo
programa ELEMENTO_PAR
var
A: conjunto [ 1 . . 5] de inteiro
R, i, SOMA: inteiro
início
SOMA <- 0
i<=1
para i de 1 até 5 passo 1 faça
leia (A[i])
fim_para
i<=1
para i de 1 ate 5 passo 1 faça
R <- (A[i] % 2 )
se (R=0) então
SOMA <- SOMA + A [I]
fim_se
fim_para
escreval (SOMA)
fim
D
E
C
I
S
Ã
O
P
O
R
S
E
L
E
Ç
Ã
O
E
V
E
T
O
R
E
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para Vocês
Δ Leia 10 elementos inseridos pelo usuário e apresente-os, usando vetores;
Δ Ler 8 elementos em um vetor A. Construir um vetor B com os elementos da
matriz A multiplicados por 3.
• O elemento B[1] deverá ser implicado pelo elemento A[1 ]*3;
• O elemento B[2] implicado pelo elemento A[2]*3 e assim por diante, até 8.
• Apresentar o vetor B.
Δ Ler 15 elementos de uma matriz A do tipo vetor. Construir uma matriz B de
mesmo tipo, observando a seguinte lei de formação: "Todo elemento de B
deverá ser o quadrado do elemento de A correspondente". Apresentar as
matrizes A e B.
Δ Criar um programa que efetue a leitura dos nomes de 20 pessoas e em
seguida apresentá-los na mesma ordem em que foram informados.
DÚVIDAS?
Contatos:
E-mail: enio.filho@alfa.br
Skype: eniopvf
Twitter: eniopvf
Bibliografia:
• MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para
desenvolvimento de programação de computadores. 18ª. ed. São Paulo: Érica, 2006. 236 p. ISBN
857194718;
• FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção
de algoritmos e estruturas de dados. 3ª. ed. São Paulo (SP): Pearson Prentice Hall, 2005. 195 p. ISBN
9788576050247;

Mais conteúdo relacionado

Semelhante a Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf

2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão
2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão
2019-2 - Algoritmos - Aula 06 A - Tomada de DecisãoRodrigo Kiyoshi Saito
 
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
LabMM3 - Aula teórica 06
LabMM3 - Aula teórica 06LabMM3 - Aula teórica 06
LabMM3 - Aula teórica 06Carlos Santos
 
Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdfAlgoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdfEnio Filho
 
Primeira aula sp1
Primeira aula sp1Primeira aula sp1
Primeira aula sp1gastaovalle
 
Aula02 condicionais
Aula02   condicionaisAula02   condicionais
Aula02 condicionaisYuri Passos
 
Tabela verdade e desvio condicional
Tabela verdade e desvio condicionalTabela verdade e desvio condicional
Tabela verdade e desvio condicionaladrianaalme
 
Linguagem C/C++: Condições ou expressões lógicas
Linguagem C/C++:  Condições ou expressões lógicasLinguagem C/C++:  Condições ou expressões lógicas
Linguagem C/C++: Condições ou expressões lógicasnataferraz
 
Conceitos e técnicas de programação aula 4
Conceitos e técnicas de programação aula 4Conceitos e técnicas de programação aula 4
Conceitos e técnicas de programação aula 4Robson Ferreira
 

Semelhante a Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf (13)

2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão
2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão
2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão
 
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Lógica de programação
Lógica de programaçãoLógica de programação
Lógica de programação
 
LabMM3 - Aula teórica 06
LabMM3 - Aula teórica 06LabMM3 - Aula teórica 06
LabMM3 - Aula teórica 06
 
Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdfAlgoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
 
Primeira aula sp1
Primeira aula sp1Primeira aula sp1
Primeira aula sp1
 
Aula02 condicionais
Aula02   condicionaisAula02   condicionais
Aula02 condicionais
 
Tabela verdade e desvio condicional
Tabela verdade e desvio condicionalTabela verdade e desvio condicional
Tabela verdade e desvio condicional
 
Cap3 icc final
Cap3 icc finalCap3 icc final
Cap3 icc final
 
Linguagem C/C++: Condições ou expressões lógicas
Linguagem C/C++:  Condições ou expressões lógicasLinguagem C/C++:  Condições ou expressões lógicas
Linguagem C/C++: Condições ou expressões lógicas
 
Conceitos e técnicas de programação aula 4
Conceitos e técnicas de programação aula 4Conceitos e técnicas de programação aula 4
Conceitos e técnicas de programação aula 4
 
Exercicios
ExerciciosExercicios
Exercicios
 
ptt
pttptt
ptt
 

Mais de Enio Filho

Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdfAlgoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdfEnio Filho
 
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfEnio Filho
 
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdfAlgoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdfEnio Filho
 
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdfAlgoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdfEnio Filho
 
Eica 2016.1 - Identificando e rastreando itens na era do IOT
Eica 2016.1 - Identificando e rastreando itens na era do IOTEica 2016.1 - Identificando e rastreando itens na era do IOT
Eica 2016.1 - Identificando e rastreando itens na era do IOTEnio Filho
 
Eica 2015.2 - Introdução ao IOT
Eica 2015.2 - Introdução ao IOTEica 2015.2 - Introdução ao IOT
Eica 2015.2 - Introdução ao IOTEnio Filho
 
Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0Enio Filho
 
Iot - identificando e rastreando - PUC
Iot  - identificando e rastreando - PUCIot  - identificando e rastreando - PUC
Iot - identificando e rastreando - PUCEnio Filho
 

Mais de Enio Filho (8)

Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdfAlgoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
 
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
 
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdfAlgoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
 
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdfAlgoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
 
Eica 2016.1 - Identificando e rastreando itens na era do IOT
Eica 2016.1 - Identificando e rastreando itens na era do IOTEica 2016.1 - Identificando e rastreando itens na era do IOT
Eica 2016.1 - Identificando e rastreando itens na era do IOT
 
Eica 2015.2 - Introdução ao IOT
Eica 2015.2 - Introdução ao IOTEica 2015.2 - Introdução ao IOT
Eica 2015.2 - Introdução ao IOT
 
Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0
 
Iot - identificando e rastreando - PUC
Iot  - identificando e rastreando - PUCIot  - identificando e rastreando - PUC
Iot - identificando e rastreando - PUC
 

Último

matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 

Último (20)

matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 

Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf

  • 1. Aula 06 Decisão por seleção Vetores Ênio Prates Vasconcelos Filho Faculdades Alfa
  • 2. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Tópicos Δ Decisão por seleção: Δ Vetores;
  • 3. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Estruturas Condicionais Δ Até o momento, já estudamos as seguintes estruturas de decisão: • Desvio Condicional Simples se (condição) então //instruções senão //instruções fim_se • Desvio Condicional Encadeado se (condição) então //instruções senão se (condição) então //instruções senão //instruções fim_se fim_se
  • 4. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Comando de seleção múltipla Δ Em algumas situações é necessário termos várias soluções ligadas a repostas diferentes; Δ O comando se...então nos permite implementar tais situações, porém de forma limitada e, em alguns casos, ineficiente: • Imagine implementar 100 estruturas do tipo se para 100 condições diferentes! • Tal comando obriga o programador a escrever várias linhas de código; Δ A tomada de decisão por seleção é uma alternativa mais rápida ao uso de tomadas de decisão sequenciais ou encadeadas; Δ Essa estrutura lógica de condição é útil e pode ser usada em situações em que se possui um grande número de verificações lógicas a serem realizadas, tanto de forma sequencial quanto de forma encadeada;
  • 5. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Comando de seleção múltipla Δ Diagrama: • após a verificação de cada condição da estrutura de decisão por seleção ocorre o desvio do fluxo para a ação prevista; • Após a ação prevista, o fluxo do programa é desviado para o único conector existente em toda a estrutura; • Se a primeira condição (CONDIÇÃO 1) do primeiro simbolo de decisão possuir resultado lógico verdadeiro, são executadas as instruções indicadas pela linha sinalizada com a letra S. • Após a efetivação das instruções o fluxo do programa é desviado para o conector que dá continuidade à execução. • O mesmo raciocínio aplicado á primeira condição se aplica às demais condições previstas no bloco; • Se uma das condições gerar resultado lógico falso, o fluxo do programa é desviado pela linha sinalizada pelo rótulo N para a próxima condição de avaliação; • Se nenhuma das condições for satisfeita, executa-se a Ação para nenhuma condição Satisfeita.
  • 6. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Comando de seleção múltipla Δ Estrutura Padrão caso/seja...faça; caso <variável> seja <opção 1> faça //instruções para condição 1 verdadeira seja <opção 2> faça //instruções para condição 2 verdadeira seja <opção 3> faça //instruções para condição 3 verdadeira senao //instruções para nenhuma condição verdadeira fim_caso
  • 7. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Comando de seleção múltipla Δ As palavras reservadas caso e fim_caso delimitam a região que fará a seleção múltipla; Δ O comando caso seleciona uma expressão ou variável para ser comparada com os valores especificados nos comandos seja; Δ O comando caso tem o funcionamento similar ao comando se, visto anteriormente; Δ A diferença principal fica pela maior facilidade em montar soluções de múltiplas escolhas dentro do algoritmo;
  • 8. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Comando de seleção múltipla Δ Exemplo: programa exemplo_caso var sexo: caractere inicio escreval(“Digite seu sexo (M ou F)”) leia(sexo) caso(sexo) seja (“M”) escreval(“O usuário é Homem”) seja (“F”) escreval(“O usuário é Mulher”) senao escreval(“caractere inválido”) fim_caso fim
  • 9. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Comando de seleção múltipla Δ Exemplo 2: programa menor_idade var idade: inteiro inicio escreval(“Digite sua idade:”) leia (idade) caso(idade) seja 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 escreval(“Menor de idade”) senao escreval(“Maior de idade”) fim_caso fim
  • 10. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Exemplo – Resolução de problemas Δ Desenvolver um programa de computador que leia um valor numérico inteiro entre os valores 1 e 12 e apresente por extenso o nome do mês correspondente ao valor entrado. Caso sejam fornecidos valores menores que 1 e maiores que 12, o programa deve apresentar a mensagem "Valor inválido“; Δ Solução 1. Efetuar a leitura de um valor numérico inteiro (variável MÊS). 2. Se a variável MÊS for igual a 1, apresentar a mensagem" Janeiro". 3. Se a variável MÊS for igual a 2, apresentar a mensagem "Fevereiro". 4. Se a variável MÊS for igual a 3, apresentar a mensagem "Março". 5. Se a variável MÊS for igual a 4, apresentar a mensagem "Abril". 6. Se a variável MÊS for igual a 5, apresentar a mensagem "Maio". 7. Se a variável MÊS for igual a 6, apresentar a mensagem" Junho”. 8. Se a variável MÊS for igual a 7, apresentar a mensagem "Julho", 9. Se a variável MÊS for igual a 8, apresentar a mensagem "Agosto", 10. Se a variável MÊS for igual a 9, apresentar a mensagem "Setembro". 11. Se a variável MÊS for iguat a 10, apresentar a mensagem "Outubro", 12. Se a variável MÊS for igual a 11, apresentar a mensagem “Novembro". 13. Se a variável MÊS for igual a 12, apresentar a mensagem “Dezembro". 14. Se a variável MÊS for menor que 1 ou maior que 12, apresentar a mensagem "Valor inválido".
  • 11. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Exemplo – Resolução de problemas Δ Desenvolver um programa de computador que leia um valor numérico inteiro entre os valores 1 e 12 e apresente por extenso o nome do mês correspondente ao valor entrado. Caso sejam fornecidos valores menores que 1 e maiores que 12, o programa deve apresentar a mensagem "Valor inválido“; Δ Solução programa mes var mes: inteiro inicio escreval ("Digite o No do Mês") leia(mes) caso(mes) seja (1) faca escreval ("Janeiro") seja (2) faca escreval ("Fevereiro") seja (3) faca escreval ("Março") seja (4) faca escreval ("Abril") seja (5) faca escreval ("Maio") seja (6) faca escreval ("Junho") seja (7) faca escreval ("Julho") seja (8) faca escreval ("Agosto") seja (9) faca escreval ("Setembro") seja (10) faca escreval ("Outubro") seja (11) faca escreval ("Novembro") seja (12) faca escreval ("Dezembro") senao escreval ("Algarismo inválido") fim_caso Fim
  • 12. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Comando de seleção múltipla Δ Limitações: • A instrução caso/seja ...faça/senão/fim_caso é útil apenas nos casos em que há tomadas de decisão sequenciais ou encadeadas utilizando as ações previstas com o operador relacional "igual a“; • Outro detalhe importante é que o comando senão na estrutura de tomada de decisão por seleção é opcional. • Ele pode ser omitido quando não se desejar deixar definida uma ação quando as condições gerais não forem satisfeitas;
  • 13. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Para vocês 1. Faça um algoritmo que lê um número de 1 a 7 e informa o dia da semana correspondente, sendo domingo o número 1. Caso o número não corresponder a um dia da semana, é exibida uma mensagem de erro; 2. Faça um algoritmo (utilizando o comando caso) que, baseado no código digitado pelo usuário, retorne o nome e valor do produto. • Sabendo que o001 – Parafuso (R$ 0,15) o002 – Porca (R$ 0,05) o003 – Prego (R$ 0,10) o004 – Martelo (R$ 40,00) o005 – Tomada (R$ 3,00)
  • 14. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Para Vocês 3. Faça um algoritmo que receba dois números, um operador matemático (+,-,*,/) e efetue o cálculo matemático baseado no operador digitado. O resultado deverá ser exibido em seguida. Utilize o comando caso. • Exemplo: Caso “+” resultado <- valor1 + valor2 Caso “-” ... 4. Elabore um algoritmo que, dada a idade válida de um nadador, classifique-o em uma das categorias abaixo. Ao final, exiba a idade digitada, a categoria e verifique se o usuário quer digitar outra idade: • Não aceito: 0 a 4 anos • Infantil: 5 a 10 anos • Juvenil: 11 a 17 anos • Sênior: 18 a 20 anos
  • 15. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Vetores (arrays) Δ Até agora as variáveis comuns serviram bem aos nossos propósitos, mas há situações em que precisamos armazenar muitos dados de um mesmo tipo em nossos programas. Δ Exemplo: • "Tenho uma equipe de vendas com 10 integrantes e gostaria de poder digitar o nome do vendedor e o valor das vendas mensais do mesmo. Ao final, o programa deve apresentar o nome e o valor calculado da comissão de cada vendedor, que é de 10%.". Δ Como resolver esse problema?
  • 16. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Vetores (arrays) Δ Este é um caso típico de uso de vetores (arrays), pois somente com variáveis, precisaríamos ter uma variável para cada vendedor e uma variável para cada valor de venda: var vendedor_1, vendedor_2, vendedor_3, ..., vendedor_n: caractere vendas_1, vendas_2, vendas_3, ..., vendas_n: Real inicio escreva (“Digite o nome do primeiro vendedor”) leia (vendedor_1) escreva (“Digite o valor das vendas desse vendedor.”) leia (vendas_1) escreva (“Digite o nome do segundo vendedor”) leia (“vendedor_2”) escreva (“Digite o valor das vendas desse vendedor.”) leia (vendas_2) . . . escreva (“Vendedor “, vendedor_1, “ comissão: “ , comissao_1) escreva (“Vendedor “, vendedor_1, “ comissão: “ , comissao_1) . . . fim
  • 17. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Vetores (arrays) Δ Veja que se tivéssemos 20 vendedores teríamos que ter 40 variáveis. Δ Além do fato que teríamos que ficar repetindo as solicitações dos nomes e valores durante muitas linhas de código. Δ Vejamos um desenho simbolizando um vetor: Δ Na figura acima vemos uma representação de um vetor armazenado na memória do computador. Esse vetor tem 4 posições, que são chamadas índices. Podemos notar que os índices de vetores começam em 1 e vão aumentando progressivamente de acordo com o tamanho do mesmo. Δ O índice é como se fosse uma "etiqueta" através da qual podemos acessar uma determinada posição do vetor. Por exemplo, vemos que no índice 1 temos o valor 10, no índice 2, no índice o valor 32 e assim por diante. Δ Mas o vetor inteiro, com todos os dados pode ser atribuído a somente uma variável, dando um nome para o mesmo. Memória Índice = 1 Valor = 10 Índice = 2 Valor = 32 Índice = 3 Valor = 8 Índice = 4 Valor = 17
  • 18. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Vetores (arrays) Δ Se precisarmos acessar algum valor do vetor, utilizamos o seu índice dentro de colchetes []. Digamos que tivéssemos definido o nome vet_num e se quiséssemos mostrar o conteúdo do vetor na segunda posição, poderíamos declarar: escreval (vet_num[2]) Δ O resultado apresentado seria 32, que é o conteúdo do vetor no índice 2. Δ Para atribuir um valor a uma determinada posição do vetor, também utilizamos o índice: vet_num[4]<-15 Vet_num[1]<-50 Δ O vetor agora teria os valores: Memória Índice = 1 Valor = 50 Índice = 2 Valor = 32 Índice = 3 Valor = 8 Índice = 4 Valor = 15
  • 19. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Formalizando Vetores (array) Δ Um vetor existirá obedecendo sempre ao mesmo tipo de dado, e por esta razão é chamado de estrutura de dados homogênea; Δ Um vetor também é chamado de matriz unidimensional; Δ Caracteriza-se por ser definida uma única variável dimensionada com um determinado tamanho; Δ A dimensão de um vetor é constituída por constantes inteiras e positivas; Δ Exemplo de declaração de um vetor de 8 posições: • vet_num: conjunto[1..8] de inteiro Δ Deve-se considerar que à manipulação dos elementos de um vetor ocorrera de forma individualizada, pois não é possível efetuar a manipulação de todos os elementos do conjunto ao mesmo tempo;
  • 20. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Exemplo Δ Utilizar matrizes unidimensionais (vetores) em uma determinada situação: • Calcular e apresentar a média geral de uma turma de 8 alunos. A média a ser obtida deve ser a média geral das médias de cada aluno obtida durante o ano letivo. Δ Solução: • será necessário somar todas as médias e dividi-las por 8. A tabela seguinte apresenta o número de alunos, suas notas bimestrais e respectivas médias anuais. E da média de cada aluno que será efetuado o cálculo da média da turma.
  • 21. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Exemplo Δ Solução: Diagrama de blocos
  • 22. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Exemplo Δ Algoritmo: programa MEDIA_TURMA var MD : conjunto [ 1 . . 8 ] de real SOMA, MÉDIA : real I : inteiro início SOMA <- 0 I<-1 para I de 1 até 8 passo 1 faca leia (MD[I]) SOMA <- SOMA + MD [ I] fim_para MEDIA <- SOMA / 8 escreval (MEDIA) fim
  • 23. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Exemplo 2 Δ Vamos agora ler os dados de um vetor: programa MEDIA_TURMA var MD : conjunto [1 . . 8] de real SOMA , MÉDIA : real i : inteiro inicio SOMA <- O i<-1 para i de 1 até 8 passo 1 faça leia (MD[i]) SOMA <-SOMA + MD [i] fim_para MÉDIA <- SOMA / 8 i<-1 para i de 1 até 8 passo 1 faça escreva MD [i] fim_para escreva MÉDIA fim
  • 24. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Exemplo Δ Desenvolver um programa que leia cinco elementos numéricos inteiros de uma matriz A do tipo vetor. No final, apresentar o total da soma de todos os elementos da matriz A que sejam pares. Δ Solução: Δ CUIDADO: Não confundir índice com elemento da matriz! Δ Algoritmo: 1. Iniciar o contador de índice, variável i como 1, estendendo essa contagem até 5. 2. Ler os cinco valores, um a um. 3. Verificar se o elemento é par. Se sim, efetuar a soma dos elementos. 4. Apresentar o tolal de todos os elementos pares da matriz.
  • 25. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Exemplo programa ELEMENTO_PAR var A: conjunto [ 1 . . 5] de inteiro R, i, SOMA: inteiro início SOMA <- 0 i<=1 para i de 1 até 5 passo 1 faça leia (A[i]) fim_para i<=1 para i de 1 ate 5 passo 1 faça R <- (A[i] % 2 ) se (R=0) então SOMA <- SOMA + A [I] fim_se fim_para escreval (SOMA) fim
  • 26. D E C I S Ã O P O R S E L E Ç Ã O E V E T O R E S ALGORITMOS - 02/2015 – ÊNIO FILHO Para Vocês Δ Leia 10 elementos inseridos pelo usuário e apresente-os, usando vetores; Δ Ler 8 elementos em um vetor A. Construir um vetor B com os elementos da matriz A multiplicados por 3. • O elemento B[1] deverá ser implicado pelo elemento A[1 ]*3; • O elemento B[2] implicado pelo elemento A[2]*3 e assim por diante, até 8. • Apresentar o vetor B. Δ Ler 15 elementos de uma matriz A do tipo vetor. Construir uma matriz B de mesmo tipo, observando a seguinte lei de formação: "Todo elemento de B deverá ser o quadrado do elemento de A correspondente". Apresentar as matrizes A e B. Δ Criar um programa que efetue a leitura dos nomes de 20 pessoas e em seguida apresentá-los na mesma ordem em que foram informados.
  • 27. DÚVIDAS? Contatos: E-mail: enio.filho@alfa.br Skype: eniopvf Twitter: eniopvf Bibliografia: • MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para desenvolvimento de programação de computadores. 18ª. ed. São Paulo: Érica, 2006. 236 p. ISBN 857194718; • FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção de algoritmos e estruturas de dados. 3ª. ed. São Paulo (SP): Pearson Prentice Hall, 2005. 195 p. ISBN 9788576050247;