Funciones
Ejercicio
Diseñar una función que permita devolver el valor absoluto de un número
Solución
import java.util.*;
public class ValorAbsolutodeX{
public static void main(String args[]) {
Scanner entrada=new Scanner(System.in);
//número x real
System.out.println("Ingrese el valor de x (real) ");
double x=entrada.nextDouble();
double ValorAbs= ValorAbsoluto(x);
System.out.println("El valor absoluto de " +x+ " es "+ValorAbs);
}
public static double ValorAbsoluto(double f){
if (f>=0){
return f ;
}
else {
return -f;
}
}
}
Ejercicio
Diseñar una función que calcule x n para x, variable real y n variable entera.
Solución
import java.util.*;
public class exponecialdeXalaN{
public static void main(String args[]) {
Scanner entrada=new Scanner(System.in);
//número x real (dicho en el problema)
System.out.println("Ingrese el valor de x (real) ");
double x=entrada.nextDouble();
int n=3;
double exp=funExponencial(x);
System.out.println("El número " +x+ " elevado a la "+n+" es " +exp);
}
public static double funExponencial(double f){
int n=3;
double resultado=1;
for (int i=1; i<=n;i++){
resultado=resultado*f;
}
//retorna el resultado de la exponencial, este resultado es el de la función;
return resultado;
}
}
Ejercicio
Diseñar un algoritmo que transforme un número introducido por teclado en notación
decimal a romana. El número será entero y positivo y no excederá de 3000.
import java.util.*;
public class NumRomanos{
public static void main(String args[]) {
int digito;
int a;
int i;
int b=1;
Scanner entrada=new Scanner(System.in);
System.out.println("Ingrese número positivo que no exceda de 3000");
int n=entrada.nextInt();
while(b==1){
if (n>=0 && n<=3000){
a=n;
digito=a/1000;
a=a%1000;
for(i=1;i<=digito;i++){
System.out.print("M");
}
//para las centenas
digito=a/100;
a=a%100;
if(digito==9){
System.out.print("CM");
}
else{
if(digito>4){
System.out.print("D");
for(i=1;i<=digito-5;i++){
System.out.print("C");
}
}
else {
if(digito==4){
System.out.print("CD");
}
else{
for(i=1;i<=digito;i++){
System.out.print("C");
}
}
}
}
//Para hacer las decenas nos guiamos del formato hecho anteriormente para las
centenas, la diferencia radica en los símbolod romanos
digito=a/10;
a=a%10;
if(digito==9){
System.out.print("XC");
}
else {
if(digito>4){
System.out.print("L");
for(i=1;i<=digito-5;i++){
System.out.print("X");
}
}
else {
if(digito==4){
System.out.print("XL");
}
else{
for(i=1;i<=digito;i++){
System.out.print("X");
}
}
}
}
//para las unidades nos guiamos del formato hecho para las decenas y centenas, la
diferencia radica en los simbolos romanos
digito=a;
if(digito==9){
System.out.print("IX");
}
else {
if(digito>4){
System.out.print("V");
for(i=1;i<=digito-5;i++){
System.out.print("I");
}
}
else {
if(digito==4){
System.out.print("IV");
}
else{
for(i=1;i<=digito;i++){
System.out.print("I");
}
}
}
}
b=b+1;
}
else {
System.out.println("El número no cumple con los requerimientos");
System.out.println("Ingrese otro número");
n=entrada.nextInt();
}
}
}
}
Ejercicio
Escribir una función que permita deducir si una fecha leída en el teclado es válida.
import java.util.*;
public class fechaValida{
public static void main(String[] args) {
int dia,mes,año;
Scanner entrada=new Scanner(System.in);
System.out.print("Introduzca día: ");
dia=entrada.nextInt();
System.out.print("Introduzca mes: ");
mes=entrada.nextInt();
System.out.print("Introduzca año: ");
año=entrada.nextInt();
if(funFechaCorrecta(dia,mes,año)){
System.out.println("La fecha "+dia + "/" + mes + "/" + año+" es correcta");
}
else {
System.out.println("Fecha incorrecta");
}
}
public static boolean funFechaCorrecta(int dia,int mes, int año){
int a=1;
//algoritmo para saber si un año es bisiesto o no
if ((año % 4 == 0) && ((año % 100 != 0) || (año % 400 == 0))){
a=a+1;
}
// el único año que no existe es el 0
if(año==0){
return false;
}
else{
if((mes==2 && a==2 && dia>=1 && dia<=29) || (mes==2 && a==1 && dia>=1
&& dia<=28)){
return true;
}
else {
if((mes==4 || mes==6 || mes==9 || mes==11) && (dia>=1 && dia<=30)){
return true;
}
else {
if( (mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12) &&
(dia>=1 && dia<=31)) {
return true;
}
else {
return false;
}
}
}
}
}
}
Ejercicio
Realiza un procedimiento que obtenga la división entera y el resto de la misma
utilizando únicamente los operadores suma y resta.
import java.util.*;
public class fechaValida{
public static void main(String[] args) {
int dividendo,divisor, cociente,resto;
Scanner entrada=new Scanner(System.in);
//se debe tener encuenta las restricciones ; ambos numeros deben ser mayores
que 0 y el divisor debe ser menor al dividendo (sino el cociente sería siempre 0 )
System.out.println("Introduzca el dividendo (entero)");
dividendo=entrada.nextInt();
System.out.println("Introduzca el divisor (entero)");
divisor=entrada.nextInt();
if(divisor>0 && dividendo>0){
int a=1;
while (a==1)
if(dividendo>=divisor){
resto=dividendo;
cociente=0;
while(resto>=divisor){
//restas sucesivas
resto=resto-divisor;
cociente++;
}
a++;
System.out.println("El cociente y el resto de la división entre "+dividendo+"
y "+divisor+" es " +cociente+ " y "+resto+" respectivamente");
}
else {
System.out.println("El dividendo debe ser mayor o igual que el divisor");
System.out.println("Introduce otro divisor (entero)");
divisor=entrada.nextInt();
}
}
else{
System.out.println("El divisor y dividendo deben ser mayores que 0");
}
}
}
public class Ejercicio2{
public static void main(String args[]) {
int num=5;
System.out.println(mayorQue0(num));
}
public static boolean mayorQue0(int num){
if(num>0){
return true;
} else {
return false;
}
}
}
public class Ejercicio2b{
public static void main(String args[]) {
int num=-1;
//utilizamos las funciones como condiciones
if (mayorQue0(num)){
System.out.println("El número "+num+" es mayor que cero");
} else {
System.out.println("El número "+num+" es menor o igual que cero");
}
}
public static boolean mayorQue0(int num){
//lo que hace la función es analizar si -1 es mayor que cero, si en caso es
mayor que cero la función devuelve true
return num>0;
}
}
public class Ejercicio1{
public static void main(String args[]) {
//No hay necesidad de poner int a=5, int a =7; es decir , se puede poner otro
nombre num1 o num2
int num1=5;
int num2=7;
//La función se puede guardar en una variable, esta variable debe ser del
mismo tipo
System.out.println("El resultado es "+suma(num1,num2));
}
public static int suma (int a , int b) {
int resulado=a+b;
return resultado;
}
}
import java.util.*;
public class exponecialdeXalaN{
public static void main(String args[]) {
Scanner entrada=new Scanner(System.in);
//número x real (dicho en el problema)
System.out.println("Ingrese el valor de x (real) ");
double x=entrada.nextDouble();
int n=3;
double exp=funExponencial(x);
System.out.println("El número " +x+ " elevado a la "+n+" es " +exp);
}
public static double funExponencial(double f){
int n=3;
double resultado=1;
for (int i=1; i<=n;i++){
resultado=resultado*f;
}
//retorna el resultado de la exponencial , este resultado es el de la función;
return resultado;
}
}