LÓGICA DE PROGRAMAÇÃO
Aula 02 | Algoritmos. Descrição Narrativa. Fluxograma.
Mariela Mizota Tamada
Doutora em Ciências da Computação
Lógica de
Programação
Lógica de Programação
• Computador = máquina programável.
• Programa de computador = sequência de instruções para o
computador executar uma tarefa.
• Um conjunto de regras que organizam as instruções para se
chegar a um solução (conclusão).
Logo, a Lógica de Programação é uma forma de
“raciocínio lógico” de um computador.
Como o computador “entende” as instruções de um programa?
• Computador = máquina eletrônica digital.
• Linguagem “nativa” do computador: linguagem binária (0 e 1,
equivalentes a níveis de corrente da eletrônica digital). Basicamente
as informações são transmitidas e interpretadas pela portas lógicas
pela corrente elétrica (1) ou pela ausência dela (0).
• BIT (binary digit – dígito binário).
• BYTE : conjunto de 8 bits.
• Tabela ASCII
• Linguagem de Máquina (ou linguagem Assembly).
Como funciona um programa de computador?
Como o computador “entende” as instruções de um programa?
• Um programa de computador ou programa informático é um
conjunto de instruções que descrevem uma tarefa a ser
realizada por um computador.
• O termo pode ser uma referência ao código fonte, escrito em
alguma linguagem de programação, ou ao arquivo que contém a
forma executável deste código fonte.
Como funciona um programa?
Como o computador “entende” as instruções de um
programa?
• Um interpretador lê um programa de alto nível (chamado de
código fonte) e executa ele, ou seja, realiza as ações do programa
passo a passo, traduzindo para uma linguagem de máquina.
• Um compilador lê o programa de alto nível e traduz ele
completamente antes de executá-lo.
Fig.1: Adaptado de CELES, Introdução a estrutura de dados. 2004; p.6
Aula 01 da Bóson Treinamentos em Lógica de Programação
Apresentação e Definições (13min.)
[Link]
lutCuBplhx9aqkdd
Todos os programas (aplicações), sistemas operacionais,
linguagens de programação são um conjunto de algoritmos.
- SO Linux (escrito em linguagem C)
- Linguagem Java (escrito em linguagem C)
- Linguagem Python (escrito em ABC, sintaxe do C, expressão do Perl)
- Linguagem C (escrito em linguagem Assembly).
- Redes sociais
- Monitorar invasão da rede
- Página de compras na internet
- Banco de dados
- Sistema de operações financeiras
- Enviar um foguete
- ...
O que é um algoritmo?
MATEMÁTICA
sequência finita de regras, raciocínios ou operações que,
aplicada a um número finito de dados, permite solucionar
classes semelhantes de problemas.
INFORMÁTICA
conjunto das regras e procedimentos lógicos perfeitamente
definidos que levam à solução de um problema em um número
finito de etapas.
Origem
ETIM [Link]. algorismus, com infl. do gr. arithmós 'número'
Noções de Algoritmo
• Um algoritmo representa mais fielmente o raciocínio
envolvido na Lógica de Programação
• Abstrai detalhes computacionais
• Uma vez construído o algoritmo, pode-se traduzi-lo para
qualquer linguagem. Chama-se isto de codificação.
Noções de Algoritmo
• Uma sequencia lógica e finita de instruções que devem ser
seguidas para a resolução de um problema ou a execução de uma
tarefa.
• Três tipos de representação
• 1) Descrição Narrativa (linguagem natural)
• 2) Representação Gráfica (fluxograma)
• 3) Pseudocódigo (linguagem estruturada e assemelha-se aos
programas escritos em alto nível)
Algoritmos:
descrição narrativa
1)Descrição Narrativa de um algoritmo
Exemplo: Receita de Bolo
Misture os ingredientes;
Unte a forma com manteiga;
Despeje a mistura na forma;
Se houver coco ralado;
Então despeje sobre a
mistura
Leve a forma ao forno;
Enquanto não corar
Deixe a forma no forno
Retire do forno;
Deixe esfriar.
1)Descrição Narrativa de um algoritmo
1)Descrição Narrativa de um algoritmo
1)Descrição Narrativa de um algoritmo
E se a lâmpada nova não acender?
1)Descrição Narrativa de um algoritmo
Se a
lâmpada
nova não
acender,
o que
mudaria?
1)Descrição Narrativa de um algoritmo
Vou
repetir o
processo
de troca
até
acender
Aula 02 da Bóson Treinamentos em Lógica de Programação
Algoritmos e Fluxogramas (14min.)
[Link]
lutCuBplhx9aqkdd
Fazer um algoritmo (descrição narrativa) para as
atividades abaixo:
- Fazer um café
- Fazer um ovo frito
- Escovar os dentes
- Trocar lâmpada queimada.
- Informar a soma de 3(três) números
- Calcular a superfície de um triângulo.
Analise e descreva uma maneira de mover os discos do pino
A para o pino C, mantendo a mesma ordem. Em hipótese
nenhuma um disco maior poderá ficar sobre o menor.
Torre de Hanoi
[Link]
Algoritmo (pseudocódigo) para resolver o
problema da
Torre de Hanoi
Não precisa entender esse algoritmo. Só saber que existe uma
solução (algoritmo) para qualquer quantidade de discos.
Algoritmos:
representação gráfica
2) Representação Gráfica de um Algoritmo Fluxograma
São representações gráficas da estrutura lógica do
algoritmo de um programa de computador, pois
representam através de figuras geométricas a
sequência lógica de um programa.
1) Para montar corretamente um fluxograma, primeiramente
é preciso identificar os elementos de entrada,
processamento e saída.
2) Observe a fórmula do problema. Os elementos que
precisam ser informados para que algo seja calculado são
elementos de entrada, as mensagens exibidas são os
elementos de saída no fluxograma, a fórmula em si é um
elemento de processamento de dados e as verificações
lógicas são tomadas de decisão.
Entrada Processamento Saída
2)Representação Gráfica de um Algoritmo Fluxograma
Sequência
Exibir mensagem Entrada de Dados
ou Saída
OU
Fluxograma de troca de lâmpada com teste
Troca de lâmpada com teste – Versão
1- Pegar uma escada;
2. Posicionar a escada embaixo da
lâmpada;
3. Buscar uma lâmpada nova;
4. Acionar o interruptor;
5. SE a lâmpada não acender, então:
a) Subir na escada;
b) Retirar a lâmpada velha;
c) Colocar a lâmpada nova;
d) Descer da escada;
Fluxograma de troca de lâmpada com teste repetido até acender
Troca de lâmpada com teste – Versão 3
1- Pegar uma escada;
2. Posicionar a escada embaixo da
lâmpada;
3. Buscar uma lâmpada nova;
4. Acionar o interruptor;
a) Subir na escada;
b) Retirar a lâmpada velha;
c) Colocar a lâmpada nova;
d) Descer da escada;
e) voltar a testar
Fluxograma de troca de lâmpada com teste repetido até acender
Troca de lâmpada com teste – Versão 4
1. Acionar o interruptor;
2. Enquanto a lâmpada não acender, então:
a- Pegar uma escada;
b. Posicionar a escada embaixo da lâmpada;
c. Buscar uma lâmpada nova;
d. Acionar o interruptor;
f. Subir na escada;
g. Retirar a lâmpada velha;
h. Colocar a lâmpada nova;
[Link] da escada;
j. voltar a testar
Estruturas de fluxograma
Estrutura de Estrutura de Estrutura de
Controle Controle Controle
Sequencial Condicional Repetitiva
Estruturas de fluxograma- exemplos-
Estrutura de Estrutura de Estrutura de
Controle Controle Controle
Sequencial Condicional Repetitiva
Estrutura de Início
controle
sequencial
“Informe o
salário”
Valor digitado é armazenado na
Solicite o valor
variável X, ou seja, nesse exemplo
do salário e X que foi digitado 1500 pelo usuário
informar na tela. significa que a variável X =1500
“O salário é ”, X
Fim
Estrutura de Início
controle
São algoritmos que preparam
sequencial para qualquer tipo de
“Informe o
salário” linguagem de programação.
Exemplo: Python
Solicite o valor
do salário e valorSalario
informar na tela.
“O salário é ”,
valorSalario
Fim
Estrutura de
controle Início
sequencial
“Informe o
seu salário”
Solicite o valor do salário,
Calcule 20% de aumento
e informar na tela. X
X = X * 1.2
Observe que aqui coloquei um
20% de aumento já definido
dentro do algoritmo. “salário
Fim
reajustado ”, X
Estrutura de
Controle
condicional Estruturas de Decisão em Algoritmos
Grande parte dos algoritmos possui alguns passos
que dependem de decisões a serem tomadas.
Por exemplo, um algoritmo para calcular o imposto de
renda vai conter alguns passos que somente serão
executados a partir do resultado de um teste (neste
caso, do valor mínimo do salário do funcionário).
Estrutura de
Controle Valor ajustado em
condicional Descrição narrativa maio de 2023
Informe ( valor do salário)
Se o salário for menor que R$ 2.112,00 então
“Isento de taxa”
Senão
“Cobrança de alíquota”
Início
Estrutura de
Controle
“Informe o
condicional seu salário”
Não
X > “Isento de
2.112,00 taxa”
Equivale a Sim
SE (salário > R$ 2.112,00) então
“Cobrança
SENÃO ... Fim
de alíquota”
Estrutura de Valor ajustado em maio de
2023
Controle Descrição narrativa
condicional
Informe ( nome do funcionário)
Informe ( valor do salário)
Se o salário for menor que R$ 2.112,00 então
O funcionário é isento do imposto de renda
Se o salário for entre R$ 2.112,01 e R$ 2.826,65 então
Alíquota de 7,50%
Se o salário for entre R$ 2.826,66 e R$3.751,05 então
Alíquota de 15,00%
Se o salário for entre R$3.751,06 e R$4.664,68 então
Alíquota de 22,50%
Se o salário for maior que R$4.664,68 então
Alíquota é de 27,50%
Estrutura de Valor ajustado em maio de
2023
Controle Descrição narrativa
condicional
Informe ( nome do funcionário)
Informe ( valor do salário)
Repare a Se o salário for menor que R$ 2.112,00 então
diferença da O funcionário é isento do imposto de renda
lógica na
estrutura Senão Se o salário for entre R$ 2.112,01 e R$ 2.826,65 então
condicional com
a anterior Alíquota de 7,50%
Senão Se o salário for entre R$ 2.826,66 e R$3.751,05 então
Alíquota de 15,00%
Senão Se o salário for entre R$3.751,06 e R$4.664,68 então
Alíquota de 22,50%
Senão
Alíquota é de 27,50%
Estrutura de
Controle
Representação gráfica – fluxograma-
condicional
Fazer o fluxograma da descrição
narrativa das alíquotas para pagamento
de imposto de renda (IR)
-versão com Se
-versão com Se ... senão
Estrutura de
Descrição narrativa
Controle de
repetição
Enquanto tiver funcionários verificar
Informe (nome)
Informe ( valor do salário)
se o salário for menor que R$ 2.112,00
Exibir (“Isento de taxa”)
senão
Exibir (“Cobrança de alíquota”)
Estrutura de
Início
Controle de
repetição Tem Não
Fim
funcionários
Sim
“Informe o
nome”
nome
1
“Informe o
salário”
salario
Sim Não Isso é um
“Cobrança salario > “Isento de
2.112,00 taxa” conector. Informa
de alíquota”
onde vai continuar
1
Estrutura de
Controle de
repetição
Estruturas de Repetição em Algoritmos
A maioria dos algoritmos possui uma parte das
instruções que são repetidas, com finalidade de
solucionar o problema que envolve a repetição de ações.
No exemplo anterior foi calculado o imposto de renda
para apenas um funcionário. O algoritmo poderia ser
modificado para calcular para todos os funcionários da
empresa.
Estrutura de Algoritmo para imposto de
renda com repetição
Controle de Para cada (funcionário da empresa):
repetição Informe ( nome do funcionário)
Informe ( valor do salário)
Se o salário for menor que R$ 2.112,00
“O funcionário é isento do imposto de renda”
Senão
“O funcionário terá cobrança de alíquota”
Se o salário for entre R$ 2.112,00 e R$ 2.826,65
Alíquota de 7,5%
Senão Se o salário for entre R$ 2.826,66 e R$3.751,05
Alíquota de 15%
Senão Se o salário for entre R$3.751,05 e R$4.668,68
Alíquota de 15%
Senão
Alíquota é de 27,5%
Até que tenha sido calculado para todos os funcionários
Estrutura de Algoritmo para imposto de
renda com repetição
Controle de Enquanto tiver (funcionário da empresa):
repetição Informe ( nome do funcionário)
Informe ( valor do salário)
Se o salário for menor que R$ 2.112,00
“O funcionário é isento do imposto de renda”
Senão
“O funcionário terá cobrança de alíquota”
Se o salário for entre R$ 2.112,00 e R$ 2.826,65
Alíquota de 7,5%
Senão Se o salário for entre R$ 2.826,66 e R$3.751,05
Alíquota de 15%
Senão Se o salário for entre R$3.751,05 e R$4.668,68
Alíquota de 15%
Senão
Alíquota é de 27,5%
Teste de mesa
O Teste de Mesa é um processo manual que é utilizado para validar a
lógica de um determinado algoritmo. Ele é utilizado principalmente em
algoritmos quando a linguagem utilizada não possui nenhuma
ferramenta automatizada de depuração.
No livro Dicionário de Informática & Internet
Teste de mesa: análise para saber se um programa funciona logicamente.
Pesquisar
na web
Fonte: [Link]
%C3%A9-um-teste-de-mesa-como-aplic%C3%A1-lo
Teste de mesa
Voltar aos códigos e fazer teste de mesa !
Se o seu objetivo é aprender não copie/cole código. Redigite!
Faça o teste de mesa para validar o seu algoritmo.
Os erros são ajudas para melhorar o seu código. Não se preocupe
quanto longo e difíceis pareçam, tente, corrija, tente, corrija.
Quem nunca errou é porque nunca tentou! E não aprendeu.
Para aprender lógica precisa praticar!.
Isso é um requisito para ser um DEV (developer = desenvolvedor),
ou seja, programador.
Para ser bom em programação requer muito raciocínio lógico,
persistência e, especialmente, curiosidade!
Exercícios
1) Escreva um algoritmo para ler o salário mensal atual de um
funcionário e ler o percentual de reajuste. Calcular e mostrar o valor
do novo salário.
2) Escrever um algoritmo que leia a idade de uma pessoa expressa em
anos, meses e dias e escreva a idade dessa pessoa expressa apenas
em dias. Considerar ano com 365 dias e mês com 30 dias.
3) Escrever um algoritmo para ler o número de votos brancos, nulos e
válidos de um município. Calcular e escrever o percentual que cada
um representa em relação ao total de eleitores.
Atividade de percurso
[Link]
Ferramenta
Opção flowchart Pode ser no
• Word,
• Power Point,
Possível solução para o exercício 1)
• papel e lápis (e borracha 😁)
Exercícios
1) Escreva um algoritmo para ler o salário mensal atual de um
funcionário e ler o percentual de reajuste. Calcular e mostrar o valor
do novo salário.
2) Escrever um algoritmo que leia a idade de uma pessoa expressa em
anos, meses e dias e escreva a idade dessa pessoa expressa apenas
em dias. Considerar ano com 365 dias e mês com 30 dias.
3) Escrever um algoritmo para ler o número de votos brancos, nulos e
válidos de um município. Calcular e escrever o percentual que cada
um representa em relação ao total de eleitores.
Atividade de percurso
Observe que deve manter o nome da variável para fazer as operações
(deixei com cores para poder diferenciar).
Possível solução para o exercício 2)
Exercícios
1) Fazer um fluxograma para calcular a média semestral (MS) de 2 notas bimestrais
(NB). Exibir mensagem “aprovado”, se a média é maior ou igual a 60, senão [Link]
imprimir “reprovado”.
1b) Novo fluxograma ( idem anterior e acrescentar a continuação no caso de MS <60)
Se a MS não atingir a média considere a nota de recuperação (NR).
A média de recuperação (MR) será a média da nota de recuperação (NR) com a média
semestral (MS).
Se a média com recuperação (MR) for maior ou igual a 60 está aprovado, senão imprimir
“reprovado”.
1c) Novo fluxograma (idem anterior e acrescentar)
Se a MR não atingir a média considere a prova final.
O cálculo da média final (MF) é Prova final (PF) com peso de 40% e média recuperação (MR)
com peso de 60%.
Se a média final ponderada (MF) é maior ou igual a 50 será aprovado senão reprovado na
disciplina.
Fazer um fluxograma para calcular a média semestral (MS)
de 2 notas bimestrais (NB). Exibir mensagem “aprovado” se
a média é maior ou igual a 60, senão imprimir “reprovado”.
São 2 possíveis algoritmos corretos, enviados pelos alunos.
Pode ter outras respostas corretas.
Aluno G Aluno V
Esta figura
também pode ser
utilizada para
leitura de valores,
assim como o
paralelepípedo
Exercícios
1) Fazer um fluxograma para calcular a média semestral (MS) de 2 notas bimestrais
(NB). Exibir mensagem “aprovado”, se a média é maior ou igual a 60, senão imprimir [Link]
“reprovado”.
1b) Novo fluxograma ( idem anterior e acrescentar a continuação no caso de MS <60)
Se a MS não atingir a média considere a nota de recuperação (NR).
A média de recuperação (MR) será a média da nota de recuperação (NR) com a média
semestral (MS).
Se a média com recuperação (MR) for maior ou igual a 60 está aprovado, senão
imprimir “reprovado”.
Calcular a média semestral (MS) de 2 notas bimestrais (NB).
Se a média é maior ou igual a 60 exibir que está aprovado, senão considere a
nota de recuperação (NR).
A média de recuperação (MR) será a média da nota de recuperação (NR) com a
média semestral (MS).
Se a média com recuperação (MR) for maior ou igual a 60 está aprovado
Exercícios
2a) Calcular e exibir a nota média da turma para uma disciplina.
Solução em sala de aula
Exercícios
2a) Calcular e exibir a nota média da turma para uma disciplina.
Exercícios
2b) E exibir a quantidade de alunos aprovados e reprovados.
Solução em sala de aula
Teste de mesa
O Teste de Mesa é um processo manual que é utilizado para validar a
lógica de um determinado algoritmo. Ele é utilizado principalmente em
algoritmos quando a linguagem utilizada não possui nenhuma
ferramenta automatizada de depuração.
No livro Dicionário de Informática & Internet
Teste de mesa: análise para saber se um programa funciona logicamente.
Pesquisar
na web
Fonte: [Link]
%C3%A9-um-teste-de-mesa-como-aplic%C3%A1-lo
Teste de mesa
Voltar aos códigos e fazer teste de mesa !
O que estudamos?
Premissas e conclusão
Argumento dedutivo
Argumento indutivo
Lógica
Raciocínio Lógico
Lógica de Programação
Algoritmo. Conceito.
Algoritmo: estruturas de controle (sequencial, condicional e
repetição)
Algoritmo: descrição narrativa
Algoritmo: fluxograma ou representação gráfica
Atividade de percurso (15 pontos)
Entrega no AVA.
Trabalho Individual
1) (3 pontos)
Tela Rachacuca. Relação aluno-problema no AVA
2) (4 pontos)
Escrever um algoritmo para ler o número de votos brancos, nulos e válidos de um
município. Calcular e escrever o percentual que cada um representa em relação
ao total de eleitores.
3) (4 pontos)
Obter a taxa de frequência (TF) e calcular a média semestral (MS) de 2 notas
bimestrais (NB). Se a média é maior ou igual a 60 e taxa de frequência maior ou igual
a 75% exibir que está aprovado, senão considere a nota de recuperação (NR).
A média de recuperação (MR) será a média da nota de recuperação (NR) com a
média semestral (MS).
Se a média com recuperação (MR) for maior ou igual a 60 está aprovado. Além da
nota considerar uma frequência mínima de 75% para aprovação.
Se a MR não atingir a média considere a prova final.
O cálculo da média final (MF) ponderada é Prova final (PF) com peso de 40% e média
recuperação (MR) com peso de 60%.
Se a média final ponderada (MF) é maior ou igual a 50 e com frequência mínima de
75% será aprovado senão fica reprovado na disciplina.
4) (4 pontos)
Fazer um algoritmo (representação gráfica em fluxograma) que leia o nome
de um produto em loja pet, o preço e a quantidade de unidades. Exibir o
nome do produto comprado e o valor total a ser pago, considerando que são
oferecidos descontos pelo número de unidades compradas segundo a tabela
abaixo:
a) Até 2 unidades: não tem desconto
b) De 3 a 5 unidades: 10% de desconto
c) Acima de 6 unidades: 25% de desconto