Académique Documents
Professionnel Documents
Culture Documents
DESENVOLVIMENTO DE ALGORITMOS
Departamento de Matemática 1
Profa. Dra. Erica R. M. Daruichi Machado
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO - DESENVOLVIMENTO DE ALGORITMOS
CAPÍTULO 1- ALGORITMOS
1. INTRODUÇÃO
AUTOMAÇÃO É o processo em que uma tarefa é desempenhada por
máquinas, sejam estes dispositivos mecânicos, eletrônicos (computadores) ou
de natureza mista.
A importância do algoritmo está no fato de termos que especificar uma seqüência de passos lógicos
para que o computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade
própria, faz apenas o que o instruímos a fazer.
Com uma ferramenta algorítmica podemos conceber uma solução para um dado problema,
independentemente de uma linguagem específica, até mesmo do próprio computador.
Departamento de Matemática 2
Profa. Dra. Erica R. M. Daruichi Machado
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO - DESENVOLVIMENTO DE ALGORITMOS
1.3. CARACTERÍSTICAS
Todo algoritmo deve apresentar algumas características básicas:
• Ter fim;
• A ordem dos passos deve ser precisamente determinada;
• Não dar margem à dupla interpretação (não ambíguo);
• Capacidade de receber dado(s) de entrada do mundo exterior;
• Poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo;
• Ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo
finito).
Exemplo: A instrução “afrouxar ligeiramente as porcas” no algoritmo da troca de pneus está sujeita
a interpretações diferentes por pessoas distintas.
Uma instrução mais precisa seria: “afrouxar a porca, girando-a de 30o no sentido anti-
horário.
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).
Departamento de Matemática 3
Profa. Dra. Erica R. M. Daruichi Machado
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO - DESENVOLVIMENTO DE ALGORITMOS
Entrada de dados
Operações de atribuição e
chamada ou retorno de
subalgoritmo
Saída de dados
Decisão
Conector
Subprograma Externo
VANTAGENS:
• Uma das ferramentas mais conhecidas;
• Figuras dizem muito mais que palavras;
• Padrão mundial
DESVANTAGENS:
• Faz com que a solução do problema esteja amarrada a dispositivos físicos;
• Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los;
• Complica-se à medida que o algoritmo cresce.
Departamento de Matemática 4
Profa. Dra. Erica R. M. Daruichi Machado
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO - DESENVOLVIMENTO DE ALGORITMOS
Um diagrama de fluxo orientado para o homem é considerado bom se ele pode ser entendido por
uma pessoa com conhecimento na área onde se enquadra o problema, porém sem experiência de
programação de computadores. Um bom diagrama de fluxo orientado para a máquina é aquele em que o
programa praticamente pode ser escrito diretamente sem codificação intermediária, exceto para comandos
de entrada e saída e comandos declarativos.
Início
nota1
nota2
Media=(nota1
As variáveis nota1, nota2 e media
+nota2)/2 são inteiras ou reais?
“Reprovado”
Fim
Departamento de Matemática 5
Profa. Dra. Erica R. M. Daruichi Machado
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO - DESENVOLVIMENTO DE ALGORITMOS
F V
1.4.2.3. PSEUDOCÓDIGO
Esta forma de representação de algoritmos é rica em detalhes como, por exemplo, a definição dos
tipos das variáveis usadas no algoritmo. Assemelhar-se à forma em que os programas são escritos e
encontra muita aceitação. Forma geral da representação por pseudocódigo:
declaração_de_variáveis
subalgoritmo
Início
corpo_do_algoritmo
Fim do Algoritmo
Início e Fim do Algoritmo são respectivamente as palavras que delimitam o início e o término do
conjunto de instruções do corpo do algoritmo.
VANTAGENS:
• Independência física da solução (solução lógica apenas);
• Usa o português (linguagem natural) como base;
• Permite a definição de quais e como os dados vão estar estruturados;
• Permite a passagem quase imediata do algoritmo para uma linguagem de programação
qualquer.
Departamento de Matemática 6
Profa. Dra. Erica R. M. Daruichi Machado
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO - DESENVOLVIMENTO DE ALGORITMOS
DESVANTAGENS:
• Exige a definição de uma linguagem não real para trabalho;
• Não é padronizado universalmente como o fluxograma.
OBSERVAÇÃO: Para que se tenha um bom pseudocódigo recomenda-se o uso de frases antes da
leitura de qualquer variável para orientar o usuário sobre os dados que deverão ser inseridos via teclado.
1.5. EXERCÍCIOS
1) Faça um algoritmo para realizar a troca de uma lâmpada a uma altura de 2,5m do chão, (utilize
a representação narrativa).
Departamento de Matemática 7
Profa. Dra. Erica R. M. Daruichi Machado
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO - DESENVOLVIMENTO DE ALGORITMOS
À medida em que são obtidas mais informações sobre o problema, podemos dividi-lo em três
partes menores. Então, são esquematizadas a Parte 1, depois a Parte 2 e, finalmente, a Parte 3. Isto é o
projeto de refinamentos sucessivos, como mostrado na seguinte figura:
Feito isto, pode ser que ainda não se tenha um algoritmo detalhado, porém algum progresso já foi
feito. Em vez de um único grande problema tem-se agora três pequenos problemas para resolver.
Continuando a análise, verifica-se que a Parte 1 pode ser dividida em três subproblemas: Parte 1A,
Parte 1B e Parte 1C; e que as Partes 2 e 3 também podem ser subdivididas. O projeto passa então para um
segundo nível de refinamento:
Se o algoritmo for complicado, o processo pode ser realizado em outro nível de refinamento. Ao
final do projeto de refinamentos sucessivos, tem-se um plano bem detalhado que permitirá escrever o
algoritmo em linguagem de computador.
Uma preocupação constante que se deve ter no desenvolvimento de algoritmos é sua validade
quando à exatidão. Em cada estágio do processo de refinamentos sucessivos, o algoritmo deve ser
analisado para assegurar que ele está correto para a solução do problema proposto.
Departamento de Matemática 8
Profa. Dra. Erica R. M. Daruichi Machado
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO - DESENVOLVIMENTO DE ALGORITMOS
Passo 2
1.7. TESTE DE MESA
Um passo importante na construção de algoritmos é a verificação de sua veracidade.
No exemplo anterior podemos fazer as seguintes verificações:
• É possível realizar o Passo 1.1?
• É possível realizar o Passo 1.2?
• Estes dois passos juntos calculam a média desejada do Passo1?
Você pode fazer uma prova matemática, conhecida como TESTE DE MESA para verificar se o algoritmo
é válido, ou seja, se não foi cometido nenhum engano durante a construção do mesmo.
Ao validar o Passo 1.2, deve-se verificar se a quantidade dos números não é zero, pois ao calcular a
média deve-se dividir a soma acumulada pela quantidade de números.
O teste de mesa consiste no teste e validação de todos os passos de todos os níveis.
Sintaxe: mais fácil de descrever que a semântica. Existe uma notação concisa e universalmente aceita
para a descrição da sintaxe, mas não ainda para a semântica.
Departamento de Matemática 9
Profa. Dra. Erica R. M. Daruichi Machado
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO - DESENVOLVIMENTO DE ALGORITMOS
1) Considere que uma calculadora comum, de quatro operações, está com as teclas de divisão e
multiplicação. Escreva algoritmos que resolvam as expressões matemáticas a seguir usando
apenas as operações de adição e subtração.
a)12 * 4
b) 23*11
c)10÷2
d) 175÷7
e)28
f) X*Y
g) X÷Y
Departamento de Matemática 10
Profa. Dra. Erica R. M. Daruichi Machado