Exercicis de Mètodes Estàtics en Java: Solucions Resoltes
Exercicis de Mètodes Estàtics: Respostes
1. Funció per calcular f(x,y) = 2x + 3y²
Programa que utilitza una funció per calcular f(x,y) = 2x + 3y² en un domini real.
import javax.swing.JOptionPane;
public class Funcao {
static String xs, ys;
static int x, y;
public static int calcula(int x, int y) {
return 2 * x + ((3 * y) * (3 * y));
}
public static void le() {
xs = JOptionPane.showInputDialog("Informe o valor de x");
ys = JOptionPane.showInputDialog("Informe o valor de y");
}
public static void converte(String a, String b) {
x = Integer.parseInt(a);
y = Integer.parseInt(b);
}
public static void exibe(int a, int b) {
JOptionPane.showMessageDialog(null, "f(x, y) = " + calcula(a, b));
}
public static void main(String args[]) {
le();
converte(xs, ys);
exibe(x, y);
}
}
2. Verificar si un número és parell
Programa que utilitza una funció que indica si el número llegit és parell. La funció retorna true per a parell i false per a senar.
import javax.swing.JOptionPane;
public class ParImpar {
public static boolean verifica(int n) {
if (n % 2 == 0) {
return true;
}
return false;
}
public static void main(String a[]) {
String ns = JOptionPane.showInputDialog("Informe o valor desejado");
int x = Integer.parseInt(ns);
JOptionPane.showMessageDialog(null, x + " = " + verifica(x));
}
}
3. Verificar si un número és primer
Un número primer és qualsevol enter positiu divisible només per si mateix i per 1. El mètode rep un enter positiu i retorna true si és primer, o false en cas contrari.
import javax.swing.JOptionPane;
public class Primo {
public static boolean verificaPrimo(int num){
for(int i = 2; i < num; i++){
if (num % i == 0){
return false;
}
}
return true;
}
public static void main(String[] args) {
String nums = JOptionPane.showInputDialog("Informe o valor desejado");
int n = Integer.parseInt(nums);
System.out.println(n + " é " + verificaPrimo(n));
}
}
4. Càlcul del factorial N!
Programa que utilitza un mètode per calcular N! i retorna el valor del factorial.
import javax.swing.JOptionPane;
public class Fatorial {
public static long fatorial(int n){
long fat = 1;
for(int i = n; i > 0; i--){
fat *= i;
}
return fat;
}
public static void main(String[] args) {
int num = Integer.parseInt(JOptionPane.showInputDialog("Informe o valor desejado"));
JOptionPane.showMessageDialog(null, num + "! = " + fatorial(num));
}
}
5. Any bisest
Mètode que rep un any i retorna true si és bisest i false si no ho és. Un any és bisest si és divisible per 4 però no per 100, o si és divisible per 400.
import javax.swing.JOptionPane;
public class Bissexto {
public static boolean verificaBissexto(int a){
if (a % 400 == 0){
return true;
}else if ((a % 4 == 0) && (a % 100 != 0)){
return true;
}
return false;
}
public static void main(String a[]){
String anos = JOptionPane.showInputDialog("Informe o ano desejado");
int ano = Integer.parseInt(anos);
JOptionPane.showMessageDialog(null, verificaBissexto(ano));
}
}
6. Suma dels n primers enters
Mètode soma() que rep un enter positiu n i retorna la suma dels n primers enters. Per exemple, si n = 5, retorna 15 (1 + 2 + 3 + 4 + 5).
import javax.swing.JOptionPane;
public class Soma {
public static long soma(int n) {
int s = 0;
for (int i = 1; i <= n; i++) {
s += i;
}
return s;
}
public static void main(String[] args) {
int num = Integer.parseInt(JOptionPane.showInputDialog("Informe o valor desejado"));
JOptionPane.showMessageDialog(null, "Soma de 1 a " + num + " = " + soma(num));
}
}
7. Conversió de data a format textual
Mètode que rep una data en format DDMMAAAA com a String i la retorna en lletres, per exemple: Dia 29 de desembre de 2008.
import javax.swing.JOptionPane;
public class Data {
public static String converteData(String d){
String m = null;
long date = Long.parseLong(d);
int dia = (int) date / 1000000;
int mes = (int) date / 10000 - dia * 100;
int ano = (int) date - ((dia * 1000000) + (mes * 10000));
switch (mes){
case 1: m = "janeiro"; break;
case 2: m = "fevereiro"; break;
case 3: m = "març"; break;
case 4: m = "abril"; break;
case 5: m = "maig"; break;
case 6: m = "juny"; break;
case 7: m = "juliol"; break;
case 8: m = "agost"; break;
case 9: m = "setembre"; break;
case 10: m = "octubre"; break;
case 11: m = "novembre"; break;
case 12: m = "desembre"; break;
default: m = "invàlid";
}
return "Dia " + dia + " de " + m + " de " + ano;
}
public static void main(String args[]){
String datas = JOptionPane.showInputDialog("Informe a data no formato DDMMAAAA");
System.out.println(converteData(datas));
}
}