3. Mas, o que é um algoritmo?
Pode-se ver a definição de algoritmo segundo 2 vertentes, a:
• Matemática
– Descreve o processo de cálculo, ou de resolução de um grupo de
problemas semelhantes, em que se estipulam, com generalidade e
sem restrições, regras formais para a obtenção do resultado, ou da
solução do problema.
• Computacional
– Descreve o conjunto predeterminado e bem definido de regras e
processos destinados à solução de um problema, com um número
finito de etapas.
Programação Algoritmia (dois conceitos interligados)
4. Mas, o que é um algoritmo?
Pode-se considerar, de forma algo abusiva, um algoritmo com uma
receita de culinária. Porquê???
• Uma receita consiste num conjunto ( sequência de passos /
instruções / regras, que devem ser seguidas. Caso contrário, a
receita pode não dar o resultado desejado.
Segundo a receita…
Senão…
5. Mas, o que é um algoritmo?
Com um algoritmo pode-se
• Repetir passos, aquilo a que em programação se chama de iterações.
• Ou até tomar decisões com base em comparações ou lógica.
Mas um algoritmo não é, nem representa um programa de computador…
…representa sim os passos necessários para a realização de uma tarefa.
6. Introdução à Lógica de Programação
ENTRADA DE DADOS
SAÍDA DE
INFORMAÇÃOPROCESSAMENTO
UTILIZADOR
Aplicações Informáticas
O que preciso???
Como chegar ao que quero???
O que quero???
7. • Narrativa descritiva
Listagem ordenada de instruções em forma de frases curtas e directas, em
linguagem natural / humana (neste caso, português).
Representação de Algoritmos
Vantagens: Desvantagens:
Português é linguagem conhecida e
corrente, fácil de ler e entender por
todos.
Imprecisão (termos ambíguos)
Implica pouca confiabilidade
(desconfiança)
Extensão (tendência de se escrever
muito para dizer pouco)
8. • Pseudocódigo
Código de escrita em que se utilizam termos convencionados para indicar as
instruções do programa. Os termos utilizados são, normalmente, uma mistura da
linguagem corrente com notações e palavras inerentes às linguagens de
programação (aproxima-se assim das linguagens de alto nível).
Representação de Algoritmos
Vantagens: Desvantagens:
Uso do Português como base;
Passagem quase imediata do
algoritmo para a linguagem de
programação;
Pode-se definir quais os dados e de
que forma estão estruturados.
Exige que se defina uma linguagem
não real para o trabalho;
Não se trata de uma linguagem
padronizada.
9. • Fluxogramas (Diagramas de Fluxo)
São diagramas representativos do fluxo das acções de um programa, através de
símbolos, que representam os diferentes tipos das acções e o seu encadeamento
na sequência do programa.
Representação de Algoritmos
Vantagens: Desvantagens:
Ferramenta muito conhecida e
utilizada;
Uma imagem vale mais que mil
palavras;
É um standard (padrão) mundial.
Dá pouca atenção aos dados, em
que não oferece recursos para os
representar e / ou descrever;
Complexidade aumenta com o
tamanho do algoritmo.
10. Um Diálogo….
Preencha o seguinte diálogo entre o Lima e o João Moutinho.
Lima, quero que somes dois números…
São o 7 e o 3.
7 + 3 = 10
Quais são os números?
12. Algoritmo que calcula a soma de dois valores (inputs) e retorna o valor
dessa soma (output).
Representação de Algoritmos – Exemplo 1
Narrativa Descritiva Fluxograma Pseudocódigo
1. Ler os dois números
2. Somar os dois números
3. Visualizar a soma
Início
num1 ,num2
soma=num1+num2
soma
Fim
num1, num2, soma: int
inicio
escreva(“Digite valores a somar”)
leia(num1,num2)
soma num1 + num2
escreva(soma)
fim
13. Algoritmo que calcula a média aritmética da nota de dois testes .
Representação de Algoritmos – Exemplo 2
Narrativa Descritiva Fluxograma Pseudocódigo
1. Ler nota dos dois testes;
2. Somar as duas notas e
dividir por dois;
3. Apresentar o resultado
m1,m2,media: real
inicio
escreva(“Digite as duas notas:”)
leia(m1,m2)
media (m1 + m2) / 2
escreva (media)
fim
Início
Media <- (m1+m2)/2
Fim
media
m1, m2
14. Metodologia
Identificar e ordenar as operações de
processamento
Analisar o problema e identificar os objectivos principais
Se necessário dividir o problema em partes
Especificar as acções de
entrada de dados
Identificar constantes, variáveis e
tipos de dados a usar
Especificar as acções de
saída de dados
15. Nomes de Constantes e Variáveis
Identifique as variáveis e as
constantes presentes neste
algoritmo, no caso de
existirem…
16. Fluxograma• Símbolos principais
START/END
Entrada/
Saída de
dados
Decisão
Processamento
interno
Entrada
de dados
Selecção
múltipla
Conector
Saída de
dados
Subalgoritmo
São diagramas representativos do fluxo das acções de um programa (de forma
gráfica), através de símbolos
17. Fluxogramas
Mas, como se faz um fluxograma conjugando os símbolos anteriores?
Relembremos então o algoritmo para fazer a soma de dois números inteiros
introduzidos pelo utilizador…
O que é que o programa precisa?
Que o utilizador introduza dois números inteiros …
Para quê?
Para poder somá-los (operadores aritméticos) …
Qual o resultado a apresentar no final?
A soma do valor 1 com o valor 2 (introduzidos previamente pelo utilizador).
18. Fluxogramas
Como seria a narrativa descritiva do programa anterior?
1. Ler os dois números (num1 e num2, por exemplo)
Entrada de dados
2. Somar os dois números (soma = num1 + num2)
Processamento
3. Apresentar o valor da soma
Saída de dados
num1, num2
soma = num1+ num2
soma
19. Fluxogramas
O que se traduz no seguinte fluxograma:
Como representar fluxogramas?
No papel;
Utilizando programas:
Visio (pago, pesado, complexo, …);
Dia (gratuito, leve, simples, …)
…
num1, num2
soma = num1 + num2
soma
Início
Fim
20. Fluxogramas – Utilizando o Dia
Para saber mais sobre o dia e fazer download:
http://projects.gnome.org/dia/
Pode exportar (Menu
Ficheiro -> Exportar…) Para
vários formatos, entre eles,
formatos de imagem: jpg,
bmp, png, …
Área de Desenho
AdicionarFormas(Setas)
21. Pseudocódigo
Ainda se lembra o que é o pseudocódigo de um algoritmo?
Como recordar é viver, aqui vai novamente a definição:
“Código de escrita em que se utilizam termos convencionados para indicar
as instruções do programa.
Os termos utilizados são, normalmente, uma mistura da linguagem corrente
com notações e palavras inerentes às linguagens de programação (aproxima-
se assim das linguagens de alto nível).”
22. Pseudocódigo – Visualg
Para poder elaborar algoritmos em pseudocódigo, e executá-los, vai ser
utilizado o programa Visualg, semelhante a outros IDEs (Integrated
Development Environment) para programação.
Porquê a sua utilização???
O objectivo do VisualG é permitir aos iniciados em programação, o exercício
dos seus conhecimentos num ambiente próximo da realidade de uma
linguagem de programação;
Submeter um iniciado aos rigores de uma linguagem de programação.
26. Pseudocódigo – Entrada / Input de Valores
O comando de escrita é usado para se transmitir informações (mensagens,
resultado de processamento) do computador para o meio externo;
A forma geral de utilização desse comando é:
escreva (“Lista de itens a imprimir”)
escreval (“Lista de itens a imprimir”) // muda de linha
Não se esqueça de colocar as aspas.
28. Actividade
• Elabore um algoritmo que leia as notas dos 8 módulos de
Programação de Sistemas de Informação e calcule a média
obtida na disciplina.
Deve recorrer a:
– Narrativa Descritiva (Abordagem Top-Down)
– Algoritmo em Pseudocódigo
– Fluxograma
29. Algoritmo que calcula a média dos oito módulos à disciplina de PSI.
Representação de Algoritmos – Atividade
Narrativa Descritiva Fluxograma Pseudocódigo
1. Ler nota dos oito
módulos;
2. Somar as notas e
dividir por oito;
3. Apresentar o resultado
m1,m2,m3,m4,m5,m6,m7,m8:inteiro
media: real
inicio
escreva(“Digite as oito notas:”)
leia(m1,m2,m3,m4,m5,m6,m7,m8)
media
(m1+m2+m3+m4+m5+m6+m7+m8)/8
escreva (media)
fimalgoritmo
Início
Media <- (m1+m2+m3+m4+m5+m6+m7+m8)/8
Fim
media
m1, m2, m3,m4,
m5, m6, m7, m8