Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com 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> <instruções para condição1 e condição2 falsa> 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 novo_salario <- salario * 1.05 fimse escreva (novo_salario) fimalgoritmo
Operadores Lógicos Operador: E Operador: OU Operador: NÃO
Operador Lógico: E Condição 1 Condição 2 Resultado 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 Condição 2 Resultado FALSO 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 Resultado VERDADEIRO FALSO 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 B NÃO A NÃO B A OU B A E B 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.
N S N S N S
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") escreva ("Triangulo Escaleno") fimse escreva ("As medidas nao formam um triangulo") fimalgoritmo
Laços de Repetição Conceito Exemplo: Probabilidade 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) 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 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 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 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 Apresentar o total da soma obtida dos cem primeiros números inteiros (1+2+3+4+...+98+99+100). Elaborar um programa que apresente no final o somatório dos valores inteiros pares existentes na faixa de 1 até 50. 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 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.