Ceça Moraes
Março/10
Introdução à Programação
11/5/2015
Conteúdo
Algoritmos
−Representação
−Exercícios
Linguagens de Programação
Compilador
Interpretador
2
11/5/2015
Algoritmo
Conjunto de regras que provê uma seqüência de
operações para resolver um tipo de problema
específico (Knuth, 1972)
Seqüência ordenada, e não ambígua, de passos
que levam à solução de um dado problema
(Tremblay, 1983)
3
Processo de cálculo, ou de resolução de um grupo
de problemas semelhantes, em que se estipulam,
com generalidade e sem restrições, as regras
formais para a obtenção do resultado ou da
solução do problema (AURÉLIO)
11/5/2015
Algoritmo
Formas de representação
–Narrativa: uso de português
–Fluxograma: símbolos gráficos para
representar fases e componentes dos
algoritmos
–Pseudocódigo: Definição de uma
pseudo-linguagem de programação,
cujos comandos são em português
4
11/5/2015
Algoritmo
Formas de representação
–Narrativa
–Fluxograma
–Pseudocódigo
5
Descrição Narrativa
11/5/2015
Algoritmo
Receita de bolo:
1.
2.
3.
4.
5.
Misture os ingredientes
Bata os ingredientes em uma vasilha
Unte a forma com manteiga
Despeje a mistura na forma
Se houver coco ralado
•
então despeje-o sobre a mistura
•
deixe a forma no forno
6. Leve a forma ao forno
7. Enquanto não corar
6
8. Retire do forno
9. Deixe esfriar
Descrição Narrativa
11/5/2015
Algoritmo
Troca de pneus:
1.
2.
3.
4.
5.
6.
7.
Afrouxar ligeiramente as porcas
Suspender o carro
Retirar as porcas e o pneu
Colocar o pneu reserva
Apertar as porcas
Abaixar o carro
Dar o aperto final nas porcas
7
Descrição Narrativa
11/5/2015
Algoritmo
Obter o status de um aluno:
1. Obter as suas 2 notas de provas
2. Calcular a média aritmética
3. Se a média for maior que 7
•
•
o aluno foi aprovado
senão ele foi reprovado
8
11/5/2015
Trocar uma Lâmpada
Sequenciação
1. pegar uma escada
2. posicionar a escada embaixo da
lâmpada
3. buscar uma lâmpada nova
4. subir na escada
5. retirar lâmpada velha
6. colocar lâmpada nova
9
11/5/2015
Trocar uma Lâmpada
SE estiver queimada = Decisão
1. pegar uma escada
2. posicionar a escada embaixo da
lâmpada
3. buscar uma lâmpada nova
4. acionar o interruptor
5. se a lâmpada não acender, então
10
5.1 subir na escada
5.2 retirar lâmpada queimada
5.3 colocar lâmpada nova
11/5/2015
Trocar uma Lâmpada
SE estiver queimada v2 = (decisão)
evitar pegar escada e lâmpada
1. acionar o interruptor;
2. se a lâmpada não acender, então
2.1
2.2
2.3
2.4
2.5
2.6
pegar uma escada
posicionar a escada embaixo da lâmpada
buscar uma lâmpada nova
subir na escada
retirar lâmpada queimada
colocar lâmpada nova
11
11/5/2015
Trocar uma Lâmpada...
SE estiver queimada v3 = (decisão)
Re-teste após a troca
1. acionar o interruptor
2. se a lâmpada não acender, então
2.1 pegar uma escada
2.2 posicionar a escada embaixo da lâmpada
2.3 buscar uma lâmpada nova
2.4 subir na escada
2.5 retirar lâmpada queimada
2.6 colocar lâmpada nova
2.7 acionar o interruptor
Repetir
2.8 se a lâmpada não acender, então
retirar lâmpada queimada
colocar lâmpada nova
várias
vezes!!!
12
.....
–
–
11/5/2015
Trocar uma Lâmpada...
SE estiver queimada v4 = Repetição!!
1. acionar o interruptor
2. se a lâmpada não acender, então
2.1 pegar uma escada
2.2 posicionar a escada embaixo da lâmpada
2.3 buscar uma lâmpada nova
2.4 subir na escada
2.5 retirar lâmpada queimada
2.6 colocar lâmpada nova
2.7 acionar o interruptor
2.8 enquanto a lâmpada não acender, faça:
retirar lâmpada queimada
colocar lâmpada nova
acionar o interruptor
13
–
–
–
11/5/2015
Trocar 10 Lâmpadas...
SE estiverem queimadas (v1)
1. acionar o interruptor do primeiro soquete
2. se a lâmpada não acender, então
2.1 pegar uma escada
2.2 posicionar a escada embaixo da lâmpada
2.3 buscar uma lâmpada nova
2.4 subir na escada
2.5 retirar lâmpada queimada
2.6 colocar lâmpada nova
2.7 acionar o interruptor
2.8 enquanto a lâmpada não acender, faça:
–
–
–
retirar lâmpada queimada
colocar lâmpada nova
acionar o interruptor
14
3. acionar o interruptor do segundo soquete
4. ....
11/5/2015
Trocar 10 Lâmpadas...
SE estiverem queimadas (v2)
1. acionar o interruptor do primeiro soquete
2. Enquanto número de soquetes for menor ou igual a 10 faça
2.1 se a lâmpada não acender, então
2.1.1 pegar uma escada
2.1.2 posicionar a escada embaixo da lâmpada
2.1.3 buscar uma lâmpada nova
2.1.4 subir na escada
2.1.5 retirar lâmpada queimada
2.1.6 colocar lâmpada nova
2.1.7 acionar o interruptor
2.1.8 enquanto a lâmpada não acender, faça:
»
»
»
retirar lâmpada queimada
colocar lâmpada nova
acionar o interruptor
15
2.2 acionar o interruptor do segundo soquete
Descrição Narrativa
11/5/2015
Exercícios
Descreva os seguintes algoritmos
1. Passos para chegar a UFRPE e
assistir aula de introdução a
programação.
2. Passos para comprar um DVD pela
internet
16
3.
11/5/2015
Exercícios
Descrição Narrativa
Tendo como exemplo os algoritmos desenvolvidos
para solucionar o problema da troca de lâmpadas,
elabore algoritmos com os passos necessários para
trocar um pneu furado em cada as seguintes
situações:
1. Trocar o pneu traseiro esquerdo
2. Trocar o pneu traseiro esquerdo e, antes, verificar se o
pneu reserva está em condições de uso
3. Verificar se existe algum pneu furado; se houver, verificar o
pneu reserva e, então, trocar o pneu correto.
Para cada algoritmo faça um refinamento do anterior,
introduzindo novas ações e alterando o fluxo de execução de
forma compatível com as situações apresentadas
17
11/5/2015
Algoritmo
Formas de representação
–Narrativa

–Fluxograma
–Pseudocódigo
18
Fluxograma
11/5/2015
Algoritmo
Fluxograma :
– Representação gráfica de algoritmos onde formas
geométricas diferentes implicam ações (instruções,
comandos) distintos
Símbolos
19
Início
Divisão de Dois
Números
Ler o primeiro
número – N1
Ler o segundo
número – N2
D = N1/N2
F
V
N2 = 0
?
Exibir D em
vídeo
Exibir em vídeo
“Não é permitido
divisão por zero”
Fim
05/11/2015
Fluxograma
11/5/2015
Fluxograma
Troca de 10
lâmpadas
início
ir para o primeiro soquete
posicionar escada
não
acendeu?
soquetes
restantes <= 10
F
buscar lâmpada nova
V
acionar o interruptor
V
acionar o interruptor
não
acendeu?
F
subir na escada
F
retirar a lâmpada queimada
colocar lâmpada nova
retirar a lâmpada queimada
ir ao próximo soquete
colocar lâmpada nova
V
pegar uma escada
acionar o interruptor
fim
21
22
Gráfica (Fluxograma )
– Vantagens
• Maior clareza no fluxo de execução
• Linguagem visual
– Desvantagens
• Requer conhecimento de convenções gráficas
• Mais trabalhoso em decorrência de seus desenhos
• Dificuldade para fazer correções
Textuais
– Apresenta mais vantagens, desde que se tomem alguns
cuidados:
• Riqueza gramatical de nossa língua pode levar a
ambigüidades
• A frase “O pregador foi grampeado durante o
conserto” tem vários sentidos diferentes quando
pronunciada
• Para resolver, utilizaremos um conjunto restrito de
regras, conhecido como pseudo-código
11/5/2015
Texto x Gráficos
Fluxograma
11/5/2015
Exercícios
Construa fluxogramas para os
seguintes algoritmos
– Calcular a área de um retângulo
(AREA = BASE x ALTURA)
– Verificar se o individuo é maior de
idade ou não (maior de 18 anos)
23
11/5/2015
Algoritmo
Formas de representação
–Narrativa

–Fluxograma

–Pseudocódigo
24
Pseudo-código
11/5/2015
Algoritmo
Programa para calcular um número
multiplicado por 2:
algoritmo "dobro"
var NUM, DOBRO : inteiro
inicio
escreval("digite um número:")
leia (NUM)
DOBRO <- 2 * NUM
escreval ("O dobro do número é:", DOBRO)
fimalgoritmo
25
Pseudo-código
11/5/2015
Algoritmo
Principais Comandos
– Atribuição (= ou := ou ) : Utilizado para guardar um
valor em uma variável
• total = 0
• SOMA  SOMA + 1
• mensagem := “Erro de Digitação !”
– Entrada de Dados : Utilizado para ler dados do usuário,
de dispositivos externos
• leia(Idade)
• leia(‘d:\arquivo.txt’)
– Saída de dados : Utilizado para exibir dados
• escreva(Idade)
26
• escreval(‘d:\arquivo.txt’)
Uma
linguagem
11/5/2015
Linguagens de
Programação
programação é um
vocabulário e um conjunto de
regras usadas para escrever programas de
computador
Divididas em
similaridade
humana:
de
três tipos,
com
a
com
relação
à
linguagem
– Linguagem de máquina
–Linguagem Simbólica e
27
– Linguagem de Alto Nível
Linguagem de Máquina
11/5/2015
Linguagens de Programação
linguagem de mais baixo nível de
entendimento pelo ser humano e a única
entendida pelo processador (UCP)
É
Constituída inteiramente de números (0’s e
1’s)
Uma instrução típica em linguagem de máquina
seria algo como:
28
– 0100 1111 1010
Linguagem Simbólica
11/5/2015
Linguagens de Programação
Assembly:
– linguagem
acima
de
nível
imediatamente
da linguagem de máquina.
– Possui a mesma estrutura e conjunto de
instruções que a linguagem de máquina, porém
permite que o programador utilize nomes
(mnemônicos)
e
símbolos
em
lugar
de
números
29
A conversão da linguagem simbólica para a
linguagem de máquina se chama montagem,
e é feita por um programa chamado
montador (assembler).
Linguagem Simbólica
11/5/2015
Linguagens de Programação
Exemplo de instrução:
ADD A, B
MOV AX, 6
Classificada como linguagem de
geração
segunda
Assim como a linguagem de máquina, é
considerada
linguagem
de
baixo
30
nível
uma
Linguagem de Alto Nível
11/5/2015
Linguagens de Programação
linguagens de programação que possuem uma
estrutura e palavras-chave que são mais
próximas da linguagem humana
– C, C++, Java, Python, etc ...
Programas escritos nessas linguagens são
convertidos para a linguagem de baixo nível
através de um programa denominado
compilador ou de um interpretador
31
Linguagem de Alto Nível
11/5/2015
Linguagens de Programação
Exemplo de instrução de uma linguagem de
alto nível:
– if (A>10) then A=A-7;
32
11/5/2015
Compilador
Compilação : transformação de um
programa em código fonte para
linguagem de máquina
– programa em código fonte = programa
escrito pelo programador (source
language)
– programa em linguagem de máquina =
programa executável (target language)
33
http://pt.wikipedia.org/wiki/Compilador
05/11/2015
Compilador
11/5/2015
Interpretador
Executa
instruções
determinada linguagem:
em
uma
– Traduz o código fonte em uma
representação intermediária e o executa
imediatamente
Python, Matlab, Java, etc.
Principal desvantagem: Eficiência
35
11/5/2015
Perguntas???
36
Download

Click here to get the file