1. Lógica de Programação
Dom Pedro II
Eduardo Bloisi
MBA em Gestão da Informação – Unifacs
Bacharel em Ciência da Computação – Unifacs
MCP, CSM
bloisi@hotmail.com
2. Linguagem de Programação
Viabiliza na prática um algoritmo.
Possui um conjunto de instruções para
implementar um algoritmo.
A partir do código implementado pela
linguagem, são gerados os programas de
computador.
Conjunto de instruções de um determinado
programa de computador = código-fonte.
3. Linguagens de Programação
Como o código-fonte se torna um programa executável ?
Compilador.
Linguagens de máquina: O nível mais baixo de execução de
um programa.
Alto desempenho
Difícil implementação
Linguagem de montagem: assembly.
Intermediária entre linguagem de máquina e linguagem de alto nível.
Linguagens de alto nível.
Se aproxima da linguagem humana
Um comando equivale a vários comandos de linguagem de máquina.
4. Linguagem de Máquina
Sequência binária (0s e 1s)
Uma operação de soma pode ser representada
como: 10100100.
Difícil implementação e facilidade para erros.
Código-fonte longo e de difícil manutenção.
Alto desempenho por ser possível otimizar a
implementação em relação a linguagens de alto
nível.
5. Linguagem de Montagem
Conhecida como assembly.
Representa um avanço em relação a
linguagem de máquina, pois já possui
comando mnemônicos.
Uma operação de soma seria representada
como: ADD 1,1
É o código intermediário das linguagens de
programação antes do código de máquina.
6. Compilador
Um compilador é um programa de computador que
transformar um código fonte em um código objeto.
As etapas do processo de compilação:
Escrita do código fonte.
Análise léxica: identifica os caracteres do código fonte.
Análise sintática: Verifica se as instruções estão corretas.
Geração do código assembly.
Geração do código de máquina.
8. Algoritmos
Conceito: Sequência lógica de instruções para
resolução de um problema. Serve como
linguagem intermediária entre a linguagem
humana e as linguagens de programação.
Representação: Através de narrativa,
fluxograma ou pseudocódigo (conhecido
como portugol).
9. Algoritmos
Devem ser claros e objetivos.
Declarações curtas.
Não devem deixar dúvidas.
São formados por frases com uma ação.
10. Algoritmo - Desenvolvendo
Devemos pensar de forma lógica e sequenciada.
Implementando algoritmos para problemas práticos:
1. Trocar uma lâmpada
Pegar uma escada.
Posicionar a escada embaixo da lâmpada.
Buscar uma lâmpada nova.
Subir na escada.
Retirar a lâmpada queimada.
Colocar a lâmpada nova.
11. Algoritmo - Desenvolvendo
E se a lâmpada não estivesse queimada ?
2 . Trocar a Lâmpada
Teste condicional:
Pegar uma escada.
Posicionar a escada embaixo da lâmpada.
Buscar uma lâmpada nova.
Acionar o interruptor.
Se a lâmpada não acender, então
• Subir na escada.
• Retirar a lâmpada queimada.
• Colocar a lâmpada nova.
12. Algoritmo - Desenvolvendo
Otimizando o código:
3 . Trocar a lâmpada
Acionar o interruptor
Se a lâmpada não acender, então
Pegar uma escada
Posicionar a escada embaixo da lâmpada
Buscar uma lâmpada nova
Subir na escada
Retirar a lâmpada queimada
colocar a lâmpada nova
13. Algoritmos - Desenvolvendo
E se a lâmpada nova estiver queimada ?
4. Trocar a lâmpada
Acionar o interruptor
Se a lâmpada não acender então
Pegar a escada
Posicionar a escada embaixo da lâmpada
Pegar a lâmpada nova
Subir na escada
Retirar a lâmpada queimada
Colocar a lâmpada nova
Se a lâmpada não acender então
• Retirar a lâmpada queimada
• Colocar outra lâmpada nova
14. Algoritmos - Desenvolvendo
A quarta versão não está finalizada
5.Trocar a lâmpada
Acionar o interruptor
Se a lâmpada não acender então
Pegar uma escada
Colocar a escada embaixo da lâmpada
Buscar uma lâmpada nova
Subir na escada
Retirar a lâmpada queimada
Colocar a lâmpada nova
Enquanto a lâmpada não acender faça
• Retirar a lâmpada queimada
• Colocar outra lâmpada nova
15. Elementos dos Algoritmos
Tipos de Dados
Numérico, Literal e Lógico
Constantes: Dados que não sofrem alteração ao
longo do programa.
Variáveis: Dados que podem sofrer modificação ao
longo do programa.
Identificadores (nomes) de variáveis.
Tipo de variáveis.
Declaração de variáveis.
Atribuição de variáveis.
16. Elementos dos Algoritmos
Variáveis precisam ser declaradas com o
tipo a ser utilizado:
var a declaração var indica a relação de variáveis
ano: inteiro tipo numérico inteiro
salario: real tipo numérico real
matriculado: caractere tipo literal caractere
nome: cadeia tipo literal cadeia
aprovado: lógico tipo lógico
17. Expressões
Aritméticas:
Operadores: +, -, * e /.
Operandos: constantes ou variáveis.
Lógicas:
Operadores: relacionais (=, <>, >, <, >=, <=, <>) e os
lógicos (não, e, ou).
Tabela lógica.
18. Atribuição
Armazena um determinado valor em uma variável.
variavel_numerica <- 5
variavel_literal <- ‘nome do aluno’
Exemplos:
var
ano: inteiro
salario: real
matriculado: caractere
nome: cadeia
aprovado: lógico
atribuindo ...
ano <- 2012
salario < - 3000
matriculado <- ´S´
nome < - ´Eduardo´
Aprovado < - verdadeiro
19. Atribuição
O valor a ser armazenado pode ser o conteúdo de outra
variável, desde que sejam do mesmo tipo.
Exemplo:
var
ano: inteiro
ano_letivo: inteiro
ano < - 2012 a variável ano recebe o valor 2012
ano_letivo <- ano a variável ano_letivo tem o seu valor modificado para o
mesmo valor da variável ano que é 2012
As atribuições entre variáveis devem ser feitas com
atenção para não perder o valor das mesmas
indevidamente durante a execução do programa.
20. Entrada e Saída
O comando leia permite atribuir uma entrada de
dados a uma variável:
Leia(salario)
O valor que o usuário informar, será atribuído a variável salario.
O comando escreva permite exibir o valor de
variáveis e constantes:
Escreva(‘O salário é ’, salario)
Na tela será mostrado O salário é <valor da variável salario>
Comentários (chaves)
21. Desenvolvendo
Com os elementos básicos já vistos, podemos criar um algoritmo.
Exemplo 1.1: Criar um algoritmo para receber dois números
inteiros, somá-los e apresentar o resultado na tela.
programa soma_dois_numeros
var
a, b, c: inteiro
inicio
leia a
leia b
c <- a +b
escreva c
fim
22. Estrutura Condicional
Desvio condicional simples
se <condição> então
Instruções
fim_se
Instruções
As instruções compreendidas entre o bloco se ...
fim_se serão executadas somente se a
condição do desvio for verdadeira.
24. Estrutura Condicional
Desvio condicional composto
se <condição> então
Instruções
senão
instruções
fim_se
Instruções
As instruções compreendidas entre o bloco se ... senão serão
executadas somente se a condição do desvio for verdadeira.
Caso a condição seja falsa, serão executadas apenas as instruções
entre o senão e o fim_se.
25. Estrutura Condicional
Desvio condicional composto
Exemplo:
a <- 10
b <- 7
se (b>a) então
escreva (b é maior que a)
else
escreva (b é menor que a)
fim_se
c <- 10