Professional Documents
Culture Documents
Programação
Tópicos
Introdução
Conceitos gerais
Raciocínio matemático
Noções de Lógica
Algoritmos
Exercícios
Tópicos
Introdução
Conceitos gerais
Programação estruturada
Desenvolvimento top-down
Modularização
Estruturas de controle
Confiabilidade
Manutenibilidade
Pseudolinguagem – Portugol
Raciocínio matemático
Noções de Lógica
Existe Lógica no dia-a-dia?
Algoritmizando a Lógica
Tópicos
Algoritmos
Por que precisamos de algoritmos?
Características
Algoritmo x Qualidade
Método para construção de algoritmos
Método Cartesiano
Planejamento Reverso
Tabelas de Decisão
Exercícios
Introdução
Nos fins dos anos 60, constatou-se que as sistemáticas usadas pelos
programadores eram os grandes responsáveis pela baixa confiabilidade
dos programas.
O QUE É LÓGICA?
Lógica trata da correção do pensamento.
Exemplos:
1) Todo o mamífero é animal.
Todo cavalo é mamífero.
Portanto, todo cavalo é animal.
Definição:
Exemplos:
O que é Algoritmo?
“Algoritmo é uma seqüência de passos que visam atingir um
objetivo bem definido.”
pegue a escada;
posicione-a embaixo da lâmpada;
busque uma lâmpada nova;
acionar o interruptor
se a lâmpada não acender, então:
• suba na escada;
• retire a lâmpada velha;
• coloque a lâmpada nova.
Algoritmo
OTIMIZANDO
acionar o interruptor
se a lâmpada não acender, então:
• pegue a escada;
• posicione-a embaixo da lâmpada;
• busque uma lâmpada nova;
• suba na escada;
• retire a lâmpada velha;
• coloque a lâmpada nova.
Algoritmo
APRIMORANDO
acionar o interruptor
se a lâmpada não acender, então:
•pegue a escada;
•posicione-a embaixo da lâmpada;
•busque uma lâmpada nova;
•acionar o interruptor
•suba na escada;
•retire a lâmpada velha;
•coloque a lâmpada nova.
•se a lâmpada não acender, então
retirar a lâmpada velha;
colocar outra lâmpada nova;
•se a lâmpada não acender, então
•retirar a lâmpada velha;
•colocar outra lâmpada nova; (...) ATÉ QUANDO?
Algoritmo
APRIMORANDO
acionar o interruptor
se a lâmpada não acender, então:
•pegue a escada;
•posicione-a embaixo da lâmpada;
•busque uma lâmpada nova;
•acionar o interruptor
•suba na escada;
•retire a lâmpada velha;
•coloque a lâmpada nova.
•enquanto a lâmpada não acender, faça
retirar a lâmpada velha;
colocar outra lâmpada nova;
Algoritmo
APRIMORANDO
•pegue a escada;
•posicione-a embaixo da lâmpada;
•busque uma lâmpada nova;
•acionar o interruptor
•suba na escada;
•retire a lâmpada velha;
•coloque a lâmpada nova.
•enquanto a lâmpada não acender, faça
retirar a lâmpada velha;
colocar outra lâmpada nova;
acionar o interruptor do segundo soquete
se a lâmpada não acender, então: (...)
Algoritmo
AJUSTANDO
•pegue a escada;
•posicione-a embaixo da lâmpada;
•busque uma lâmpada nova;
•acionar o interruptor
•suba na escada;
•retire a lâmpada velha;
•coloque a lâmpada nova.
•enquanto a lâmpada não acender, faça
retirar a lâmpada velha;
colocar outra lâmpada nova;
ir até o interruptor do próximo soquete;
Algoritmo
Algoritmo não
Início
computacional
1. Tirar o fone do gancho;
cujo objetivo é
S 2. Ouvir o sinal de linha;
usar um telefone
E 3. Introduzir o cartão;
público. Q 4. Teclar o número desejado;
U
Ê 5. Se der o sinal de chamar DESVIO
N 5.1 Conversar;
C 5.2 Desligar;
I
A 5.3 Retirar o cartão;
L 6. Senão
6.1 Repetir;
Fim.
Algoritmo
Por exemplo:
Dados os números naturais(N)
0, 1, 2, 3, 4, 5, 6, ...
ter fim;
10. Utilize
identação, pois mostra a estrutura lógica do algoritmo.
Use identação nos comandos de acordo com o nível que estejam,
ou seja, alinhe comandos de mesmo nível e desloque comandos de
nível inferior. Ex.:
início
comando 1;
se condicao1 então
comando2;
comando3;
senão
comando4;
comando5;
fim-se
comando6;
fim
Método para construção de algoritmos
“Engenharia Reversa”
Tabelas de Decisão
Construir o algoritmo.
Executar o algoritmo.
Que ordens você daria para que seu robô trocasse a lâmpada?
Vamos Pensar!!
Descrição narrativa;
Fluxograma;
Linguagem algorítmica.
Descrição Narrativa
VANTAGENS:
O Português é bastante conhecido por nós;
DESVANTAGENS:
Imprecisão;
Pouca confiabilidade (a imprecisão acarreta a desconfiança);
Extensão (normalmente, escreve-se muito para dizer pouca coisa).
Fluxograma
Exemplo Explicação
Início do algoritmo
Entrada do número
Apresentação do resultado
Fim do algoritmo
Fluxograma
?
Fluxograma
VANTAGENS:
Uma das ferramentas mais conhecidas;
Figuras dizem muito mais que palavras;
Padrão mundial
DESVANTAGENS:
Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou
representá-los;
Complica-se à medida que o algoritmo cresce.
Linguagem algorítmica
VANTAGENS:
Usa o português como base;
Pode-se definir quais e como os dados vão estar estruturados;
Passagem quase imediata do algoritmo para uma linguagem de programação qualquer.
DESVANTAGENS:
Exige a definição de uma linguagem não real para trabalho;
Não padronizado.
Funcionamento do nosso computador
Se você fosse encarregado de efetuar essa tarefa, seria bem provável que
utilizasse os passos a seguir:
Em resumo, pode-se dizer que escrever algoritmos ou, em última análise, programar
consiste em dividir qualquer problema em muitos pequenos passos, usando uma ou
mais das quatro operações básicas citadas.
Sequênciação
Decisão ou seleção
Repetição ou iteração
Seqüenciação
Vejamos o funcionamento:
Se <condição>
então <seq. de comandos-1>
senão <seq. de comandos-2>
No exemplo (a), vai-se repetir a ação de atirar pedras na janela até que seja satisfeita a
condição de quebrar a janela.
No exemplo (c), a condição que me permitirá continuar desfrutando a vida é ter dinheiro e
saúde.
Refinamentos sucessivos
Num algoritmo, um comando que não for do entendimento do destinatário terá que
ser desdobrado em novos comandos, que constituirão um refinamento do comando
inicial, e assim sucessivamente, até que os comandos sejam entendidos pelo
destinatário.
Por exemplo, o algoritmo para calcular a média aritmética de dois números pode
ser escrito da seguinte forma:
Algoritmo CALCULA_MÉDIA
Início
Receba os dois números
Calcule a média dos dois números
Exiba o resultado
Fim
Refinamentos sucessivos
À medida que o algoritmo passa a ser maior e mais complexo, esta visão
global torna-se menos clara e, neste caso, um algoritmo apresentado
com os refinamentos sucessivos separados oferece uma melhor
abordagem para quem precisar entendê-lo.
Aplicação Prática