miércoles, 1 de junio de 2016

Posible Solucion de ejercicios (2, 3 y 4)

Ejercicio 3

var anno =(parseInt("digite un anno"));
var n = (parseInt("mes del anno"));
var mes = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio","Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];

switch(n){
case '4': case '6': case '9': case '11':
document.write("Esta en el mes=" + mes [ n - 1 ] + "<br>");
document.write("Este mes tiene 30 dias");
break;

case '1': case '3': case '5': case '7': case '8': case '10': case '12':
document.write("Esta en el mes=" + mes [ n - 1 ] + "<br>");
document.write("Este mes tiene 31 dias");
break;

case '2':

if((anno % 4 == 0) && ((anno % 100 != 0) || (anno % 400 == 0)){

document.write("Esta en el mes=" + mes [ n - 1 ] + "<br>");
document.write("Este mes tiene 29 dias");
break;
}
else{
                            document.write("Esta en el mes=" + mes [ n - 1 ] + "<br>");
document.write("Este mes tiene 28 dias");
break;
}
default:
alert("Digite valores entre 1 y 12")
break;
}
</script>

Ejercicio2

<script>
//ciclo para

var x = 0; for (i=0;i<=100;i++) {
document.write("i++"+"i<=100"+"es ="+"x")

//ciclo while
public class Ejercicio2 {
    public static void main(String[] ar) {
int opcion;
do {
    opcion = (i=0;i<=100;i++);
} while (opcion != 101);
System.out.println("Fin");



//bucle
public class EstructuraRepetitivaDoWhile1 {
    public static void main(String[] ar) {
int contador = 0 ; for (i=0;i<=100;i++) {
 do {

                            System.out.println("Contando... " + (contador+1) );
 contador += 1;
 } while (contador<100); } }

</script> 

Ejercicio 4              

import java.util.Scanner;

public class NumerosRomanos {

  public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      int N;
      do {
             System.out.print("Introduce un número entre 1 y 5000: ");
             N = sc.nextInt();
      } while (N < 1 || N > 5000);
      System.out.println(N + " en numeros romanos -> " + convertirANumerosRomanos(N));
  }
  //método para pasar a números romanos
  public static String convertirANumerosRomanos(int numero) {
      int i, miles, centenas, decenas, unidades;
      String romano = "";
     //obtenemos cada cifra del número
      miles = numero / 1000;
      centenas = numero / 100 % 10;
      decenas = numero / 10 % 10;
      unidades = numero % 10;

      for (i = 1; i <= miles; i++) {
             romano = romano + "M";
      }

      if (centenas == 9) {
          romano = romano + "CM";
      } else if (centenas >= 5) {
                     romano = romano + "D";
                     for (i = 6; i <= centenas; i++) {
                            romano = romano + "C";
                     }
      } else if (centenas == 4) {
                      romano = romano + "CD";
      } else {
                  for (i = 1; i <= centenas; i++) {
                         romano = romano + "C";
                  }
      }

     //decenas
      if (decenas == 9) {
           romano = romano + "XC";
      } else if (decenas >= 5) {
                      romano = romano + "L";
                      for (i = 6; i <= decenas; i++) {
                            romano = romano + "X";
                      }
      } else if (decenas == 4) {
                      romano = romano + "XL";
      } else {
                    for (i = 1; i <= decenas; i++) {
                           romano = romano + "X";
                    }
      }
      if (unidades == 9) {
           romano = romano + "IX";
      } else if (unidades >= 5) {
                      romano = romano + "V";
                      for (i = 6; i <= unidades; i++) {
                             romano = romano + "I";
                      }
      } else if (unidades == 4) {
                      romano = romano + "IV";
      } else {
                  for (i = 1; i <= unidades; i++) {
                         romano = romano + "I";
                  }
      }
      return romano;
  }
}

System.out.println("Su numero " + num + " en romano es: " + mi + ce + de + un);

Solución de Ejercicios propuestos + Bonus

    1. Realizar un programa que le presente un menú al usuario con las siguientes opciones: lo desarrollan todos - 1. Leer dos números enteros positivos únicamente, 2. Sumar los dos números leídos, 3. Restarle al primer número el segundo (siempre y cuando el primero sea mayor que él segundo, en caso contrario indicar con un mensaje que la operación no es posible realizarla y volver al menú principal, 4. Multiplicar los dos números (siempre y cuando ninguno de los números sea igual a cero, , en caso contrario indicar con un mensaje que la operación no es posible realizarla y volver al menú principal,), 5. Dividir el primer número dado por el segundo, 6 Salir Nota: Se debe garantizar que el usuario haya ingresado los dos números antes de poder realizar cualquier operación y que no se puede escribir un resultado sin la realización de una operación.
Solución:
Proceso sin_titulo

numero1 = -1
numero2 = -1
ya_se_digito_los_numeros = "no"
Repetir
Escribir ""
Escribir "****************************************************************"
Escribir "* 1. Leer dos nœmeros enteros positivos œnicamente. *"
Escribir "* 2. Sumar los dos nœmeros le'dos. *"
Escribir "* 3. Restarle al primer nœmero el segundo. *"
Escribir "* 4. Multiplicar los dos nœmeros. *"
Escribir "* 5. Dividir el primer nœmero dado por el segundo. *"
Escribir "* 6. Salir. *"
Escribir "****************************************************************"
Escribir ""
Leer opciones
Escribir ""
Segun opciones Hacer
1:
Escribir ""
Escribir "1. Leer dos nœmeros enteros positivos œnicamente."
Escribir ""
Escribir "Digite el Primer Numero"
Leer numero1
Escribir "Digite el Segundo Numero"
Leer numero2
ya_se_digito_los_numeros = "no"
Si numero1 > 0 Entonces
Si numero2 > 0 Entonces
ya_se_digito_los_numeros = "si"
Sino
numero1 = -1
numero2 = -1
Escribir "Hace falta digitar un numero entero Positivo en el Segundo Valor"
Fin Si
Sino
numero1 = -1
numero2 = -1
Escribir "Hace falta digitar un numero entero Positivo en el Primer Valor"
Fin Si
2:
Escribir ""
Escribir "2. Sumar los dos nœmeros le'dos."
Escribir ""
Si ya_se_digito_los_numeros = "si" Entonces
Escribir "Suma de los dos numeros = ( " numero1 " + " numero2 " = " ( numero1 + numero2 ) " )"
Sino
Escribir ""
Escribir "****************************************************************"
Escribir "* Hace falta digitar los dos numeros *"
Escribir "****************************************************************"
Escribir ""
Fin Si
3:
Escribir ""
Escribir "3. Restarle al primer nœmero el segundo."
Escribir ""
Si ya_se_digito_los_numeros = "si" Entonces
Si numero1 > numero2 Entonces
Escribir "Resta de los dos numeros = ( " numero1 " - " numero2 " = " ( numero1 - numero2 ) " )"
Sino
Escribir "La operaci—n no es posible realizarla."
Fin Si
Sino
Escribir ""
Escribir "****************************************************************"
Escribir "* Hace falta digitar los dos numeros *"
Escribir "****************************************************************"
Escribir ""
Fin Si
4:
Escribir ""
Escribir "4. Multiplicar los dos nœmeros."
Escribir ""
Si ya_se_digito_los_numeros = "si" Entonces
Si numero1 > 0 Entonces
Si numero2 > 0 Entonces
Escribir "Multiplicacion de los dos numeros = ( " numero1 " * " numero2 " = " ( numero1 * numero2 ) " )"
Sino
Escribir "No se puede Multiplicar porque el Segundo Numero es Cero."
Fin Si
Sino
Escribir "No se puede Multiplicar porque el Primer Numero es Cero."
Fin Si
Sino
Escribir ""
Escribir "****************************************************************"
Escribir "* Hace falta digitar los dos numeros *"
Escribir "****************************************************************"
Escribir ""
Fin Si
5:
Escribir ""
Escribir "5. Dividir el primer nœmero dado por el segundo."
Escribir ""
Si ya_se_digito_los_numeros = "si" Entonces
Si numero2 <> 0 Entonces
Escribir "Division de los dos numeros = ( " numero1 " / " numero2 " = " ( numero1 / numero2 ) " )"
Sino
Escribir "No se puede Dividir porque el Segundo Numero es Cero."
Fin Si
Sino
Escribir ""
Escribir "****************************************************************"
Escribir "* Hace falta digitar los dos numeros *"
Escribir "****************************************************************"
Escribir ""
Fin Si
6:
Escribir ""
Escribir "****************************************************************"
Escribir "* HASTA LUEGO. *"
Escribir "****************************************************************"
Escribir ""
De Otro Modo:
Escribir ""
Escribir "****************************************************************"
Escribir "* Opcion No VALIDA. *"
Escribir "****************************************************************"
Escribir ""

Fin Segun
Hasta Que opciones = 6
FinProceso


















2. Desarrollar un algoritmos que permita realizar la sumatoria de los primeros 100 números utilizando los 3 ciclos (para, repita, mientras)
Solución:
Proceso sin_titulo

cantidad_de_numeros = 100
suma = 0
Para i<-0 Hasta cantidad_de_numeros Con Paso 1 Hacer
suma = suma + i
Fin Para
Escribir ""
Escribir "CICLO FOR -> Sumatoria de los primeros " cantidad_de_numeros " es = " suma
Escribir ""

suma = 0
i = 0
Repetir
i = i + 1
suma = suma + i
Hasta Que i > ( cantidad_de_numeros - 1)
Escribir ""
Escribir "CICLO REPETIR HASTA -> Sumatoria de los primeros " cantidad_de_numeros " es = " suma
Escribir ""

suma = 0
i = 0
Mientras i < cantidad_de_numeros Hacer
i = i + 1
suma = suma + i
Fin Mientras
Escribir ""
Escribir "CICLO HACER MIENTRAS -> Sumatoria de los primeros " cantidad_de_numeros " es = " suma
Escribir ""
FinProceso
3. Cree un algoritmo que capture un mes en números y el software muestre un mensaje que indique cuantos días tiene ese mes. Ejemplo: si se digita "07", el algoritmo debe mostrar "Julio, tiene treinta un días". El algoritmo debe también advertir que si se trata de febrero tiene 28 días, pero si el año fuera bisiesto tendría 29.
Solución:
Proceso sin_titulo

Dimension mes[12]
mes[1]='Enero'
mes[2]='Febrero'
mes[3]='Marzo'
mes[4]='Abril'
mes[5]='Mayo'
mes[6]='Junio'
mes[7]='Julio'
mes[8]='Agosto'
mes[9]='Septiembre'
mes[10]='Octubre'
mes[11]='Noviembre'
mes[11]='Diciembre'
Escribir "Digite un numero entre 1 y 12"
Leer n
es_bisiesto = ""
Si (n>=1) && (n<=12) Entonces
Segun n Hacer
1, 3, 5, 7, 8, 10, 12:
maximo_dia_mes = 31
2:
maximo_dia_mes = 28
es_bisiesto = ", pero si fuera A–o Bisiesto tendria 29 dias."
4, 6, 9, 11 :
maximo_dia_mes = 30
Fin Segun
Escribir mes[n] " tiene " maximo_dia_mes " dias " es_bisiesto
Sino
Escribir "Debe digitar un valor de mes entre 1 y 12"
Fin Si
FinProceso
4. Se requiere que solo con la utilización de ciclos y condicionales, usted pueda convertir un número decimal < a 5000 a número Romano.
Solución:
Proceso sin_titulo

Escribir "Digite un numero entre 1 y 5000"
Leer decimal
Si (decimal>=1) && (decimal<=5000) Entonces
Escribir "********* Conversion a Romano *********"
Dimension unidad[10]
DImension decenas[10]
Dimension centenas[10]
Dimension miles[6]
unidad[1]=''
unidad[2]='I'
unidad[3]='II'
unidad[4]='III'
unidad[5]='IV'
unidad[6]='V'
unidad[7]='VI'
unidad[8]='VII'
unidad[9]='VIII'
unidad[10]='IX'
decenas[1]=''
decenas[2]='X'
decenas[3]='XX'
decenas[4]='XXX'
decenas[5]='XL'
decenas[6]='L'
decenas[7]='LX'
decenas[8]='LXX'
decenas[9]='LXXX'
decenas[10]='XC'
centenas[1]=''
centenas[2]='C'
centenas[3]='CC'
centenas[4]='CCC'
centenas[5]='CD'
centenas[6]='D'
centenas[7]='DC'
centenas[8]='DCC'
centenas[9]='DCCC'
centenas[10]='CM'
miles[1]=''
miles[2]='M'
miles[3]='MM'
miles[4]='MMM'
miles[5]='[IV]'
miles[6]='[V]'
miles_= trunc(decimal/1000) MOD 10
centenas_= trunc(decimal/100) MOD 10
decenas_= trunc(decimal/10) MOD 10
unidades_= decimal MOD 10
Escribir miles[miles_+1] centenas[centenas_+1] decenas[decenas_+1] unidad[unidades_+1]
Sino
Escribir "Lo siento solo sirve la conversion entre numeros de 1 a 5000"
Fin Si

FinProceso

BONUS 

NUMEROS FIBONACCI
En matemáticas, la sucesión de Fibonacci (a veces llamada erróneamente serie de Fibonacci) es la siguiente sucesión infinita de números naturales:
{\textstyle 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597
\ldots \,}

La espiral de Fibonacci: una aproximación de la espiral áurea generada dibujando arcos circulares conectando las esquinas opuestas de los cuadrados ajustados a los valores de la sucesión;1 adosando sucesivamente cuadrados de lado 0, 1, 1, 2, 3, 5, 8, 13, 21 y 34.
La sucesión comienza con los números 0 y 1,2 y a partir de estos, «cada término es la suma de los dos anteriores», es la relación de recurrencia que la define.
A los elementos de esta sucesión se les llama números de Fibonacci. Esta sucesión fue descrita en Europa por Leonardo de Pisa, matemático italiano del siglo XIII también conocido como Fibonacci. Tiene numerosas aplicaciones en ciencias de la computaciónmatemáticas y teoría de juegos. También aparece en configuraciones biológicas, como por ejemplo en las ramas de los árboles, en la disposición de las hojas en el tallo, en las flores de alcachofas y girasoles, en las inflorescencias del brécolromanesco y en la configuración de las piñas de las coníferas.
tomado de: http://informaticamediabasica.blogspot.com.co/2016/05/mayo-24-2016.html