Você está na página 1de 24

Algoritmos e Lógica

Daniel Régis de França Cirino


danielcirino@gmail.com
Introdução a Construção de ALGORITMOS

• Os computadores só fazem aquilo que mandados e não necessariamente


o que desejamos que façam.
• Deste modo, é preciso usar instruções claras quando programamos
os computadores.
• Não deve haver nenhuma ambigüidade nas instruções de um programa
que fornecemos a um computador, ou seja, não deve haver possibilidade
de interpretação dúbia de tais instruções.
 Deve-se ter bastante cuidado em escrever corretamente as instruções das
linguagens de programação e ter em mente que cada instrução tem
um significado específico.
 Entretanto apenas uma instrução não é capaz de realizar a
programação de um problema completo.
 É muito difícil descrever a solução de um problema com apenas um
instrução, a mesma seria muito geral e, por conseguinte, muito ambígua.
 Geralmente, uma linguagem de programação possui bem menos do
que 100 instruções, mas um programa de médio porte possui, na
maioria das vezes, milhares de instruções encadeados.
Logo

 Desenhar um quadrado de lado 100.


 Para Frente 100
 Para Direita 90º
 Para Frente 100
 Para Direita 90º
 Para Frente 100
 Para Direita 90º
 Para Frente 100
Algoritmos

 Para que o computador solucione um determinado problema é


necessário codificar um programa ou software.
 Muito cuidado é necessário para assegurar que o computador siga pelo
caminho correto para resolver um problema qualquer, isso evita BUGs, ou
seja, erros de programação.
 Sabemos que para solucionar problemas complexos um software terá, em
muitos casos, milhares de instruções encadeadas.
 Complexidade inerente dos problemas que combinam muitos
processos mentais.
Algoritmo

RESOLUÇÃO
DO
PROBLEMA PROBLEMA ALGORITMO
EQUIVALENTE

PASSO
COMPLEXO

DESENVOLVER
PROGRAMA DE
COMPUTADOR
Algoritmo

 Seqüência finita
 Ordenada
 Sem ambiguidades
 Passos que levam a solução de um dado problema
 Os passos envolvem ações simples e bem definidas.
 A ordem de passos influi na resolução do problema.
 A seqüência de passos é limitada com um início e fim bem definidos.
Algoritmo

 Até mesmo as coisas mais simples, podem ser descritas por seqüências
lógicas. Por exemplo:
 Chupar BOMBOM
 Pegar o bombom
 Retirar o Papel
 Chupar a bala
 Jogar o Papel no Lixo
Trocando Pneu

 Algoritmo Troca_Pneu;
 Início
 Retire o pneu, o macaco e a chave de rodas do porta-malas;
 Afrouxe os parafusos do pneu furado;
 Posicione o macaco;
 Enquanto o pneu furado não deixar o solo, gire o braço do macaco no sentido horário.
 Retire todos os parafusos usado a chave de rodas;
 Retire o pneu furado;
 Coloque o pneu novo;
 Coloque os parafusos;
 Enquanto o pneu não girar acoche os parafusos com a chave de rodas;
 Enquanto o pneu novo não tocar o solo, gire o braço de macaco no sentido anti-horário.
 Aperte novamente todos os parafusos até ficarem firmes
 Guarde o material restante;
 Fim
Desenvolvendo Algoritmos

 O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o
intermediário entre a linguagem falada e a linguagem de programação.
 Algoritmos são independentes das linguagens de programação.
Diversos algoritmos
podem ser utilizados
para uma determinada
solução...
... Mas nem sempre
uma determinada
solução que pensamos
é a melhor solução!
Qual a ligação entre algoritmos e computadores?

 Computadores são rápidos, mas não infinitamente rápidos. Memórias com


grande capacidade, mas tem um espaço finito. Então é preciso utilizar
algoritmos eficientes em termo de tempo ou espaço. E construir esses
algoritmos requer: estudo, pesquisa e muito trabalho para solucionar o
problema da melhor maneira possível.

 Supondo que computadores fossem infinitamente rápidos e que


tivéssemos o quanto de memória quiséssemos, existiria alguma razão para
estudar algoritmos?
 A resposta é sim, se você fosse demonstrar que a solução do seu
método termina e traz a resposta correta.
Regras

 Para escrever um algoritmo precisamos descrever a seqüência de


instruções, de maneira simples e objetiva. Para isso utilizaremos algumas
técnicas:
 Usar somente um verbo por frase
 Imaginar que você está desenvolvendo um algoritmo para pessoas que
não trabalham com informática
 Usar frases curtas e simples
 Ser objetivo
 Procurar usar palavras que não tenham sentido dúbio
Pseudolinguagem

É uma alternativa para descrever programas atuais para pessoas. Ele é uma
notação que pretende descrever de forma clara (sem ambiguidade) algoritmos
para humanos.

A pseudolinguagem combina a precisão das linguagens de programação (passos,


ordens) com a flexibilidade de sintaxe das linguagens naturais. Na verdade não
existe um padrão, pois como nas linguagens naturais, a pseudolinguagem pode
adotar vocabulários diferentes.

Exemplo de algoritmo usando pseudolinguagem:


definir tempo para 0 minutos
repita até o suco ficar congelado
adicione um pequeno incremento no tempo
verifique se o suco gela com esse novo tempo
(fim da sessão de repetição)
o tempo anterior ao pequeno incremento é a resposta
Portugol

A resolução de um problema envolve vários parâmetros que devem ser


organizados através de alguma técnica formal. As técnicas de desenvolvimento
estruturado de algoritmos, tem o objetivo de:

• Facilitar o desenvolvimento de algoritmos;


• Facilitar o seu entendimento pelos operadores;
• Antecipar a correção;
• Facilitar manutenção e modificações;
• Permitir que o desenvolvimento seja feita por uma equipe de pessoas.

Uma técnica formal afasta a possibilidade de uma ambiguidade. Ou seja, a partir


de dadas condições iniciais a execução do algoritmo será realizada por um
mesmo "caminho" (sequência de ações), que deve resultar num mesmo estado
final. Uma destas técnicas é o portugol.
Sintaxe

Permite que instruções possam ser criadas e interpretadas


corretamente. As regras de sintaxe especificam qual a maneira
correta de escrever e correlacionar instruções de uma linguagem de
programação.
Semântica

Preocupa-se em especificar o significado ou comportamento das


instruções. Assim, cada instrução possui um significado próprio e
deve ser escrita conforme sua sintaxe especifica.
Programas podem ser menos inteligíveis que a descrição de
algoritmos em português.
Isto se deve por que as linguagens de programação exigem um
maior detalhamento e regras rígidas de sintaxe para serem
compreendidas por computadores.
Fases

 É preciso dividir o problema em três fases fundamentais.

ENTRADA
PROCESSAMENTO

SAÍDA
Exemplo

 Problema:
 Calcular a média de uma aluno que realizou 4 provas.
 Entradas???
 Processamento???
 Saída???

 Teste de Mesa
Lógica

• O estudo da Lógica, é o estudo dos métodos e princípios usados para


distinguir o raciocínio correto do incorreto.
• Ao resolver o problema do equilíbrio do próprio corpo ou ao decifrar o
complexo código de comunicação verbal que nossos pais utilizam, todos
nós demos provas que já nascemos com uma incrível capacidade para
solucionar enigmas.
Lógica
Álgebra das proposições

• Conjunto de palavras ou símbolos que exprimem um pensamento de


sentido completo.
• Afirmam fatos ou exprimem juízos ao qual se possa atribuir, dentro de
certo contexto, somente um de dois valores lógicos possíveis: verdadeiro
ou falso.
Álgebra das proposições

• A lógica matemática adota como regras fundamentais do pensamento os


dois seguintes princípios:
• Princípio da não-contradição:
• Uma proposição não pode ser verdadeira e falsa ao mesmo tempo.
• Princípio do terceiro excluído:
• Toda proposição ou é verdadeira ou falsa, excluindo-se qualquer outro.

Você também pode gostar