Este documento apresenta os conceitos fundamentais de lógica de programação e algoritmos. Discute lógica de programação, instruções, algoritmos, depuração, tipos de algoritmos e pseudocódigo.
1. Aula
2:
Lógica
de
Programação
Algoritmos e Estruturas de Dados I 1. Lógica
de
Programação
(AEDS I) 2. Instruções
3. Algoritmo
Prof. Olga N. Goussevskaia 4. Debugging
olga@dcc.ufmg.br 5. Teste
6. Elementos
do
algoritmo
– Variáveis
– Atribução
Obs: Alguns slides por Profa Mirella M. Moro
– Operadores
2
1.
LÓGICA
DE
PROGRAMAÇÃO
2.
INSTRUÇÕES
• Técnica
de
encadear
pensamentos
para
aQngir
• Cada
um
dos
passos,
cada
uma
das
ações
a
tomar
determinado
objeQvo
(obedecendo
a
seqüência
lógica)
para
ir
resolvendo
• Necessária
para
desenvolver
programas
e
sistemas,
o
problema,
ou
para
ir
executando
a
tarefa
pois
permite
definir
a
seqüência
lógica
para
a
• É
a
instrução
que
indica
a
um
computador
uma
solução
de
um
problema
operação
elementar
a
executar
• SEQÜÊNCIA
LÓGICA
– Ex.:
“somar”,
“subtrair”,
“comparar
se
é
maior”,
etc
–
?
→
1
→
2
→
3
→
!
• Uma
só
instrução
não
resolve
problemas
– Estes
pensamentos
podem
ser
descritos
como
uma
seqüência
de
instruções,
que
devem
ser
seguidas
para
se
cumprir
uma
determinada
tarefa
• Executar
um
conjunto
de
instruções
– Passos
executados
até
se
aQngir
um
objeQvo
ou
solução
de
um
problema
• Executar
em
uma
seqüência
lógica
3 4
Instruções
3.
ALGORITMO
• EXEMPLO:
para
“fazer
omelete”
• Seqüência
finita
de
passos
que
levam
à
execução
de
– Instruções:
“quebrar
ovos”,
“bater
ovos”,
“pôr
sal”,
“ligar
uma
tarefa
fogão”,
“pôr
óleo
na
frigideira”,
“pôr
frigideira
no
fogo”,
• Claro
e
preciso.
Ex.
“somar
dois
números”:
“fritar
ovos
baQdos”,
etc...
– Escrever
primeiro
número
no
retângulo
A
• Quanto
às
instruções
isoladas:
– Escrever
segundo
número
no
retângulo
B
– Só
“quebrar
ovos”,
ou
só
“pôr
óleo
na
frigideira”,
não
é
– Somar
o
número
do
retângulo
A
com
o
número
do
suficiente
para
cumprir
a
tarefa
“fazer
omelete”
retângulo
B
e
escrever
o
resultado
no
retângulo
C
• Quanto
à
seqüência
lógica:
A B C
– Se
executarmos
“fritar
ovos
baQdos”
antes
de
“bater
ovos”,
ou
pior,
antes
de
“quebrar
ovos”,
não
iremos
cumprir
a
+ =
tarefa
“fazer
omelete”
5 6
2. Exemplo
de
algoritmo
Programa
Trocar
o
um
pneu
furado:
uma
roQna
para
• Algoritmo
escrito
em
uma
linguagem
de
computador
realizar
essa
tarefa
– linguagem
de
programação:
C,
Pascal,
COBOL,
Fortran,
Basic,
Java,
entre
outras
1. Verifica qual pneu está furado • Interpretado
e
executado
por
um
computador
2. Posiciona o macaco para levantar o carro
3. Pega o estepe • Interpretação
rigorosa,
exata,
do
computador
4. Solta os parafusos
5. Substitui o pneu furado
6. Recoloca os parafusos
Escrita
do
algoritmo
na
linguagem
de
prog.
tem
que
7. Desce o carro
seguir
regras
mais
rigorosas
8. Guarda o macaco e o pneu furado
7 8
Programa
Debugging
• Sequência
de
instruções
que
especifica
como
• Programação
é
um
processo
complexo
que,
realizar
uma
computação
por
ser
feito
por
seres
humanos,
– Exemplos:
achar
as
raízes
de
um
polinômio,
achar
frequentemente
leva
a
erros
(bugs):
uma
sequência
de
caracteres
em
um
documento
– Erros
de
compilação
=
erros
de
sintaxe,
• Conjunto
básico
de
instruções:
detectados
pelo
compilador.
(essa
frase
contém
• Entrada
e
saída
(E/S)
de
dados
erros
de
sintaxe)
• Movimentação
de
dados
(transferência)
• AritméQca:
adição,
mulQplicação,
etc.
– Erros
em
tempo
de
execução
• Testes:
verificação
de
certas
condições
(comparação)
– Erros
de
lógica
e
semânQca
• RepeQção
de
ações,
em
geral,
com
algumas
variações
• O
programa
que
você
escreveu
não
é
o
programa
que
você
queria
escrever.
O
computador
não
consegue
detectar
tais
erros.
Debugging
Tipos
de
Algoritmos
• Pseudocódigo
• Uma
das
habilidade
mais
importante
que
você
– Facilita
descrever
o
algoritmo
antes
de
passá-‐lo
para
uma
deverá
adquirir
é
a
depuração
experimental
ling.
de
programação
– Intermediária:
linguagem
natural
–
linguagem
de
• Debugar
é
parecido
com
o
trabalho
de
um
deteQve
programação
e
envolve:
– Pseudocódigo
=
“códigofalso”
• Análise
de
pistas
e
eventos
• Fluxograma
• Infererência
de
causas
que
levam
aos
resultados
do
seu
– Forma
universal
de
representação
programa
– UQliza
figuras
geométricas
para
ilustrar
passos
a
serem
• Trabalho
experimental:
ao
ter
uma
idéia
sobre
o
erro,
modifique
seguidos
para
a
resolução
de
problemas
o
seu
programa
e
tente
executar
novamente.
Se
sua
hipótese
estava
correta,
você
chegou
mais
perto
de
um
programa
correto.
Senão,
invente
outra
hipótese!
12
3. Pseudocódigo
Escrevendo
Pseudocódigo
• Descrição
do
algoritmo,
menos
rigorosa
que
na
• FASES
para
desenvolver
o
algoritmo
linguagem
de
programação
(código
fonte)
– Determinar
o
problema,
definí-‐lo
bem
– Dividir
a
solução
nas
três
fases
• Fácil
de
entender
e
fácil
de
codificar
depois
• Independente
da
linguagem
de
programação
ENTRADA PROCESSAMENTO SAÍDA
• Simples
e
objeQvo
• Exemplo:
• Técnica
– Problema:
calcular
a
média
de
quatro
números
– Um
verbo
por
frase
– Dados
de
entrada:
os
números,
N1,
N2,
N3
e
N4
– Processamento:
somar
os
quatro
números
e
dividir
a
soma
– Não
escrever
“para
informatas”
por
4
– Frases
curtas
e
simples
N1 + N2 + N3 + N4
– Ser
objeQvo
4
– Dados
de
saída:
a
média
final
– Usar
palavras
sem
duplo
senQdo
13 14
Escrevendo
Pseudocódigos
Fluxograma
– Representação
gráfica
padronizada
dos
passos
de
N1 + N2 + N3 + N4
4 um
algoritmo
– Principais
símbolos
• Algoritmo
Terminal: INÍCIO ou FIM do algoritmo
– Receber
o
primeiro
número
– Receber
o
segundo
número
Processamento (ação, operação)
– Receber
o
terceiro
número
Entrada de dado manual (“ler”, “receber”)
– Receber
o
quarto
número
– Somar
todos
os
números
Exibir (“mostrar”, saída de dado)
– Dividir
a
soma
por
4
S Decisão (teste)
– Mostrar
o
resultado
da
divisão
N
15 16
Fluxograma
4.
TESTE
INÍCIO
N1 + N2 + N3 + N4 Receber N1 • Todo
algoritmo
deve
ser
testado
4 – Usar
dados
e
resultados
previamente
calculados
Receber N2
– Seguir
precisamente
as
instruções
do
algoritmo
Receber N3 – Verificar
se
o
procedimento
está
correto
• Exemplo:
Fazer
teste
de
mesa
para
o
algoritmo
da
Receber N4
média
Calcular MEDIA= (N1+N2+N3+N4) / 4
Mostrar MEDIA
FIM
17 18
4. 5.
ELEMENTOS
Variável
• Variável
• Representa
uma
posição
na
memória,
onde
• Atribuição
pode
ser
armazenado
um
dado
• Operadores
• Possui
um
nome
e
um
valor
• Durante
a
execução
do
algoritmo,
pode
ter
seu
valor
alterado
(seu
valor
pode
variar)
• Mudanças
no
valor
das
variáveis:
– Por
entrada
de
dados
(“Ler
N1”)
– Por
atribuição
(“MEDIA
=
<um
certo
valor>”)
19 20
Variável:
exemplo
seqüencial
Variável:
exemplo
seqüencial
“Calcular
a
média
de
quatro
números”
“Calcular
a
média
de
quatro
números”
– PSEUDOCÓDIGO:
• Ler
N1
Pseudocódigo:
VARIÁVEIS:
• Ler
N2
mais clareza no pseudocódigo
– Ler
N1
• Ler
N3
– Ler
N2
• Ler
N4
– Ler
N3
– Ler
N4
• MEDIA
=
(N1+N2+N3+N4)
/
4
• Mostrar
MEDIA
– MEDIA
=
(N1+N2+N3+N4)
/
4
– Mostrar
MEDIA
21 VARIÁVEL 22
Atribuição
Operadores
• Atribui
o
valor
da
direita
à
variável
da
esquerda
• São
operações
básicas
em
processamento
de
dados
• O
valor
pode
ser
uma
constante,
uma
variável
ou
• Usados
para
incrementar,
decrementar,
comparar
e
uma
expressão
avaliar
dados
MEDIA
=
(N1+N2+N3+N4)
/
4
(Lê-‐se
media
recebe
N1+...)
• Tipos:
– Neste
caso,
estamos
atribuindo
o
resultado
da
fórmula
à
– AritméQcos
(+,
-‐,
*,
/,
**
ou
^)
variável
média,
ou
seja,
a
variável
média
está
recebendo
• Resultados
numéricos
como
valor
o
resultado
da
fórmula
– Relacionais
(>,
<,
>=,
<=,
=,
<>
ou
#)
• Outros
Exemplos
• Resultados
lógicos
(V
ou
F)
–
a
=
3;
– Lógicos
(e,
ou,
não)
–
a
=
x;
• Combinam
resultados
lógicos
23 24
5. Operadores
AritméQcos
Operadores
Relacionais
• Muito
usados
para
tomar
Exemplo:
Hierarquia das Ops. Aritméticas
Parênteses decisões
nos
algoritmos
Duas variáveis, A = 5 e B = 3
Exponenciação • Usados
para:
testes,
Multiplicação ou Divisão Expressão Resultado
Adição ou Subtração comparações,
que
resultam
em
valores
lógicos
A=B Falso
(verdadeiro
ou
falso)
A <> B Verdadeiro
TOTAL = PREÇO * QUANTIDADE A>B Verdadeiro
1 + 7 * 2 ** 2 – 1 = 28 A<B Falso
A >= B Verdadeiro
3 * (1- 2) + 4 * 2 = 5
A <= B falso
Média = (N1 + N2 + N3 + N4) / 4
25 26
Exercícios
Operadores
Lógicos
A op B T/F?
• Combinam
resultados
• Tendo
as
variáveis
SALARIO,
IR
e
SALLIQ,
e
considerando
os
T AND T T
valores
abaixo.
Informe
se
as
expressões
são
verdadeiras
ou
lógicos
falsas
T AND F F
• Geram
novos
valores
lógicos
(T
ou
F)
F AND T F
• A
“tabela-‐verdade”
mostra
F AND F F
todos
os
valores
possíveis
T OR T T
• Sabendo
que
A=3,
B=7
e
C=4,
informe
se
as
expressões
abaixo
são
verdadeiras
ou
falsas.
de
se
obter
com
oper.
T OR F T
– (A+C)
>
B
(
)
lógicos
F OR T T
– B
>=
(A
+
2)
(
)
T = Verdad.
– C
=
(B
–A)
(
)
F OR F F
F = Falso
– (B
+
A)
<=
C
(
)
AND = E NOT T F
– (C+A)
>
B
(
)
OR = OU
NOT = NÃO NOT F T
27 28
Operações
Lógicas
Operações
Lógicas
• Operadores
relacionais
+
operadores
lógicos
=
• Operadores
relacionais
+
operadores
lógicos
=
operações
lógicas
operações
lógicas
• Produzem
resultados
lógicos
(T/F)
• Produzem
resultados
lógicos
(T/F)
• Para
A
=
5,
B
=
8
e
C
=
1:
• Para
A
=
5,
B
=
8
e
C
=
1:
F ( V AND F )
• (A
=
B)
AND
(B
>
C)
• (A
=
B)
AND
(B
>
C)
V ( V OR F )
• (A
<>
B)
OR
(B
<
C)
• (A
<>
B)
OR
(B
<
C)
V ( NOT F )
• NOT
(A
>
B)
• NOT
(A
>
B)
• (A
<
B)
AND
(B
>
C)
• (A
<
B)
AND
(B
>
C)
V ( V AND V )
• (A
>=
B)
OR
(B
=
C)
• (A
>=
B)
OR
(B
=
C)
F ( F OR F )
• NOT
(A
<=
B)
• NOT
(A
<=
B)
F ( NOT V )
• São
usadas
em
decisões
nos
algoritmos...
• São
usadas
em
decisões
nos
algoritmos...
29 30
6. Exercícios
Exercícios
• Escreva
os
passos
necessários
para
uma
• IdenQfique
os
dados
de
entrada,
processamento
e
saída
no
algoritmo
abaixo
pessoa
efetuar
um
saque
em
um
caixa
– Receba
código
da
peça
eletrônico
– Receba
valor
da
peça
• Escreva
a
seqüência
de
passos
para
que
uma
– Receba
QuanQdade
de
peças
(Qtde)
pessoa
abra
um
arquivo
armazenado
em
um
– Calcule
o
valor
total
da
peça
(Qtde
*
Valor)
– Mostre
o
código
da
peça
e
seu
valor
total
pen-‐drive
uQlizando
o
Word
do
Windows
• Faça
um
algoritmo
para
“Calcular
o
estoque
médio
de
uma
peça”,
sendo
que
estoquemédio
=
(quanQdade
mínima
+
quanQdade
máxima)
/2
31 32
Exercício
Considere
a
seguinte
atribuição
de
valores
para
as
variáveis:
A=3,
B=4,
C=8.
Avalie
as
expressões
indicando
o
resultado
final:
T
/
F
• A
>
3
AND
C
=
8
• A
<>
2
OR
B
<=
5
• A
=
3
OR
B
>=
2
AND
C
=
8
• A
=
3
AND
NOT
B
<=
4
AND
C
=
8
• A
<>
8
OR
B
=
4
AND
C
>
2
• B
>
A
AND
C
<>
A
• A
>
B
OR
B
<
5
• A
<>
B
AND
B
=
C
• C
>
2
OR
A
<
B
• A
>
B
OR
B
>
A
AND
C
<>
B
33