Programação e Sistemas de Informação
Módulo 1
Escola Secundária Filipa de Vilhena
2012/2013
Algoritmia
Mas, o que é um algoritmo?
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ÇÃOPROCESSAMENTO
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?
Um Diálogo….
O resultado é 10.
Parabéns Lima… És um grande Matemático.
E um INFORMÁTICO, também
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
AdicionarFormas(Setas)
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 - Visualg
Pseudocódigo - Visualg
Pseudocódigo - Visualg
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.
Pseudocódigo – Um Exemplo
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

mod1-algoritmia

  • 1.
    Programação e Sistemasde Informação Módulo 1 Escola Secundária Filipa de Vilhena 2012/2013 Algoritmia
  • 2.
    Mas, o queé um algoritmo?
  • 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ógicade 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 Listagemordenada 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 deescrita 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 (Diagramasde 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 oseguinte 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?
  • 11.
    Um Diálogo…. O resultadoé 10. Parabéns Lima… És um grande Matemático. E um INFORMÁTICO, também
  • 12.
    Algoritmo que calculaa 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 calculaa 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 ordenaras 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 Constantese 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ídade 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 sefaz 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 anarrativa 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 setraduz 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 – Utilizandoo 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 lembrao 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 Parapoder 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.
  • 23.
  • 24.
  • 25.
  • 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.
  • 27.
  • 28.
    Actividade • Elabore umalgoritmo 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 calculaa 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