Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

22
Construção de Construção de Algoritmos 2 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.

Page 1: 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

Page 2: Construçã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

Page 3: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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.

Page 4: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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

Page 5: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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

Page 6: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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

Page 7: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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

Page 8: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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

Page 9: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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

Page 10: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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);}

Page 11: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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

Page 12: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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.

Page 13: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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

Page 14: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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.

Page 15: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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>”.

Page 16: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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;}

Page 17: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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

Page 18: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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

}

Page 19: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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

Page 20: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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

}

Page 21: Construção de Algoritmos 2 Programação em Java Prof. Maurício Braga.

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.”);

}

Page 22: 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