View
78
Download
1
Category
Preview:
Citation preview
Programação e Sistemas de Informação Módulo 1
Escola Secundária Filipa de Vilhena 2012/2013
Algoritmia
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)
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…
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.
Introdução à Lógica de Programação
ENTRADA DE DADOS SAÍDA DE
INFORMAÇÃO
PROCESSAMENTO
UTILIZADOR
Aplicações Informáticas
O que preciso???
Como chegar ao que quero??? O que quero???
• 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)
• 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.
• 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.
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?
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
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
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
Nomes de Constantes e Variáveis
Identifique as variáveis e as
constantes presentes neste
algoritmo, no caso de
existirem…
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
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).
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
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
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
Ad
icio
nar
Fo
rmas
(Se
tas)
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).”
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.
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.
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
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
Recommended