1
D1: Introdução à
Programação
Aplicações Informáticas B
12º Ano
2
D1.1: Algoritmia
3
1. Introdução à Lógica de Programação
A lógica de programação é necessária para as pessoas que
desejam trabalhar com o desenvolvimento de sistemas e
programas, permitindo definir a sequência lógica para o seu
desenvolvimento.
Então o que é lógica?
1.1. Lógica
Lógica de programação é a técnica de encadear pensamentos
para atingir um determinado objectivo.
4
1. Introdução à Lógica de Programação
Estes pensamentos, podem ser descritos como uma
sequência de instruções, que devem ser seguidas para
se cumprir uma determinada tarefa.
1.2. Sequência Lógica
Sequência Lógica são passos executados até
atingir um objectivo ou solução de um problema.
5
1. Introdução à Lógica de Programação
Na linguagem comum, entende-se por instruções “um conjunto de
regras ou normas definidas para a realização ou emprego de
algo”.
Em informática, porém, instrução é a informação que indica a um
computador uma acção elementar a executar.
Convém ressaltar 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.
1.3. Instruções
6
1. Introdução à Lógica de Programação
Por exemplo, se quisermos fazer uma omelete com batatas,
precisaremos colocar em prática uma série de instruções:
descascar as batatas, bater os ovos, fritar as batatas, etc...
É evidente que essas instruções tem que ser executadas em uma
ordem adequada – não se pode descascar as batatas depois de
fritá-las.
Dessa maneira, uma instrução tomada em separado não tem muito
sentido; para obtermos o resultado, é necessário colocar em prática
o conjunto de todas as instruções, na ordem correcta.
1.3. Instruções
Instruções são um conjunto de regras ou normas definidas para a
realização ou emprego de algo. Em informática, é o que indica a
um computador uma acção elementar a executar.
7
1. Introdução à Lógica de Programação
1.4. Algoritmos
Algoritmo é uma sequência finita e ordenada de acções que
conduzem à solução de um problema.
8
Entradas: Quantidades inicialmente especificadas (por exemplo, através de
instruções de leitura)
Saídas: Uma ou mais saídas (habitualmente por instruções de escrita)
Precisão: Todos os passos do algoritmo devem ter um significado preciso não
ambíguo, especificando exactamente o que deve ser feito
Eficácia: Os passos devem conduzir à resolução do problema proposto. Devem
ainda ser executáveis numa quantidade finita de tempo e com uma quantidade finita
de esforço.
Eficiência: Em muitos casos colocam-se questões de eficiência a um algoritmo.
1. Introdução à Lógica de Programação
1.4. Algoritmos (características de um algoritmo)
9
Substituição de uma lâmpada
A utilização de um electrodoméstico para uma finalidade
específica
Uma receita culinária
A resolução de um problema de matemática
1. Introdução à Lógica de Programação
1.4. Exemplo de diversos algoritmos:
10
1.Preparar uma lâmpada nova
2.Retirar a lâmpada fundida
3.Colocar a lâmpada nova
4.Ligar o interruptor para verificar se a nova
lâmpada acende ou não
5.Se a lâmpada acender, podemos dar o
processo por concluído; se não acender
teremos de repetir os passos de 1 a 4
1. Introdução à Lógica de Programação
1.4. Exemplo da lâmpada:
11
1. Introdução à Lógica de Programação
1.4. Exemplo da lâmpada:
Preparar uma
lâmpada nova
Retirar a
lâmpada fundida
Colocar a
lâmpada nova
O processo é
concluído
Luz acende?
Sim
12
1.Escrever o primeiro número
2.Escrever o segundo número
3.Somar o primeiro número com o segundo
4.Escrever o resultado obtido em 3
1. Introdução à Lógica de Programação
1.4. Exemplo da resolução de um problema de matemática (a soma de dois números):
13
1. Introdução à Lógica de Programação
1.5. Algoritmos e programas de computador
14
1.Crie uma sequência lógica para tomar banho
2.Faça um algoritmo para somar dois números e
multiplicar o resultado pelo primeiro número
1. Introdução à Lógica de Programação
1.6. Exercícios:
15
Os algoritmos são descritos em uma linguagem chamada
pseudocódigo. Este nome é uma alusão à posterior implementação
em uma linguagem de programação, ou seja, quando formos
programar em uma linguagem (ex. Visual Basic, Java, C), estaremos a
gerar código numa das linguagens.
Por isso, os algoritmos são independentes das linguagens de
programação. Ao contrário de uma linguagem de programação não
existe um formalismo rígido de como deve ser escrito o algoritmo.
O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja,
ele deve ser o intermediário entre a linguagem falada e a linguagem de
programação.
2. Desenvolvimento de Algoritmos
2.1. Pseudocódigo
16
Para escrever um algoritmo precisamos descrever a sequência de
instruções, de maneira simples e objectiva. Para isso utilizaremos
algumas técnicas:
Usar somente um verbo por frase
Usar frases curtas e simples
Ser objectivo
Procurar usar palavras que não tenham sentido ambíguo
2. Desenvolvimento de Algoritmos
2.2. Regras para a construção de um algoritmo
17
Quando se pretende formular um algoritmo para programas de
computador, temos de ter em conta quais são os Principais tipos
de operações que um sistema pode efectuar.
Consideramos que as operações básicas de um sistema
informático são:
Operações de input ou entrada de dados;
Operações de processamento interno;
Operações de output ou saída de dados.
2. Desenvolvimento de Algoritmos
2.3. Fases de construção de um algoritmo
18
2. Desenvolvimento de Algoritmos
2.3. Fases de construção de um algoritmo
Onde temos:
ENTRADA: São os dados de entrada do
algoritmo
PROCESSAMENTO : São os procedimentos
utilizados para chegar ao resultado final
SAÍDA: São os dados já processados
19
2. Desenvolvimento de Algoritmos
2.3. Fases de construção de um algoritmo
20
2. Desenvolvimento de Algoritmos
2.4. Exemplo de construção de um algoritmo
Imagine o seguinte problema:
Calcular a média final dos alunos do 1ª ano de um determinado curso. Os
alunos realizarão quatro provas: P1, P2, P3 e P4.
Onde: Média Final =
Para montar o algoritmo proposto, faremos três perguntas:
a) Quais são os dados de entrada?
R: Os dados de entrada são P1, P2, P3 e P4
b) Qual será o processamento a ser utilizado?
R: O procedimento será somar todos os dados de entrada e dividi-los por
4 (quatro)
c) Quais serão os dados de saída?
R: O dado de saída será a média final
4
4321 PPPP
21
2. Desenvolvimento de Algoritmos
2.4. Exemplo de construção de um algoritmo
Algoritmo (linguagem informal)
Ler (Receber) a nota da prova1
Ler a nota de prova2
Ler a nota de prova3
Ler a nota da prova4
Somar todas as notas e dividir o resultado por 4
Escrever (Mostrar) o resultado da divisão
Algoritmo (linguagem formal - pseudocódigo)
Variáveis n1,n2,n3,n4: inteiro
media: real
Inicio
Ler (n1,n2,n3,n4)
media (n1+n2+n3+n4)/4
Escrever (media)
Fim
22
2. Desenvolvimento de Algoritmos
2.5. Exercícios
1) Identifique os dados de entrada, processamento e saída no
algoritmo abaixo:
· Ler código da peça
· Ler valor da peça
· Ler Quantidade de peças
· Calcular o valor total da peça (Quantidade * Valor da peça)
· Escrever o código da peça e seu valor total
2)Elabore o algoritmo anterior em Pseudocódigo.
2)Apresenta a traçagem do algoritmo anterior, considerando os
seguintes valores de entrada:
código da peça: C01
valor da peça: 3,5€
quantidade de peças: 50
23
2. Desenvolvimento de Algoritmos
2.5. Exercícios (continuação)
4) Faça um algoritmo para “Calcular o estoque médio de uma peça”,
sendo que:
ESTOQUEMÉDIO = (QUANTIDADE MÍNIMA + QUANTIDADE MÁXIMA) /2
5) Teste o algoritmo anterior com dados definidos por si.
24
2. Desenvolvimento de Algoritmos
2.6. Fluxogramas
O fluxograma é uma forma padronizada e eficaz para representar os
passos lógicos de um determinado processamento.
Com o fluxograma podemos definir uma sequência de símbolos, com
significado bem definido, portanto, a sua principal função é a de
facilitar a visualização dos passos de um processamento.
25
2. Desenvolvimento de Algoritmos
2.6. Fluxogramas (simbologia)
Alguns símbolos utilizados num fluxograma:
Início ou Fim
Processamento
Entrada ou Saída
Decisão
Fluxo de dados
(sequência)
Conector entre
diferentes acções
26
2. Desenvolvimento de Algoritmos
2.6. Fluxogramas (Exemplo)
Algoritmo (linguagem formal - pseudocódigo)
Variáveis n1,n2,n3,n4: inteiro
media: real
Inicio
Ler (n1,n2,n3,n4)
media (n1+n2+n3+n4)/4
Escrever (media)
Fim
Início
Fim
Ler (n1,n2,n3,n4)
Escrever (n1,n2,n3,n4)
media (n1+n2+n3+n4)/4
Algoritmo (linguagem formal – Fluxograma)
27
2. Desenvolvimento de Algoritmos
2.7. Exercícios
1) Construa um algoritmo em fluxograma que:
Leia 4 números
Calcule o quadrado para cada um
Some todos os números obtidos anteriormente e
Mostre o resultado
28
Constante: é um dado que pode permanecer inalterável do início ao
fim do algoritmo
Podem surgir:
sob forma directa, ou seja, valores numéricos ou alfanuméricos, por
exemplo 0.75; “Janeiro”; etc.
sob a forma de identificadores, ou seja, nomes que identificam ou
representam dados ou valores, por exemplo:
3. Constantes, Variáveis e Tipos de Dados
3.1. Constantes
29
Define uma constante através do identificador Taxa e com o valor
de 0.19
Define uma constante com o identificador Nome e a qual se
associa a string “Ana Matias”
3.1. Constantes
Constante
Taxa = 0.19
Constante
Nome = “Ana Matias”
3. Constantes, Variáveis e Tipos de Dados
30
Variável: é um dado que pode sofrer alterações de valor ao longo do
algoritmo e surge sempre designadas através de identificadores.
Em termos de memória, o nome com que uma variável é identificada
fica associado a um determinado endereço ou posição de memória.
Cada variável surge associada a um determinado tipo de dados
(inteiro, real, string, booleano, etc.). Por exemplo:
3. Constantes, Variáveis e Tipos de Dados
3.2. Variáveis
Variável
Idade: Inteiro
31
Para além de receberem e guardarem temporariamente valores, as
variáveis também são utilizadas para fornecerem esses valores para a
realização de outras operações. Por exemplo:
Indica que a variável lucro recebe o valor da variável custo depois de
multiplicado por 1.25.
Indica que o output de dados é o resultado da multiplicação da
variável custo com 1.25.
3. Constantes, Variáveis e Tipos de Dados
3.3. Constantes e variáveis
Lucro ← Custo * 1.25
Escrever (“Valor =“, Custo * 1.25)
32
Chamam-se Instruções de atribuição às operações internas de um
programa ou algoritmo que atribuem valores às variáveis.
Por exemplo:
Indica que a variável Nome recebe a string ou cadeia de caracteres.
Indica que a variável Custo recebe o valor
3. Constantes, Variáveis e Tipos de Dados
3.4. Instruções de atribuição
Nome ← “Ana Matias”
Custo ← 15
33
Tipos de dados simples:
Caracteres, cadeias de caracteres (string) ou texto
Números: Inteiros ou Reais
Lógico ou Booleano: admite de cada vez apenas um
entre dois resultados possíveis: verdadeiro ou falso.
Tipos de dados estruturados:
Array simples ou vector
Array bidimensional ou matriz
Ficheiros
3. Constantes, Variáveis e Tipos de Dados
3.5. Principais tipos de dados
34
3. Constantes, Variáveis e Tipos de Dados
3.5. Principais tipos de dados
Tipos de
Dados
Simples
Caracteres
Números Inteiros
Números Reais
Valores Lógicos
Long
Char
Int
Single
Real
Boolean
Double
Pascal C Python
Char
Integer
Str
Int
Float
Boolean
35
4. Operadores e Funções pré-definidas
Operador Significado
+ Adição
- Subtracção
* Multiplicação
/ Divisão
4.1. Operadores aritméticos
Operador Significado
DIV Divisão Inteira
MOD Resto da
divisão
36
4. Operadores e Funções pré-definidas
4.2. Operadores relacionais
37
4. Operadores e Funções pré-definidas
4.3. Operadores lógicos
38
4. Operadores e Funções pré-definidas
4.3. Operadores lógicos – Tabelas de verdade
39
4. Operadores e Funções pré-definidas
4.4. Ordem de prioridade dos operadores em geral
40
4. Operadores e Funções pré-definidas
4.5. Ordem de prioridade dos operadores em geral (Exemplo)
EXEMPLO:
10 + 5 > 10 And 10 < 10 – 5
15 > 10 And 10 < 5
V And F
F
41
X = 10 e Y = 5
1) - (X > 5) And (X >= 10)
2) - (X > 0) Or (X > 20)
3) - (X = 10) And (Y <> 20)
4) - Not (Y = 5) Or (X <> 10)
5) - (X >= 10) And (Y < 5)
4. Operadores e Funções pré-definidas
4.5. Ordem de prioridade dos operadores em geral (Exercícios)
42
4. Operadores e Funções pré-definidas
4.6. Funções pré-definidas
Função Finalidade Tipo do ArgumentoTipo do Resultado
Abs (x) Valor Absoluto Inteiro, Real O mesmo do argumento
Frac (x)Parte fraccionária Real Real
Trunc (x)Parte inteira Real Inteiro
Round (x) Valor arredondado Real Inteiro
Sqr (x) Eleva ao quadrado Inteiro, Real O mesmo do argumento
Sqrt (x)Raiz quadrada Inteiro, Real Real
Ln (x) Logaritmo natural Real Real
Exp (x) Exponencial Real Real
43
5. Estruturas de Decisão e de Repetição
44
Bibliografia
Azul, Artur Augusto, Bases de Programação 10, Porto Editora, 2006
Coelho, Pedro, Programação em Java, FCA, 2009