Você está na página 1de 10

• Unidade de Ensino: Lógica de Programação

• Competência da Unidade:Construção de algoritmos e


programação e a sua importância para o universo do
Algoritmos e Lógica desenvolvimento de sistemas.

de Programação • Resumo:Trabalharemos com estruturas de


algoritmos(condicional, repetição), vetores, matrizes,
Elementos de Algoritmos registro para a solução de problemas.
• Palavras-chave: decisão, repetição, vetores, matizes
Profa Ms. Adriane Ap. Loper
Título da Teleaula: Elementos de algoritmos
• Teleaula nº: 02

Contextualização Contextualização

A Kro Engenharias é uma empresa atuante em várias Para isso, é necessário, em primeiro lugar, validar os
frentes de projetos, que vão desde a concepção até a diversos dados de entrada que alimentam os subsistemas e,
execução e entrega para seus clientes. em um segundo momento, garantir que os dados de cada
subsistema estejam em um mesmo padrão nas diversas
Diante de tamanha demanda operacional, o sistema de
unidades e setores da empresa.
gerenciamento da empresa é dividido em diversos Fonte: Shutterstock A validação e a padronização dos dados garantem que Fonte: Shutterstock

subsistemas, que contemplam desde o gerenciamento de todos os sistemas se comuniquem de modo correto e eficaz.
recursos humanos até o controle da execução e entrega Diante dessa necessidade, após você realizar um ótimo
dos projetos. trabalho no desenvolvimento do pensamento computacional
Para que tudo funcione de maneira correta, é e da lógica com os engenheiros da empresa, foi atribuída a
imprescindível que a interlocução entre cada subsistema você a tarefa de desenvolver algoritmos capazes de
fazer validações e, quando necessário, conversões nos
seja feita de forma padronizada.
dados que alimentam alguns módulos do subsistema de
cálculo.

Contextualização
Conceitos
Tais subsistemas geram relatórios para que as diversas
áreas possam tomar decisões pertinentes ao seu setor,
portanto, os dados utilizados devem ser verificados e Execução sequencial
padronizados.
A execução da sua tarefa será dividida em três e estruturas de
momentos.
decisão
Fonte: Shutterstock

Na primeira etapa, você fará validações nos dados de


entrada correspondentes às unidades de comprimento,
tempo e massa.
No segundo momento, você desenvolverá algoritmos que
convertam certas unidades de acordo com o padrão
adotado pela empresa.
E, por fim, você deverá explorar maneiras otimizadas
para o armazenamento dos dados de entrada do sistema.

1
Sua Missão Sua missão
 Desenvolver algoritmos para validar os dados de entrada
que alimentam alguns subsistemas de cálculo.  Na construção de algoritmos, podemos usar os
 Desenvolver algoritmos que validem as entradas do operadores matemáticos relacionais, por exemplo,
operador (usuário); maior (>) e menor (<), para fazer comparações.
 Esses valores tem que estar de acordo com o Sistema  Usando esses elementos, podemos comparar o peso
Internacional de Unidades (SI); do produto com um padrão estabelecido pela
 As entradas serão as unidades de comprimento, tempo e
Fonte: Shutterstock
empresa e, a partir da resposta da comparação, é Fonte: Shutterstock

massa ; possível saber se o produto está apto a ir para a loja


ou deve voltar à produção, ou ainda ser descartado.
Regras
 Como isso pode ser feito em um algoritmo?
 Para calcular o peso total de um produto (produto +
embalagem), primeiro ambos os pesos precisam ser  A resposta é simples: usando estruturas de
informados, para só depois serem somados, e então decisões!
apresentar o peso totalizado (início-processamento-
saída).

Estruturas de Decisão Estrutura condicional simples


 Estruturas de decisão “são estruturas que permitem a O losango representa uma condição, um teste.
tomada de decisão sobre qual o caminho a ser escolhido, a) Fluxograma b)Pseudocódigo
de acordo com o resultado de uma expressão lógica”
(Souza, 2013, p. 127).
 Estruturas de decisões possibilitam incluir nos algoritmos
condições de controle, ou seja, através de uma decisão
certos passos podem ou não ser feitos. Fonte: Artero(2018,pg.59) Fonte: Artero(2018,pg.59)

 Três formas fundamentais: SE-ENTAO, SE-ENTAO-


SENAO e CASO. Possui apenas um teste, e caso esse teste seja
verdadeiro, existe uma ação a ser feita, mas, caso
 Quando utilizamos uma estrutura de decisão no
contrário, o bloco dos comandos é ignorado.
algoritmo, estamos criando uma decisão binária, a lógica
Esse conjunto, 1 teste + ação caso verdadeiro, é o que
binária, pois para qualquer teste só existem duas
caracteriza a condicional simples.
possibilidades: ser verdadeiro ou ser falso.
 Normalmente atribui-se ao resultado V =1 e F=0

Estrutura condicional simples Estrutura condicional composta


Para melhor entendermos a condicional simples, vamos
escrever um algoritmo para um estabelecimento, que a) Fluxograma b)Pseudocódigo
todo dia 10 concede um desconto de 25% a seus
clientes. Portanto, se o dia do mês for 10, o desconto
será concedido, caso contrário, nenhum tratamento
especial precisa ser feito para o valor da conta. Fonte: Artero(2018, pg.60)

E AGORA???????
 Agora temos dois conjuntos de ações, um para
a)Fluxograma b)Pseudocódigo verdadeiro e outro para falso.
 No pseudocódigo usado para representar as
condicionais compostas aparece o “senão”, que marca
o início do bloco caso o teste seja falso.

2
Estrutura condicional composta Estrutura condicional composta
a) Exemplo: Vamos criar uma estrutura condicional a) Fluxograma b)Pseudocódigo
composta para o setor de qualidade de uma empresa
fabricante de processadores de computadores.
A empresa padronizou o tamanho de suas peças em 16
cm².
Portanto, cada processador, antes de ser liberado para Fonte: Artero(2018,pg.61) Fonte: Artero(2018, pg.62)

venda, passa por um controle de qualidade, e um dos


requisitos a ser verificado é o seu tamanho. O teste de qualidade para o tamanho do processador,
Caso o processador tenha o tamanho padronizado, ele é comparando valores de diferentes variáveis dentro de
liberado para venda, caso contrário, ele é descartado. uma mesma condição.

Caso Caso
Vamos escolher sanduíches do McDonald”s?
a) Fluxograma b)Pseudocódigo Se escolhermos o numero 1 :será Big Mac; 2: será Quarteirão;
3: será McChicken; 4: será CBO; Outros número será OPÇÃO
ERRADA!

Fonte: Artero(2018, pg.65)

Um teste é feito e, caso falso, faz-se o segundo teste, e


assim por diante. Caso nenhum teste resulte em
verdadeiro, existe um conjunto de comandos que será
realizado.

Com a nova padronização do formulário, você terá de


verificar no algoritmo se o usuário escolheu a opção
Resolução da SP metro e, caso não tenha escolhido, você terá de informá-
lo que a opção escolhida não é mais válida.
Medidas Para o tempo foi padronizado o segundo (s), e para
massa foi padronizado o quilograma (kg).
Formulário existente:

Fonte: Artero(2018, pg.74


)

3
Algoritmo para validar entrada de comprimento em metro Conceitos
Melhor escolha: Desvio Condicional Composto
a) Fluxograma b)Pseudocódigo
Estruturas de
repetição
Fonte: Artero(2018, pg.67)

Sua missão Sua Missão


 A empresa possui 15 carros que ficam à disposição de
seus funcionários, e ao final do dia é feito um controle  A) você fará validações nos dados de entrada das
da quantidade de quilômetros que os carros unidades de comprimento(quilômetro, metros ou
percorreram naquele dia. milhas)
 O sistema permite que os dados sejam inseridos em  B) você desenvolverá algoritmos que convertam
quilômetros, metros ou, ainda, em milhas porém o unidades de acordo com o padrão adotado pela
cálculo do controle de combustível é feito usando a empresa que é o quilômetro e Fonte: Artero(2018, pg.74)

unidade de quilômetro.  C) você deverá explorar maneiras otimizadas para o


 Portanto, caso seja armazenamento dos dados de entrada do sistema.
 escolhido metro ou  D) Vamos fazer o formulário da Kro Engenharias
 milha, seu algoritmo usado para cadastrar e gerar relatório acerca dos
 deverá fazer a gastos de combustível de cada automóvel da
 conversão dos valores empresa por dia.
 para a unidade-padrão(km). Fonte: Artero(2018, pg.74)

Estruturas de repetição Estruturas de repetição


deseja alcançar, embora algumas vezes as diferentes
 Estrutura de repetição é um elemento de algoritmo estruturas possam chegar ao mesmo resultado.
que permite escolher certos trechos de códigos para  Na repetição, um trecho será repetido enquanto o
serem executados de forma repetida. teste for verdadeiro. Quando for falso, a repetição se
 Embora seja um recurso poderoso, deve ser usado da encerra.
forma correta, senão pode causar um erro de  Certamente não é possível quantificar as repetições
execução, pois a estrutura pode entrar em uma Fonte: Artero(2018, pg.76) dos cálculos para fazer o homem chegar à lua, sem o Fonte: Artero(2018, pg.76)

repetição infinita (PIVA JUNIOR et al., 2012). uso de um sistema computacional.


 A chave para evitar esse erro é realizar um teste que  O trecho do algoritmo em repetição pode se
determinará quando a repetição deve parar. chamar laço ou loop.
 Existem três tipos de estruturas de repetição, a  Iteração é cada vez que as instruções do bloco do
escolha de qual utilizar dependerá das variáveis que loop são executadas).Ex:um algoritmo que realiza a
alimentam a estrutura de repetição, bem como do soma dos números de 1 a 100, terá um número de
resultado que se iterações pré-definido (100).

4
Estrutura de repetição com teste no início Estrutura de repetição com teste no início
 Para entendermos esse novo mecanismo, vamos escrever
 Uma condição é testada antes de o ciclo de repetição um algoritmo que soma a quantidade de horas
começar. trabalhadas por um funcionário nos quinze primeiros dias
 Caso a condição seja verdadeira, o ciclo inicia-se e só do mês.
para quando a condição não for mais verdadeira.  A variável dia inicia a execução valendo 1 (pois representa
 A repetição do bloco só será interrompida quando a o primeiro dia do mês) e em seguida o teste (dia <= 15) é
condição for falsa. feito.
a) Fluxograma b)Pseudocódigo
Fonte: Artero(2018, pg.76)
 Caso seja verdadeiro, é lido o valor da hora para aquele
determinado dia e a hora total é atualizada somando o
novo valor (horaTotal = horaTotal + hora).
 Em seguida, o dia é atualizado e a execução volta para o
teste (dia <=15).
 Nesse exemplo, a variável que controla o laço de repetição
é inicializada antes do início do teste, e para cada
Fonte: Artero(2018, pg.76)
execução do bloco a variável de controle é atualizada.

Estrutura de repetição com teste no início Estrutura de repetição com teste no final

Aqui sabemos quantas vezes será feito o teste!  O segundo tipo de estrutura de repetição é
Fluxograma b)Pseudocódigo caracterizado por fazer o teste de controle no final do
bloco de comandos.
 Nessa estrutura tem-se um bloco que inicia com o
comando “faça” e termina com o teste “enquanto”.
 Tal estrutura também é conhecida como laço
condicional pós-teste (MANZANO, 2010).
 a)Fluxograma b)Pseudocódigo

Fonte: Artero(2018, pg.79)

Fonte: Artero(2018, pg.80)

Estrutura de repetição com teste no final Estrutura de repetição com variável de controle
 Para entendermos como funciona o laço condicional com
pós teste, vamos escrever um algoritmo que calcula o  Existe ainda uma terceira estrutura de repetição com
fatorial de um número. variáveis de controle, ou ainda, laço com variável de
 O fatorial é calculado somente para os números controle.
naturais, ou seja, números inteiros e positivos.  Essa estrutura deve ser utilizada sempre que se
 Dado um número natural n, seu fatorial é o produto de conhece o início e o final das repetições, ou seja,
todos os seus antecessores até 1, representamos o sempre que se sabe quantas vezes o bloco irá se
fatorial de um número como n!. Então, fatorial de 5! é 5 repetir antes de a execução acontecer.
· 4 · 3 · 2 · 1 = 120.  a)Fluxograma b)Pseudocódigo
 a)Fluxograma b)Pseudocódigo

Fonte: Artero(2018, pg.82)


Fonte: Artero(2018, pg.81)

5
Estrutura de repetição com variável de controle Estrutura de repetição com variável de controle
 Escolhemos uma variável para controlar as repetições a) Fluxograma
um valor para marcar o início da contagem, um valor
para marcar o final da contagem de repetições e
podemos controlar como ocorre essa contagem (passo),
se será de 1 em 1, de 2 em 2...
 Primeiro é atribuído o valor zero à variável x, em seguida
é testado se o valor de x é menor que 10; se for
verdade, o valor de x será escrito e x será incrementado
em 2, e o fluxo volta ao teste de x.
 O resultado desse algoritmo seria a impressão na tela
dos valores: 0, 2, 4, 6, 8.
 Note que o valor de x altera de 2 em 2, pois esse foi o Fonte: Artero(2018, pg.83)

critério usado para o incremento da variável de controle.

Conclusão
Resolução da SP
 As três estruturas de repetição apresentadas nessa
seção compõem todas as opções que você tem para
repetir um trecho do código. Km rodados pelos 15
 É possível que diferentes estruturas cheguem no carros da Kro
mesmo resultado, então a escolha de qual usar
depende do que você possui de informação antes de
iniciar a repetição, e como a repetição pode ser mais
bem controlada.

O algoritmo escrito totaliza a quantidade de quilômetros rodados pelos 15


carros durante um dia. Conceitos

Estrutura de dados -
Fonte: Artero(2018, pg.74)
vetores

Fonte: Artero(2018, pg.87)

6
Sua missão Sua Missão
 A empresa possui 15 carros que ficam à disposição de
seus funcionários, e ao final do dia é feito um controle  A) você fará validações nos dados de entrada das
da quantidade de quilômetros que os carros unidades de comprimento(quilômetro, metros ou
percorreram naquele dia. milhas)
 O sistema permite que os dados sejam inseridos em  B) você desenvolverá algoritmos que convertam
quilômetros, metros ou, ainda, em milhas porém o unidades de acordo com o padrão adotado pela
cálculo do controle de combustível é feito usando a empresa que é o quilômetro e Fonte: Artero(2018, pg.74)

unidade de quilômetro.  C) você deverá explorar maneiras otimizadas para o


 Portanto, caso seja armazenamento dos dados de entrada do sistema.
 escolhido metro ou  D) Vamos fazer o formulário da Kro Engenharias
 milha, seu algoritmo usado para cadastrar e gerar relatório acerca dos
 deverá fazer a gastos de combustível de cada automóvel da
 conversão dos valores empresa por dia.
 para a unidade-padrão(km). Fonte: Artero(2018, pg.74)

Variáveis primitivas x Casas Variáveis compostas x Edifícios


Um edifício com cinco andares, em cada andar do edifício
Casa = 1 endereço 1 família
foi construído um único apartamento capaz de abrigar uma
Variáveis primitivas (do tipo inteiro, real, booleana= 1 variável = 1
família, portanto temos 1 endereço com 5 famílias.
valor)
As variáveis compostas são como os edifícios: em apenas
um endereço vários valores podem ser armazenados
simultaneamente.
Analogia casa x variáveis primitivas
Analogia edifícios x variáveis compostas

Fonte: Artero(2018, pg.94)

a variável x possui espaço para armazenar três valores


inteiros com índices, já a variável y possui espaço para
Fonte: Artero(2018, pg.93)
armazenar dois valores reais com índices.

Variável composta Unidimensional - VETOR


Resolução da SP
 Um vetor é uma variável composta que se divide em
apenas uma dimensão, ou seja, é como se fosse uma
tabela de uma linha e N colunas (O resultado é o Vetores
mesmo se pensarmos em um vetor como uma tabela
de N linhas e uma coluna).
 Na hora de criarmos o vetor devemos informar
apenas a quantidade de colunas que desejamos, além
disso, precisamos de apenas um índice para
identificar os elementos do vetor.
Ex.: Criar o vetor
idade de 3 pessoas:

7
Vetor
Vamos utilizar uma variável composta unidimensional para aprimorar
o algoritmo criado para a Kro Engenharias na seção anterior, Conceitos
permitindo armazenar a quilometragem de cada carro em um índice do
vetor
Estrutura de dados -
matrizes, registros e
funções

Fonte: Artero(2018, pg.96)

Sua missão Sua missão


 Para tal missão, considere o problema do
 Na Kro engenharia, você construirá diversos sistemas.
empilhamento de produtos feito pelo robô na unidade
 A validação e a padronização dos dados garantem que
1 do seu livro.
todos os sistemas se comuniquem de modo correto e
 Como uma caixa com maior peso não pode ficar
eficaz.
sobre uma com menor peso, o robô tem que
 Você tem a tarefa de desenvolver algoritmos capazes
armazenar o peso de cada caixa que está no estoque
de fazer validações e, quando necessário, conversões Fonte: Shutterstock para fazer a comparação.
nos dados que alimentam alguns módulos do Fonte: Shutterstock

 Tarefa: Escreva um algoritmo que armazene o peso,


subsistema de cálculo.
a largura e a altura de 200 caixas em uma estrutura
 Você deverá desenvolver para a Kro Engenharias um
de dados.
novo algoritmo que agrupe todas as entradas do  Sabendo que a altura do galpão do estoque onde o
mesmo assunto em uma única variável, a fim de robô trabalha é de 40 metros, complemente o
otimizar o desempenho do sistema. algoritmo para que o robô saiba quando deve parar
de empilhar.
 Vamos aprender?

Variável composta multidimensional - Matriz Vetores x Matrizes


 Uma matriz é uma variável composta que se divide em
duas dimensões, ou seja, é “uma tabela” de M linhas e
N colunas .
 Na hora de criarmos uma matriz, devemos informar a
quantidade de linhas e de colunas que desejamos,
consequentemente, precisamos de dois índices para
identificar os elementos da matriz.
 Declaração de Matriz

Fonte: Artero(2018, pg.97)

8
Matriz Matriz

Fonte: Artero(2018, pg.99)

Variável composta heterogênea - Registro Variável composta heterogênea - Registro


Para melhor entendermos, vamos criar uma variável
 Existe um tipo de variável composta que permite composta
armazenar valores de diferentes tipos dentro da heterogênea para armazenar os dados de uma ordem de
mesma estrutura, tal estrutura é conhecida como serviço de manutenção.
registro. Para cada pedido de manutenção feito na empresa é
 Utilizamos a palavra “tipo” para deixar explícito que gerado um código, a data, o valor, o equipamento, o
estamos criando um novo tipo de variável que é um departamento
registro. Esse novo tipo precisa de um nome para Fonte: Artero(2018, pg.100) e a descrição da manutenção requerida: Fonte: Artero(2018, pg.101)

identificá-lo (identificador) e um conjunto de campos Todos esses elementos podem ser


que começa a ser declarado pelo comando “registro” e agrupados em uma única variável
finaliza com “fimregistro”. Entre o início e o final do composta heterogênea, veja o
registro podemos declarar quantas variáveis (campos) algoritmo para criar esse registro.
forem necessárias. Para utilizarmos o registro criado,
 Após ser finalizado o novo tipo, basta escolher uma precisamos associá-lo a uma variável,
variável e atribuir o nome identificador do tipo criado à Nesse caso variável ordemServico o tipo Ficha_Manutencao.
variável.

Rotinas de algoritmos – Funções


 Podemos dividir os comandos de um algoritmo em Resolução da SP
sub-rotinas (funções), assim, além de organizarmos
melhor o algoritmo, dividimos os comandos em
funções específicas e evitamos repetir códigos. Matrizes, registros e
 Estrutura de sub-rotinas:
funções
Fonte: Artero(2018, pg.103)

9
Interação

Fonte: Shutterstock

Fonte: Artero(2018, pg.105)

Conceitos
Viu a importância de estrutura de dados?

Recapitulando

Fonte: https://gifer.com/en/XlOL9

 Estruturas de decisão;
 Estruturas de repetição;
 Estrutura de dados - Vetores, matrizes, registros,
funções.
Fonte: Shutterstock

10

Você também pode gostar