Você está na página 1de 26

Conceitos e elaboração de algoritmos

PROFESSOR:
Allan Vilar de Carvalho
allanvilarcarvalho@gmail.com
Tópicos da Apresentação
• Problemas e Soluções
• Algoritmo
– Utilidade
– Definições
– Fases para desenvolvimento
– Técnicas de representação
• Linguagem de programação
• Tipos de linguagens de programação
• Processo de criação e execução de um programa
• Estratégias a serem seguidas na resolução de problemas
2
Algoritmos
• Antes...
• Problemas e Soluções
– Pregar um prego em um pedaço de madeira?

3
Algoritmos
• Problemas e Soluções
– Pregar um prego em um pedaço de madeira:
• segurar o prego sobre a madeira e bater com o martelo
tantas vezes quantas forem necessárias até que o prego
entre por inteiro
• Solução:
– Repetir a seguinte sequência de ações:
» segurar o prego sobre a madeira com a mão
esquerda;
» bater com o martelo no prego, com a mão direita;
» verificar se o prego já está todo dentro da madeira.
4
Algoritmos
• Problemas e Soluções
– Realizar uma seleção de candidatos para um emprego e há
dois requisitos a serem preenchidos. Deve contratar os que
preencherem os dois requisitos, anotar os dados de quem
preencher apenas um dos requisitos e dispensar os que não
preencherem nenhum dos dois requisitos.
• Solução?

5
Algoritmos
• Problemas e Soluções
– Realizar uma seleção de candidatos para um emprego e há
dois requisitos a serem preenchidos. Deve contratar os que
preencherem os dois requisitos, anotar os dados de quem
preencher apenas um dos requisitos e dispensar os que não
preencherem nenhum dos dois requisitos.
• Solução:
– 1º chamar o candidato;
– 2º se preencher os dois requisitos então contratar;
– 3º caso contrário, se preencher um ou outro requisito
então anotar seus dados;
– 4º senão dispensá-lo. 6
Algoritmos
• Algoritmo?

7
Algoritmos
• Algoritmo: sequencia de passos para solução de um
problema.
– Pregar um prego em um pedaço de madeira...
– Realizar uma seleção de candidatos para um emprego...

– Formas de definição:
• SEQUÊNCIA
• REPETIÇÃO
• SELEÇÃO

8
Algoritmos
• Utilidade dos algoritmos:

9
Algoritmos
• Definições:
– Descrição, de forma lógica, dos passos a serem
executados no cumprimento de determinada tarefa
– Ferramenta genérica para representar a solução de
tarefas
– Modelo para programas
– Receita para um processo computacional
– Pode ter vários níveis de abstrações
– Sequência finita de passos que levam a execução de
uma tarefa 10
Algoritmos
• Precisa:
1. Ter início e fim
2. Ser descrito em termos de ações não ambíguas e
bem definidas
3. As ações tem que seguir uma sequência ordenada

• Outros exemplos:
– As instruções de operação de um equipamento;
– Uma receita de bolo ou de algum prato de comida;
– Instruções de montagem; 11
Algoritmos
• Fases para desenvolvimento de algoritmos

– ENTRADA:
• dados que vão ser usados no processamento para chegar
na solução do problema.
• Fornecidos pelo usuário

12
Algoritmos
• Fases para desenvolvimento de algoritmos

– PROCESSAMENTO:
• são os procedimentos utilizados para chegar ao resultado
final

13
Algoritmos
• Fases para desenvolvimento de algoritmos

– SAÍDA:
• dados já processados
• resultado do processamento

14
Algoritmos
• Técnicas de representação
1. Em uma língua (português, inglês)
2. Uma linguagem de programação (JavaScript, PHP)
3. Representações gráficas
• Fluxograma

15
Algoritmos
• Diferença entre Algoritmo e Programa?

16
Algoritmos
• Diferença entre Algoritmo e Programa?
– Algoritmo: sequência lógica de ações a serem
executadas para se executar uma determinada
tarefa
– Programa: formalização de um algoritmo em uma
determinada linguagem de programação

17
Algoritmos
• Linguagem de programação
– Conjunto de símbolos(comandos, identificadores,
caracteres, ....) e regras de sintaxe, que permitem a
construção de programas/aplicações
– Regras de sintaxe:
• cada parênteses aberto em uma expressão aritmética deve
corresponder a um parênteses fechado;
• dois comandos quaisquer devem ser separados por um
ponto e vírgula;
– Regras de semântica:
• Especificam o “significado” 18
Algoritmos
• Tipos de linguagens de programação
1. Linguagem de Máquina
• Única compreendida pelo computador
• Mais rápida
• Mais Flexível
2. Linguagens de Baixo Nível (Assembly)
3. Linguagens de Alto Nível (JavaScript, PHP)
• Utiliza instruções próximas da linguagem humana
• Mais fácil de utilizar
• Maior confiabilidade
19
Algoritmos
• Processo de criação e execução de um programa
– Tradução do programa escritos em linguagens de
alto nível para a linguagem de baixo nível do
computador
• Tradutores: Montadores, Interpretadores e Compiladores

– Montador: Efetua a tradução de linguagem de


montagem(Assembly) para a linguagem de máquina

20
Algoritmos
• Processo de criação e execução de um programa
– Tradução do programa escritos em linguagens de
alto nível para a linguagem de baixo nível do
computador
• Tradutores: Montadores, Interpretadores e Compiladores

– Interpretador: Efetua a tradução de uma linguagem


de alto nível para linguagem de máquina

21
Algoritmos
• Processo de criação e execução de um programa
– Tradução do programa escritos em linguagens de
alto nível para a linguagem de baixo nível do
computador
• Tradutores: Montadores, Interpretadores e Compiladores

– Compilador: Efetua a tradução de todo o código-


fonte em linguagem de alto nível para as instruções
correspondentes em linguagem de máquina

22
Algoritmos
• Estratégias a serem seguidas na resolução de
problemas
– Critérios de qualidade de um programa
• Clareza: refere-se a facilidade de leitura do programa
• Simplicidade
• Eficiência: refere-se a velocidade de processamento
• Modularização: refere-se ao particionamento do
programa em módulos menores
• Generalidade: refere-se a reutilização dos
componentes/módulos
23
Algoritmos
• Estratégias a serem seguidas na resolução de
problemas
– Metodologia de solução
1. Entender o problema;
2. Formular um esboço da solução;
3. Fazer uma primeira aproximação das variáveis
necessárias;
4. Rever os passos originais, detalhando;
5. Se o algoritmo estiver suficientemente detalhado, testar
com um conjunto de dados significativos;
6. Implementar numa linguagem de programação. 24
Dúvidas?

25
Referências
BUFFONI, Salete. Apostila de Algoritmo
Estruturado. Material de aula da FIAA.

GONÇALVES, Anderson Emídio. Técnicas de


programação. Londrina: Editora e Distribuidora
Educacional S.A, 2014.

26

Você também pode gostar