Algoritmo para Iniciantes
Algoritmo são os passos para a solução de um problema.
Os passos que levam a uma solução são muitos.
Logica de programação
· Coerência
· Racionalidade
· Por que fazer de uma forma e não de outra?
· Arte de bem pensar
· Ordem no pensamento
Fases na concepção de um algoritmo
• Entradas: dados que alimentam o sistema, informações inseridas pelo usuário;
• Processamento: cálculos e manipulação dos dados de entrada;
• Saída: resultado obtido do processamento dos dados;
• Teste de mesa: é a execução das três fases acima mencionada, verificando o funcionamento na prática das instruções executadas.
Variáveis e tipos de dados
Variáveis
Expressões que podem conter ou armazenar valores.
Tipos de Dados (os mais usados são):
· Inteiro: São números inteiros.
Ex: idade = 35
Real: Qualquer numero, inclusive os fracionários.
Ex. valor = 35,62
· Caracter: Qualquer conjunto de caracteres alfanuméricos.
Ex: nome = “Emanuel”
Ex:
Problema: Calcular a media de duas notas e mostrar esta media.
Algoritmo media
var nota1, nota2, media de real;
inicio
mostrar “ler a primeira nota”;
ler(nota1);
mostrar “Ler segunda nota”;
ler(nota2);
media ß ( nota1 + nota2 ) / 2;
mostrar “A média é” +media;
fim
Teste de mesa
Nota1 <-- 7
Nota2 <-- 5
Media <-- ( 7 + 5 )/ 2 = 6;
A média é 6
Diagrama de Blocos ou Fluxograma
• Forma gráfica para representar os passos lógicos de um determinado algoritmo.
• Com o diagrama pode-se definir e facilitar a visualização dos passos em um problema.
Abaixo representaremos o algoritmo acima em diagrama de blocos ou fluxograma:
No fluxograma acima temos representado o algoritmo media.
E abaixo, uma sequencia de exercicios resolvidos e compilado no java.
//Problema: Calcular a media de duas notas e mostrar esta media.
import javax.swing.JOptionPane;
class media
{
public static void main(String args[])
{
float nota1 , nota2, media;
nota1 = Float.parseFloat(JOptionPane.showInputDialog("Digite a primeria nota"));
nota2 = Float.parseFloat(JOptionPane.showInputDialog("Digite a segunda nota"));
media = (nota1 + nota2)/ 2;
JOptionPane.showMessageDialog(null,"A media é: " +media);
}
}
Mais exemplos sobre Tipos de Dados
Problema: Ler o nome de uma pessoa, a sua idade e o seu salario, e mostrar estas informações.
Algoritmo tipos_dados
var nome de caracter;
idade de inteiro;
salario de real;
inicio
mostrar “Digite o nome”;
ler(nome);
mostrar “Digite a idade”;
ler(idade);
mostrar “Digite o salario”;
ler(salario);
mostrar( nome + idade + salario);
fim
No java:
//Problema: Ler o nome de uma pessoa, a sua idade e o seu salario, e mostrar estas informações.
import javax.swing.JOptionPane;
class tipos_dados
{
public static void main(String args[])
{
float salario;
int idade;
String nome;
nome = JOptionPane.showInputDialog("Digite o nome");
idade = Integer.parseInt(JOptionPane.showInputDialog("Digite a idade"));
salario = Float.parseFloat(JOptionPane.showInputDialog("Digite o salario"));
JOptionPane.showMessageDialog(null,"Nome: " +nome +
"\nIdade: "+idade +" anos" +
"\nSalario: R$"+salario +"0");
}
}
Obs: O ( “\n” ) quer dizer mudar para a linha de baixo.
( // ) Indica que é uma observaçao e que esta contida em uma unica linha.
( /* ) Indica que é uma observaçao e que terminha em outra linha com ( */ )
Mais exemplos
Problema: ler dois números, efetuar as 4 operaçoes matemáticas e mostrar os resultados.
Algoritmo operacoes_matematicas
Var num1 de inteiro, num2 de inteiro, soma, divisao, multiplicação, subtracao de real;
inicio
Mostrar “Digite o primeiro numero”;
ler(num1);
Mostrar “Digite o segundo numero”;
ler(num2);
soma = num1 + num2;
divisao = num1 / num2;
multiplicação = num1 x num2;
subtração = num1 – num2;
mostrar “A soma é:” +soma;
“A divisão é:” + divisao;
“A multiplicação é:” + multiplicacao;
“A subtração é:” + subtração;
fim
No Java:
//Problema: ler dois números, efetuar as 4 operaçoes matemáticas e mostrar os resultados.
import javax.swing.JOptionPane;
class operacoes_matematicas
{
public static void main(String args[])
{
float num1, num2, soma, divisao, multiplicacao, subtracao;
num1 = Integer.parseInt(JOptionPane.showInputDialog("Digite o primeiro numero"));
num2 = Integer.parseInt(JOptionPane.showInputDialog("Digite o segundo numero"));
soma = num1+num2;
divisao =num1/num2;
multiplicacao =num1*num2;
subtracao =num1-num2;
JOptionPane.showMessageDialog(null,"Numeros digitados: " +num1 +" e "+num2 +
"\nA soma é: " +soma +
"\nA divisão é: "+ divisao +
"\nA multiplicação é: "+ multiplicacao +
"\nA subtração é: " +subtracao);
}
}
Varios exercícios
Problema: Duas variáveis (A e B) possuem valores distintos( A = 5 e B = 10), crie um algoritmo que armazene estes dois valores nessas duas variáveis, e efetue a troca dos valores de forma que a variável A passe a possuir o valor de B e que a variável B passe a possuir o valor de A. por fim, apresente estes valores trocados.
Algoritmo troca_valores
Var A = 5 , B = 10, auxiliar = A
Mostrar A = B
mostrar B = auxiliar
Teste de mesa
A = 5
B = 10
auxiliar = A
Mostrar A = B
B = auxiliar
No Java:
/*Problema: Duas variáveis (A e B) possuem valores distintos( A = 5 e B = 10),
crie um algoritmo que armazene estes dois valores nessas duas variáveis,
e efetue a troca dos valores de forma que a variável A passe a possuir o valor de B
e que a variável B passe a possuir o valor de A. por fim, apresente estes valores trocados.
*/
import javax.swing.JOptionPane;
class troca_valores
{
public static void main(String args[])
{
float a = 5, b = 10, auxiliar = a;
a = b;
b = auxiliar;
JOptionPane.showMessageDialog(null,"Antes da troca: A = 5 e B = 10" +
"\nDepois da troca: A = "+a +" e B = "+b);
}
}
Problema: O custo ao consumidor de um carro novo, é a soma do custo de fabrica como a percentagem do revendedor e com o custo dos impostos(aplicados ao custo de fabrica). Supondo que a percentagem do revendedor seja 25% e que os impostos custam 45% do custo de fabrica, faça um algoritmo que leia o valor de custo de fabrica e determine o preço final do automóvel( custo ao consumidor).
Algoritmo Automovel
Inicio
var cust_fabrica, percentual_revendedor, impostos, preco_final de real;
cust_fabrica ß 800
percentual_revendedor ß (25 X cust_fabrica) / 100;
impostos ß (45 x cust_fabrica) / 100;
preço_final ß cust_fabrica + percentual_revendedor + impostos
mostrar “Preço final" + preco_final;
fim
Teste de mesa
custo de fabrica = 800
percentagem do revendedor = 200
impostos = 360
preco_final = 1360
No Java:
/*Problema: O custo ao consumidor de um carro novo,
é a soma do custo de fabrica como a percentagem do revendedor
e com o custo dos impostos(aplicados ao custo de fabrica).
Supondo que a percentagem do revendedor seja 25% e que os impostos custam 45% do custo de fabrica,
faça um algoritmo que leia o valor de custo de fabrica e
determine o preço final do automóvel( custo ao consumidor).
*/
import javax.swing.JOptionPane;
class automovel
{
public static void main(String args[])
{
float cust_fabrica, percentual_revendedor, impostos, valor_final;
cust_fabrica = Float.parseFloat(JOptionPane.showInputDialog("Digite o valor do Automóvel"));
percentual_revendedor = (25 * cust_fabrica) / 100;
impostos = (45 * cust_fabrica) / 100;
valor_final = cust_fabrica + percentual_revendedor + impostos;
JOptionPane.showMessageDialog(null,"Custo de Fabrica: R$"+cust_fabrica +"0" +
"\nPencentual do Revendedor: R$"+ percentual_revendedor +"0" +
"\nImpostos: R$"+impostos +"0" +
"\nPreço final do automóvel: R$"+valor_final +"0");
}
}
Problema: O sistema de avaliação de uma determinada disciplina, é composto por três provas. A primeira prova tem peso 2, a segunda tem peso 3 e a terceira tem peso 5. Faça um algoritmo para calcular a media final de um aluno desta disciplina.
Algoritmo avaliação
Var prov1, prov2, prov3, media de real;
inicio
mostrar “Digite a nota da primeira prova ”;
ler (prov1);
mostrar “Digite a nota da segunda prova ”;
ler (prov2);
mostrar “Digite a nota da terceira prova ”;
ler (prov3);
prov1 = (prov1 x 2 )/ 10 ;
prov2 = (prov2 X 3) / 10;
prov3 = (prov3 x 5) / 10;
media = (prov1 + prov2 + prov3) / 2;
mostrar “A media é: “ +media;
fim
Teste de mesa
prov1 ß (5 x 2) / 10 = 1
prov2 ß (8 x 3) / 10 = 2,4
prov3 ß (6 x 5) / 10 = 3
media ß (1 + 2,4 + 3) = 6,4
mostrar a media é 6,4
Obs: a nota X (vezes) o peso da prova / (dividido) 10 ßque é a soma do peso das 3 provas.
No java:
/* Problema: O sistema de avaliação de uma determinada disciplina,
é composto por três provas. A primeira prova tem peso 2,
a segunda tem peso 3 e a terceira tem peso 5. Faça um algoritmo para calcular
a media final de um aluno desta disciplina.
*/
import javax.swing.JOptionPane;
class avaliacao
{
public static void main(String args[])
{
float prov1, prov2, prov3, media;
prov1 = Float.parseFloat(JOptionPane.showInputDialog("Digite a nota da primeira prova"));
prov2 = Float.parseFloat(JOptionPane.showInputDialog("Digite a nota da segunda prova"));
prov3 = Float.parseFloat(JOptionPane.showInputDialog("Digite a nota da terceira prova"));
prov1 = (prov1 * 2)/ 10 ;
prov2 = (prov2 * 3) / 10;
prov3 = (prov3 * 5) / 10;
media = prov1 + prov2 + prov3;
JOptionPane.showMessageDialog(null,"A media é: "+media);
}
}
Problema: Um cliente de um banco tem um saldo positivo de R$500,00. Fazer um algoritmo que leia um cheque que entrou e calcule o saldo, mostrando (escrevendo) o saldo na tela.
Algoritmo saldo
Var saldo_positivo, cheque, saldo_final de real;
Inicio
Saldo_inicial ß 500
cheque ß Mostrar “Digite o valor do cheque”;
saldo_final ß saldo_inicial – cheque
Mostrar “saldo final “ + saldo_final;
Fim
Teste de mesa
saldo_positivo = 500
cheque = 200
saldo_final = 500 – 200 = 300
No Java:
/*Problema: Um cliente de um banco tem um saldo positivo de R$500,00.
Fazer um algoritmo que leia um cheque que entrou e calcule o saldo,
mostrando (escrevendo) o saldo na tela.
*/
import javax.swing.JOptionPane;
class cheque
{
public static void main(String args[])
{
float saldo_positivo, cheque, saldo_final;
saldo_positivo = 500;
cheque = Float.parseFloat(JOptionPane.showInputDialog("Digite o valor do cheque"));
saldo_final = saldo_positivo - cheque;
JOptionPane.showMessageDialog(null,"Saldo Inicial: R$"+saldo_positivo +".00" +
"\nValor do cheque descontado: R$"+cheque +".00" +
"\nSaldo Atual: R$"+saldo_final + ".00");
}
}
Problema: Uma empresa de venda de softwares paga a seu vendedor um fixo de R$800,00 por mês, mais uma comissão de 15% pelo seu valor de vendas no mês. Faça um algoritmo que leia o valor da venda e determine o salario total do funcionário. Mostre as informações que voçe achar necessárias.
Algoritmo softwares
Var fixo, comissão,vendas, salario_final de real;
Inicio
fixo ß 800;
vendas ß 1500;
comissão ß (15 x vendas) / 100;
salario_final ß fixo + comissão;
motrar “salario final “+ salario_final;
fim
Teste de mesa
fixo ß 800;
vendas ß 1500;
comissão ß (15 x 1500) / 100 = 120
salario_final ß 800 + 225 = 1025;
motrar “salario final “+ 1025;
No Java:
/*Problema: Uma empresa de venda de softwares paga a seu vendedor um fixo de R$800,00 por mês,
mais uma comissão de 15% pelo seu valor de vendas no mês.
Faça um algoritmo que leia o valor da venda e determine o salario total do funcionário.
Mostre as informações que voçe achar necessárias.
*/
import javax.swing.JOptionPane;
class softwares
{
public static void main(String args[])
{
float fixo = 800, vendas, comissao, salario_final;
vendas = Float.parseFloat(JOptionPane.showInputDialog("Digite o valor das vendas"));
comissao = (15 * vendas)/100;
salario_final= fixo + comissao;
JOptionPane.showMessageDialog(null,"Salario fixo: R$"+fixo +"0" +
"\nValor das vendas: R$ "+vendas +"0" +
"\nComissao: R$ "+comissao +"0" +
"\nSalario final: R$ "+salario_final +"0");
}
}
Problema: Uma empresa de desenvolvimento de softwares paga a seu vendedor um fixo de R$ 500.00 por mês. Mais um bônus de R$50.00 por sistema vendido. Faça um algoritmo que leia quantos softwares o funcionário vendeu e determine o salario total do funcionário. Mostre as informações que voçe achar necessário.
Algoritmo novo_softwares
Var fixo = 500, bônus = 50, vendas = 15, salario_final de real;
Inicio
fixo ß 500;
mostrar “Digite a quantidade de softwares vendidos”;
ler(vendas);
bônus
mostrar “Digite a quantidade de softwares vendidos”; ler(vendas);
bônus ß 50 x vendas;
salario_final
salario_final ß fixo + comissão;
motrar “salario final “+ salario_final;
fim
Teste de mesa
vendas = 15;
bônus = 50 x 15 = 750
salario_final ß 500 + 750 = 1250;
motrar “salario final”+ salario_final;
fixo = 500;
No Java:
/*Problema: Uma empresa de desenvolvimento de softwares paga a seu vendedor um fixo de R$ 500.00 por mês.
Mais um bônus de R$50.00 por sistema vendido.
Faça um algoritmo que leia quantos softwares o funcionário vendeu e determine o salario total do funcionário.
Mostre as informações que voçe achar necessário.
*/
import javax.swing.JOptionPane;
class novo_software
{
public static void main(String args[])
{
float fixo = 500, bonus = 50,vendas ,salario_final;
vendas = Float.parseFloat(JOptionPane.showInputDialog("Digite a quantidade de softwares vendidos"));
bonus = (50 * vendas);
salario_final = fixo + bonus;
JOptionPane.showMessageDialog(null,"Salario fixo: R$"+fixo +"0" +
"\nQuantidade de softwares vendidos: "+vendas +
"\nBonus: R$ "+bonus +"0" +
"\nSalario final: R$ "+salario_final +"0");
}
}
Problema: Crie um algoritmo para calcular o salario liquido de um funcionário, considerando que seu salario bruto, incide um desconto de 8,5 % de inss para a previdência. O algoritmo deve mostrar o nome do funcionário, o seu salario bruto, o valor de desconto de inss e o seu salario liquido.(dica: você deve pedir (ler) o nome do funcionário e o valor do seu salario bruto).
Algoritmo salario_inss
Var nome_funcionario, salario_bruto, desconto, salario_liquido de real;
Inicio
mostrar “Digite o nome do funcionário”;
ler(nome_funcionario);
mostrar “Digite seu salario”;
ler (salario_bruto);
desconto ß (9 x salario_bruto) / 100;
salario_liquido ß salario bruto – desconto
fim
Teste mesa
nome_funcionario = Gasper
salario_bruto = 2000
desconto = 170
salario_liquido = 1820
mostrar “Liquido a Receber” + salario_liquido;
No Java:
/* Problema: Crie um algoritmo para calcular o salario liquido de um funcionário,
considerando que seu salario bruto, incide um desconto de 9% de inss para a previdência.
O algoritmo deve mostrar o nome do funcionário, o seu salario bruto,
o valor de desconto de inss e o seu salario liquido.
(dica: você deve pedir (ler) o nome do funcionário e o valor do seu salario bruto).
*/
import javax.swing.JOptionPane;
class salario_inss
{
public static void main(String args[])
{
float salario_bruto, desconto, salario_liquido;
String nome = JOptionPane.showInputDialog("Digite o nome do funcionário");
salario_bruto = Float.parseFloat(JOptionPane.showInputDialog("Digite o salario"));
desconto = (9* salario_bruto)/100;
salario_liquido = salario_bruto - desconto;
JOptionPane.showMessageDialog(null,"Funcionario: "+nome +
"\nSalario Bruto: R$ "+salario_bruto +"0" +
"\nDescontos: R$ "+desconto +"0" +
"\nSalario final: R$ "+salario_liquido +"0");
}
}
Problema: Considerando que para um consórcio, sabe-se o numero total de prestações, a quantidade de prestações pagas e o valor atual da prestação, escreva um algoritmo que determine o total pago pelo consorciado e o saldo devedor.
Agoritmo consorcio
var total_prestações, prestações_pagas, valor_prestaçao, total_pago, saldo_devedor;
inicio
mostrar “Digite o numero total de prestações”;
ler(total_prestaçoes);
Mostrar “Digite o numero de prestações pagas”;
ler(prestações_pagas);
mostrar “Digite o Valor das prestações”;
ler(valor_prestaçoes);
total_pago ß valor_prestaçoes * prestações_pagas;
saldo_devedor ß (valor_prestaçao * total_prestaçoes) – total_pago;
fim
Teste mesa
total_prestações = 10
prestações_pagas = 5
valor_prestaçao = 150
total_pago = 750
saldo_devedor = 1500 – 750 = 750
mostrar = total pago = 750
saldo devedor = 750
No Java:
/*Problema: Considerando que para um consórcio, sabe-se o numero total de prestações,
a quantidade de prestações pagas e o valor atual da prestação, escreva um algoritmo que
determine o total pago pelo consorciado e o saldo devedor.
*/
import javax.swing.JOptionPane;
class consorcio
{
public static void main(String args[])
{
float total_prestacoes, prestacoes_pagas, valor_prestacao, total_pago, saldo_devedor;
valor_prestacao = Float.parseFloat(JOptionPane.showInputDialog("Digite o Valor das prestações!"));
total_prestacoes = Float.parseFloat(JOptionPane.showInputDialog("Digite o numero total de prestações!"));
prestacoes_pagas = Float.parseFloat(JOptionPane.showInputDialog("Digite o numero de prestações pagas!"));
total_pago = prestacoes_pagas * valor_prestacao;
saldo_devedor = (valor_prestacao * total_prestacoes) - total_pago;
JOptionPane.showMessageDialog(null,"Total pago pelo consorciado: R$ "+total_pago +"0" +
"\nSaldo Devedor: R$ "+saldo_devedor+"0");
}
}
Problema: Analizando a formula “prestação = valor +(valor * (taxa/100) * tempo)” crie um algoritmo para efetuar o calculo do valor de uma prestação em atraso.( você devera ler o valor da prestação, a taxa de juros imposta pelo banco, e o numero de dias em atraso).
Algoritmo prestacao_atraso
Var valor_prestacao, taxa_juros, dias_atraso, prestação
Inicio
mostrar“Digite o valor da prestação”;
ler(valor_prestacao);
mostrar “Digite o valor da taxa de juros”;
ler(taxa_juros);
mostrar “Digite o numero de dias de atraso”;
ler(dias_atraso);
prestação = valor +(valor * (taxa/100) * tempo)
mostrar “O valor atual da prestação é” +prestacao;
fim
Teste de mesa
valor_prestacao = 200
taxa_juros = 5 %
dias_atraso = 2
prestação = 200 +( 200 x ( 5 / 100) x 2;
mostrar “valor atual” 220
NO JAVA:
/*Problema: Analizando a formula "prestação = valor +(valor * (taxa/100) * tempo)"
crie um algoritmo para efetuar o calculo do valor de uma prestação em atraso.(você devera ler o valor
da prestação, a taxa de juros imposta pelo banco, e o numero de dias em atraso).
*/
import javax.swing.JOptionPane;
class prestacao_atraso
{
public static void main(String args[])
{
float valor_prestacao, taxa_juros, prestacao;
int dias_atraso;
valor_prestacao = Float.parseFloat(JOptionPane.showInputDialog("Digite o valor da prestação"));
taxa_juros = Float.parseFloat(JOptionPane.showInputDialog("Digite a taxa de juros"));
dias_atraso = Integer.parseInt(JOptionPane.showInputDialog("Dias de atraso"));
prestacao = valor_prestacao +(valor_prestacao * (taxa_juros / 100) * dias_atraso);
JOptionPane.showMessageDialog(null,"Valor da Prestaçao: R$ "+valor_prestacao +"0" +
"\nTaxa de juros diarios: "+taxa_juros +"%" +
"\nDias de atraso: "+dias_atraso +
"\nO valor atual da prestação é: R$ "+prestacao +"0");
}
}
Estruturas de seleção
· Permite a execução de ações dependendo de determinadas condições.
· Se
Faça
Exemplo:
Problema: leia 2 variaveis A e B, leia um valor para cada um deles e disponibilize estes valores em ordem crescente.
Algoritmo crecente_se
Var a , b de inteiro;
Inicio
mostrar “Digite o Valor da Variável A”;
ler(A);
mostrar “Digite o valor da variável B”;
ler(B);
se (a <= b)
mostrar “ Em ordem crescente” + a “,” + b;
senão
mostrar “ Em ordem crescente” + b “-” + a;
fim
Teste de mesa
A = 8
B = 9
Mostrar “ Em ordem crecente: “+a +“-” +b;
No Java:
/* Problema: leia 2 variaveis A e B, leia um valor para cada um deles e
disponibilize estes valores em ordem crescente.
*/
import javax.swing.JOptionPane;
class crecente_se
{
public static void main(String args[])
{
float a,b;
a = Float.parseFloat(JOptionPane.showInputDialog("Digite o valor de A"));
b = Float.parseFloat(JOptionPane.showInputDialog("Digite o valor de B"));
if(a <= b)
JOptionPane.showMessageDialog(null,"Em ordem crescente: A = "+a +" - B = "+b);
else
JOptionPane.showMessageDialog(null,"Em ordem crescente: B = "+b + " - A = "+a);
}
}
Problema: O sistema de avaliação de uma determinada disciplina, é composto por três provas. A primeira prova tem peso 2, a segunda tem peso 3 e a terceira tem peso 5. Faça um algoritmo para calcular a media final de um aluno desta disciplina. E se a media for maior ou igual a 6 mostrar APROVADO, senão mostrar REPROVADO.
Algoritmo avaliação_se
Var prov1, prov2, prov3, media de real;
inicio
mostrar “Digite a nota da primeira prova ”;
ler (prov1);
mostrar “Digite a nota da segunda prova ”;
ler (prov2);
mostrar “Digite a nota da terceira prova ”;
ler (prov3);
prov1 = (prov1 x 2 )/ 10 ;
prov2 = (prov2 X 3) / 10;
prov3 = (prov3 x 5) / 10;
media = (prov1 + prov2 + prov3) / 2;
se a media for maior ou igual a 6;
mostrar “APROVADO”;
senão
mostrar “REPROVADO”;
fim
Teste de mesa
prov1 ß (5 x 2) / 10= 1
prov2 ß (8 x 3) / 10= 2,4
prov3 ß (6 x 5) / 10= 3
media ß (1 + 2,4 + 3) = 6,4
mostrar a media é 6,4 APROVADO;
Obs: a nota X (vezes) o peso da prova /(dividido) 10 ßque é a soma do peso das 3 provas.
No java:
/* Problema: O sistema de avaliação de uma determinada disciplina,
é composto por três provas. A primeira prova tem peso 2,
a segunda tem peso 3 e a terceira tem peso 5. Faça um algoritmo para calcular
a media final de um aluno desta disciplina. E se a media for maior ou igual a 6 mostrar APROVADO, senão mostrar REPROVADO.
*/
import javax.swing.JOptionPane;
class avaliacao
{
public static void main(String args[])
{
float prov1, prov2, prov3, media;
prov1 = Float.parseFloat(JOptionPane.showInputDialog("Digite a nota da primeira prova"));
prov2 = Float.parseFloat(JOptionPane.showInputDialog("Digite a nota da segunda prova"));
prov3 = Float.parseFloat(JOptionPane.showInputDialog("Digite a nota da terceira prova"));
prov1 = (prov1 * 2)/ 10 ;
prov2 = (prov2 * 3) / 10;
prov3 = (prov3 * 5) / 10;
media = prov1 + prov2 + prov3;
if (media >= 6)
JOptionPane.showMessageDialog(null,"A media é: "+media +” – Aprovado”);
else
JOptionPane.showMessageDialog(null,"A media é: "+media +” – Reprovado”);
}
}
Operadores Relacionais
Ex:
Problema: O sistema de avaliação de determinada diciplina, é composto por três provas. A primeira prova tem peso 2, a segunda tem peso 3 e a terceira prova tem peso 5. Faça um algoritmo para calcular a media final de um aluno desta disciplina, se a media for igual a 7, mostrar APROVADO, senão, se a media for maior que 4 e menor que 7, mostrar RECUPERAÇAO, senão se for menor do que 4, mostrar REPROVADO.
Algoritmo avaliação_condicionais
Var prov1, prov2, prov3, media de real;
inicio
mostrar “Digite a nota da primeira prova ”;
ler (prov1);
mostrar “Digite a nota da segunda prova ”;
ler (prov2);
mostrar “Digite a nota da terceira prova ”;
ler (prov3);
prov1 = (prov1 x 2 )/ 10 ;
prov2 = (prov2 X 3) / 10;
prov3 = (prov3 x 5) / 10;
media = (prov1 + prov2 + prov3);
se a media for maior ou igual a 7,
mostrar “APROVADO”;
senão, se a media for maior que 4 e menor que 7,
mostrar “RECUPERAÇAO”;
senão se for menor do que 4,
mostrar “REPROVADO”;
fim
Teste de mesa
prov1 ß (8 x 2) / 10= 1,6
prov2 ß (8 x 3) / 10= 2,4
prov3 ß (6 x 5) / 10= 3
media ß (1,6 + 2,4 + 3) = 7
mostrar a media é 7 APROVADO;
Fluxograma
NO JAVA:
/* Problema: O sistema de avaliação de uma determinada disciplina,
é composto por três provas. A primeira prova tem peso 2,
a segunda tem peso 3 e a terceira tem peso 5. Faça um algoritmo para calcular
a media final de um aluno desta disciplina. se a media for maior ou igual a 7, mostrar APROVADO, senão, se a media for maior que 4 e menor que 7, mostrar RECUPERAÇAO, senão se for menor do que 4, mostrar REPROVADO.*/
import javax.swing.JOptionPane;
class avaliacao_condicionais
{
public static void main(String args[])
{
float prov1, prov2, prov3, media;
prov1 = Float.parseFloat(JOptionPane.showInputDialog("Digite a nota da primeira prova"));
prov2 = Float.parseFloat(JOptionPane.showInputDialog("Digite a nota da segunda prova"));
prov3 = Float.parseFloat(JOptionPane.showInputDialog("Digite a nota da terceira prova"));
prov1 = (prov1 * 2)/ 10 ;
prov2 = (prov2 * 3) / 10;
prov3 = (prov3 * 5) / 10;
media = prov1 + prov2 + prov3;
if (media >= 7)
JOptionPane.showMessageDialog(null,"A media é: "+media +” – Aprovado”);
else if ( media >= 4)
JOptionPane.showMessageDialog(null,"A media é: "+media +” – Recuperação”);
else
JOptionPane.showMessageDialog(null,"A media é: "+media +” – Reprovado”);
}
}
Novos Exercicios
Problema: Uma loja oferece para os seus determinados clientes, um determinado desconto de acordo com o valor da compra efetuada. O desconto é de 10%, se o valor da compra for até R$200.00 , 15% se for maior que R$200.00 e menor ou igual a R$500.00 e 20% se for maior que R$500.00. Crie um algoritmo que leia o nome do cliente e o valor da compra. Mostre ao final o nome do cliente, o valor da compra, o percentual de desconto e o seu valor total a pagar deste cliente.
Algoritmo desconto_se
Var valor_compra, percent_desconto, total_pagar de real;
desconto de inteiro;
nome de caracter;
inicio
mostrar “Digite o nome do cliente”;
ler(cliente);
mostrar “Digite o valor da compra”;
ler(valor_compra);
se (valor_compra <= 200)
percent_desconto ß 10%;
senão, se (valor_compra <= 500)
percent_desconto ß 15%;
senão
percent_desconto ß 20%;
faça: desconto ß (percent_desconto * valor_compra) / 100;
faça: total_pagar ß valor_compra – desconto;
mostrar (“Nome do cliente “+ nome +
“valor da compra “ +valor_compra +
“percentual de desconto” +percent_desconto +
“valor do desconto” +desconto +
“Total a pagar” + total_pagar);
fim
Teste Mesa
Cliente = Joel
valor_compra = 250
percent_desconto = 15
desconto = (250 * 15) / 100 =
total_pagar = 250 + 37,50 = 287,50
Fluxograma
NO JAVA
/* Problema: Uma loja oferece para os seus determinados clientes, um determinado desconto
de acordo com o valor da compra efetuada. O desconto é de 10%, se o valor da compra for até R$200.00,
15% se for maior que R$200.00 e menor ou igual a R$500.00 e 20% se for maior que R$500.00.
Crie um algoritmo que leia o nome do cliente e o valor da compra. Mostre ao final o nome do cliente,
o valor da compra, o percentual de desconto e o seu valor total a pagar deste cliente.
*/
import javax.swing.JOptionPane;
class desconto_se
{
public static void main(String args[])
{
float valor_compra, desconto, total_pagar;
String nome = JOptionPane.showInputDialog("Digite o nome do Cliente");
valor_compra = Float.parseFloat(JOptionPane.showInputDialog("Digite o valor da compra"));
if(valor_compra <= 200)
desconto = 10;
else if(valor_compra <= 500)
desconto = 15;
else
desconto = 20;
total_pagar = valor_compra - ((desconto * valor_compra)/100);
JOptionPane.showMessageDialog(null,"Nome do cliente: "+nome +
"\nvalor da compra: R$"+valor_compra +"0" +
"\nDesconto: "+desconto +"%" +
"\nTotal a pagar: R$"+total_pagar +"0");
}
}
Problema: Um cliente de um banco tem um saldo positivo de R$500,00. Fazer um algoritmo que leia um cheque que entrou e analize se o cheque poderá ser descontado ou não, já que este cliente não possui limite. Se o cheque não poderá ser descontado, mostre essa informação, caso contrario, desconte o cheque e informe o saldo na tela.
Agoritmo saldo_cheque
Var saldo_positivo, cheque, saldo_final de real;
inicio
mostrar “Digite o Saldo Inicial”
ler(saldo_positivo);
Mostrar “Digite o valor do cheque”;
ler(cheque);
se (cheque <= saldo_positivo)
saldo_final ß saldo_positivo – cheque;
mostrar “Saldo Anterior: R$“ +saldo_Positivo +”0” +
“Cheque descontado: R$” +cheque +”0” +
“Novo Saldo: R$” +saldo_final + “0”;
senão
Mostrar “Este cheque não pode ser descontado! +
“Seu saldo continua: R$”+saldo_positivo +”0”;
Teste Mesa
saldo_positivo = 500
cheque = 300
saldo_final = 200
mostrar “Saldo Anterior: R$500,00
“Cheque descontado: R$300,00
“Novo Saldo: R$200,00
Fluxograma
NO JAVA:
/* Problema: Um cliente de um banco tem um saldo positivo de R$500,00.
Fazer um algoritmo que leia um cheque que entrou e analize se o cheque poderá ser descontado ou não,
já que este cliente não possui limite. Se o cheque não poderá ser descontado, mostre essa informação,
caso contrario, desconte o cheque e informe o saldo na tela.
*/
import javax.swing.JOptionPane;
class saldo_cheque
{
public static void main(String args[])
{
float saldo_positivo, cheque, saldo_final;
saldo_positivo = Float.parseFloat(JOptionPane.showInputDialog("Digite o Saldo Atual!"));
cheque = Float.parseFloat(JOptionPane.showInputDialog("Digite o valor do cheque a ser descontado!"));
if(cheque <= saldo_positivo)
{
saldo_final = saldo_positivo - cheque;
JOptionPane.showMessageDialog(null,"Saldo Anterior: R$" +saldo_positivo +"0" +
"\nCheque descontado: R$" +cheque +"0" +
"\nNovo Saldo: R$" +saldo_final + "0");
}
else
JOptionPane.showMessageDialog(null,"Saldo insuficiente! Este cheque não pode ser descontado!" +
"\nSeu saldo continua: R$"+saldo_positivo +"0");
}
}
Problema: Fazer um algoritmo que analize 3 valores inteiros ( através das variáveis n1, n2, n3 ), e informe qual o maior e qual o menor deles.
Algoritmo maior_menor
Var n1, n2, n3 de inteiro;
Inicio
Mostrar “Digite o primeiro valor”;
ler(n1);
Mostrar “Digite o segundo valor”;
ler(n2);
Mostrar “Digite o terceiro valor”;
ler(n3);
Se ( n1 >= n2 ) e ( n1 >= n3)
inicio de se
Mostrar “maior n1”;
se(n2 <= n3)
mostrar “menor n2”;
senão
mostrar “menor n3”;
fim do se
senão se (n2 >= n1) e ( n2 >= n3)
inicio de se
mostrar “maior n2”;
se (n1 <= n3)
Mostrar “menor n1”;
senão
Mostrar “menor n3”;
fim de se
senao
mostrar o maior é o n3;
se (n1 <= n2)
Mostrar “menor n1”;
senão
Mostrar “menor n2”;
fim de se
Fim
Fluxograma
NO JAVA
/* Problema: Fazer um algoritmo que analize 3 valores inteiros ( através das variáveis n1, n2, n3 ),
e informe qual o maior e qual o menor deles.
*/
import javax.swing.JOptionPane;
class menor_maior
{
public static void main(String args[])
{
int n1, n2, n3;
n1 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor da primeira variável"));
n2 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor da segunda variável"));
n3 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor da terceira variável"));
if((n1 >= n2) && (n2 >= n3))
JOptionPane.showMessageDialog(null,"O maior n1: "+n1);
else if((n2 >= n1) && (n1 >= n3))
JOptionPane.showMessageDialog(null,"O maior é o n2: "+n2);
else
JOptionPane.showMessageDialog(null,"O maior n3: "+n3);
if((n1 <= n2) && (n2 <= n3))
JOptionPane.showMessageDialog(null,"O mmenor n1: "+n1);
else if((n2 <= n1) && (n1 <= n3))
JOptionPane.showMessageDialog(null,"O menor é o n2: "+n2);
else
JOptionPane.showMessageDialog(null,"O menor n3: "+n3);
}
}
NO JAVA 2
/* Problema: Fazer um algoritmo que analize 3 valores inteiros ( através das variáveis n1, n2, n3 ),
e informe qual o maior e qual o menor deles.
*/
import javax.swing.JOptionPane;
class maior_menor2
{
public static void main(String args[])
{
int n1, n2, n3;
n1 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor da primeira variável"));
n2 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor da segunda variável"));
n3 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor da terceira variável"));
if((n1 >= n2) && (n1 >= n3))
{
JOptionPane.showMessageDialog(null,"O maior n1: "+n1);
if(n2 <= n3)
JOptionPane.showMessageDialog(null,"O menor é o n2: "+n2);
else
JOptionPane.showMessageDialog(null,"O menor é o n3: "+n3);
}
else if ((n2 >= n1) && (n2 >= n3))
{
JOptionPane.showMessageDialog(null,"O maior é o n2: "+n2);
if(n1 <= n3)
JOptionPane.showMessageDialog(null,"O menor é o n1: "+n1);
else
JOptionPane.showMessageDialog(null,"menor é o n3: "+n3);
}
else
{
JOptionPane.showMessageDialog(null,"O maior n3: "+n3);
if(n2 <= n1)
JOptionPane.showMessageDialog(null,"O menor n2: "+n2);
else
JOptionPane.showMessageDialog(null,"O menor n1: "+n1);
}
}
}
Concatenar – Exibir todos os resultados em uma mensagem única.
Ex:
/* Problema: Fazer um algoritmo que analize 3 valores inteiros ( através das variáveis n1, n2, n3 ),
e informe qual o maior e qual o menor deles.
*/
import javax.swing.JOptionPane;
class maior_menor2
{
public static void main(String args[])
{
int n1, n2, n3;
String mensagem = "";
n1 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor da primeira variável"));
n2 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor da segunda variável"));
n3 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor da terceira variável"));
if((n1 >= n2) && (n1 >= n3))
{
mensagem = mensagem +"O maior n1: "+n1;
if(n2 <= n3)
mensagem = mensagem +"\nO menor é o n2: "+n2;
else
mensagem = mensagem +"\nO menor é o n3: "+n3;
}
else if ((n2 >= n1) && (n2 >= n3))
{
mensagem = mensagem +"O maior é o n2: "+n2;
if(n1 <= n3)
mensagem = mensagem +"\nO menor é o n1: "+n1;
else
mensagem = mensagem +"\nOmenor é o n3: "+n3;
}
else
{
mensagem = mensagem +"O maior n3: "+n3;
if(n2 <= n1)
mensagem = mensagem +"\nO menor n2: "+n2;
else
mensagem = mensagem +"\nO menor n1: "+n1;
}
JOptionPane.showMessageDialog(null,mensagem);
}
}
Concatenar – Exibir todos os resultados em uma mensagem única.
Ex:
/* Problema: Fazer um algoritmo que analize 3 valores inteiros ( através das variáveis n1, n2, n3 ),
e informe qual o maior e qual o menor deles.
*/
import javax.swing.JOptionPane;
class maior_menor2
{
public static void main(String args[])
{
int n1, n2, n3;
String mensagem = "";
n1 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor da primeira variável"));
n2 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor da segunda variável"));
n3 = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor da terceira variável"));
if((n1 >= n2) && (n1 >= n3))
{
mensagem = mensagem +"O maior n1: "+n1;
if(n2 <= n3)
mensagem = mensagem +"\nO menor é o n2: "+n2;
else
mensagem = mensagem +"\nO menor é o n3: "+n3;
}
else if ((n2 >= n1) && (n2 >= n3))
{
mensagem = mensagem +"O maior é o n2: "+n2;
if(n1 <= n3)
mensagem = mensagem +"\nO menor é o n1: "+n1;
else
mensagem = mensagem +"\nOmenor é o n3: "+n3;
}
else
{
mensagem = mensagem +"O maior n3: "+n3;
if(n2 <= n1)
mensagem = mensagem +"\nO menor n2: "+n2;
else
mensagem = mensagem +"\nO menor n1: "+n1;
}
JOptionPane.showMessageDialog(null,mensagem);
}
}
Mais sobre estrutura CE, IF, CASE, SWITCH e MOD
Problema: Crie um algoritmo que leia três valores LE, LD, LI e verifique se eles podem ser os comprimentos dos lados de um triangulo, e se forem, verificar se é um triangulo equilátero, isósceles ou escaleno. Se eles não formarem um triangulo, escrever a mensagem “Não é um triangulo”. Propriedade – O comprimento de cada lado de um triangulo é menor que a soma dos comprimentos dos outros dois lados, fora desta condição as medidas não são consideradas de um triagulo.
Definição 1: Chama-se triangulo equilátero os que tem os comprimentos dos três lados iguais.
Definição 2: Chama-se de triangulo isósceles ao triangulo que tem os comprimentos de dois lados iguais.
Definiçao 3: chama-se de triangulo escaleno ao triangulo que tem os comprimentos dos três lados diferentes.
Algoritmo triangulo
Var le, ld, li de inteiro
Inicio
Mostrar “Digite a medida do lado Esquerdo”;
ler(le);
Mostrar “Digite a medida do lado Direito”;
ler(ld);
Mostrar “Digite a medida do lado Inferior”;
ler(li);
Se (le < (ld + li) ou (le < (li + ld) ou (li < (ld + le)
inicio de se
Se (le = li) e (le = ld)
Mostrar “ Este é um Triangulo Equilatero”;
Senão se (li = ld) ou (li = le) ou (le = ld)
Mostrar “Este é um triangulo Isósceles”
senão(li <> ld) ou (li <> le) ou (le <> ld)
Mostrar “Este é um triangulo Escaleno”;
fim de se
senão
mostrar “este não é um triangulo”;
Fim
Teste Mesa
le = 7
ld = 7
li = 8
Mostrar “Este é um triangulo Escaleno”
Fluxograma
NO JAVA
/* Problema: Crie um algoritmo que leia três valores LE, LD, LI e verifique se eles podem ser os comprimentos dos lados de um triangulo, e se forem, verificar se é um triangulo equilátero, isósceles ou escaleno.
Se eles não formarem um triangulo, escrever a mensagem "Não é um triangulo".
Propriedade - O comprimento de cada lado de um triangulo é menor que a soma dos comprimentos dos outros dois lados, fora desta condição as medidas não são consideradas de um triagulo.
Definição 1: Chama-se triangulo equilátero os que tem os comprimentos dos três lados iguais.
Definição 2: Chama-se de triangulo isósceles ao triangulo que tem os comprimentos de dois lados iguais.
Definiçao 3: chama-se de triangulo escaleno ao triangulo que tem os comprimentos dos três lados diferentes.
*/
import javax.swing.JOptionPane;
class triangulo_se
{
public static void main(String args[])
{
int le, ld, li;
le = Integer.parseInt(JOptionPane.showInputDialog("Digite a medida do lado Esquerdo"));
ld = Integer.parseInt(JOptionPane.showInputDialog("Digite a medida do lado Direito"));
li = Integer.parseInt(JOptionPane.showInputDialog("Digite a medida do lado Inferior"));
if((le < (ld + li)) && (li <(le + ld)) && (ld <(li + le)))
{
if((le == li) && (le == ld))
JOptionPane.showMessageDialog(null,"Este é um Triangulo Equilatero");
else if((li == ld) || (li == le) || (le == ld))
JOptionPane.showMessageDialog(null,"Este é um triangulo Isósceles");
else
JOptionPane.showMessageDialog(null,"Este é um triangulo Escaleno");
}
else
JOptionPane.showMessageDialog(null,"Este não é um triangulo!");
}
}
Problema: Ler 3 valores inteiros para as variáveis A, B e C, e apresentalos em ordem crescente.
Algoritmo crescente
Var A, B, C de inteiro;
Inicio
Mostrar “Digite o valor de A”;
ler(A);
Mostrar “Digite o valor de B”;
ler(B);
Mostrar “Digite o valor de C”;
ler(C);
Se (a <= b) e (b <= c)
se (b <= c)
mostrar A, B, C
Senão
mostrar A, C, B
Senao se (b <= a) e (b <= c)
se (a <= c)
mostrar B, A, C
Senao mostrar B, C, A
Senão
se(A <= B)
mostrar C, A, B
Senão
mostrar C, B, A
Teste de mesa
A = 3
B = 5
C = 1
mostrar = C , A, B
Fluxograma
Mais exemplos
//Problema: Ler 3 valores inteiros para as variáveis A, B e C, e apresentalos em ordem crescente.
import javax.swing.JOptionPane;
class abc
{
public static void main(String args[])
{
int a, b, c;
a = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor de A!"));
b = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor de B!"));
c = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor de C!"));
if((a <= b) && (a <= c))
{
if(b <= c)
JOptionPane.showMessageDialog(null,+a + "- " +b + "- " +c);
else
JOptionPane.showMessageDialog(null,+a + "- " +c + "- " +b);
}
else if((b <= a) && (b <= c))
{
if(b <= a)
JOptionPane.showMessageDialog(null,+b + "- " +a + "- " +c);
else
JOptionPane.showMessageDialog(null,+b + "- " +c + "- " +a);
}
else
{
if(a <= b)
JOptionPane.showMessageDialog(null,+c + "- " +a + "- " +b);
else
JOptionPane.showMessageDialog(null,+c + "- " +b + "- " +a);
}
}
}
Problema: Ler para uma variável inteira, um numero de 1 a 12 e mostrar o mês correspondente.
Algoritmo mês
Var numero;
Inicio
mostrar “digite um mês de 1 a 12”;
ler(numero);
se (numero = 1) mostrar “Janeiro”;
senão se (numero = 2) mostrar “Fevereiro”;
senão se (numero = 3) mostrar “Março”;
senão se (numero = 4) mostrar “Abril”;
senão se(numero = 5) mostrar “Maio”;
senão se (numero = 6) mostrar “Junho”;
senão se (numero = 7) mostrar “Julho”;
senão se (numero = 8) mostrar “Agosto”;
senão se (numero = 9) mostrar “Setembro”;
senão se (numero = 10) mostrar “Outubro”;
senão se (numero = 11) mostrar “Novembro”;
senão se (numero = 12) mostrar “Desembro”;
senão mostrar “Este mês não existe”
Fim
NO JAVA
// Problema: Ler para uma variável inteira, um numero de 1 a 12 e mostrar o mês correspondente.
import javax.swing.JOptionPane;
class mes
{
public static void main(String args[])
{
int numero;
numero = Integer.parseInt(JOptionPane.showInputDialog("digite um mes de 1 a 12"));
if(numero == 1) JOptionPane.showMessageDialog(null,"Janeiro!");
else if(numero == 2) JOptionPane.showMessageDialog(null,"Fevereiro!");
else if(numero == 3) JOptionPane.showMessageDialog(null,"Março!");
else if(numero == 4) JOptionPane.showMessageDialog(null,"Abril!");
else if(numero == 5) JOptionPane.showMessageDialog(null,"Maio!");
else if(numero == 6) JOptionPane.showMessageDialog(null,"Junho!");
else if(numero == 7) JOptionPane.showMessageDialog(null,"Julho!");
else if(numero == 8) JOptionPane.showMessageDialog(null,"Agosto!");
else if(numero == 9) JOptionPane.showMessageDialog(null,"Setembro!");
else if(numero == 10) JOptionPane.showMessageDialog(null,"Outubro!");
else if(numero == 11) JOptionPane.showMessageDialog(null,"Novembro!");
else if(numero == 12) JOptionPane.showMessageDialog(null,"Desembro!");
else JOptionPane.showMessageDialog(null,"Este mes nao existe!");
}
}
Comando CASE
Problema: Ler para uma variável inteira, um numero de 1 a 12 e mostrar o mês correspondente.
Algoritmo mês
Var numero;
Inicio
mostrar “digite um mês de 1 a 12”;
ler(numero);
caso numero seja
1 = mostrar “Janeiro”;
2 = mostrar “Fevereiro”;
3 = mostrar “Março”;
4 = mostrar “Abril”;
5 = mostrar “Maio”;
6 = mostrar “Junho”;
7 = mostrar “Julho”;
8 = mostrar “Agosto”;
9 = mostrar “Setembro”;
10 = mostrar “Outubro”;
11 = mostrar “Novembro”;
12 = mostrar “Desembro”;
senão mostrar “Este mês não existe”
Fim
NO JAVA
// Problema: Ler para uma variável inteira, um numero de 1 a 12 e mostrar o mês correspondente.
import javax.swing.JOptionPane;
class mes_case
{
public static void main(String args[])
{
int numero;
numero = Integer.parseInt(JOptionPane.showInputDialog("digite um mes de 1 a 12"));
switch(numero)
{
case 1: JOptionPane.showMessageDialog(null,"Janeiro!");break;
case 2: JOptionPane.showMessageDialog(null,"Fevereiro!");break;
case 3: JOptionPane.showMessageDialog(null,"Março!");break;
case 4: JOptionPane.showMessageDialog(null,"Abril!");break;
case 5: JOptionPane.showMessageDialog(null,"Maio!");break;
case 6: JOptionPane.showMessageDialog(null,"Junho!");break;
case 7:JOptionPane.showMessageDialog(null,"Julho!");break;
case 8: JOptionPane.showMessageDialog(null,"Agosto!");break;
case 9: JOptionPane.showMessageDialog(null,"Setembro!");break;
case 10: JOptionPane.showMessageDialog(null,"Outubro!");break;
case 11: JOptionPane.showMessageDialog(null,"Novembro!");break;
case 12: JOptionPane.showMessageDialog(null,"Desembro!");break;
default:JOptionPane.showMessageDialog(null,"Este mes nao existe!");break;
}
}
}
EXPRESSAO ARITMÉTICA MODE
MODE à QUER DIZER, RESTO DA DIVISAO.
Problema: Ler uma variável de numero inteiro e mostre se ele é par ou Impar.
Algoritmo par_impar
Var numero;
inicio
MOSTRAR “Digite um numero!”
ler(numero);
mod (numero mod 2 = 0) à SE O RESTO DA DIVISAO DE UM NUMERO POR 2 FOR IGUAL A ZERO
mostrar “Este numero é PAR!”;
senão
mostrar “Este numero é IMPAR!”;
fim
//Problema: Ler uma variável de numero inteiro e mostre se ele é par ou Impar.
import javax.swing.JOptionPane;
class par_impar
{
public static void main(String args[])
{
int numero;
numero = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero!"));
if(numero % 2 == 0) MODE
JOptionPane.showMessageDialog(null,"O numero: "+numero +"\n É PAR!");
else
JOptionPane.showMessageDialog(null,"O numero: "+numero +"\n É IMPAR!");
}
}
Problema: Ler uma variável de um numero inteiro e mostrar a taboada dele.
Algoritmo taboada1
var num;
inicio
mostrar “Digite um numero!”;
ler (num);
mostrar:
numero + ”X 1 = “+(numero * 1);
numero + ”X 2 = “+(numero * 2);
numero + ”X 3 = “+(numero * 3);
numero + ”X 4 = “+(numero * 4);
numero + ”X 5 = “+(numero * 5);
numero + ”X 6 = “+(numero * 6);
numero + ”X 7 = “+(numero * 7);
numero + ”X 8 = “+(numero * 8);
numero + ”X 9 = “+(numero * 9);
numero + ”X 10 = “+(numero * 10);
fim
MODO BRUTO
//Problema: Ler uma variável de um numero inteiro e mostrar a taboada dele.
import javax.swing.JOptionPane;
class taboada_nova
{
public static void main(String args[])
{
int num;
num = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero!"));
JOptionPane.showMessageDialog(null,num +" x 1 = " +(num * 1));
JOptionPane.showMessageDialog(null,num +" x 2 = " +(num * 2));
JOptionPane.showMessageDialog(null,num +" x 3 = " +(num * 3));
JOptionPane.showMessageDialog(null,num +" x 4 = " +(num * 4));
JOptionPane.showMessageDialog(null,num +" x 5 = " +(num * 5));
JOptionPane.showMessageDialog(null,num +" x 6 = " +(num * 6));
JOptionPane.showMessageDialog(null,num +" x 7 = " +(num * 7));
JOptionPane.showMessageDialog(null,num +" x 8 = " +(num * 8));
JOptionPane.showMessageDialog(null,num +" x 9 = " +(num * 9));
JOptionPane.showMessageDialog(null,num +" x 10 = " +(num * 10));
}
}
Usando ( “\n” para concaternar )
//Problema: Ler uma variável de um numero inteiro e mostrar a taboada dele.
import javax.swing.JOptionPane;
class taboada_laco
{
public static void main(String args[])
{
int num, i = 0;
String message ="";
num = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero!"));
JOptionPane.showMessageDialog(null,num +" x 1 = " +(num * 1)+
"\n"+num +" x 2 = " +(num * 2) +
"\n"+num +" x 3 = " +(num * 3)+
"\n"+num +" x 4 = " +(num * 4)+
"\n"+num +" x 5 = " +(num * 5)+
"\n"+num +" x 6 = " +(num * 6)+
"\n"+num +" x 7 = " +(num * 7)+
"\n"+num +" x 8 = " +(num * 8)+
"\n"+num +" x 9 = " +(num * 9)+
"\n"+num +" x 10 = " +(num * 10));
}
}
Laços de repetiçao
For – usado geralmente quando se sabe o numero de vezes que o comando devera ser execultado.
Extrutura
Para variável de v_ inicio até v_fim, faça:
Inicio
comandos
fim_para
Ex:
Problema: Ler uma variável de um numero inteiro e mostrar a taboada dele.
Algoritmo taboada_for
var num,i;
inicio
mostrar “Digite um numero!”;
ler (num);
For (i <= 9)
inicio_para
numero + ”X “ +i + “= “+(numero * i);
fim_para
fim
Teste mesa
num = 7
i = 1 ß 2 ß 3 ß...
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
...
NO GEL - JAVA
//Problema: Ler uma variável de um numero inteiro e mostrar a taboada dele.
import javax.swing.JOptionPane;
class taboada_for
{
public static void main(String args[])
{
int num,i = 1;
String message= "";
num = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero!"));
for(i = 1; i <= 9; i = i + 1)
message = message +"\n"+num +" x "+i +" = " +(num * i);
JOptionPane.showMessageDialog(null,message);
}
}
Laço de repetição Enquanto (while)
Usado geralmente quando não se sabe o numero de vezes que o comando sera execultado.
Extrutura:
while(condição) à enquanto
{
comandos ....
}
Ex:
Ler uma variável de numero inteiro e mostrar a tabuada desse numero. Usando laço de repetição enquanto.
Algoritimo tabuada_enquanto;
var num, i de inteiro;
inicio
mostre “digite um numero para a tabuada”;
ler(numero);
i ß 1;
enquanto (i <= 9)
inicio_enquanto
mostre num + “ x “ + i + “ = “ + (num * i);
i++; // igual a i = i + 1;
fim_enquanto
fim
NO GEL - JAVA
//Problema: Ler uma variável de um numero inteiro e mostrar a taboada dele.
import javax.swing.JOptionPane;
class tabuada_enquanto
{
public static void main(String args[])
{
int num,i = 1;
String message= "";
num = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero!"));
while(i <= 9)
{
message = message +"\n"+num +" x "+i +" = " +(num * i); i++;
}
JOptionPane.showMessageDialog(null,message);
}
}
Laço de repetição Repita
Obs.: executa sempre no mínimo uma vez
repita
inicio
comandos ....
fim
Até que (condicao);
Obs: quase não se utiliza o laço repita.
Ex:
Ler uma variável de numero inteiro e mostrar a tabuada desse numero. Usando laço de repetição repita.
Algoritimo tabuada_repita;
var num, i de inteiro;
inicio
mostre “digite um numero para a tabuada”;
ler(numero);
i ß 1;
repita
inicio_repita
mostre num + “ x “ + i + “ = “ + (num * i);
i++; // igual a i = i + 1;
fim_repita
até que (i > 9) obs: até que o retorno desta contiçao for falsa.
fim
NO GEL
//Problema: Ler uma variável de um numero inteiro e mostrar a taboada dele.
import javax.swing.JOptionPane;
class tabuada_repita
{
public static void main(String args[])
{
int num,i = 1;
String message= "";
num = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero!"));
do
{
message = message +"\n"+num +" x "+i +" = " +(num * i); i++;
}
while(i <= 9);
JOptionPane.showMessageDialog(null,message);
}
}
Exercicios laços de repetição
Problema: faça um algoritmo que gere a seguinte serie: 10, 20, 30, até 1000.
Algoritmo serie;
inicio
enquanto i for menor ou igual a 1000 passo 10 faça;
Mostre i;
fim
Teste de mesa
I = 10, 20...
mostre 10, 20, 30...
Enquanto (while)
//Problema: faça um algoritmo que gere a seguinte serie: 10, 20, 30, até 1000.
import javax.swing.JOptionPane;
class serie
{
public static void main(String args[])
{
int i = 10;
String message="";
while(i <= 1000)
{
message = message +i + " - ";
i= i + 10;
if((i == 100) || (i == 200) || (i == 300) || (i == 400) || (i == 500))
message = message + "\n";
}
JOptionPane.showMessageDialog(null,message);
}
}
Para (For)
Problema: faça um algoritmo que gere a seguinte serie: 10, 20, 30, até 1000.
Algoritmo serie;
inicio
para i de 10 ate 1000 passo 10 faça;
Mostre i;
fim
Teste de mesa
I = 10,
10, 20, 30...
//Problema: faça um algoritmo que gere a seguinte serie: 10, 20, 30, até 1000.
import javax.swing.JOptionPane;
class serie_para
{
public static void main(String args[])
{
int i;
String message="";
for(i=10;i <= 1000;i= i+10)
{
message = message +i + " - ";
if((i == 100) ||(i == 200 )|| (i == 300 )||(i == 400))
message= message+ "\n";
}
JOptionPane.showMessageDialog(null,message);
}
}
Problema: Ler a nota de 10 alunos, calcular a media e mostrar esta media. Aceitar somente notas de 0 a 10.
algoritmo media_para;
Var nota, i de inteiro, soma_notas;
Inicio
soma_nota ß 0;
para i de 1 a 10 faça:
inicio_para
mostrar “Digite a “+i+”° de 10 notas!”
ler(notas);
Se(( nota >= 0) e (nota <= 10)) entao
soma_notas ß soma_notas + notas;
senão
inicio_se
mostrar “Nota Invalida, digite apenas notas de 0 a 10!”;
i = i -1;
fim_se
fim_para
calc_media = soma_notas % 10;
mostrar “A media é “+calc_media;
fim
Teste de mesa
nota = 7 – 2 – 5 - 6
Soma_notas = 0 + 7 + 2 + 5 + 6
i = 1 à 2 à 3 ... 10
calc_media = 20 % 10 = 2
NO JAVA
//Problema: Ler a nota de 10 alunos, calcular a media e mostrar esta media.
import javax.swing.JOptionPane;
class media_para
{
public static void main(String args[])
{
float nota,soma_notas = 0, calc_media = 0;
int i;
for(i = 1;i <= 10; i = i+1)
{
nota = Integer.parseInt(JOptionPane.showInputDialog("Digite a "+i+"° de 10 notas!"));
if((nota >= 0) && (nota <= 10))
soma_notas = soma_notas + nota;
else
{
JOptionPane.showMessageDialog(null,"Nota invalida! " +
"\n"+"A nota tem que ser entre 0 e 10!");
i = i-1;
}
calc_media = soma_notas / 10;
}
JOptionPane.showMessageDialog(null,"A media é: "+calc_media);
}
}
Problema: Mostre os 10 primeiro números pares.
Algoritmo: primeiros_pares
Var cont_pares, num de inteiro;
Inicio
cont_pares ß 0;
num ß 1;
enquanto (cont_pares < 10) faça;
inicio_enquanto
se( num mod % 2 = 0)
inicio_se
mostre “O numero:” +num + “ é par”;
cont_pares ß cont_pares +1;
fim_se
num ß num +1;
fim_enquanto
fim
Teste mesa
num = 1,2,3...
cont_pares = 1
o numero: 2 é par.
NO JAVA
//Problema: Mostre os 10 primeiro números pares.
import javax.swing.JOptionPane;
class cont_pares
{
public static void main(String args[])
{
float cont_pares = 0,i = 1;
String message ="";
while(cont_pares < 10)
{
if(i % 2 == 0)
{
message = message +"O número : "+i + " é par" +"\n";
cont_pares = cont_pares +1;
}
i = i +1;
}
JOptionPane.showMessageDialog(null,message);
}
}
Problema: ler dois números ( inicial e final, sendo que o final não pode ser menor que o inicial), escreva quantos números pares e quantos números impares existem entre estes dois números fornecidos pelo usuário.
Algoritmo par_impar
var num_inicial, num_final, cont_pares = 0, cont_impares = 0, num_a, num_b;
Inicio
mostrar “digite o primeiro numero!”;
ler(num_inicial);
mostrar “digite o segundo numero!”;
ler(num_final);
enquanto( num_inicial <= num_final)
inicio_enquanto
se(num_inicial mod 2 = 0)
Mostrar “ o numero” +num_a + “é par!”;
cont_pares = cont_pares + 1;
i = i +1;
senão
Mostrar “ o numero” +num_a + “é impar!”;
cont_impares = cont_impares +1;
i = i +1;
fim enquanto
"Entre o numero inicial: " +num_a +" e final : "+num_b +" existem: "+
"\n" +cont_pares +"numeros pares!" +
"\n" +cont_impares +"numeros impares!" +
"\n"+ message);
fim
Teste de mesa
Num_a = 5
num_b = 10
cont_pares = 0, 1, 2,
cont_impares = 0, 1, 2,
i = 5, 6, 7, 8, 9, 10
Entre o numero 5 eo numero 10 existem 3 numeros impares e 3 numeros pares.
NO JAVA
/*Problema: ler dois números ( inicial e final, sendo que o final não pode ser
menor que o inicial), escreva quantos números pares e quantos números impares
existem entre estes dois números fornecidos pelo usuário.
*/
import javax.swing.JOptionPane;
class par_impar
{
public static void main(String args[])
{
float cont_pares = 0, cont_impares = 0, num_a, num_b,i;
String message="";
num_a = Float.parseFloat(JOptionPane.showInputDialog("Digite o primeiro valor!"));
i = num_a;
num_b = Float.parseFloat(JOptionPane.showInputDialog("Digite o segundo valor!"));
while(i <= num_b)
{
if(i % 2 == 0)
{
message = message +"\nO numero: "+i + " é par!";
cont_pares ++;
}
else
{
message = message +"\nO numero: "+i + " é impar!";
cont_impares ++;
}
i = i +1;
}
JOptionPane.showMessageDialog(null,"Entre o numero inicial: " +num_a +" e final : "+num_b +" existem: "+
"\n" +cont_pares +"numeros pares!" +
"\n" +cont_impares +"numeros impares!" +
"\n"+ message);
}
}
Problema: crie um algoritmo que leia um numero inteiro e diga se ele é primo ou não.
Algoritmo primo
Var numero, contador ß 0, i de inteiro;
i ß 2;
inicio
mostrar “Digite um numero!”;
ler(numero);
enquanto( i < (numero / 2))
inicio_enquanto
Se(numero mod 2 == 0)
contador = contador + 1;
I ß i +1;
fim_enquanto
se contador > 0
Mostrar “O numero: “+numero + “não é primo!”;
Senão
Mostrar “O numero: “+numero + “é primo!”;
Fim
Teste mesa
contador = 0
I = 2, 3, 4, 5
Numero = 5
O numero 5 é primo
NO JAVA
//Problema: crie um algoritmo que leia um numero inteiro e diga se ele é primo ou não.
import javax.swing.JOptionPane;
class numero_primo
{
public static void main(String args[])
{
int numero,contador, i;
contador = 0;
i = 2;
numero = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero!"));
while(i < numero)
{
if(numero % i == 0)
contador = contador + 1;
i= i + 1;
}
if(contador > 0)
JOptionPane.showMessageDialog(null,"O numero: "+ numero + " não é primo!");
else
JOptionPane.showMessageDialog(null,"O numero: "+ numero + " é primo!");
}
}
Problema: crie um algoritmo que leia um numero inteiro e diga se ele é primo ou não.
Algoritmo primo_logico
Var numero, i de inteiro;
num_primo de logico; à // boolean – verdadeiro ou falso;
i ß 2;
inicio
mostrar “Digite um numero!”;
ler(numero);
enquanto(i < (numero / 2)) faça
obs: numero / 2 = facilita no processamento, um numero não pode ser divisível por um numero maior que a metade dele.
inicio_enquanto
Se(numero mod 2 == 0)
num_primo ß falso
I ß i +1;
fim_enquanto
se num_primo = falso entao
Mostrar “O numero: “+numero + “não é primo!”;
Senão
Mostrar “O numero: “+numero + “é primo!”;
Fim
Teste mesa
contador = 0
I = 2, 3, 4, 5
Numero = 5
O numero 5 é primo
NO JAVA
OBS: Boolean - aceita somente 2 valores ex: verdadeiro ou falso.
aberto ou fechado, etc...
//Problema: crie um algoritmo que leia um numero inteiro e diga se ele é primo ou não.
import javax.swing.JOptionPane;
class primo_logico
{
public static void main(String args[])
{
int numero, i;
boolean contador = true; // por padrao todo numero primo é verdadeiro ( TRUE )
i = 2;
numero = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero!"));
while((i < (numero / 2) && (contador))
{
if(numero % i == 0)
contador = false;
i= i + 1;
}
if(contador) à se contador for igual a 0, ( por padrão todo numero é primo );
JOptionPane.showMessageDialog(null,"O numero: "+ numero + " é primo!");
Else à // se contador não for maior que 0, a saída sera False entao
JOptionPane.showMessageDialog(null,"O numero: "+ numero + " nao é primo!");
}
}
Problema: Crie um algoritmo que mostre os 10 primeiros números primos.
Algoritmo dez_primos
Var numero = 1, i de inteiro, contador = 0;
primos de logico;
Inicio
enquanto(contador < 10) faça
inicio primeiro enquanto
Numero ß numero + 1;
primos ß true
i ß 2;
enquanto( ( i <= ( numero / 2 )) e ( primo_logico = true)) faça;
inicio_segundo enquanto
se( numero mod i = 0) então
inicio de se
primos ß falso
fim de se
i ß i +1;
fim segundo enquanto
se(primos de logico ß verdadeiro)
inicio de se
contador = contador + 1:
mostre "Os 10 primeiros numeros primos são: " +contador + "° :" +numero
fim_enquanto
mostrar “ primos”;
fim
//Problema: Crie um algoritmo que mostre os 10 primeiros números primos.
import javax.swing.JOptionPane;
class dez_primos
{
public static void main(String args[])
{
int numero = 1, i ,contador = 0;
boolean primos;
String message="";
while(contador < 10)
{
numero = numero + 1;
primos = true;
i = 2;
while((i <= ( numero / 2 )) && ( primos == true))
{
if( numero % i == 0)
primos = false;
i++;
}
if(primos == true)
{
contador = contador + 1;
message = message +" O numero " +numero +" e o "+contador +". numero primo\n";
}
}
JOptionPane.showMessageDialog(null,message);
}
}









