Criação de Algoritmos - DCA

Propaganda
Universidade Federal do Rio Grande do Norte
Departamento de Engenharia de Computação e
Automação
Noções de Algoritmos
DCA0800 - Algoritmos e Lógica de Programação
Heitor Medeiros
1
Tópicos da aula
• Algoritmos
– Definições.
– Requisitos.
– Formas de representação.
• Criação de algoritmos.
2
Algoritmos: definições
• “Um algoritmo é um processo
sistemático para a resolução de um
problema.” [Szwarcfiter, 1994]
• “Um algoritmo computa uma saída,
o resultado do problema, a partir de
uma entrada, as informações
inicialmente conhecidas e que
permitem encontrar a solução do
problema.” [Szwarcfiter, 1994]
3
Algoritmos: definições
• “Uma 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.” [Piva et al, 2012]
• “Conjunto de regras e procedimentos
lógicos perfeitamente definidos que
levam à solução de um problema em
um número finito de etapas.” [Piva et
al, 2012]
4
Algoritmos: palavras-chave
5
Requisitos para um
Algoritmo
• Finitude:
– Sempre deve ter um final após um número finito de
etapas.
• Definição:
– Cada etapa do algoritmo deve ser definido com
precisão.
• Entrada:
– Um algoritmo deve possuir zero ou mais entradas.
• Saída:
– Um algoritmo deve possuir uma ou mais saídas.
6
Algoritmos x Programas
• Não confunda algoritmos com programas.
• O algoritmo é um conjunto de instruções para
realizar uma tarefa.
• Um algoritmo escrito em uma linguagem de
programação e traduzido para linguagem de
máquina é chamado de programa.
Algoritmo
Programa
Processo
7
Formas de Representação
de Algoritmos
• Linguagem natural (descrição narrativa).
– Representação do algoritmo através de descrição narrativa das
instruções/passos.
• Fluxograma - Linguagem gráfica.
– Representação dos passos do algoritmo através de elementos
gráficos.
• Diagrama de blocos.
• Pseudolinguagem.
– Representação do algoritmo mais próxima de uma linguagem de
programação de alto nível. A sintaxe da representação inclui
elementos das linguagens de programação.
• Português estruturado – Portugol.
8
Criação de Algoritmos
• Exemplo 01:
Construir um algoritmo para converter um número
binário em decimal. O número binário contém 3
bits, que são informados pelo usuário. E no final da
conversão, ou melhor, no final do algoritmo é
obrigatório mostrar ao usuário o valor decimal.
9
Criação de Algoritmos
• Exemplo 01:
Processamento
Construção de um algoritmo para converter um
número binário em decimal. O número binário
contém 3 bits, que são informados pelo usuário. E
no final da conversão, ou melhor, no final do
algoritmo é obrigatório mostrar ao usuário o valor
decimal.
Saída
Entrada(s)
10
Criação de Algoritmos:
Exemplo 01 – Linguagem natural
1.
2.
3.
4.
Ler o dígito da posição 0 (B0).
Ler o dígito da posição 1 (B1).
Ler o dígito da posição 2 (B2).
Multiplicar os dígitos (B0, B1 e B2) pelos pesos
posicionais(2², 2¹ e 2^0, ou, 4, 2 e 1).
X0 = B0 * 1
X1 = B1 * 2
X2 = B2 * 4
5. Somar os resultados das multiplicações do passo
anterior.
X = X0 + X1 + X2.
6. Escrever o valor de X.
11
Criação de Algoritmos:
Exemplo 01 – Linguagem natural
Passo 1
Operação de leitura / Entrada de dados.
Ler o dígito da posição 0 (B0).
Passo 2
Operação de leitura / Entrada de dados.
Ler o dígito da posição 1 (B1).
Passo 3
Operação de leitura / Entrada de dados.
Ler o dígito da posição 2 (B2).
Passo 4
Operação aritmética.
Multiplicar os dígitos pelos pesos posicionais.
Passo 5
Operação aritmética.
Somar os resultados das multiplicações do passo anterior.
Passo 6
Operação de escrita / saída de dados.
Escrever o valor de X.
12
Criação de Algoritmos:
Exemplo 01 – Fluxograma
by: creately.com
13
Criação de Algoritmos:
Exemplo 01 – Fluxograma
by: creately.com
14
Criação de Algoritmos:
Exemplo 01 – Pseudolinguagem
15
Criação de Algoritmos:
Exemplo 01 – Pseudolinguagem
• Semelhante as linguagens de
programação, existe uma
estrutura a ser seguida.
• Existem palavras reservadas:
algoritmo, var, inteiro, inicio,
fim algoritmo...
16
Criação de algoritmos
• Criação de algoritmos em pseudolinguagem.
– Utilizando a IDE VisualG.
• Criação de algoritmos/programas na linguagem
C.
– Utilizando a IDE Code Blocks.
• Criação de algoritmos/programas na linguagem
Java.
– Utilizando a IDE Netbeans.
17
Criação de algoritmos:
Exemplo 02
• Exemplo 02:
Construir um algoritmo para calcular as raízes de
uma equação de segundo grau dada por f(x) = ax +
bx + c. O usuário deverá informar os valores de a, b
e c, e o algoritmo deve mostrar os valores das raízes
de acordo com a fórmula de Bhaskara.
18
Criação de algoritmos:
Exemplo 02
• Exemplo 02:
Construir um algoritmo para calcular as raízes de
uma equação de segundo grau dada por f(x) = ax +
bx + c. O usuário deverá informar os valores de a, b
e c, e o algoritmo deve mostrar os valores das raízes
de acordo com a fórmula de Bhaskara.
 Entradas: valores das constantes “a”, “b” e “c”.
 Saídas: 2 raízes da equação de segundo grau (x1,
x2).
19
Criação de Algoritmos:
Exemplo 02 – Linguagem natural
1.
2.
3.
4.
Ler o valor de “a”.
Ler o valor de “b”.
Ler o valor de “c”.
Calcular o valor de “delta”:
delta = (b^2) – (4 * a * c)
5. Calcular os valores das duas raízes:
raiz1 = (-b + raiz(delta)) / (2*a)
raiz2 = (-b - raiz(delta)) / (2*a)
6. Escrever os valores das raízes (raiz1 e raiz2).
20
Criação de Algoritmos:
Exemplo 02 – Fluxograma
by: creately.com
21
Criação de Algoritmos:
Exemplo 02 – Pseudolinguagem
22
Criação de Algoritmos:
Exemplo 02 – Pseudolinguagem
Cuidados!
 Organize suas operações aritméticas.
 Organize TODO seu código.
 ORGANIZAÇÃO é a palavra chave de um bom
algoritmo.
23
Execução do Exemplo 02:
• E se a equação de segundo grau não tiver raízes
reais (delta < 0), o que fazer?
• Próximas aulas: estruturas de decisão.
24
Referências
• Piva Junior, D., et al. Algoritmos e Programação de
Computadores. Editora Campus: Rio de Janeiro, 2012.
• Szwarcfiter, J. L.; Markenzon, L. Estruturas de Dados e
seus Algoritmos. Editora LTC, 1994.
25
Dúvidas?
Dúvidas por email:
[email protected]
26
Download