algoritmos fabrício costa santana [email protected]

28
os Fabrício Costa Santana [email protected] http://professorfabricio.net

Upload: internet

Post on 18-Apr-2015

113 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Algoritmos

Fabrício Costa [email protected] http://professorfabricio.net

Page 2: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Desvio Condicional Encadeadose (<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> fimsefimse

Page 3: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Desvio Condicional Encadeado

Page 4: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

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%

Page 5: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Desvio Condicional Encadeado

Page 6: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Desvio Condicional Encadeadoalgoritmo "Reajusta_Salario"var

novo_salario: realsalario: real

inicioleia (salario)se (salario < 500) entao

novo_salario <- salario * 1.15senao

se (salario <= 1000) entaonovo_salario <- salario * 1.10

senaonovo_salario <- salario * 1.05

fimsefimseescreva (novo_salario)

fimalgoritmo

Page 7: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Operadores Lógicos• Operador: E• Operador: OU• Operador: NÃO

Page 8: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Operador Lógico: ECondição 1 Condição 2 Resultado

FALSO FALSO FALSOVERDADEIRO FALSO FALSO

FALSO VERDADEIRO FALSOVERDADEIRO VERDADEIRO VERDADEIRO

O operador do tipo E é utilizado quando dois ou mais relacionamentos lógicos de uma determinada condição necessitam ser verdadeiros.

Page 9: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Operador Lógico: Ealgoritmo “TESTA_LOGICA_E”var NUMERO: inteiroinicio 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") fimsefimalgoritmo

Page 10: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Operador Lógico: OUCondição 1 Condição 2 Resultado

FALSO FALSO FALSOVERDADEIRO FALSO VERDADEIRO

FALSO VERDADEIRO VERDADEIROVERDADEIRO VERDADEIRO VERDADEIRO

O operador do tipo OU é utilizado quando pelo menos um dos relacionamentos lógicos de uma condição necessita ser verdadeiro.

Page 11: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Operador Lógico: OUalgoritmo “MEDIA_FALTAS_SITUACAO”var N1, N2, N3, N4, MEDIA: real FALTAS: inteiroinicio 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”) fimsefimalgoritmo

Page 12: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Operador Lógico: NÃOCondição Resultado

VERDADEIRO FALSOFALSO 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.

Page 13: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Operador Lógico: NÃOalgoritmo "Testa_Logica_NAO"var

A, B, C, X: inteiroinicio

leia (A, B, X)se nao(X>5) entao

C <- (A + B) * Xsenao

C <- (A - B) * Xfimseescreva (C)

fimalgoritmo

Page 14: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

TABELA VERDADEA B NÃO A NÃO B A OU B A E BF F V V F FF V V F V FV F F V V FV V F F V V

Page 15: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

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.

Page 16: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

inicio

A, B, C

A=B .e. B=C

“Triângulo Equilátero”

A=B .ou. A=C .ou. B=C“Não é Triângulo”

“Triângulo Escaleno”

“Triângulo Isósceles”

fim

A<B+C .e. B<A+C .e. C<A+B

N S

SN

SN

Page 17: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Algoritmo Triânguloalgoritmo "Triangulo"var

a, b, c: realinicio

leia (a, b, c)se (a < b + c) e (b < a + c) e (c < a + b) entao

se (a=b) e (b=c) entaoescreva ("Triangulo Equilatero")senaose (a=b) ou (a=c) ou (c=b) entaoescreva ("Triangulo Isosceles")senaoescreva ("Triangulo Escaleno")fimsefimse

senaoescreva ("As medidas nao formam um triangulo")

fimsefimalgoritmo

Page 18: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

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.

Page 19: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com
Page 20: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

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

Page 21: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Laço de Repetição com Teste Lógico no Início do Looping

algoritmo "Pede_Numero"var

X: inteiroR: inteiro

inicioleia (X)R <- X * 3escreva (R)leia (X) R <- X * 3escreva (R)leia (X)R <- X * 3escreva (R)leia (X) R <- X * 3escreva (R)leia (X)R <- X * 3escreva (R)

fimalgoritmo

Page 22: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Laço de Repetição com Teste Lógico no Início do Loopingenquanto (condição) faca

instruções executadas enquanto a condição for verdadeirafimenquanto

Page 23: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Laço de Repetição com Teste Lógico no Início do Looping

Page 24: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Laço de Repetição com Teste Lógico no Início do Loopingalgoritmo “Looping_1A”var

X, R, CONT: inteiroinicio

CONT <- 1enquanto (CONT <= 5) facaleia (X )R <- X * 3escreval (R) CONT <- CONT + 1fimenquanto

fimalgoritmo

Page 25: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

Laço de Repetição com Teste Lógico no Início do Loopingalgoritmo “FATORIAL _ENQUANTO”var CONT, FAT : inteiroinicio //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

Page 26: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

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)

Page 27: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

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):

2 x 1 = 22 x 2 = 42 x 3 = 62 x 4 = 82 x 5 = 102 x 6 = 122 x 7 = 142 x 8 = 162 x 9 = 182 x 10 = 20

Page 28: Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com

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.