Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.
Transcript of Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.
Construção de Algoritmos 2Construção de Algoritmos 2
Programação em Java
Prof. Maurício Braga
2/21
Roteiro para construção de algoritmos
Roteiro básico para construção de um algoritmo1. ENTENDA O PROBLEMA
Etapa mais importante. Erros nesta fase podem levar a construção de soluções erradas ou soluções corretas para o problema errado.
2. Identifique no problema as saídas do algoritmo Atente o que deve ser calculado, impresso e processado.
3. Identifique no problema as entradas do algoritmo Atente para o que deve ser lido, obtido do usuário.
4. Identifique qual o processamento necessário Atente para os cálculos necessários, sempre a partir dos valores de
entrada, para chegar aos de saída.
5. Separe as etapas de entrada de dados, processamento e saída de dados dentro do algoritmo
6. Coloque os comandos segundo a estrutura seqüencial básica do algoritmo
3/21
Verificação manual de algoritmos
Após a construção de um algoritmo pode-se verificar se o mesmo realmente é uma solução para o problema
Forma “braçal” denominada “teste de mesa” ou “método chinês”.
Consiste na simulação manual da execução do algoritmo, comando após comando, atentando para as entradas e saídas de dados e verificando o comportamento das variáveis.
Equivale a colocar-se no papel do computador, anotando o que a máquina faria a cada comando.
4/21
Verificação manual de algoritmos Exemplo1
Calcular a média de dois números reais
Solução Entradas: dois números reais Saída: a média dos números Cálculo necessário: somar os números e dividir o resultado por
dois. Variáveisnum1, num2, soma, media : real;
Inícioler num1;ler num2;soma = num1 + num2;media = soma / 2;escrever media;
Fim
5/21
Verificação manual de algoritmos
Verificando se o algoritmo está correto Inicialmente anotamos as variáveis do algoritmo, e, ao lado, o
valor nela armazenado. Supondo que, na primeira leitura, o usuário forneça o valor 8. Supondo que, na segunda leitura, o usuário forneça o valor 7. Em seguida o computador calcula a soma. Por último o computador calcula a média na atribuição seguinte. O valor 7.5 será impresso, indicando a média dos números 8 e 7
corretamente.
num1 ?num2 ?soma ?media ?
num1 8num2 ?soma ?media ?
num1 8num2 7soma ?media ?
num1 8num2 7
soma 15media ?
num1 8num2 7
soma 15media 7.5
6/21
Verificação manual de algoritmos
Exemplo 2 Indique os valores impressos pelo algoritmo a seguir
VariáveisA, B, C, D : inteiro;
InícioA = 10;B = 20;D = A + A;C = A + B;A = B + C;D = D + 1;escrever A;escrever B;escrever C;escrever D;
Fim
7/21
Verificação manual de algoritmos
Exemplo 2 (cont.)
A ?B ?C ?D ?
A 10B ?C ?D ?
A 10B 20C ?D ?
A 10B 20C ?D 20
A 10B 20C 30D 20
A 50B 20C 30D 20
A 50B 20C 30D 21
8/21
Verificação manual de algoritmos
Exemplo 3 Ler o preço de um par de sapatos numa loja e
escrevê-lo com um desconto de X%
Neste vocês terão que criar o programa
9/21
Verificação manual de algoritmos
Exemplo 3 (cont.) O algoritmo fica assim...
Variáveispreco, desconto, valor_a_descontar, preco_final : real;
Inícioler preco;ler desconto;valor_a_descontar = ( preco * desconto ) / 100;preco_final = preco – valor_a_descontar;escrever preco_final;
Fim
10/21
Programa desconto em Javapublic static void main(String[] args) {
double preco=0, desconto=0, valor_a_descontar=0, preco_final=0;
System.out.println("Entre o preço do produto:"); preco = Leia(preco); System.out.println("Entre o desconto:"); desconto = Leia(desconto);
// cálculo do preço da mercadoria com o desconto valor_a_descontar = (preco*desconto)/100; preco_final = preco – valor_a_descontar;
System.out.println(“O preço com desconto é : "+preco_final);}
11/21
Verificação manual de algoritmos
Exemplo 3 (cont.) Supondo que o usuário informe o preço de R$50,00 e
o desconto de 20%, como fica o teste de mesa?
preco 50desconto ?v_desconto ?preco_final ?
preco 50desconto 20v_desconto ?preco_final ?
preco 50desconto 20v_desconto 10preco_final ?
preco 50desconto 20v_desconto 10preco_final 40
12/21
Verificação manual de algoritmos - Impressões complementares
A finalidade principal do comando de saída de dados é exibir resultados processados pelo computador. Imprimir o conteúdo das variáveis; Imprimir mensagens relativas a um processamento.
Também podemos utilizá-lo para exibir mensagens informativas para o usuário, facilitando o entendimento do que está sendo executado pelo computador Imprimir mensagens contendo instruções de execução; Imprimir mensagens descritivas sobre as variáveis impressas.
13/21
Verificação manual de algoritmos - Impressões complementares Exemplo
Algoritmo para calcular a média de 2 números
Variáveisnum1, num2, soma, media : real;
Inícioescrever “Entre com o primeiro número: ”;ler num1;escrever “Entre com o segundo número: “;ler num2;
soma = num1 + num2;media = soma / 2;
escrever “A média calculada foi “ + media;Fim
Adicionados
14/21
Verificação manual de algoritmos Exemplo 4
Ler o nome e a qualidade de uma pessoa, e exibir a mensagem “<Nome> é uma pessoa que tem <qualidade>”.
Escreva este programa em Java.
Solução Exemplo simples de composição de frases em algoritmos. Para as entradas Maria e coragem, a saída seria “Maria é
uma pessoa de coragem”. Este algoritmo não necessita de cálculos, apenas leitura dos
dados e exibição de composição entre variáveis e mensagens.
15/21
Verificação manual de algoritmos
Digite a função Leia que será exibida no próximo slide. Esta função recebe uma String como parâmetro e retorna o texto digitado pelo usuário.
Crie o programa principal, que irá usar a função Leia para montar a mensagem: “<Nome> é uma pessoa que tem <qualidade>”.
16/21
Programa mensagem em Javapublic static String Leia(String param) {
// declaração de variáveis// objeto que contém o dado digitado pelo usuárioDataInputStream dado_lido;
// variável auxiliar que irá armazenar o texto digitado // pelo usuárioString stemporario="";
try { dado_lido = new DataInputStream(System.in); stemporario = dado_lido.readLine();
}catch (Exception e) { } return stemporario;}
17/21
Solução
Exemplo 4 (cont.) O algoritmo fica assim...
Variáveisnome, qualidade : cadeia;
Inícioler nome;ler qualidade;escrever nome + “ é uma pessoa que tem “ + qualidade;
Fim
18/21
Programa mensagem em Javapublic static void main(String[] args) {
// declaração de variáveis
String nome=null, qualidade=null;
System.out.println("Entre o nome:");
nome = Leia(nome);
System.out.println("Entre a qualidade:");
qualidade = Leia(qualidade);
System.out.println(nome+ " é uma pessoa que tem "+qualidade);
}
19/21
Exercícios
Faça um programa para ler um valor em reais e exibir o equivalente em dólares. Considere que um dólar vale R$2,50.
Faça um programa para ler o salário de um funcionário e imprimi-lo com um aumento de 15%.
Mostre o que será impresso pelo algoritmo a seguir.
Variáveisv, r : real;
Iníciov = 1000;r = 15 / 100;v = v + r * v;v = v + r * v;v = v + r * v;escreva v;
Fim
20/21
Programa câmbio em Javapublic static void main(String[] args) { // declaração de variáveis double valor_real=0, valor_dolar=0, cotacao_dolar = 2.50; System.out.println("Entre o valor em reais:"); valor_real=Leia(valor_real); valor_dolar = valor_real/cotacao_dolar; System.out.println("O valor de R$ " + valor_real + " reais em dólar é: US$ " + valor_dolar);
}
21/21
Programa salário em Javapublic static void main(String[] args) { // declaração de variáveis double salario_antigo=0, salario_novo=0; System.out.println("Entre o valor do salário do funcionário:"); salario_antigo=Leia(salario_antigo); salario_novo = salario_antigo*1.15; System.out.println("O valor do salário com aumento de 15% é R$ " +
salario_novo + " reais.”);
}
Construção de Algoritmos 2Construção de Algoritmos 2
Programação em Java
Prof. Maurício Braga