Ano letivo 2023 | 2024
PROGRAMAÇÃO DE
SISTEMAS DE
INFORMAÇÃO
MÓDULO 1
INTRODUÇÃO À PROGRAMAÇÃO E
ALGORITMIA
Domínios de Avaliação
D1 - Conhecimentos e capacidades 35%
D2 - Resolução de Problemas 35%
Cidadania 30%
 Autonomia 10%
 Responsabilidade 10%
 Relacionamento Interpessoal 10%
2
Objetivos
3
 Apreender conceitos sobre a lógica de programação
 Aplicar instruções e sequências lógicas na resolução de
problemas
 Utilizar as regras e as diferentes fases na elaboração de um
algoritmo
 Aplicar fluxogramas
 Identificar os diferentes tipos de dados
 Identificar variáveis e constantes
 Utilizar as regras de tipos em geral
 Enumerar e identificar os operadores aritméticos,
relacionais e lógicos
 Utilizar operadores e funções pré-definidas
 Realizar testes e correção de erros
Lógica
 A lógica de programação é necessária para pessoas
que desejam trabalhar com desenvolvimento de
sistemas e programas, ela permite definir a sequência
lógica para o desenvolvimento.
Então o que é a lógica?
4
Lógica de programação é a técnica de encadear
pensamentos para atingir determinado objetivo.
Sequência Lógica
 Os pensamentos, podem ser descritos como uma
sequência de instruções, que devem ser seguidas para
se cumprir uma determinada tarefa.
5
Sequência Lógica são passos executados até atingir um
objetivo ou solução de um problema.
Instruções
 Em informática, instrução é a informação que indica a
um computador uma ação elementar a executar.
 Convém salientar que uma ordem isolada não permite
realizar o processo completo, para isso é necessário um
conjunto de instruções colocadas em ordem
sequencial lógica.
6
Instruções
 Por exemplo, se quisermos fazer uma omelete de
batata, precisamos colocar em prática uma série de
instruções: descascar batatas, bater os ovos, fritar as
batatas, etc…
 É evidente que essas instruções têm que ser
executadas numa ordem adequada – não se pode
descascar as batatas depois de as fritar.
7
Instruções
 Uma instrução isolada não tem muito sentido; para
obtermos o resultado, precisamos de colocar em prática
o conjunto de todas as instruções, na ordem correta.
8
Instruções são um conjunto de regras ou normas
definidas para a realização ou aplicação de algo. Em
informática, é o que indica a um computador uma ação
elementar a executar.
Algoritmo
 Podemos pensar em algoritmo como uma receita, uma
sequência de instruções que permitem atingir uma meta
específica. Estas tarefas não podem ser redundantes
nem subjetivas na sua definição, devem ser claras e
precisas.
9
Um algoritmo é formalmente uma sequência finita de
passos que levam à execução de uma tarefa.
Algoritmo
 Até mesmo as coisas mais simples, podem ser
descritas por sequências lógicas. Por exemplo:
“Comer um rebuçado”
• Pegar no rebuçado
• Retirar o papel
• Colocar o rebuçado na boca
• Colocar o papel no lixo
• …
10
Fases da programação
11
Definição do problema
Planificação da resolução
Implementação - codificação
Testes e depuração
Documentação
Manutenção
Nota: As setas que apontam de baixo para cima significam que, em determinadas fases,
pode ser necessário voltar a fases anteriores e, em seguida, retomar o percurso mais lógico.
Fases da programação
12
 Definição do problema. Para começar, há que definir
o problema que se pretende resolver. Esta definição
deve ser feita da forma mais clara e completa possível.
Isto quer dizer que não se pode partir para a fase
seguinte da resolução de um problema sem ter um
enunciado preciso de todos os aspetos da situação-
problema a resolver.
 Planificação da resolução. Em seguida, devemos
recorrer a uma estratégia de abordagem do problema
que seja o mais adequada possível à obtenção de uma
solução.
É nesta fase que surgem os algoritmos.
Fases da programação
13
 Codificação. Uma vez definido um algoritmo
adequado à solução do problema, a fase seguinte
– a codificação – fica bastante facilitada, uma vez
que se trata, então, apenas de transpor as
indicações do algoritmo para as instruções na
linguagem de programação que se utilizar.
 Teste e depuração. Após obtido o código do
programa, há então que testá-lo com diversos
tipos de dados e em diferentes situações (se for o
caso), de modo a poderem detetar-se eventuais
Fases da programação
14
 Documentação. A documentação de um programa pode
visar dois tipos de destinatários: programadores e
utilizadores. Para os programadores a documentação pode,
em grande parte, ser incluída no próprio código e visa
facilitar a sua compreensão e eventual retoma de
alterações ou melhoramentos por parte dos mesmos ou de
outros programadores. Para os utilizadores a
documentação visa facilitar a aprendizagem relativa ao
modo de operar com o programa.
 Manutenção. Finalmente, a fase de manutenção diz
respeito a possíveis alterações que sejam necessárias
fazer ou aperfeiçoamento que se revelem úteis de
introduzir. Esta fase tende a ocupar uma percentagem cada
vez maior no trabalho dos profissionais de programação.
Algoritmos e algoritmia
15
Fase de conceção Fase de
implementação
Algoritmo
Sequência finita e
ordenada de ações
que conduzem à
solução de um
problema
Programa
Conjunto de
instruções
destinadas a
serem
processadas num
sistema
informático para
realizar alguma
tarefa
A separação entre algoritmo e programa permite-nos distinguir e separar as fases de
formulação do algoritmo e de implementação do programa. Desta forma, é possível
conceber um algoritmo deixando para mais tarde os detalhes relativos à sua
implementação com a utilização de uma linguagem e ferramenta de programação.
Algoritmos e programas
16
 Algoritmo – é uma sequência finita e
logicamente ordenada de ações para se chegar
à solução de um problema. Isto quer dizer que
um algoritmo não pode estar sujeito a diferentes
interpretações.
 Exemplos: Substituir uma lâmpada
Substituir um pneu de automóvel
 Programa – conjunto de instruções destinadas a
serem processadas num sistema informático.
Exemplo de um algoritmo
17
 Substituição de uma lâmpada
1. Preparar uma lâmpada nova
2. Retirar a lâmpada fundida
3. Colocar a lâmpada nova
4. Ligar o interruptor e verificar se a nova lâmpada
acende ou não
5. Se a lâmpada acender, podemos dar o processo
por terminado; se não acender, teremos de
repetir os passos de 1 a 4
Exemplo de um algoritmo
18
 Substituir um pneu furado
1. Preparar o pneu sobresselente
2. Colocar o macaco na posição adequada
3. Levantar o carro
4. Retirar o pneu furado
5. Colocar o pneu sobresselente
Nota: Sequências de operações como estas podem ser consideradas
algoritmos formulados em linguagem informal. Dizemos linguagem
informal porque utilizamos a nossa linguagem natural e não uma linguagem
convencional com maior rigor.
19
Os algoritmos pensados para programas de
computador exigem uma formulação com maior
rigor e para isso existem linguagens formais. As
linguagens de programação, podem considerar-
se linguagens formais.
Em algoritmia, para além das linguagens de
programação, são usadas outras linguagens e
formas de representação das instruções que
indicamos nos algoritmos, designadamente:
Top-Down
Pseudocódigo
Fluxogramas
Algoritmos
Abordagem Top-Down
20
 Abordagem descendente ou abordagem do
topo para a base.
É um método de abordagem dos problemas
em que se procura identificar os pontos
essenciais da questão e se parte dos pontos
mais gerais para os particulares ou detalhes,
em níveis sucessivamente mais concretos, até
ao nível de pormenor desejado.
Exemplo muito simples
21
 Calcular a soma de dois números introduzidos
pelo utilizador.
1. Pedir os dois números ao utilizador
2. Calcular a soma dos números
3. Apresentar o resultado
Em seguida, passaríamos a desenvolver cada
um destes pontos até aos detalhes necessários.
Exemplo muito simples
22
 Calcular a soma de dois números
introduzidos pelo utilizador.
1. Pedir os dois números ao utilizador
1.1. Pedir o 1º número
1.2. Pedir o 2º número
2. Calcular a soma dos números
3. Apresentar o resultado
Exercício
23
 Elabore um algoritmo para calcular a área
de um retângulo a partir das medidas dadas
do comprimento e da largura.
1. Pedir as medidas do retângulo
1.1. Pedir o valor do comprimento
1.2. Pedir o valor da largura
2. Calcular a área (comprimento *
largura)
3. Apresentar o valor da área
Fluxogramas
 Outra maneira
de representar
os algoritmos
que utilizam
formas gráficas
com
significados
convencionais.
Início e Fim
Entrada e Saída
de dados
Processamento
Decisão
Linha de fluxo
Conector
24
Fluxograma
Cálculo da área de um retângulo
25
Início
Ler (comprimento, largura)
Area  comprimento * largura
Escrever (Area)
Fim
Tipos de dados
 Caracteres – cadeia de
caracteres ou alfanuméricos
(Aula de Programação e Sistemas de
Informação)
 Números inteiros
(-8; 0; 5)
 Números reais
(1.5; -4.2; 0.32)
 Valores lógicos ou booleanos
(Verdadeiro e Falso)
 Char, String
 Integer, int
 Real, float
 Boolean
26
Constantes e variáveis
27
 Constante – um dado que permanece
inalterável do início ao fim do algoritmo.
 Ex: PI=3.14
 Variável – um dado que pode sofrer
alterações de valor ao longo do programa.
Atribuição
28
Linguagem Sinal de atribuição
Pascal :=
C =
Algoritmia 
Operadores
Operador Operação
* Multiplicação
/ Divisão
^ Exponenciação
Mod Resto da divisão
Div Divisão inteira
A ordem de prioridade é a seguinte:
1. Exponenciação
2. Multiplicação e divisão
3. Adição e subtracção
Operações, Variáveis e
Expressões
29
 OPERAÇÕES
Soma 3 + 4
Multiplicação 5 * 8
Subtração 7 – 5
Divisão 5 / 8
Exponenciação 2 ^ 3
30
Variável = Entidade que pode tomar vários valores
Variável tem um nome - começar por uma letra
- pode ter números e letras
- não pode ter caracteres especiais
- não pode ter espaços em branco
- não podem ser palavras reservadas
- não pode haver nomes iguais
Exemplos:
Possíveis: TOTAL, soma, Cont, cont1, TOTAL_1
Impossíveis: 1total, Me dia, Date, TIME
Variáveis
Truncado 1
1.7
Arredondado 2
Truncado 1
1.3
Arredondado 1
31
A atribuição é uma operação destrutiva 
destrói ou elimina o conteúdo anterior da
variável
X  31.7
X  100
C  ‘Escola Secundária’
C  ‘Informática’
Atribuição
32
Z  3 + 5 + 12
Z  20
X1  8.2 + 3.8
X2  3
Res  X1 / X2
Res  12 /3
Res  4
Expressões
33
A  5 * 7 + 3 * 2 + 4
35 + 6 + 4
41 + 4
45
A  5 + 2 * ( 3 + 2 * 4 )
5 + 2 * ( 3 + 8 )
5 + 2 * 11
5 + 22
27
Y  12 MOD 3
Y  0
Y  12 MOD 5
Y  2
Y  38 MOD 11
Y  5
Ordem das operações
Pseudocódigo
34
 Pseudocódigo – linguagem formal que se
assemelha a uma linguagem de programação.
Representa um código, sem no entanto o ser.
 Ex: Cálculo da área de um retângulo
Algoritmo retangulo
Variaveis area, comprimento, largura: Reais
Início
Ler (comprimento, largura)
area  comprimento * largura
Escrever (area)
Fim
Nome do programa
Declaração das variáveis
Leitura de dados
Processamento de dados
Saída de dados
Instruções Básicas
35
 Comando de escrita:
 Escrever(“Paula”)
 Escrever (IDADE)
 Escrever(“A minha idade é: “, IDADE)
 Comado de leitura:
 Ler(NOME)
 Ler(IDADE, NOME)
 Instruções de atribuição
 A  VALOR
 NUM  3
 A  3 + B / 2
Exercício1
36
 Elabore um algoritmo em Pseudocódigo que leia
dois números e calcule a sua soma e o produto
entre eles. Escreva o resultado.
Algoritmo calculos
Variáveis numero1, numero2, Soma, Produto: inteiros
Início
Ler (numero1, numero2)
Soma  numero1 + numero2
Produto  numero1 * numero2
Escrever (Soma, Produto)
Fim
Exercício2
37
 Elabore um algoritmo em Pseudocódigo para
converter uma temperatura em graus Celsius
para Fahrenheit (ºF=32+1.8ºC).
Algoritmo graus
Variáveis temperatura, fahrenheit: reais
Início
Ler (temperatura)
fahrenheit  32 + 1.8 * temperatura
Escrever (fahrenheit)
Fim
Exercício3
38
 Elabore um algoritmo em Pseudocódigo para
converter uma temperatura em graus
Fahrenheit para graus Celcius ºC=(ºF – 32)/1.8.
Algoritmo grausF
Variáveis temperatura, fahrenheit: reais
Início
Ler (temperatura)
temperatura  (fahrenheit - 32 )/ 1.8
Escrever (temperatura)
Fim
Exercício4
39
 Elabore um algoritmo em Pseudocódigo para
calcular a área (PI*raio^2) e o perímetro de uma
circunferência (2*PI*raio).
Algoritmo circunferência
Variáveis
raio: inteiro
área, perímetro: reais
PI  3.14159
Inicio
Ler (raio)
area  PI * raio ^ 2
perimetro  2 * PI * raio
40
Exercício 5
 Elabore um algoritmo em pseudocódigo que permita
calcular a média de três testes.
Output:
A média entre as três notas é de …
 Elabore o fluxograma para o algoritmo anterior.
Aula 11,12,13
 Entrega e correção do Questionário Escrito
 Estruturas de decisão
 Operadores relacionais e lógicos
41
Correção Ficha 2
42
43
Estruturas de Decisão
 Podemos solucionar problemas utilizando só a estrutura
de controlo sequencial.
 Contudo, apenas podemos solucionar problemas
simples e limitados: leitura de valores, atribuição de
valores, cálculos e escrever resultados.
 Não pode ser exercido qualquer controlo sobre a ordem
de execução das instruções, pois estas são executadas
sequencialmente e apenas uma vez.
44
Estruturas de Decisão
SE… ENTÃO… SENÃO…
Esta estrutura permite, com base numa condição
colocada a seguir a SE, decidir sobre a execução ou não
de determinada ação ou optar entre duas alternativas
colocadas a seguir a ENTÃO e a SENÃO, sendo esta
última opcional.
Estruturas de Decisão
SE… ENTÃO… SENÃO…
Pseudocódigo Fluxograma
Se <condição>
Então
<bloco de instruções>
Senão
<bloco de instruções>
FimSe
45
Se
condição
Então
Bloco de
instruções
Senão
Bloco de
instruções
verdadeiro
falso
Estruturas de Decisão
 SE… ENTÃO… SENÃO…
Procurar pneu sobresselente
Se (Pneu sobresselente está em bom estado)
Então
Preparar o macaco
Tirar o pneu furado
Colocar o pneu sobresselente
Senão
Mandar vir ajuda
FimSe
46
47
Exemplos
Ler um valor e enviar para o ecrã uma mensagem se o
valor for negativo.
Algoritmo negativo
Variaveis Num
Inicio
Ler (Num)
Se (Num<0)
Então
Escrever (“Negativo”)
Fim
48
Exercício
 Pretende-se saber qual o maior de dois valores
introduzidos a partir do teclado. Elabore o Fluxograma
e o Pseudocódigo do respetivo algoritmo
NOT (Negação)
P ~P
V F
F V
AND (Conjunção)
P Q P^Q
V V V
V F F
F V F
F F F
OR (Disjunção)
P Q PQ
V V V
V F V
F V V
F F F
49
Operadores relacionais lógicos
Exercício
50
 Considere um algoritmo que dada a nota que ele obteve
no exame, verifica e imprime se o aluno está aprovado ou
reprovado.
“Se … Então…” “Se … Então… Senão”
Algoritmo exame
Variáveis nota: real
Início
Escrever (“Qual a nota do exame?”)
Ler (nota)
Se (nota >= 9.5)
Então
Escrever(“Aprovado”)
FimSe
Fim
Algoritmo exame
Variáveis nota: real
Início
Escrever (“Qual a nota do exame?”)
Ler (nota)
Se (nota >= 9.5)
Então
Escrever(“Aprovado”)
Senão
Escrever(“Reprovado”)
FimSe
Fim
Fluxograma
51
Início
Escrever(“Qual a nota do exame?”)
Ler(nota)
Nota>=9.5
Escrever(“Aprovado”) Escrever(“Reprovado”)
Fim
Falso
Verdade
Ficha de trabalho n.º 3
52
Consiste numa simulação das instruções constituintes do
algoritmo de modo a verificar se este resolve o problema
enunciado
Construção de uma tabela, onde se
colocam as variáveis, as condições,
saídas, etc., por coluna
Algoritmo quadrado;
Variável lado, area: inteiro;
Inicio
Ler (lado);
area  lado * lado;
Escrever (‘ A área do quadrado com lado’ , lado, ‘ é
de’, area);
Fim.
Traçagem exemplo
Passo lado area Saída
1º passo
2º passo
3º passo
2
2*2 = 4
A área do quadrado
com lado 2 é de 4
Traçagem para idade=8 e idade =20
55
Início
Ler idade
Fim
Escrever “Você é
maior de idade”
Idade
>18
sim
não
Passo idad
e
Idade
>18
Saída
1º
passo
2º
passo
3º
passo
8
8 > 18
false
Passo idad
e
Idade
>18
Saída
1º
passo
2º
passo
3º
passo
Você é maior de
idade
20
20 > 18
True
Portugol
56
programa
{
funcao inicio ()
{
inteiro numero
escreva("Digite um número inteiro: ")
leia(numero)
escreva("O número digitado foi: ", numero,
"n")
}
}
Portugol
programa
{
funcao inicio()
{
real a, b, soma, sub, mult, div
escreva("Digite o primeiro número: ")
leia(a)
escreva("Digite o segundo número: ")
leia(b)
soma = a + b // Soma os dois valores
sub = a - b // Subtrai os dois valores
mult = a * b // Multiplica os dois valores
div = a / b // Divide os dois valores
escreva("nA soma dos números é igual a: ", soma)
escreva("nA subtração dos números é igual a: ", sub)
escreva("nA multiplicação dos números é igual a: ", mult)
escreva("nA divisão dos números é igual a: ", div, "n")
}
57
Portugol
programa
{
funcao inicio()
{
inteiro numero
escreva("Digite um número inteiro: ")
leia(numero)
se(numero > 0)
{
escreva("O número é positivo")
}
senao
{
escreva("O número é negativo")
}
58
59
Programa exame
Variáveis nota: real
Início
Escrever (“Qual a nota?”)
Ler (nota)
Se (nota >= 0) E (nota<=20) Então
Se (nota>=9.5) Então
Escrever(“Aprovado”)
Senão
Escrever(“Reprovado”)
FimSe
Senão
Escrever(“Nota inválida.”)
FimSe
Fim
Pseudocódigo
Pseudocódigo
Variáveis
turno: caracteres
horas, salario: real
Início
Escrever (“Em que turno trabalhou?”)
Ler (turno)
Escrever (“Quantas horas trabalhou?”)
Ler (horas)
Se (turno = ‘dia’) Então
salario  7.5*horas
Senão
salario  10*horas
FimSe
Escrever(“O salário final é”,salario)
Fim
60
Pretende-se calcular o salário semanal de um operário em função do turno realizado e
do número de horas de trabalho nessa semana.
Sabemos que no turno de dia será pago a 7,5 Euros por hora. No turno da noite será
pago a 10 Euros por hora.
Estruturas de Seleção ou escolha
múltipla
Selecionar Caso…
Enquanto que as estruturas de decisão são controladas
por condições ou expressões lógicas que apenas podem
assumir valor V (verdadeiro) ou F (Falso), as estruturas
de seleção ou escolha múltipla são controladas por
variáveis ou expressões que podem assumir uma
multiplicidade de valores.
Geralmente, utiliza-se uma variável do tipo inteiro ou
caracter. Essa variável funciona, como seletor –
determinando a seleção da ação a executar de acordo
com o valor que assumir.
61
Estruturas de Seleção ou escolha
múltipla
Selecionar Caso…
Variável Nota: Inteiro
Início
Escrever (“Qual a Nota?”)
Ler (Nota)
Selecionar Caso Nota
0, 1, 2, 3, 4: Escrever (“Mau”);
5, 6, 7, 8, 9: Escrever (“Medíocre”);
10, 11, 12, 13: Escrever (“Suficiente”);
14, 15, 16, 17: Escrever (“Bom”);
18, 19, 20: Escrever (“Muito Bom”);
Senão Escrever (“Nota inválida”);
FimSelecionar
Fim
62
Estruturas de Seleção
SELECIONAR CASO...
Pseudocódigo Fluxograma
Selecionar caso <variável>
<valores>: <bloco
instruções>
Senão <bloco de
instruções>
FimSelecionar
63
Caso
variável
senão
Estruturas de Seleção ou escolha
múltipla
Selecionar Caso…
64
65
programa {
funcao inicio() {
inteiro op
escreva("digite a sua opção [1, 2, 3]: ")
leia (op)
escolha (op){
caso 1:
escreva("voce digitou a opção 1")
pare
caso 2:
escreva("voce digitou a opção 2")
pare
caso contrario:
escreva("opção inválida")
}
}
Estruturas de repetição
66
Para I  1 até 10
Fazer
<bloco de
instruções>
FimFazer
Bloco de ações
condição
Falso
Verdadeiro
Bloco de ações
Estruturas de repetição
67
Repetir
<bloco de
instruções>
Até que <condição>
Bloco de ações
condição Falso
Verdadeiro
Estruturas de repetição
68
Enquanto <condição>
Fazer
<bloco de
instruções>
FimFazer
Falso
Verdadeiro

Introdução à Programação Módulo 1 - GPSI

  • 1.
    Ano letivo 2023| 2024 PROGRAMAÇÃO DE SISTEMAS DE INFORMAÇÃO MÓDULO 1 INTRODUÇÃO À PROGRAMAÇÃO E ALGORITMIA
  • 2.
    Domínios de Avaliação D1- Conhecimentos e capacidades 35% D2 - Resolução de Problemas 35% Cidadania 30%  Autonomia 10%  Responsabilidade 10%  Relacionamento Interpessoal 10% 2
  • 3.
    Objetivos 3  Apreender conceitossobre a lógica de programação  Aplicar instruções e sequências lógicas na resolução de problemas  Utilizar as regras e as diferentes fases na elaboração de um algoritmo  Aplicar fluxogramas  Identificar os diferentes tipos de dados  Identificar variáveis e constantes  Utilizar as regras de tipos em geral  Enumerar e identificar os operadores aritméticos, relacionais e lógicos  Utilizar operadores e funções pré-definidas  Realizar testes e correção de erros
  • 4.
    Lógica  A lógicade programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir a sequência lógica para o desenvolvimento. Então o que é a lógica? 4 Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.
  • 5.
    Sequência Lógica  Ospensamentos, podem ser descritos como uma sequência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa. 5 Sequência Lógica são passos executados até atingir um objetivo ou solução de um problema.
  • 6.
    Instruções  Em informática,instrução é a informação que indica a um computador uma ação elementar a executar.  Convém salientar que uma ordem isolada não permite realizar o processo completo, para isso é necessário um conjunto de instruções colocadas em ordem sequencial lógica. 6
  • 7.
    Instruções  Por exemplo,se quisermos fazer uma omelete de batata, precisamos colocar em prática uma série de instruções: descascar batatas, bater os ovos, fritar as batatas, etc…  É evidente que essas instruções têm que ser executadas numa ordem adequada – não se pode descascar as batatas depois de as fritar. 7
  • 8.
    Instruções  Uma instruçãoisolada não tem muito sentido; para obtermos o resultado, precisamos de colocar em prática o conjunto de todas as instruções, na ordem correta. 8 Instruções são um conjunto de regras ou normas definidas para a realização ou aplicação de algo. Em informática, é o que indica a um computador uma ação elementar a executar.
  • 9.
    Algoritmo  Podemos pensarem algoritmo como uma receita, uma sequência de instruções que permitem atingir uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas. 9 Um algoritmo é formalmente uma sequência finita de passos que levam à execução de uma tarefa.
  • 10.
    Algoritmo  Até mesmoas coisas mais simples, podem ser descritas por sequências lógicas. Por exemplo: “Comer um rebuçado” • Pegar no rebuçado • Retirar o papel • Colocar o rebuçado na boca • Colocar o papel no lixo • … 10
  • 11.
    Fases da programação 11 Definiçãodo problema Planificação da resolução Implementação - codificação Testes e depuração Documentação Manutenção Nota: As setas que apontam de baixo para cima significam que, em determinadas fases, pode ser necessário voltar a fases anteriores e, em seguida, retomar o percurso mais lógico.
  • 12.
    Fases da programação 12 Definição do problema. Para começar, há que definir o problema que se pretende resolver. Esta definição deve ser feita da forma mais clara e completa possível. Isto quer dizer que não se pode partir para a fase seguinte da resolução de um problema sem ter um enunciado preciso de todos os aspetos da situação- problema a resolver.  Planificação da resolução. Em seguida, devemos recorrer a uma estratégia de abordagem do problema que seja o mais adequada possível à obtenção de uma solução. É nesta fase que surgem os algoritmos.
  • 13.
    Fases da programação 13 Codificação. Uma vez definido um algoritmo adequado à solução do problema, a fase seguinte – a codificação – fica bastante facilitada, uma vez que se trata, então, apenas de transpor as indicações do algoritmo para as instruções na linguagem de programação que se utilizar.  Teste e depuração. Após obtido o código do programa, há então que testá-lo com diversos tipos de dados e em diferentes situações (se for o caso), de modo a poderem detetar-se eventuais
  • 14.
    Fases da programação 14 Documentação. A documentação de um programa pode visar dois tipos de destinatários: programadores e utilizadores. Para os programadores a documentação pode, em grande parte, ser incluída no próprio código e visa facilitar a sua compreensão e eventual retoma de alterações ou melhoramentos por parte dos mesmos ou de outros programadores. Para os utilizadores a documentação visa facilitar a aprendizagem relativa ao modo de operar com o programa.  Manutenção. Finalmente, a fase de manutenção diz respeito a possíveis alterações que sejam necessárias fazer ou aperfeiçoamento que se revelem úteis de introduzir. Esta fase tende a ocupar uma percentagem cada vez maior no trabalho dos profissionais de programação.
  • 15.
    Algoritmos e algoritmia 15 Fasede conceção Fase de implementação Algoritmo Sequência finita e ordenada de ações que conduzem à solução de um problema Programa Conjunto de instruções destinadas a serem processadas num sistema informático para realizar alguma tarefa A separação entre algoritmo e programa permite-nos distinguir e separar as fases de formulação do algoritmo e de implementação do programa. Desta forma, é possível conceber um algoritmo deixando para mais tarde os detalhes relativos à sua implementação com a utilização de uma linguagem e ferramenta de programação.
  • 16.
    Algoritmos e programas 16 Algoritmo – é uma sequência finita e logicamente ordenada de ações para se chegar à solução de um problema. Isto quer dizer que um algoritmo não pode estar sujeito a diferentes interpretações.  Exemplos: Substituir uma lâmpada Substituir um pneu de automóvel  Programa – conjunto de instruções destinadas a serem processadas num sistema informático.
  • 17.
    Exemplo de umalgoritmo 17  Substituição de uma lâmpada 1. Preparar uma lâmpada nova 2. Retirar a lâmpada fundida 3. Colocar a lâmpada nova 4. Ligar o interruptor e verificar se a nova lâmpada acende ou não 5. Se a lâmpada acender, podemos dar o processo por terminado; se não acender, teremos de repetir os passos de 1 a 4
  • 18.
    Exemplo de umalgoritmo 18  Substituir um pneu furado 1. Preparar o pneu sobresselente 2. Colocar o macaco na posição adequada 3. Levantar o carro 4. Retirar o pneu furado 5. Colocar o pneu sobresselente Nota: Sequências de operações como estas podem ser consideradas algoritmos formulados em linguagem informal. Dizemos linguagem informal porque utilizamos a nossa linguagem natural e não uma linguagem convencional com maior rigor.
  • 19.
    19 Os algoritmos pensadospara programas de computador exigem uma formulação com maior rigor e para isso existem linguagens formais. As linguagens de programação, podem considerar- se linguagens formais. Em algoritmia, para além das linguagens de programação, são usadas outras linguagens e formas de representação das instruções que indicamos nos algoritmos, designadamente: Top-Down Pseudocódigo Fluxogramas Algoritmos
  • 20.
    Abordagem Top-Down 20  Abordagemdescendente ou abordagem do topo para a base. É um método de abordagem dos problemas em que se procura identificar os pontos essenciais da questão e se parte dos pontos mais gerais para os particulares ou detalhes, em níveis sucessivamente mais concretos, até ao nível de pormenor desejado.
  • 21.
    Exemplo muito simples 21 Calcular a soma de dois números introduzidos pelo utilizador. 1. Pedir os dois números ao utilizador 2. Calcular a soma dos números 3. Apresentar o resultado Em seguida, passaríamos a desenvolver cada um destes pontos até aos detalhes necessários.
  • 22.
    Exemplo muito simples 22 Calcular a soma de dois números introduzidos pelo utilizador. 1. Pedir os dois números ao utilizador 1.1. Pedir o 1º número 1.2. Pedir o 2º número 2. Calcular a soma dos números 3. Apresentar o resultado
  • 23.
    Exercício 23  Elabore umalgoritmo para calcular a área de um retângulo a partir das medidas dadas do comprimento e da largura. 1. Pedir as medidas do retângulo 1.1. Pedir o valor do comprimento 1.2. Pedir o valor da largura 2. Calcular a área (comprimento * largura) 3. Apresentar o valor da área
  • 24.
    Fluxogramas  Outra maneira derepresentar os algoritmos que utilizam formas gráficas com significados convencionais. Início e Fim Entrada e Saída de dados Processamento Decisão Linha de fluxo Conector 24
  • 25.
    Fluxograma Cálculo da áreade um retângulo 25 Início Ler (comprimento, largura) Area  comprimento * largura Escrever (Area) Fim
  • 26.
    Tipos de dados Caracteres – cadeia de caracteres ou alfanuméricos (Aula de Programação e Sistemas de Informação)  Números inteiros (-8; 0; 5)  Números reais (1.5; -4.2; 0.32)  Valores lógicos ou booleanos (Verdadeiro e Falso)  Char, String  Integer, int  Real, float  Boolean 26
  • 27.
    Constantes e variáveis 27 Constante – um dado que permanece inalterável do início ao fim do algoritmo.  Ex: PI=3.14  Variável – um dado que pode sofrer alterações de valor ao longo do programa.
  • 28.
    Atribuição 28 Linguagem Sinal deatribuição Pascal := C = Algoritmia  Operadores Operador Operação * Multiplicação / Divisão ^ Exponenciação Mod Resto da divisão Div Divisão inteira A ordem de prioridade é a seguinte: 1. Exponenciação 2. Multiplicação e divisão 3. Adição e subtracção
  • 29.
    Operações, Variáveis e Expressões 29 OPERAÇÕES Soma 3 + 4 Multiplicação 5 * 8 Subtração 7 – 5 Divisão 5 / 8 Exponenciação 2 ^ 3
  • 30.
    30 Variável = Entidadeque pode tomar vários valores Variável tem um nome - começar por uma letra - pode ter números e letras - não pode ter caracteres especiais - não pode ter espaços em branco - não podem ser palavras reservadas - não pode haver nomes iguais Exemplos: Possíveis: TOTAL, soma, Cont, cont1, TOTAL_1 Impossíveis: 1total, Me dia, Date, TIME Variáveis
  • 31.
    Truncado 1 1.7 Arredondado 2 Truncado1 1.3 Arredondado 1 31 A atribuição é uma operação destrutiva  destrói ou elimina o conteúdo anterior da variável X  31.7 X  100 C  ‘Escola Secundária’ C  ‘Informática’ Atribuição
  • 32.
    32 Z  3+ 5 + 12 Z  20 X1  8.2 + 3.8 X2  3 Res  X1 / X2 Res  12 /3 Res  4 Expressões
  • 33.
    33 A  5* 7 + 3 * 2 + 4 35 + 6 + 4 41 + 4 45 A  5 + 2 * ( 3 + 2 * 4 ) 5 + 2 * ( 3 + 8 ) 5 + 2 * 11 5 + 22 27 Y  12 MOD 3 Y  0 Y  12 MOD 5 Y  2 Y  38 MOD 11 Y  5 Ordem das operações
  • 34.
    Pseudocódigo 34  Pseudocódigo –linguagem formal que se assemelha a uma linguagem de programação. Representa um código, sem no entanto o ser.  Ex: Cálculo da área de um retângulo Algoritmo retangulo Variaveis area, comprimento, largura: Reais Início Ler (comprimento, largura) area  comprimento * largura Escrever (area) Fim Nome do programa Declaração das variáveis Leitura de dados Processamento de dados Saída de dados
  • 35.
    Instruções Básicas 35  Comandode escrita:  Escrever(“Paula”)  Escrever (IDADE)  Escrever(“A minha idade é: “, IDADE)  Comado de leitura:  Ler(NOME)  Ler(IDADE, NOME)  Instruções de atribuição  A  VALOR  NUM  3  A  3 + B / 2
  • 36.
    Exercício1 36  Elabore umalgoritmo em Pseudocódigo que leia dois números e calcule a sua soma e o produto entre eles. Escreva o resultado. Algoritmo calculos Variáveis numero1, numero2, Soma, Produto: inteiros Início Ler (numero1, numero2) Soma  numero1 + numero2 Produto  numero1 * numero2 Escrever (Soma, Produto) Fim
  • 37.
    Exercício2 37  Elabore umalgoritmo em Pseudocódigo para converter uma temperatura em graus Celsius para Fahrenheit (ºF=32+1.8ºC). Algoritmo graus Variáveis temperatura, fahrenheit: reais Início Ler (temperatura) fahrenheit  32 + 1.8 * temperatura Escrever (fahrenheit) Fim
  • 38.
    Exercício3 38  Elabore umalgoritmo em Pseudocódigo para converter uma temperatura em graus Fahrenheit para graus Celcius ºC=(ºF – 32)/1.8. Algoritmo grausF Variáveis temperatura, fahrenheit: reais Início Ler (temperatura) temperatura  (fahrenheit - 32 )/ 1.8 Escrever (temperatura) Fim
  • 39.
    Exercício4 39  Elabore umalgoritmo em Pseudocódigo para calcular a área (PI*raio^2) e o perímetro de uma circunferência (2*PI*raio). Algoritmo circunferência Variáveis raio: inteiro área, perímetro: reais PI  3.14159 Inicio Ler (raio) area  PI * raio ^ 2 perimetro  2 * PI * raio
  • 40.
    40 Exercício 5  Elaboreum algoritmo em pseudocódigo que permita calcular a média de três testes. Output: A média entre as três notas é de …  Elabore o fluxograma para o algoritmo anterior.
  • 41.
    Aula 11,12,13  Entregae correção do Questionário Escrito  Estruturas de decisão  Operadores relacionais e lógicos 41
  • 42.
  • 43.
    43 Estruturas de Decisão Podemos solucionar problemas utilizando só a estrutura de controlo sequencial.  Contudo, apenas podemos solucionar problemas simples e limitados: leitura de valores, atribuição de valores, cálculos e escrever resultados.  Não pode ser exercido qualquer controlo sobre a ordem de execução das instruções, pois estas são executadas sequencialmente e apenas uma vez.
  • 44.
    44 Estruturas de Decisão SE…ENTÃO… SENÃO… Esta estrutura permite, com base numa condição colocada a seguir a SE, decidir sobre a execução ou não de determinada ação ou optar entre duas alternativas colocadas a seguir a ENTÃO e a SENÃO, sendo esta última opcional.
  • 45.
    Estruturas de Decisão SE…ENTÃO… SENÃO… Pseudocódigo Fluxograma Se <condição> Então <bloco de instruções> Senão <bloco de instruções> FimSe 45 Se condição Então Bloco de instruções Senão Bloco de instruções verdadeiro falso
  • 46.
    Estruturas de Decisão SE… ENTÃO… SENÃO… Procurar pneu sobresselente Se (Pneu sobresselente está em bom estado) Então Preparar o macaco Tirar o pneu furado Colocar o pneu sobresselente Senão Mandar vir ajuda FimSe 46
  • 47.
    47 Exemplos Ler um valore enviar para o ecrã uma mensagem se o valor for negativo. Algoritmo negativo Variaveis Num Inicio Ler (Num) Se (Num<0) Então Escrever (“Negativo”) Fim
  • 48.
    48 Exercício  Pretende-se saberqual o maior de dois valores introduzidos a partir do teclado. Elabore o Fluxograma e o Pseudocódigo do respetivo algoritmo
  • 49.
    NOT (Negação) P ~P VF F V AND (Conjunção) P Q P^Q V V V V F F F V F F F F OR (Disjunção) P Q PQ V V V V F V F V V F F F 49 Operadores relacionais lógicos
  • 50.
    Exercício 50  Considere umalgoritmo que dada a nota que ele obteve no exame, verifica e imprime se o aluno está aprovado ou reprovado. “Se … Então…” “Se … Então… Senão” Algoritmo exame Variáveis nota: real Início Escrever (“Qual a nota do exame?”) Ler (nota) Se (nota >= 9.5) Então Escrever(“Aprovado”) FimSe Fim Algoritmo exame Variáveis nota: real Início Escrever (“Qual a nota do exame?”) Ler (nota) Se (nota >= 9.5) Então Escrever(“Aprovado”) Senão Escrever(“Reprovado”) FimSe Fim
  • 51.
    Fluxograma 51 Início Escrever(“Qual a notado exame?”) Ler(nota) Nota>=9.5 Escrever(“Aprovado”) Escrever(“Reprovado”) Fim Falso Verdade
  • 52.
  • 53.
    Consiste numa simulaçãodas instruções constituintes do algoritmo de modo a verificar se este resolve o problema enunciado Construção de uma tabela, onde se colocam as variáveis, as condições, saídas, etc., por coluna
  • 54.
    Algoritmo quadrado; Variável lado,area: inteiro; Inicio Ler (lado); area  lado * lado; Escrever (‘ A área do quadrado com lado’ , lado, ‘ é de’, area); Fim. Traçagem exemplo Passo lado area Saída 1º passo 2º passo 3º passo 2 2*2 = 4 A área do quadrado com lado 2 é de 4
  • 55.
    Traçagem para idade=8e idade =20 55 Início Ler idade Fim Escrever “Você é maior de idade” Idade >18 sim não Passo idad e Idade >18 Saída 1º passo 2º passo 3º passo 8 8 > 18 false Passo idad e Idade >18 Saída 1º passo 2º passo 3º passo Você é maior de idade 20 20 > 18 True
  • 56.
    Portugol 56 programa { funcao inicio () { inteironumero escreva("Digite um número inteiro: ") leia(numero) escreva("O número digitado foi: ", numero, "n") } }
  • 57.
    Portugol programa { funcao inicio() { real a,b, soma, sub, mult, div escreva("Digite o primeiro número: ") leia(a) escreva("Digite o segundo número: ") leia(b) soma = a + b // Soma os dois valores sub = a - b // Subtrai os dois valores mult = a * b // Multiplica os dois valores div = a / b // Divide os dois valores escreva("nA soma dos números é igual a: ", soma) escreva("nA subtração dos números é igual a: ", sub) escreva("nA multiplicação dos números é igual a: ", mult) escreva("nA divisão dos números é igual a: ", div, "n") } 57
  • 58.
    Portugol programa { funcao inicio() { inteiro numero escreva("Digiteum número inteiro: ") leia(numero) se(numero > 0) { escreva("O número é positivo") } senao { escreva("O número é negativo") } 58
  • 59.
    59 Programa exame Variáveis nota:real Início Escrever (“Qual a nota?”) Ler (nota) Se (nota >= 0) E (nota<=20) Então Se (nota>=9.5) Então Escrever(“Aprovado”) Senão Escrever(“Reprovado”) FimSe Senão Escrever(“Nota inválida.”) FimSe Fim Pseudocódigo
  • 60.
    Pseudocódigo Variáveis turno: caracteres horas, salario:real Início Escrever (“Em que turno trabalhou?”) Ler (turno) Escrever (“Quantas horas trabalhou?”) Ler (horas) Se (turno = ‘dia’) Então salario  7.5*horas Senão salario  10*horas FimSe Escrever(“O salário final é”,salario) Fim 60 Pretende-se calcular o salário semanal de um operário em função do turno realizado e do número de horas de trabalho nessa semana. Sabemos que no turno de dia será pago a 7,5 Euros por hora. No turno da noite será pago a 10 Euros por hora.
  • 61.
    Estruturas de Seleçãoou escolha múltipla Selecionar Caso… Enquanto que as estruturas de decisão são controladas por condições ou expressões lógicas que apenas podem assumir valor V (verdadeiro) ou F (Falso), as estruturas de seleção ou escolha múltipla são controladas por variáveis ou expressões que podem assumir uma multiplicidade de valores. Geralmente, utiliza-se uma variável do tipo inteiro ou caracter. Essa variável funciona, como seletor – determinando a seleção da ação a executar de acordo com o valor que assumir. 61
  • 62.
    Estruturas de Seleçãoou escolha múltipla Selecionar Caso… Variável Nota: Inteiro Início Escrever (“Qual a Nota?”) Ler (Nota) Selecionar Caso Nota 0, 1, 2, 3, 4: Escrever (“Mau”); 5, 6, 7, 8, 9: Escrever (“Medíocre”); 10, 11, 12, 13: Escrever (“Suficiente”); 14, 15, 16, 17: Escrever (“Bom”); 18, 19, 20: Escrever (“Muito Bom”); Senão Escrever (“Nota inválida”); FimSelecionar Fim 62
  • 63.
    Estruturas de Seleção SELECIONARCASO... Pseudocódigo Fluxograma Selecionar caso <variável> <valores>: <bloco instruções> Senão <bloco de instruções> FimSelecionar 63 Caso variável senão
  • 64.
    Estruturas de Seleçãoou escolha múltipla Selecionar Caso… 64
  • 65.
    65 programa { funcao inicio(){ inteiro op escreva("digite a sua opção [1, 2, 3]: ") leia (op) escolha (op){ caso 1: escreva("voce digitou a opção 1") pare caso 2: escreva("voce digitou a opção 2") pare caso contrario: escreva("opção inválida") } }
  • 66.
    Estruturas de repetição 66 ParaI  1 até 10 Fazer <bloco de instruções> FimFazer Bloco de ações condição Falso Verdadeiro Bloco de ações
  • 67.
    Estruturas de repetição 67 Repetir <blocode instruções> Até que <condição> Bloco de ações condição Falso Verdadeiro
  • 68.
    Estruturas de repetição 68 Enquanto<condição> Fazer <bloco de instruções> FimFazer Falso Verdadeiro