Algoritmos
Fabrício Costa Santana
[email protected]
http://professorfabricio.net
Desvio Condicional Encadeado
se (<condição1>) entao
<instruções para condição1 verdadeira>
senao
se (<condição2>) entao
<instruções para condição2 verdadeira, porém condição1 falsa>
senao
<instruções para condição1 e condição2 falsa>
fimse
fimse
Desvio Condicional Encadeado
Desvio Condicional Encadeado
Considere que o funcionário deverá receber um reajuste de 15%
caso seu salário seja menor que 500. Se o salário for maior ou
igual a 500, mas menor ou igual a 1000, seu reajuste será de
10%; caso seja maior que 1000, o reajuste deverá ser de 5%
Salário < 500, reajuste será de 15%
Salário >= 500, mas <= 1000, reajuste será de 10%
Salário > 1000, reajusto será de 5%
Desvio Condicional Encadeado
Desvio Condicional Encadeado
algoritmo "Reajusta_Salario"
var
novo_salario: real
salario: real
inicio
leia (salario)
se (salario < 500) entao
novo_salario <- salario * 1.15
senao
se (salario <= 1000) entao
novo_salario <- salario * 1.10
senao
novo_salario <- salario * 1.05
fimse
fimse
escreva (novo_salario)
fimalgoritmo
Operadores Lógicos
• Operador: E
• Operador: OU
• Operador: NÃO
Operador Lógico: E
Condição 1
FALSO
VERDADEIRO
FALSO
VERDADEIRO
Condição 2
FALSO
FALSO
VERDADEIRO
VERDADEIRO
Resultado
FALSO
FALSO
FALSO
VERDADEIRO
O operador do tipo E é utilizado quando dois ou
mais relacionamentos lógicos de uma determinada
condição necessitam ser verdadeiros.
Operador Lógico: E
algoritmo “TESTA_LOGICA_E”
var
NUMERO: inteiro
inicio
leia (NUMERO )
se (NUMERO >= 20) e (NUMERO <=90) entao
escreva (“Esta na faixa de 20 a 90")
senao
escreva (“Esta FORA da faixa de 20 a 90")
fimse
fimalgoritmo
Operador Lógico: OU
Condição 1
FALSO
VERDADEIRO
FALSO
VERDADEIRO
Condição 2
FALSO
FALSO
VERDADEIRO
VERDADEIRO
Resultado
FALSO
VERDADEIRO
VERDADEIRO
VERDADEIRO
O operador do tipo OU é utilizado quando pelo
menos um dos relacionamentos lógicos de uma
condição necessita ser verdadeiro.
Operador Lógico: OU
algoritmo “MEDIA_FALTAS_SITUACAO”
var
N1, N2, N3, N4, MEDIA: real
FALTAS: inteiro
inicio
leia (N1)
leia (N2)
leia (N3)
leia (N4)
leia (FALTAS)
MEDIA <- (N1+N2+N3+N4)/4
escreva (“A média é: ”, MEDIA)
se (MEDIA >= 7) ou (FALTAS < 10) entao
escreva (“Aprovado”)
senao
escreva (“Reprovado”)
fimse
fimalgoritmo
Operador Lógico: NÃO
Condição
VERDADEIRO
FALSO
Resultado
FALSO
VERDADEIRO
O operador do tipo NAO é utilizado quando se
necessita estabelecer que uma determinada
condição deve não ser verdadeira ou deve não ser
falsa. O operador NAO se caracteriza por inverter o
estado lógico de uma condição.
Operador Lógico: NÃO
algoritmo "Testa_Logica_NAO"
var
A, B, C, X: inteiro
inicio
leia (A, B, X)
se nao(X>5) entao
C <- (A + B) * X
senao
C <- (A - B) * X
fimse
escreva (C)
fimalgoritmo
TABELA VERDADE
A
F
F
V
V
B
F
V
F
V
NÃO A NÃO B A OU B
V
V
F
V
F
V
F
V
V
F
F
V
AEB
F
F
F
V
Algoritmo Triângulo
Problema:
Precisa-se de um programa capaz de ler três valores para os
lados de um triângulo e verificar se os lados fornecidos formam
realmente um triângulo. Se esta condição for verdadeira, deve
ser indicado qual tipo de triângulo foi formado: isósceles,
escaleno ou equilátero.
inicio
A, B, C
N
S
A<B+C .e. B<A+C
.e. C<A+B
S
N
N
“Não é Triângulo”
A=B .ou. A=C .ou.
B=C
“Triângulo
Escaleno”
A=B .e. B=C
S
“Triângulo
Isósceles”
fim
“Triângulo
Equilátero”
Algoritmo Triângulo
algoritmo "Triangulo"
var
a, b, c: real
inicio
leia (a, b, c)
se (a < b + c) e (b < a + c) e (c < a + b) entao
se (a=b) e (b=c) entao
escreva ("Triangulo Equilatero")
senao
se (a=b) ou (a=c) ou (c=b) entao
escreva ("Triangulo Isosceles")
senao
escreva ("Triangulo Escaleno")
fimse
fimse
senao
escreva ("As medidas nao formam um triangulo")
fimse
fimalgoritmo
Laços de Repetição
• Conceito
• Exemplo:
• Fatorial de 5!
• 5! = 5 x 4 x 3 x 2 x 1
• Fatorial de 8450
• 8450! = 8450 x 8449 x 8448 x 8447 x 8446 x ... X 3 x 2 x 1
• Probabilidade
• n = Total de números possíveis a se escolher.
• k = Quantidade de escolhas dentre o universo de números
disponíveis.
Tipos de Laços de Repetição
• Laço de Repetição com Teste Lógico no Início do Looping
• Laço de Repetição com Teste Lógico no Fim do Looping
• Laço de Repetição com Variável de Controle
Laço de Repetição com Teste
Lógico no Início do Looping
algoritmo "Pede_Numero"
var
X: inteiro
R: inteiro
inicio
leia (X)
R <- X * 3
escreva (R)
leia (X)
R <- X * 3
escreva (R)
leia (X)
R <- X * 3
escreva (R)
leia (X)
R <- X * 3
escreva (R)
leia (X)
R <- X * 3
escreva (R)
fimalgoritmo
Laço de Repetição com Teste
Lógico no Início do Looping
enquanto (condição) faca
instruções executadas enquanto a condição for verdadeira
fimenquanto
Laço de Repetição com Teste
Lógico no Início do Looping
Laço de Repetição com Teste
Lógico no Início do Looping
algoritmo “Looping_1A”
var
X, R, CONT: inteiro
inicio
CONT <- 1
enquanto (CONT <= 5) faca
leia (X )
R <- X * 3
escreval (R)
CONT <- CONT + 1
fimenquanto
fimalgoritmo
Laço de Repetição com Teste
Lógico no Início do Looping
algoritmo “FATORIAL _ENQUANTO”
var
CONT, FAT : inteiro
inicio
//isto é um contador
CONT  1
//isto é um acumulador
FAT  1
enquanto (CONT <= 5) faca
FAT  FAT * CONT
CONT  CONT + 1
fimenquanto
escreval (“Fatorial de 5 é = ”, FAT)
fimalgoritmo
Laço de Repetição com Teste
Lógico no Início do Looping
• Contador: Variável que controla a contagem do número de
vezes que o trecho de programa deverá ser executado.
• Acumulador: Variável usada para acumular valores. Deve ser
inicializada sempre com um valor que é elemento nulo na
operação a ser acumulada (se a operação for de multiplicação
deve iniciada com valor=1 se for soma deve ser iniciada com
valor=0)
Exercícios
1. Elabore um algoritmo que solicite ao usuário um número e
apresente os resultados da tabuada de multiplicar deste
número, a qual deverá ser impressa no seguinte formato
(considerando o fornecimento do número 2):
2x1=2
2x2=4
2x3= 6
2x4= 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
2 x 10 = 20
Exercícios
2. Apresentar o total da soma obtida dos cem primeiros
números inteiros (1+2+3+4+...+98+99+100).
3. Elaborar um programa que apresente no final o somatório
dos valores inteiros pares existentes na faixa de 1 até 50.
4. Elaborar um programa que apresente os valores de
conversão de graus Celsius em Fahrenheit, de 10 em 10
graus, iniciando a contagem em 10 graus Celsius e
finalizando em 100 graus Celsius. O programa deve
apresentar os valores das duas temperaturas. A fórmula de
conversão F <- (9 * C + 160) / 5
5. Elaborar um programa que efetue a leitura de valores
positivos inteiros até que um valor negativo seja informado.
Ao final devem ser apresentados o maior e o menor valores
informados pelo usuário.
Download

Algoritmos - WordPress.com