Bacharelado em Ciência da Computação
ALGORÍTMOS E ESTRUTURA DE DADOS
SLIDE - 2
Prof. Alex Fernandes da Veiga Machado
Lógica de
programação
• LÓGICA DE PROGRAMAÇÃO:
– Técnica de encadear pensamentos para atingir
determinado objetivo
– Necessária para desenvolver programas e sistemas, pois
permite definir a seqüência lógica para a solução de um
problema
• SEQÜÊNCIA LÓGICA:
1.  2.  3.
– Passos executados até se atingir o objetivo ou solução
de um problema
– Podem ser descritos como uma seqüência de instruções,
que devem ser seguidas para se cumprir uma
determinada tarefa
2
Lógica de
programação
• INSTRUÇÃO:
– Cada um dos passos, cada uma das ações a tomar
(obedecendo a seqüência lógica) para ir resolvendo o
problema, ou para ir executando a tarefa
– Em informática, é a informação que indica a um
computador uma operação elementar a executar
• Ex.: “somar”, “subtrair”, “comparar se é maior”, etc
– Uma só instrução não resolve problemas reais
– Executar um conjunto de instruções
– Executar em uma seqüência lógica
3
Lógica de
programação
• EXEMPLO: para “fazer omelete”
– Instruções: “quebrar ovos”, “bater ovos”, “pôr sal”, “ligar
fogão”, “pôr óleo na frigideira”, “pôr frigideira no fogo”,
“fritar ovos batidos”, etc...
• Quanto às instruções isoladas:
– Só “quebrar ovos”, ou só “pôr óleo na frigideira”, não é
suficiente para cumprir a tarefa “fazer omelete”
• Quanto à seqüência lógica:
– Se executarmos “fritar ovos batidos” antes de “bater
ovos”, ou pior, antes de “quebrar ovos”, não iremos
cumprir a tarefa “fazer omelete”
4
Exemplo de algoritmo
Quando uma dona de casa prepara um bolo, segue uma
receita, que nada mais é do que um algoritmo em
que cada instrução é um passo a ser seguido para
que o prato fique pronto com sucesso:
1. Bata 4 claras em neve
2. Adicione 2 xícaras de açúcar
3. Adicione 2 colheres de farinha de trigo, 4 gemas,
uma colher de fermento e duas colheres de
chocolate
4. Bata por 3 minutos
5. Unte uma assadeira com margarina
6. Coloque o bolo para assar por 20minutos a 200
graus C
5
Exemplo de algoritmo
Um motorista que necessita efetuar a troca de um pneu
furado segue uma rotina para realizar essa tarefa:
1. Verifica qual pneu está furado
2. Posiciona o macaco e levanta o carro
3. Solta os parafusos
4. Pega o estepe
5. Substitui o pneu furado
6. Recoloca os parafusos
7. Desce o carro
8. Guarda o macaco e o pneu furado
6
Tipos de algoritmos
•
Lógica de
programação
PSEUDOCÓDIGO:
– Facilita descrever o algoritmo antes de passá-lo para
uma linguagem de programação
– Intermediária: linguagem natural – linguagem de
programação
•
FLUXOGRAMA:
– É uma forma universal de representação, que se utiliza
de figuras geométricas para ilustrar passos a serem
seguidos para a resolução de problemas
7
Tipos de algoritmos
•
Lógica de
programação
Tipos de Dados:
– Lógico (Booleano): true e false
– Inteiro: … -2, -1, 0, 1, 2, 3...
– Real: … 0.25 , 35 , 20.6666 , ...
– Literal (Texto): “a”, “maria tereza”, “135”...
8
ESTRUTURA DE UM ALGORITMO
Algoritmo < nome do algoritmo >
Var
< declaração de variáveis >
Const
< declaração de constante >
Inicio
escrever
ler
Comandos
testar
calcular
Fim.
9
PSEUDOCÓDIGO OU LINGUAGEM
ESTRUTURADA
Algoritmo Média
Var N1, N2, Média : real
Início
Leia N1, N2
Média  (N1 + N2) / 2
Se Média < 7 Então
Escreva “Reprovado”
Senão
Escreva “Aprovado” Fim_se
Fim.
10
Fluxograma Convencional
Início
Ler N1, N2
Média
(N1+N2)/2
.N.
Média > 7
“Reprovado”
.S.
“Aprovado”
Fim
11
Lógica de
programação
• FASES para desenvolver o algoritmo:
– Determinar o problema, definí-lo (entendê-lo) bem
– Dividir a solução nas três fases:
ENTRADA
PROCESSAMENTO
SAÍDA
• Exemplo:
– Problema: calcular a média de quatro números
– Dados de entrada: os números N1, N2, N3 e N4
– Processamento: somar os quatro números e dividir a
soma por 4
N1 + N2 + N3 + N4
4
– Dado de saída: a média final
12
Lógica de
programação
• Algoritmo:
–
–
–
–
–
–
–
–
–
Início
Ler o primeiro número
Ler o segundo número
Ler o terceiro número
Ler o quarto número
Somar todos os números
Dividir a soma por 4
Mostrar o resultado da divisão
Fim
13
Exercício
1) Identifique os dados de entrada, processamento e saída no
algoritmo abaixo
· Início
· Ler código da peça
· Ler valor da peça
· Ler Quantidade de peças
· Calcule o valor total da peça (Quantidade * Valor da peça)
· Mostre o código da peça e seu valor total
· Fim
14
Variável
Lógica de
programação
– Representa uma posição na memória, onde pode
ser armazenado um dado
– 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 (“N2  14”)
15
Operadores Aritméticos
Total  preço * quantidade
Exemplos:
X  1 + 7 * 2 ** 2 - 1
Y  3*(1-2)+4*2
MEDIA = (N1+N2+N3+N4) / 4
16
TESTE DE MESA (Rastreio)
Lógica de
programação
• Todo algoritmo deve ser testado
• Usar dados e resultados previamente
calculados, seguir precisamente as instruções
do algoritmo e verificar se o procedimento
está correto ou não
17
Exercícios
– Faca um algoritmo que receba como entrada uma
determinada temperatura em graus Celsius e mostre a
temperatura em graus Fahrenheit
• OBS: Fahrenheit = (9/5)*(Celsius) + 32
– Tendo como entrada o total vendido por um funcionário no
mês de abril, faça um algoritmo que mostre a sua comissão
e salário bruto neste mês, sabendo que o seu salário base é
R$1.200,00 e sua comissão é de 10% sobre o total vendido.
- Entre com a base e a altura de um retângulo e mostre os
resultados:
•
•
Perímetro (Perímetro é igual à soma dos 4 lados)
Área (Área é igual à lado vezes lado)
18
Exercício
• Leia dois valores A e B e depois coloque em A
o valor lido em B e em B o valor lido em A e
mostre os novos valores de A e B
19
Operadores
Lógica de
programação
– Usados para incrementar, decrementar, comparar e
avaliar dados, que são operações básicas em
processamento de dados.
– Tipos:
• Aritméticos (+, -, *, /, ** ou ^)
– Resultados numéricos
• Relacionais (>, <, >=, <=, =, <> ou #)
– Resultados lógicos (V ou F)
• Lógicos (e, ou, não)
– Combinam resultados lógicos
Precedência dos operadores
20
Lógica de
programação
• Operadores relacionais são muito usados quando
temos que tomar decisões nos algoritmos. Com
eles fazemos testes, comparações, que resultam
em valores lógicos (verdadeiro ou falso):
Exemplo:
tendo duas variáveis, A = 5 e B = 3:
21
Exercícios
6) Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os
valores abaixo, informe se as expressões são verdadeiras ou
falsas.
7) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo
são verdadeiras ou falsas.
a) (A+C) > B ( )
b) B >= (A + 2)
( )
c) C = (B –A) ( )
d) (B + A) <= C
( )
e) (C+A) > B ( )
22
Exercícios
9) Sabendo que A=5, B=4 e C=3 e D=6, informe se as
expressões abaixo são verdadeiras ou falsas.
a) (A > C) AND (C <= D)
( )
b) (A+B) > 10 OR ((A+B) = (C+D)) ( )
c) (A>=C) AND (D >= C)
( )
23
Decisão em algoritmos
• Os algoritmos vistos até agora eram
sequenciais, isto é, todas as operações eram
realizadas em sequência.
• Muitos problemas reais exigem a tomada de
decisão no algoritmo, com mais de um
caminho sendo possível de ser seguido.
24
Lógica de
programação
• ESTRUTURAS DE DECISÃO
– Comandos de decisão ou desvio fazem parte das
técnicas de programação, para construir estruturas de
algoritmos que não são totalmente seqüenciais.
– Com as instruções de desvio pode-se fazer com que o
algoritmo proceda de uma ou outra maneira, de acordo
com as decisões lógicas tomadas em função dos dados
ou resultados anteriores.
– As principais estruturas de decisão são:
• SE...ENTÃO
• SE...ENTÃO...SENÃO
25
SE ... ENTÃO ...
Lógica de
programação
- Formato:
• Se <condição> então <ações>
• Significado: Se a <condição> resultar em verdadeiro,
então executar as <ações>. Senão, simplesmente
ignorar as <ações> e seguir para a próxima instrução
no algoritmo.
• Usada para decidir se um conjunto de ações
opcionais deve ser executado ou não, dependendo do
valor de algum dado ou de algum resultado que já
tenha sido calculado no algoritmo.
26
SE ... ENTÃO ...SENÃO...
Lógica de
programação
- Formato:
Se <condição> então <ações 1>
senão <ações 2>
• Significado: Se a <condição> resultar em verdadeiro,
então executar <ações 1>. Senão, ignorar <ações 1>
e executar <ações 2>.
• Usada para decidir entre duas alternativas de ações.
• Um dos dois conjuntos de ações será executado e o
outro não, dependendo do valor de algum dado ou de
algum resultado que já tenha sido calculado no
algoritmo.
• O valor do dado ou do resultado anterior será testado
na condição, determinando qual conjunto de ações
será executado.
27
Lógica de
programação
• Exemplo da estrutura SE...ENTÃO...SENÃO:
“Mostrar a diferença entre 2 números quaisquer.”
– PSEUDOCÓDIGO:
Ler N1
Ler N2
Se (N1 > N2)
então DIF = N1 - N2
senão DIF = N2 - N1
Mostrar DIF
– O que acontece se os dois números forem iguais?
– O que acontece se um ou os dois números forem negativos?
28
Lógica de
programação
– FLUXOGRAMA:
INÍCIO
N1
N2
DIF = N2 - N1
N1 > N2
DIF = N1 - N2
DIF
FIM
29
Exemplo
Ler salário de funcionários da empresa XYZ e conceder reajuste
salarial conforme os cargos. Aos Técnicos o reajuste será de 50 %, os
Gerentes 30 % e aos demais 10 %.
30
FLUXOGRAMA SEGUIDO DE ALGORITMO
Algoritmo
Início
Program reaj_salario;
Ler Salário
var Salario, Sal_reaj : real;
Prof..
Prof =
Prof : literal[20];
V
“Técnico”.
Início;
Sal_Reaj.
1.5 * Salário
Leia salário, prof;
Escolha
Prof =
“Gerente”.
F
V
Sal_Reaj.
Caso prof = “Técnico”
Sal_reaj
1.3 * Salário
1.5 * salário;
Caso prof = “Gerente”
Sal_reaj.
Sal_reaj
1.3 * salário;
1.1 * Salário
Senão
“Salário
Reajustado”,
Sal_reaj
Fim
Sal_reaj
1.1 * salário;
Fim escolha
Escrever
“Salário
Reajustado”,
Sal_reaj;
Fim.
31
Exercícios
• Faça um algoritmo que leia um número
e mostre o número lido e uma
mensagem indicando se este número é
par ou ímpar e se é positivo ou
negativo.
32
• Desenvolva um algoritmo que efetue a leitura de três
valores correspondentes ao tamanho dos lados de um
triângulo, considerando lados como: A, B e C. O
algoritmo deverá verificar se os lados fornecidos
formam realmente um triângulo. Se for esta condição
verdadeira, deverá ser indicado qual tipo de triângulo foi
formado: isósceles (dois lados iguais e um diferente),
escaleno (todos os lados diferentes) ou eqüilátero
(todos os lados são iguais).
33
Download

aeds1Slide2