ALGORITMO Resolvendo Problemas ALGORITMOS E PROGRAMAÇÃO Desenvolvimento de Aplicativos Comerciais Quando temos um problema e vamos utilizar um computador para resolve-lo, precisamos passar pelas seguintes etapas: Definir o problema Realizar um estudo da situação atual e verificar quais as formas de resolver o problema Utilizar uma linguagem de programação para escrever o programa que deverá a principio, resolver o problema Analisar junto aos usuários se o problema foi resolvido Prof. Jorge Cecílio ALGORITMO - Definição Um algoritmo é uma seqüência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecanicamente num período de tempo finito e com uma quantidade de esforço finita. O conceito de algoritmo é freqüentemente ilustrado pelo exemplo de uma receita, embora muitos algoritmos sejam mais complexos. Eles podem repetir passos (fazer iterações) ou necessitar de decisões (tais como comparações ou lógica) até que a tarefa seja completada. Um algoritmo corretamente executado não irá resolver um problema se estiver implementado incorretamente ou se não for apropriado ao problema. ALGORITMO - Definição Um algoritmo não representa, necessariamente, um programa de computador, e sim os passos necessários para realizar uma tarefa. Sua implementação pode ser feita por um computador, por outro tipo de autômato ou mesmo por um ser humano. ALGORITMO - Exemplos Instruções de como utilizar um equipamento eletrodoméstico. Uma receita de Bolo A maneira como as contas de água ou luz são calculadas ALGORITMO - Características Ter fim Não dar margem a dupla interpretação Poder gerar informações de saída ao mundo externo ao do algoritmo Ser efetivo (todas as etapas desejáveis de um algoritmo devem ser atingidas em tempo finito) 1
ALGORITMO - Vantagens A partir dele o programador poderá implementálo em qualquer linguagem de programação que conheça ou deseje. ALGORITMO Representações Descrição narrativa Fluxograma Linguagem Algorítmica ALGORITMO Descrição Narrativa Faz uso do português, com objetivo de descrever os passos principais de uma solução. ALGORITMO Descrição Narrativa Receita de Bolo Providencie Ovos, Manteiga, 2Kg de massa Misture os ingredientes Despeje a mistura na forma de bolo Espere 20 minutos Retire a forma do forno Deixe esfriar Prove Consiste na definição de uma pseudo linguagem de programação, cujos comandos são escritos em português, para representar algoritimos. ALGORITMO Linguagem Algoritmica Exemplo Algoritmo CALCULA_DOBRO NUM, DOBRO: inteiro Leia NUM DOBRO := 2 * NUM Escreva DROBRO fim 2
VANTAGENS Usa o português como base Pode-se definir quais e como os dados vão estar estruturados Passagem quase imediata do algoritmo para a linguagem de programação qualquer. Exercícios Escreva um algoritmo que: 1. Receba as duas notas de um aluno; 2. Calcule a média entre as duas; 3. Exiba o resultado. DESVANTAGENS Exige a definição de uma linguagem não real para trabalho Não padronizados Algoritmo CalculaMedia PriNota, SegNota, Media : Decimal Leia PriNota Leia SegNota Media := (PriNota + SegNota) / 2 Escreva Media Sequenciação Decisão Repetição Sequenciação Os comandos fazem parte de uma seqüência, onde é relevante a ordem na qual se encontram os mesmos, pois serão executados um de cada vez. Ex.: Comanto-1 Comanto-2... Comanto-3 Decisão ou Seleção Há a subordinação de execução de um ou mais comandos à veracidade de uma condição. Ex.: Se <condição> Então <seqüência de comandos> Senão <seqüência de comandos> Se eu tiver R$50,00 vou almoçar no Shopping, senão vou ao Ver-o-peso. 3
Decisão ou Seleção Pri_Nota, Seg_Nota: inteiro; Leia Pri_Nota; Leia Seg_Nota; Se (Pri_Nota > Seg_Nota) Escreva Seu rendimento caiu! ; -se; Senão se (Seg_Nota > Pri_Nota) Escreva Parabéns! Seu rendimento melhorou! ; -Senão; Senão Escreva Seu rendimento ficou inalterado -Senão ; Repetição ou Iteração Conhecida por loop ou laço. Permite que tarefas individuais sejam repetidas um número determinado de vezes ou tantas vezes quanto a condição lógica permita. Ex.: Vou atirar pedra na vidraça até quebrá-la; Enquanto eu tiver saúde e dinheiro, vou desfrutar da vida. Repetição ou Iteração Exemplo Algoritmo Escreve1Ate10 Contador : inteiro Contador := 1 Enquanto (Contador < 11) Escreva Contador Contador := Contador + 1 -Enquanto ALGORITMO REFINAMENTOS SUCESSIVOS Num algoritmo, um comando que não for do entendimento do destinatário terá que ser desdobrado em novos comandos, chamados de refinamento do comando inicial, e assim sucessivamente. ALGORITMO REFINAMENTOS SUCESSIVOS EXEMPLO Algoritmo CALCULA_MEDIA Receba os dois números Calcule a média Escreva o resultado Refinando o calculo da média Some os dois números Divida o resultado por dois ALGORITMO REFINAMENTOS SUCESSIVOS EXEMPLO Algoritmo CALCULA_MEDIA (Refinamento) Receba os dois números Some os dois números Divida o resultado por dois Escreva o resultado 4
Exercícios Escreva um algoritmo que: 1. Receba as duas notas de um aluno; 2. Calcule a média entre as duas; 3. Exiba Aluno Aprovado ou Aluno Reprovado Obs.: A média para aprovação é 7,0. Algoritmo CalculaMedia PriNota, SegNota, Media : Decimal Leia PriNota Leia SegNota Media := (PriNota + SegNota) / 2 Se (Media >= 7,0) Escreva Aluno Aprovado -Se Senao Escreva Aluno Reprovado -Senao ALGORITMO OPERADORESRELACIONAIS Utilizadosnacomparação de literaisounúmeros; Retornamvaloreslógicos Consistem de: Igual a (=) Diferente de (<>) Maiorque (>) Menorque (<) Maiorouigual a (>=) Menorouigual a (<=) ALGORITMO Operadores Lógicos Utilizadosparacombinarresultado de expressõeslógicas São eles E (AND) OU (OR) NÃO (NOT) ALGORITMO Operadores Lógicos ALGORITMO Operadores Lógicos 5
ALGORITMO Operadores Lógicos ALGORITMO Exercício Escreva um algoritmo que receba duas notas de um aluno e o seu percentual de freqüência O algoritmo deverá escrever Aluno Aprovado caso a freqüência do aluno seja maior ou igual a 75% E a media entre suas duas notas seja maior ou igual a 7. Caso contrario o sistema deverá escrever Aluno Reprovado. ALGORITMO EXERCÍCIO (RESOLUÇÃO) Algoritmo VerificaAprovacao PriNota, SegNota, NotaMedia, Freq : Decimal Leia PriNota Leia SegNota Leia Freq NotaMedia := (PriNota + SegNota) / 2 Se (NotaMedia>= 7,00 &Freq>= 75) Escreva Aluno Aprovado Fim-se Senao Escreva Aluno Reprovado S De acordo com os conhecimentos adquiridos em sala, utilize a linguagem algoritmica para escrever um algoritmo de calculo de Coffee-Break de uma reunião. A estimativa de consumo é de uma Lata de Refrigerante e 10 salgadinhos por pessoa. A empresa que fornecerá o Coffee-Break informou que: Cada lata de refrig. Custa R$1,50 Cada salgadinho custa R$ 0,20 Caso sejam comprados mais de 300 salgados será dado um desconto de 10% sobre o valor total dos salgados. Caso sejam comprados mais de 30 latas de refrig., será dado um desconto de 5% sobre o valor de cada lata. Algoritmo CalculaCustoCoffeeBreak QtdPessoa, QtdSalgado, QtdRefri : Inteiro CustoSalgado, CustoRefri,CustoTotal : Decimal Leia QtdPessoa QtdSalgado := QtdPessoa * 10 CustoSalgado := QtdSalgado * 0,20 QtdRefri := QtdPessoas * 1 CustoRefri := QtdRefri * 1,50 Se (QtdSalgado> 300) CustoSalgado := CustoSalgado (CustoSalgado * 10/100) -Se Se (QtdRefrig> 30) CustoRefri := CustoRefrig (CustoRefrig * 5 /100) -Se CustoTotal := CustoSalg + CustoRefri Escreva CustoTotal Calculo de IMC (Índice de Massa Corpórea) Para fazer o cálculo de IMC basta dividir seu peso em quilogramas pela altura ao quadrado (em metros). O número gerado deve ser comparado aos valores de uma tabela de IMC para saber se o seu peso esta na faixa IDEAL, ACIMA ou ABAIXO do normal. Peso Abaixo do Normal: menor que 18,5 Peso Normal: entre 18,5 e 24,9 Peso Acima do Normal: acima de 24,9 6
Algoritmo CalculaImc Peso, Altura, Imc : Decimal Leia Peso Leia Altura Imc := Peso / (Altura * Altura) Se (Imc< 18,5) Escreva Abaixo do peso. Fim-se Senao se (Imc> 24,9) Escreva Peso acima do normal Senao Escreva Peso dentro da faixa normal 1. Faça um programa que receba 2 valores e retorne o maior entre eles. Algoritmo MaiorNumero PriNumero, SegNumero : Decimal Ler PriNumero Ler SegNumero Se (PriNumero>SegNumero) Escreva PriNumero -Se Senao se (PriNumero<SegNumero) Escreva SegNumero -Senao Senao Escreva Números Iguais -Senao Faça um programa que receba um valor que é o valor pago, um segundo valor que é o preço do produto e escreva o valor do troco a ser dado. Algoritmo CalculaTroco ValorPago, ValorProduto, ValorTroco : decimal Leia ValorPago Leia ValorProduto ValorTroco := ValorPago ValorProduto Escreva ValorTroco Sabendo que latão é constituído de 70% de cobre e 30% de zinco, indique a quantidade de cada um desses componentes para se obter uma certa quantidade de latão (requerida pelo usuário) 7
Algoritmo CalculaComposicaoLatao QtdCobre, QtdZinco, Latao : Decimal Leia Latao QtdCobre := Latao * 0,7 QtdZinco := Latao * 0,3 Escreva Cobre: Escreva QtdCobre Escreva Zinco: Escreva QtdZinco Algoritmo CalculaComposicaoLatao QtdCobre, QtdZinco, Latao : Decimal Leia Latao QtdCobre := Latao * 0,7 QtdZinco := Latao * 0,3 Escreva Cobre: + QtdCobre Escreva Zinco: + QtdZinco Uma transportadora precisa de um programa que calcule a quantidade de caminhões necessários para transportar uma determinada carga. A transportadora deverá informar o peso (em toneladas) da carga. O sistema deverá informar a quantidade de caminhões necessários para transportar a carga informada. Entenda que cada caminhão transporta uma carga de até 20 Toneladas. Algoritmo QuantosCaminhoes QuantidadeCaminhoes, PesoCarga : decimal Leia PesoCarga QuantidadeCaminhoes := PesoCarga / 20 Escreva QuantidadeCaminhoes Escreva um algoritmo que realize o calculo da conta de internet. Sendo a Conta base R$ 50,00, com franquia de 100mb de transferência mensal. Para um consumo extra de até 10mb será cobrado um adicional de R$1,00 por MB. Para um consumo extra acima de 10mb será cobrado um adicional de R$ 0,50 por MB (em todos os MBs que ultrapassarem a franquia) Obs. Assuma que sempre haverá consumo extra. Algoritmo Calcula_Conta_Internet Consumo, ValorConta : Decimal; Leia Consumo Se (Consumo <= 0) ValorConta := 50,00 -Se Senao Se (consumo > 110) ValorConta = ((Consumo - 100) * 0,50) + 50 -Senao Senao Se (consumo <= 110 ) ValorConta = ((Consumo - 100) * 1,00) + 50 -Senao Escreva ValorConta 8
Algoritmo Calcula_Conta_Internet Consumo, ConsumoExtra, ValorConta : Decimal Leia Consumo ConsumoExtra := Consumo 100 Se (ConsumoExtra <= 0) ValorConta := 50,00 Senao Se (ConsumoExtra> 10) ValorConta = ConsumoExtra * 0,50 ValorConta = ValorConta + 50,00 Senao Se (ConsumoExtra<=) ValorConta = ConsumoExtra * 1,00 ValorConta = ValorConta + 50,00 Escreva ValorConta Escreva um algoritmo que realize o calculo da conta de um restaurante. Será cobrado um valor de 10% acima do consumo referente a taxa de serviço Será cobrado um valor de R$ 5,00 referente ao couvert artístico por pessoa. ALGORITMOS EXERCÍCIO Algoritmo CalculaConta Consumo, QtdPessoas, ValorPagar: Decimal Leia Consumo Leia QtdPessoas ValorPagar := Consumo + (Consumo * 0,1) + (QtdPessoas * 5,00) Escreva ValorPagar Escreva o algoritimo para estimar o custo de um projeto de desenvolvimento de sistemas. O custo da hora do programador é de R$ 50,00 A quantidade de programadores deverá ser informada pelo usuário A quantidade de horas do projeto deverá ser informada pelo usuário (e multiplicada pelo numero de programadores). Algoritmo CalculaCustoProjeto QtdProgramadores, QtdHoras : inteiro CustoTotal : decimal Leia QtdProgramadores Leia QtdHoras CustoTotal = QtdProgramadores * QtdHoras * 50,00 Escreva CustoTotal 9