SlideShare uma empresa Scribd logo
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ão
Rodrigo 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 !
 
Lógica de programação
Lógica de programaçãoLógica de programação
Lógica de programação
Evaldo Savio Araujo
 
LabMM3 - Aula teórica 06
LabMM3 - Aula teórica 06LabMM3 - Aula teórica 06
LabMM3 - Aula teórica 06
Carlos 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.pdf
Enio Filho
 
Primeira aula sp1
Primeira aula sp1Primeira aula sp1
Primeira aula sp1
gastaovalle
 
Aula02 condicionais
Aula02   condicionaisAula02   condicionais
Aula02 condicionais
Yuri Passos
 
Tabela verdade e desvio condicional
Tabela verdade e desvio condicionalTabela verdade e desvio condicional
Tabela verdade e desvio condicional
adrianaalme
 
Cap3 icc final
Cap3 icc finalCap3 icc final
Cap3 icc final
Gerson Anderson
 
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
nataferraz
 
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
Robson Ferreira
 
Exercicios
ExerciciosExercicios
Exercicios
ally siqueira
 
ptt
pttptt

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.pdf
Enio 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.pdf
Enio 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.pdf
Enio 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.pdf
Enio 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 IOT
Enio 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 IOT
Enio Filho
 
Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0
Enio Filho
 
Iot - identificando e rastreando - PUC
Iot  - identificando e rastreando - PUCIot  - identificando e rastreando - PUC
Iot - identificando e rastreando - PUC
Enio 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

UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdfUFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
Manuais Formação
 
Cartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptxCartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptx
Zenir Carmen Bez Trombeta
 
A influência do comércio eletrônico no processo de gestão das livrarias e edi...
A influência do comércio eletrônico no processo de gestão das livrarias e edi...A influência do comércio eletrônico no processo de gestão das livrarias e edi...
A influência do comércio eletrônico no processo de gestão das livrarias e edi...
AntonioLobosco3
 
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptxTREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
erssstcontato
 
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIASA SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
HisrelBlog
 
Gênero Textual sobre Crônicas, 8º e 9º
Gênero Textual sobre Crônicas,  8º e  9ºGênero Textual sobre Crônicas,  8º e  9º
Gênero Textual sobre Crônicas, 8º e 9º
sjcelsorocha
 
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdf
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdfUFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdf
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdf
Manuais Formação
 
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdfUFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
Manuais Formação
 
497417426-conheca-os-principais-graficos-da-radiestesia-e-da-radionica.pdf
497417426-conheca-os-principais-graficos-da-radiestesia-e-da-radionica.pdf497417426-conheca-os-principais-graficos-da-radiestesia-e-da-radionica.pdf
497417426-conheca-os-principais-graficos-da-radiestesia-e-da-radionica.pdf
JoanaFigueira11
 
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
Manuais Formação
 
As sequências didáticas: práticas educativas
As sequências didáticas: práticas educativasAs sequências didáticas: práticas educativas
As sequências didáticas: práticas educativas
rloureiro1
 
cidadas 5° ano - ensino fundamental 2 ..
cidadas 5° ano - ensino fundamental 2 ..cidadas 5° ano - ensino fundamental 2 ..
cidadas 5° ano - ensino fundamental 2 ..
MatheusSousa716350
 
-Rudolf-Laban-e-a-teoria-do-movimento.ppt
-Rudolf-Laban-e-a-teoria-do-movimento.ppt-Rudolf-Laban-e-a-teoria-do-movimento.ppt
-Rudolf-Laban-e-a-teoria-do-movimento.ppt
fagnerlopes11
 
O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4
DouglasMoraes54
 
Exercicios de Word Básico para a aulas de informatica Basica
Exercicios de Word Básico para a aulas de informatica BasicaExercicios de Word Básico para a aulas de informatica Basica
Exercicios de Word Básico para a aulas de informatica Basica
ElinarioCosta
 
Apostila-Microbiologia-e-Parasitologia-doc.pdf
Apostila-Microbiologia-e-Parasitologia-doc.pdfApostila-Microbiologia-e-Parasitologia-doc.pdf
Apostila-Microbiologia-e-Parasitologia-doc.pdf
bmgrama
 
ATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junhoATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junho
Crisnaiara
 
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
ProfessoraTatianaT
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
Eró Cunha
 
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdfAula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Marília Pacheco
 

Último (20)

UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdfUFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
 
Cartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptxCartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptx
 
A influência do comércio eletrônico no processo de gestão das livrarias e edi...
A influência do comércio eletrônico no processo de gestão das livrarias e edi...A influência do comércio eletrônico no processo de gestão das livrarias e edi...
A influência do comércio eletrônico no processo de gestão das livrarias e edi...
 
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptxTREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
 
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIASA SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
 
Gênero Textual sobre Crônicas, 8º e 9º
Gênero Textual sobre Crônicas,  8º e  9ºGênero Textual sobre Crônicas,  8º e  9º
Gênero Textual sobre Crônicas, 8º e 9º
 
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdf
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdfUFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdf
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdf
 
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdfUFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
 
497417426-conheca-os-principais-graficos-da-radiestesia-e-da-radionica.pdf
497417426-conheca-os-principais-graficos-da-radiestesia-e-da-radionica.pdf497417426-conheca-os-principais-graficos-da-radiestesia-e-da-radionica.pdf
497417426-conheca-os-principais-graficos-da-radiestesia-e-da-radionica.pdf
 
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
 
As sequências didáticas: práticas educativas
As sequências didáticas: práticas educativasAs sequências didáticas: práticas educativas
As sequências didáticas: práticas educativas
 
cidadas 5° ano - ensino fundamental 2 ..
cidadas 5° ano - ensino fundamental 2 ..cidadas 5° ano - ensino fundamental 2 ..
cidadas 5° ano - ensino fundamental 2 ..
 
-Rudolf-Laban-e-a-teoria-do-movimento.ppt
-Rudolf-Laban-e-a-teoria-do-movimento.ppt-Rudolf-Laban-e-a-teoria-do-movimento.ppt
-Rudolf-Laban-e-a-teoria-do-movimento.ppt
 
O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4
 
Exercicios de Word Básico para a aulas de informatica Basica
Exercicios de Word Básico para a aulas de informatica BasicaExercicios de Word Básico para a aulas de informatica Basica
Exercicios de Word Básico para a aulas de informatica Basica
 
Apostila-Microbiologia-e-Parasitologia-doc.pdf
Apostila-Microbiologia-e-Parasitologia-doc.pdfApostila-Microbiologia-e-Parasitologia-doc.pdf
Apostila-Microbiologia-e-Parasitologia-doc.pdf
 
ATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junhoATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junho
 
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
 
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdfAula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdf
 

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;