Elabore um programa em Java onde o usuário escolha que tipo de operação fazer dentre das seguintes opções.
a. Número pertence a seqüencia de fibonacci: dado um número (N) calcular se o número pertence a seqüência de fibonacci, retornando true ou false.
a. Número pertence a seqüencia de fibonacci: dado um número (N) calcular se o número pertence a seqüência de fibonacci, retornando true ou false.
b. Calcular raízes de uma função de segundo grau: Criar uma função que recebe por parâmetro os valores necessário para o cálculo da fórmula de báskara e retorna, também por parâmetro, as suas raízes, caso seja possível calcular. Os valores devem ser colocados em variáveis globais
c. Mês por Extenso: Criar uma função que, recebe como parâmetro um mês (número inteiro de 1 a 12), retorne o nome do mês por extenso.
d. Menor número: função que compara dois números e retorna o maior.
d. Menor número: função que compara dois números e retorna o maior.
Código Java
//Autor: Thiago Campos
//Data: 16.06.2012
//Trabalho de Laboratório de Algoritmo
import
java.util.Scanner;
/**
*
* @author Thiago
*/
public class TrabFuncao {
//declaração
das variaveis globais
static double x1 = 0.0;
static double x2 = 0.0;
public static void main(String args[]) {
//declaração
das variaveis locais
Scanner leia =
new Scanner(System.in);
int op = 0;
long buscaTermo;
int qtdTermo;
double a;
double b;
double c;
int mes;
int n1, n2;
while (op != 5) {
System.out.print("\nMenu
Opções:"
+
"\n1 - Buscar um termo na sequencia Fibonacci"
+ "\n2 - Encontrar o Conjunto Soluções de uma Equação do Segundo
Grau."
+ "\n3 - Escrever o mês por extenso."
+ "\n4 - Encontrar o menor numero."
+ "\n5 - Sair.\n");
System.out.print("->");
op = leia.nextInt();
switch (op) {
case 1:
//Informa
o tamanho da sequencia. Funciona bem até o termo 93
System.out.print("Informe a quantidade de termos da sequencia Fibonacci:");
qtdTermo = leia.nextInt();
//Informao termo a ser buscado
System.out.print("Informe o termos a ser buscado:");
buscaTermo = leia.nextInt();
Fibonacci(buscaTermo, qtdTermo); //Função Fibonacci
break;
case
2:
System.out.print("Informe o valor de \"a\" da equação do
segundo grau:");
a
= leia.nextInt();
System.out.print("Informe o valor de \"b\" da equação do
segundo grau:");
b
= leia.nextInt();
System.out.print("Informe o valor de \"c\" da equação do
segundo grau:");
c
= leia.nextInt();
/**
* //testa as variaveis globais antes da chamada do metodo
*
System.out.println("antes x1 -> "+x1);
* System.out.println("antes x2 ->
"+x2);
*/
Equacao(a, b, c);
/**
* //testa as variaveis globais depois da chamada do metodo
* System.out.println("\ndepois
x1 -> "+x1);
*
System.out.println("depois x2 -> "+x2);
*/
break;
case 3:
System.out.print("Informe o numero referente ao mês desejado:");
mes = leia.nextInt();
System.out.println("RESPOSTA: -> " + MesExtenso(mes));
break;
case
4:
System.out.print("Informe os dois numeros a serem comparados:\n->");
n1 = leia.nextInt();
System.out.print("->");
n2 = leia.nextInt();
//Verifica se os valores são iguais antes de
entrar na função
if
(n1 == n2) {
System.out.println("RESPOSTA:
-> O numeros são iguais!");
}
else {
System.out.println("RESPOSTA: -> O maior numero dos dois é: "
+ Maior(n1, n2));
}
break;
case 5:
System.out.println("Saindo
do programa");
break;
default:
System.out.println("Opção Inválida, tente denovo!");
} //fim
da switch
} //fim
do while
}
// fim
do main
//------------------------------------------------------------------------------
/**
* NÚMERO
PERTENCE A SEQÜENCIA DE FIBONACCI: DADO UM NÚMERO (N) CALCULAR SE
* O NÚMERO
PERTENCE A SEQÜÊNCIA DE FIBONACCI, RETORNANDO TRUE OU FALSE.
*/
//------------------------------------------------------------------------------
public static void Fibonacci(long busca,
int tamanho) {
//declaração
das variaveis locais
long fib1 = 0;
long fib2 = 1;
//variavel inicializada
String achou =
"RESPOSTA: -> O termo não pertence a sequencia
Fibonacci.";
//processamento da sequencia
for (int i =
1; i <= tamanho; i++) {
long temp = fib1;
fib1 = fib1 + fib2;
fib2 = temp;
//busca e guarda o termo e a posição
if (busca
== fib2) {
achou
= "RESPOSTA: -> O termo " + fib2 + " foi
encontrado na posicao " + i;
}
//
imprime a sequencia Fibonacci
//
System.out.println(i + ": " + fib2);
}
//
imprime achou
System.out.println(achou);
} // fim
da classe Fibonacci
//------------------------------------------------------------------------------
/**
* CALCULAR
RAÍZES DE UMA FUNÇÃO DE SEGUNDO GRAU: CRIAR UMA FUNÇÃO QUE
* RECEBE
POR PARÂMETRO OS VALORES NECESSÁRIO PARA O CÁLCULO DA FÓRMULA DE
* BÁSKARA E
RETORNA, TAMBÉM POR PARÂMETRO, AS SUAS RAÍZES, CASO SEJA
* POSSÍVEL
CALCULAR.OS VALORES DEVEM SER COLOCADOS EM VARIÁVEIS GLOBAIS
*/
//------------------------------------------------------------------------------
public static
void Equacao(double num1, double num2, double num3) {
//declara a
variavel local
double delta;
//
processamento
delta =
Math.pow(num2, 2) - 4 * num1 * num3;
if (delta <
0) { //Para o delta menor Negativo
x1 = -num2
/ 2 * num1;
x2 = -num2
/ 2 * num1;
} else { //Para
o delta menor Positivo
x1 =
(-num2 + Math.sqrt(delta)) / (2 * num1);
x2 =
(-num2 - Math.sqrt(delta)) / (2 * num1);
}
//Conjunto solução
System.out.printf("\nRESPOSTA:
-> O Conjunto solução é (%.2f, %.2f)\n", x1, x2);
} //fim da
Classe Equacao
//------------------------------------------------------------------------------
/**
* MÊS POR
EXTENSO: CRIAR UMA FUNÇÃO QUE, RECEBE COMO PARÂMETRO UM MÊS
* (NÚMERO
INTEIRO DE 1 A 12), RETORNE O NOME DO MÊS POR EXTENSO.
*/
//------------------------------------------------------------------------------
public static String MesExtenso(int mes) {
String mesExt = "";
switch (mes) {
case 1:
mesExt = "Janeiro";
return
mesExt;
case 2:
mesExt
= "Fevereiro";
return mesExt;
case 3:
mesExt = "Março";
return mesExt;
case 4:
mesExt = "Abril";
return mesExt;
case 5:
mesExt = "Maio";
return mesExt;
case 6:
mesExt = "Junho";
return mesExt;
case 7:
mesExt = "Julho";
return mesExt;
case 8:
mesExt = "Agosto";
return mesExt;
case 9:
mesExt = "Setembro";
return mesExt;
case 10:
mesExt = "Outubro";
return
mesExt;
case 11:
mesExt
= "Novembro";
return
mesExt;
case 12:
mesExt
= "Dezembro";
return
mesExt;
default:
System.out.println("RESPOSTA: -> Não existe esse mês!");
return
mesExt;
} //fim
do swiitch
//Tem que existir um return para cada
possibilidade de resposta
} //fim
da classe MesExt
//------------------------------------------------------------------------------
/**
* MENOR
NÚMERO: FUNÇÃO QUE COMPARA DOIS NÚMEROS E RETORNA O MAIOR.
*/
//------------------------------------------------------------------------------
public static int Maior(int a, int b) {
if (a > b) {
return a;
} else {
return b;
} // fim do else
} //fim
da classe Maior
} // fim da classe TrabFuncao
Nenhum comentário:
Postar um comentário