SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
0$18$/ '(
35É&7,&$6




  Q /DYDULHJD ♦ P 0HUFDGR
MANUAL DE PRÁCTICAS                                                               FUNDAMENTOS DE PROGRAMACIÓN


35È7,$ 
      Calcular e imprimir el área de un triangulo a partir de su base y altura.


2EMHWLYR GH OD SUiFWLFD

    ,PSOHPHQWDU XQD FODVH SDUD FRQRFHU VX HVWUXFWXUD H LPSOHPHQWDFLyQ HQ XQ OHQJXDMH GH
SURJUDPDFLyQ

$QiOLVLV GHO SUREOHPD

     Para calcular el área de la figura es necesario la introducción de dos variables: Base y Altura, y una
tercera Area en donde se almacenara el resultado, todas de tipo IORDW. La superficie de un triangulo se
calcula aplicando la siguiente fórmula:

                                                      (Base * Altura)
                                          Area =
                                                             2



                                                        inicio



                                                  leer Base, Altura




                                             Area = ( Base * Altura ) / 2




                                                       Escribir
                                                        Area




                                                         fin


                                            #¥ £¨§¥£ ¢ 
                                            quot;!    © £¦ ¤ ¡     Práctica 1


3VHXGRFyGLJR

inicio
     leer Base, Altura
     hacer Area = (Base * Altura) / 2
     escribir Area
fin




130
FUNDAMENTOS DE PROGRAMACIÓN                                                           MANUAL DE PRÁCTICAS


3URJUDPD HQ -DYD

import java.io.*;
public class Practica_1{
    public static void main (String args[]) throws IOException{
        float Base, Altura, Area;
        InputStreamReader res=new InputStreamReader(System.in);
        BufferedReader calculo=new BufferedReader(res);
        System.out.println(quot;Introduzca la base del trianguloquot;);
        Base = Float.parseFloat(calculo.readLine());
        System.out.println(quot;Introduzca la altura del trianguloquot;);
        Altura = Float.parseFloat(calculo.readLine());
        Area = (Base * Altura)/2;
        System.out.println(quot;La superficie del triangulo es: quot;+ Area);
    }
}



35È7,$ 
    Calcular e imprimir el costo total a cobrar al cliente en una gasolinera, tomando en cuenta que la
gasolina que surten la registran en galones, pero el precio de la gasolina esta fijado en litros.


2EMHWLYR GH OD SUiFWLFD

    ,PSOHPHQWDU XQD FODVH SDUD FRQRFHU VX HVWUXFWXUD H LPSOHPHQWDFLyQ HQ XQ OHQJXDMH GH
SURJUDPDFLyQ

$QiOLVLV GHO SUREOHPD

    Para obtener el costo total a cobrar por el surtidor al cliente, sean dos variable Galones y Precio,
que se necesitan leer desde el teclado y asignar el valor de la conversión del costo total de la gasolina
en una variable Total, todas tipo GRXEOH. El equivalente a utilizar es de 3.785 Litros por Galón.



                                                      inicio



                                               leer Galones, Precio



                                         Total = Galones * 3.785 * Precio



                                                     Escribir
                                                      Total



                                                       fin


                                         #¥ £¨§¥£ ¢ 
                                         quot;!    © £¦ ¤ ¡      Práctica 2


                                                                                                    131
MANUAL DE PRÁCTICAS                                                           FUNDAMENTOS DE PROGRAMACIÓN


3VHXGRFyGLJR

inicio
     leer Galones, Precio
     hacer Total = Galones * 3.780 * Precio
     escribir Total
fin

3URJUDPD HQ -DYD

import java.io.*;
public class Practica_2{
    public static void main (String args[])throws IOException{
        double Galones, Total, Precio;
        InputStreamReader res=new InputStreamReader(System.in);
        BufferedReader calculo=new BufferedReader(res);
        System.out.println(quot;Introduzca los galones de gasolinaquot;);
        Galones=Float.parseFloat(calculo.readLine());
        System.out.println(quot;Introduzca el precio del litro de gasolinaquot;);
        Precio=Float.parseFloat(calculo.readLine());
        Total=Galones*3.785*Precio;
        System.out.println(quot;Total a pagar del cliente es:quot;+Total);
    }
}



35È7,$ 
      Calcular e imprimir el área y volumen de un cilindro, dados su radio y altura.


2EMHWLYR GH OD SUiFWLFD

     ,PSOHPHQWDU XQ JUXSR GH FODVHV TXH XWLOLFHQ FRQVWUXFWRUHV  PRGLILFDGRUHV GH DFFHVR SDUD
DQDOL]DU GH TXp IRUPD DIHFWDQ HO IXQFLRQDPLHQWR GH ODV FODVHV  FXDQGR VRQ UHFRPHQGDEOHV FDGD XQR
GH HOORV

$QiOLVLV GHO SUREOHPD

     Para el cálculo de los valores del área y volumen de un cilindro, es necesaria la lectura de dos
variables Radio y Altura de tipo GRXEOH, así como dos variables de asignación de los valores de área y
volumen, ambos de tipo GRXEOH.

El área del cilindro lo calculamos aplicando la siguiente formula:

                                                     
 UDGLR 
 DOWXUD
                                       Área = 2 *
'RQGH       

El volumen del cilindro lo calculamos aplicando la siguiente formula:

                                       9ROXPHQ       
 UDGLR2 * altura

132
FUNDAMENTOS DE PROGRAMACIÓN                                                 MANUAL DE PRÁCTICAS




                                                    inicio



                                               Pi = 3.141592



                                              leer Radio, Altura



                                        Area = 2 * Pi * Radio * Altura
                                    Volumen = Pi * Radio * Radio * Altura



                                                  Escribir
                                               Area, Volumen



                                                     fin

                                       #¥ £¨§¥£ ¢ 
                                       quot;!    © £¦ ¤ ¡     Práctica 3


3VHXGRFyGLJR

inicio
     Pi = 3.141592
     leer Radio, Altura
     hacer Area = 2 * Pi * Radio * Altura
     hacer Volumen = Pi * Radio * Radio * Altura
     escribir Area
     escribir Volumen
fin

3URJUDPD HQ -DYD

1  import java.io.*;
2  public class Practica_3{
3      public static void main (String args[])throws IOException{
4          double Radio, Altura;
5          InputStreamReader res=new InputStreamReader(System.in);
6          BufferedReader calculo=new BufferedReader(res);
7          System.out.println(quot;Introduzca el radioquot;);
8          Radio=Float.parseFloat(calculo.readLine());
9          System.out.println(quot;Introduzca la alturaquot;);
10         Altura=Float.parseFloat(calculo.readLine());
11         Cilindro cilindro = new Cilindro(Altura, Radio);
12         System.out.println(quot;El volumen del cilindro es:quot;+cilindro.volumen);
13         System.out.println(quot;El area del cilindro es:quot;+cilindro.area);
14     }
15 }

16 class Cilindro{
17     public static final double PI = 3.14159265;
18     public double area, volumen;


                                                                                          133
MANUAL DE PRÁCTICAS                                                            FUNDAMENTOS DE PROGRAMACIÓN

19        public Cilindro(double h, double r) {
20            area = 2 * r * PI * h;
21            volumen = PI * r * r * h;
22        }
23 }

     En esta práctica se hace uso de dos clases, Practica_3 y Cilindro; la primera contiene la función
PDLQ, en la cual realizamos la solicitud de las variables Radio y Altura, como se muestra de la línea 7 a
la 10; la segunda clase es Cilindro, en donde inicialmente se define la variable PI como SXEOLF VWDWLF
ILQDO, que indica que el valor no puede ser modificado, o lo que es lo mismo, es una FRQVWDQWH. La
sentencia 18 nos muestra el modificador de acceso SXEOLF el cual nos indica que los atributos area y
volumen son visibles fuera de la clase, contrario a si fueran declarados como SULYDWH. La sentencia 19
define el constructor general de la clase Cilindro, que recibe como argumentos (K U
que son utilizados
para calcular el área y volumen del cilindro.


35È7,$ 
      Realizar e imprimir, la conversión de grados Celsius a grados Fahrenheit.


2EMHWLYR GH OD SUiFWLFD

     ,PSOHPHQWDU XQ JUXSR GH FODVHV TXH XWLOLFHQ FRQVWUXFWRUHV  PRGLILFDGRUHV GH DFFHVR SDUD
DQDOL]DU GH TXp IRUPD DIHFWDQ HO IXQFLRQDPLHQWR GH ODV FODVHV  FXDQGR VRQ UHFRPHQGDEOHV FDGD XQR
GH HOORV

$QiOLVLV GHO SUREOHPD

    El cálculo de grados Celsius (centígrados) a grados Fahrenheit se genera a partir de la siguiente
fórmula:

                                             ºF = 1.8 * ºC +32



                                                       inicio


                                                  leer Centigrados



                                         Fahrenheit = 1.8 * Centigrados + 32


                                                      Escribir
                                                     Fahrenheit



                                                         fin


                                           #¥ £¨§¥£ ¢ 
                                           quot;!    © £¦ ¤ ¡      Práctica 4



134
FUNDAMENTOS DE PROGRAMACIÓN                                                         MANUAL DE PRÁCTICAS


3VHXGRFyGLJR

inicio
     leer Centigrados
     hacer Fahrenheit = 1.8 * Centigrados +32
     escribir Fahrenheit
fin


3URJUDPD HQ -DYD
import java.io.*;
public class Practica_4{
    public static void main (String args[])throws IOException{
        double Centigrado;
        InputStreamReader res=new InputStreamReader(System.in);
        BufferedReader calculo=new BufferedReader(res);
        System.out.println(quot;Introduzca el grados centigradosquot;);
        Centigrado=Float.parseFloat(calculo.readLine());
        Grados grados = new Grados (Centigrado);
        System.out.println(quot;Los grados Fahrenheit son: quot;+grados.fahrenheit);
    }
}

class Grados{
    public double fahrenheit;
    public Grados(double c) {
         fahrenheit = 1.8 * c + 32;
    }
}




35È7,$ 
     Construya un programa que tomando como dato la calificación de un alumno en un examen,
escriba “Aprobado” en caso de que esa calificación sea mayor o igual a 8.



2EMHWLYR GH OD SUiFWLFD

    ,PSOHPHQWDU FODVHV TXH UHTXLHUDQ GH HVWUXFWXUDV VHOHFWLYDV SDUD SUREDUODV HQ XQD DSOLFDFLyQ


$QiOLVLV GHO SUREOHPD

   Para este ejercicio solo hacemos solicitud de una variable de tipo IORDW llamada calificación, que
compararemos en una estructura selectiva LI simple. Solo si la condición resulta verdadera mostrara el
mensaje “Aprobado”.




                                                                                                  135
MANUAL DE PRÁCTICAS                                                      FUNDAMENTOS DE PROGRAMACIÓN




                                             inicio


                                        leer Calificacion




                                       Calificación = 8


                                                      Si            No

                                             Escribir
                                          “ Aprobado”




                                               fin
                                 #¥ £¨§¥£ ¢ 
                                 quot;!    © £¦ ¤ ¡     Práctica 5


3VHXGRFyGLJR

inicio
     leer Calificación
     si Calificación = 8
          escribir “ Aprobado”
     fin_si
fin


3URJUDPD HQ -DYD

import java.io.*;
public class Practica_5{
    public static void main (String args[])throws IOException{
        float Calificacion;
        InputStreamReader res= new InputStreamReader(System.in);
        BufferedReader calculo= new BufferedReader(res);
        System.out.println(quot;Introduzca la calificacionquot;);
        Calificacion=Float.parseFloat(calculo.readLine());
        if (Calificacion=8)
            System.out.println(quot;Aprobadoquot;);
    }
}




136
FUNDAMENTOS DE PROGRAMACIÓN                                                           MANUAL DE PRÁCTICAS


35È7,$ 
    Indique e imprima cual es el mayor de dos números dados.



2EMHWLYR GH OD SUiFWLFD

    ,PSOHPHQWDU FODVHV TXH UHTXLHUDQ GH HVWUXFWXUDV VHOHFWLYDV SDUD SUREDUODV HQ XQD DSOLFDFLyQ


$QiOLVLV GHO 3UREOHPD

    Se necesita introducir dos valores, almacenados en las variables N1 y N2 que declararemos como
tipo LQW los cuales compararemos en una estructura selectiva LI HOVH que mostrara el mayor de los
números dados.



                                                       inicio


                                                    leer N1, N2



                                                                       No
                                          Si         N1  N2



                                                                        Escribir N2
                                 Escribir N1




                                                        fin

                                           #¥ £¨§¥£ ¢ 
                                           quot;!    © £¦ ¤ ¡    Práctica 5


3VHXGRFyGLJR

inicio
     leer N1, N2
     si N1  N2
          escribir N1
     sino
          escribir N2
     fin_si
fin




                                                                                                    137
MANUAL DE PRÁCTICAS                                                                                        FUNDAMENTOS DE PROGRAMACIÓN


3URJUDPD HQ -DYD
import java.io.*;
public class Practica_6{
    public static void main (String args[])throws IOException{
        int N1, N2;
        InputStreamReader res=new InputStreamReader(System.in);
        BufferedReader calculo=new BufferedReader(res);
        System.out.println(quot;Introduzca el entero numero 1quot;);
        N1=Integer.parseInt(calculo.readLine());
        System.out.println(quot;Introduzca el entero numero 2quot;);
        N2=Integer.parseInt(calculo.readLine());
        if (N1N2)
            System.out.println(quot;El mayor es: quot; + N1);
        else
            System.out.println(quot;El mayor es: quot; + N2);
    }
}




35È7,$ 
     Obtener e imprimir el nuevo sueldo de un trabajador, aplicando un aumento del 15% si su sueldo
es inferior a $1000 y 12% en caso contrario.


2EMHWLYR GH OD SUiFWLFD

      ,PSOHPHQWDU FODVHV TXH UHTXLHUDQ GH HVWUXFWXUDV VHOHFWLYDV SDUD SUREDUODV HQ XQD DSOLFDFLyQ

$QiOLVLV GHO 3UREOHPD

     El nuevo sueldo del trabajador depende principalmente de su sueldo actual, por lo tanto, la variable
que solicitada es 6XHOGR%DVH, comparada con la cantidad de $1000 se aplicara, si resulta menor se
incrementara un 15% al salario, en caso contrario solo incrementar 12%.

                                                                 inicio


                                                              leer Salario



                                               Si                                         No
                                                             Salario  1000


                          Salario = Salario * 1.15                                         Salario = Salario * 1.12




                                                                Escribir
                                                                Salario


                                                                  fin
                                                     #¥ £¨§¥£ ¢ 
                                                     quot;!    © £¦ ¤ ¡       Práctica 7



138
FUNDAMENTOS DE PROGRAMACIÓN                                                         MANUAL DE PRÁCTICAS


3VHXGRFyGLJR

inicio
     leer Salario
     si Salario  1000
          escribir Salario = Salario * 1.15
     sino
          escribir Salario = Salario * 1.12
     fin_si
fin

3URJUDPD HQ -DYD

import java.io.*;
public class Practica_7{
    public static void main (String args[])throws IOException{
        double Salario;
        BufferedReader Calc = new BufferedReader(new InputStreamReader(System.in));
        System.out.println(quot;Introduzca el salario del trabajadorquot;);
        Salario = Float.parseFloat(Calc.readLine());
        if (Salario  1000)
            Salario = Salario*1.15;
        else
            Salario = Salario*1.12;
        System.out.println(quot;El nuevo sueldo del trabajador es:quot;+ Salario);
    }
}




35È7,$ 
    Imprimir tres números enteros diferentes leídos desde el teclado en forma descendente.



2EMHWLYR GH OD SUiFWLFD

    ,PSOHPHQWDU FODVHV TXH UHTXLHUDQ GH HVWUXFWXUDV VHOHFWLYDV DQLGDGDV SDUD SUREDUODV HQ XQD
DSOLFDFLyQ


$QiOLVLV GHO 3UREOHPD

     Dados los datos A, B, C que representan variables de tipo LQW, ordenarlos en forma descendentes,
esto con ayuda de varias estructuras selectivas LI HOVH anidadas




                                                                                                  139
MANUAL DE PRÁCTICAS                                                                           FUNDAMENTOS DE PROGRAMACIÓN




                                                            inicio


                                                        leer A, B, C,



                                           Si                                     No
                                                           AB


                      Si                 No                                       Si              No
                              AC                                                      BC


                                         escribir                                                 escribir
           Si                   No                             Si                        No
                                         C, A, B                                                  C, B, A
                  BC                                                       AC


      escribir                escribir                    escribir                     escribir
      A, B, C                 A, C, B,                    B, A, C                      B, C, A,




                                                             fin

                                                #¥ £¨§¥£ ¢ 
                                                quot;!    © £¦ ¤ ¡    Práctica 8


3VHXGRFyGLJR

inicio
     leer A, B, C,
     si A  B
          si A  C
               si B  C
                    escribir A, B, C
               sino
                    escribir A, C, B
               fin_si
          sino
               escribir C, A, B
          fin_si
     sino
          si B  C
               si A  C
                    escribir B, A, C
               sino
                    escribir B, C, A
               fin_si
          sino
               escribir C, B, A
          fin_si
     fin_si
fin
140
FUNDAMENTOS DE PROGRAMACIÓN                                                            MANUAL DE PRÁCTICAS


3URJUDPD HQ -DYD

import java.io.*;
public class Practica_8{
    public static void main (String args[])throws IOException{
        int A,B,C;
        InputStreamReader res = new InputStreamReader (System.in);
        BufferedReader calculo = new BufferedReader(res);
        System.out.println(quot;Introduzca el valor de Aquot;);
        A=Integer.parseInt(calculo.readLine());
        System.out.println(quot;Introduzca el valor de Bquot;);
        B=Integer.parseInt(calculo.readLine());
        System.out.println(quot;Introduzca el valor de Cquot;);
        C=Integer.parseInt(calculo.readLine());
        if (AB)
            if (AC)
                if (BC)
                    System.out.println(A+quot; quot;+B+quot; quot;+C);
                else
                    System.out.println(A+quot; quot;+C+quot; quot;+B);
            else
                    System.out.println(C+quot; quot;+A+quot; quot;+B);
        else
            if (BC)
                if (AC)
                    System.out.println(B+quot; quot;+A+quot; quot;+C);
                else
                    System.out.println(B+quot; quot;+C+quot; quot;+A);
            else
                System.out.println(C+quot; quot;+ B+quot; quot;+A);
    }
}




35È7,$ 
     Imprimir los nombres de los días de la semana, en función del valor de una variable Dia
introducida por el teclado.


2EMHWLYR GH OD SUiFWLFD

    ,PSOHPHQWDU FODVHV TXH UHTXLHUDQ GH HVWUXFWXUDV VHOHFWLYDV P~OWLSOHV SDUD LPSOHPHQWDUODV HQ HO
GHVDUUROOR GH DSOLFDFLRQHV

$QiOLVLV GHO 3UREOHPD

     La variable Día introducida por el usuario será de tipo LQW, y a partir de ella obtendremos el día de
la semana correspondiente, para ello haremos uso de la estructura selectiva múltiple VZLWFK, debido a
que cada sentencia FDVH se corresponde con un único valor de H[SUHVLyQ No se pueden establecer
rangos o condiciones, como en el caso del LI HOVH, sino que se debe comparar con valores concretos.



                                                                                                     141
MANUAL DE PRÁCTICAS                                                                             FUNDAMENTOS DE PROGRAMACIÓN




                                                             inicio


                                                            leer Dia



                                                              Dia


          1           2              3             4                       5            6              7         Otro


      Escribir      Escribir     Escribir        Escribir                Escribir    Escribir        Escribir   Escribir
      “ Lunes”     “ Martes”   “ Miércoles”     “ Jueves”              “ Viernes”   “ Sabado”      “ Domingo”   “ Error”




                                                               fin

                                              #¥ £¨§¥£ ¢ 
                                              quot;!    © £¦ ¤ ¡        Práctica 9


3VHXGRFyGLJR

inicio
     leer Dia
     según sea Dia
          1: escribir “ Lunes”
          2: escribir “ Martes”
          3: escribir “ Miércoles”
          4: escribir “ Jueves”
          5: escribir “ Viernes”
          6: escribir “ Sábado”
          7: escribir “ Domingo”
          otro: escribir “ Error”
     fin_según
fin


3URJUDPD HQ -DYD

import java.io.*;
public class Practica_9{
    public static void main (String args[])throws IOException{
        int Dia;
        BufferedReader calc = new BufferedReader(new InputStreamReader(System.in));
        System.out.println(quot;Introduzca el numero del dia de la semanaquot;);
        Dia = Integer.parseInt(calc.readLine());
        switch (Dia){
            case 1: System.out.println(quot;Lunesquot;);   break;
            case 2: System.out.println(quot;Martesquot;);  break;

142
FUNDAMENTOS DE PROGRAMACIÓN                                                            MANUAL DE PRÁCTICAS

             case 3: System.out.println(quot;Miercolesquot;);break;
             case 4: System.out.println(quot;Juevesquot;);    break;
             case 5: System.out.println(quot;Viernesquot;); break;
             case 6: System.out.println(quot;Sabadoquot;);    break;
             case 7: System.out.println(quot;Domingoquot;); break;
             default:    System.out.println(quot;Errorquot;); break;
         }
    }
}

    Los valores no comprendidos en ninguna sentencia FDVH se pueden gestionar en GHIDXOW, que es
opcional. En ausencia de EUHDN, cuando se ejecuta una sentencia FDVH se ejecutan también todas las que
van a continuación, hasta que se llega a un EUHDN o hasta que se termina el VZLWFK.


35È7,$ 
    Imprimir el número de días de un mes, en función del número de orden dentro del calendario
(1= Enero, 2 = Febrero, etc.) y teniendo en cuenta si el año es bisiesto o no.


2EMHWLYR GH OD SUiFWLFD

    ,PSOHPHQWDU FODVHV TXH UHTXLHUDQ GH HVWUXFWXUDV VHOHFWLYDV P~OWLSOHV SDUD LPSOHPHQWDUODV HQ HO
GHVDUUROOR GH DSOLFDFLRQHV

$QiOLVLV GHO SUREOHPD

    La obtención del número de días con los que cuenta un mes, requiere de dos variables de tipo LQW,
Mes, la palabra Año no puede ser utilizada como identificador válido porque la mayoría de los
compiladores no reconoce la letra x, para este caso utilizaremos el identificador Anio y para ello
debemos tomar en consideración si el año es o no bisiesto, esto se llevara a cabo a partir de las
siguientes reglas:

        5HJOD  Los años exactamente divisibles entre 4 VRQ años bisiestos.
    •
        5HJOD  Los años exactamente divisibles entre 100 QR VRQ años bisiestos.
    •
        5HJOD  Los años exactamente divisibles entre 400 VRQ años bisiestos
    •

    Decidir si utilizar la sentencia LI o VZLWFK es a consideración del programador, el cual puede decidir
cuál usar basado en la legibilidad y otros factores. La sentencia LI se puede utilizar para tomar las
decisiones basadas en gamas de valores o de condiciones, mientras que la sentencia VZLWFK puede tomar
las decisiones basadas solamente en un solo número entero, un valor enumerado o único.

    Otro punto de interés es la sentencia EUHDN después de cada FDVH. Cada sentencia EUHDN termina la
declaración FDVH que incluye, y el flujo del control continúa con la siguiente declaración FDVH Las
declaraciones EUHDN son necesarias porque sin ellas el control fluiría secuencialmente con declaraciones
FDVH subsecuentes. Esta práctica nos ilustra una de las utilidades de la sentencia FDVH dentro de la
estructura secuencial múltiple VZLWFK



                                                                                                     143
MANUAL DE PRÁCTICAS                                                                                              FUNDAMENTOS DE PROGRAMACIÓN




                                                                   inicio


                                                               leer Mes, Anio



                                                                    Mes

                                      4, 6, 9, 11
              1, 3, 5, 7, 8, 10, 12                                                2                                       Otro


                   Escribir            Escribir                                                                         Escribir
                    “ 31”               “ 30”                                                                         “ No existe”
                                                                                      6)
                                                                                    0
                                                                       [(Anio                4 = 0)
                                                       Si                                                  No
                                                                  7
                                                                  6 07          6)
                                                                                0
                                                                          (Anio                100 = 0)]
                                                                    6
                                                                    (             6)
                                                                                  0
                                                                        (Anio                400 = 0)


                                                    Escribir                                               Escribir
                                                     “ 29”                                                  “ 28”




                                                                     fin

                                                     #¥4 ¨§¥ ¢$
                                                     65 3 2 1 0 ) ( ' %    Práctica 10




3VHXGRFyGLJR

inicio
     leer Mes, Anio
     según sea Mes
          1, 3, 5, 7, 8, 10, 12: escribir “ 31”
          4, 6, 9, 11: escribir “ 30”
          2: si ((Anio % 4 = 0  !Anio % 100 = 0) || Anio % 400 = 0)
                    escribir “ 29”
             sino
                    escribir “ 30”
             fin_si
          otro: escribir “ No existe”
     fin_segun
fin




144
FUNDAMENTOS DE PROGRAMACIÓN                                                         MANUAL DE PRÁCTICAS


3URJUDPD HQ MDYD

import java.io.*;
public class Practica_10 {
    public static void main(String[] args) throws IOException {
        int Mes;
        int Anio;
        BufferedReader Oper= new BufferedReader (new InputStreamReader(System.in));
        System.out.println (quot;Introduzca el numero del mesquot;);
        Mes = Integer.parseInt(Oper.readLine());
        System.out.println (quot;Introduzca el anioquot;);
        Anio = Integer.parseInt(Oper.readLine());
        switch (Mes) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                  System.out.println(quot;Numero de dias = 31 quot;); break;
            case 4:
            case 6:
            case 9:
            case 11:
                  System.out.println(quot;Numero de dias = 30 quot;); break;
            case 2:
                  if (((Anio % 4 == 0)  !(Anio % 100 == 0)) || (Anio % 400 == 0))
                      System.out.println(quot;Numero de dias = 29 quot;);
                  else
                      System.out.println(quot;Numero de dias = 28 quot;);
                  break;
            default:
                  System.out.println(quot;No existequot;);    break;
        }
    }
}



35È7,$ 
    Desarrolle un programa que invierta un número entero N dado por el usuario.


2EMHWLYR GH OD SUiFWLFD

    RPSUHQGHU HO XVR  IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH
LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ

$QiOLVLV GHO SUREOHPD

    El fin de la práctica es mostrar el número invertido de una cifra, por ejemplo, de 12345 su número
invertido es 54321.




                                                                                                  145
MANUAL DE PRÁCTICAS                                                               FUNDAMENTOS DE PROGRAMACIÓN


     Para esta circunstancia, definimos las variables num_inv = 0, div_entera = num,
resto_div = 0; el procedimiento a seguir es obtener el residuo de las divisiones sucesivas de la
variable num de tipo LQW entre 10, para posteriormente sumar este residuo a la variable resto_div
multiplicada por 10.

                                                     inicio


                                                   leer num



                                                 num_inv = 0
                                               div_entera = num
                                                 resto_div = 0




                                                                             No
                                                div_entera != 0


                                                 Si
                                         resto_div = div_entera mod 10



                                          div_entera = div_entera / 10



                                      num_inv = num_inv * 10 + resto_div




                                                    escribir
                                                   num_inv


                                                      fin

                                        #¥4 ¨§¥ ¢$
                                        65 3 2 1 0 ) ( ' %    Práctica 11


3VHXGRFyGLJR

Inicio
     escribir “ Ingrese número”
     leer num
     num_inv = 0
     div_entera = num
     resto_div = 0
     mientras div_entera != 0
          hacer resto_div = div_entera mod 10
          hacer div_entera = div_entera / 10
          hacer num_inv = num_inv * 10 + resto_div
     fin_mientras
     escribir quot;El numero quot; + num + quot; invertido es quot; + num_inv
fin

146
FUNDAMENTOS DE PROGRAMACIÓN                                                            MANUAL DE PRÁCTICAS


3URJUDPD HQ -DYD
import java.io.*;
class Practica_11{
     public static void main(String Arg[ ]) throws IOException {
         int num , num_inv , div_entera , resto_div;
         BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
         System.out.print(quot;Ingrese numero : quot;);
         num = Integer.parseInt(in.readLine());
         num_inv = 0;
         div_entera = num;
         resto_div = 0;
         while (div_entera != 0) {
            resto_div = div_entera % 10;
            div_entera = div_entera / 10;
            num_inv = num_inv * 10 + resto_div;
         }
         System.out.println(quot;El numero quot; + num + quot; invertido es quot; + num_inv);
   }
}



35È7,$ 
    Calcular e imprimir la media de N números dados por el usuario.


2EMHWLYR GH OD SUiFWLFD

    RPSUHQGHU HO XVR  IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH
LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ

$QiOLVLV GHO SUREOHPD

     Para realizar el cálculo del promedio de una cierta cantidad de números definiremos las siguientes
variables:

    N : tipo LQW, determinará el número de veces que la estructura de repetición se efectuará;

     Contador: tipo LQW un contador es una variable que incrementa de forma constante dentro de la
estructura de repetición.

    Acumulador: tipo GRXEOH, almacena la suma de los números introducidos desde el teclado;

    Promedio: tipo GRXEOH guarda la media de los números dados, mediante la formula:


                                     Promedio = Acumulador / N




                                                                                                     147
MANUAL DE PRÁCTICAS                                                              FUNDAMENTOS DE PROGRAMACIÓN




                                                     inicio


                                         N = 0, Contador =1, x = 0
                                        Acumulador =0, Promedio = 0



                                                     leer N



                                                                            No
                                               Contador = N


                                                Si
                                                     leer x



                                       Acumulador = Acumulador + x



                                          Contador = Contador + 1




                                         Promedio = Acumulador / N



                                                   escribir
                                                  Promedio


                                                      fin

                                       #¥4 ¨§¥ ¢$
                                       65 3 2 1 0 ) ( ' %    Práctica 12


3VHXGRFyGLJR

inicio
     N = 0, x = 0, Acumulador = 0, Promedio = 0, Contador = 1
     leer N
     mientras Contador  = N
          leer x
          hacer Acumulador =Acumulador + x
          hacer Contador = Contador + 1
     fin_mientras
     hacer Promedio = Acumulador / N
     escribir Promedio
fin




148
FUNDAMENTOS DE PROGRAMACIÓN                                                          MANUAL DE PRÁCTICAS


3URJUDPD HQ -DYD

import java.io.*;
public class Practica_12{
    public static void main(String arg[]) throws IOException{
        int N = 0, Contador = 1;
        double Acumulador = 0, Promedio = 0, x = 0;
        BufferedReader calc = new BufferedReader (new InputStreamReader(System.in));
        System.out.println(quot;Dame un numero: quot;);
        N = Integer.parseInt(calc.readLine());
        while (Contador = N){
            System.out.println(quot;Numero quot;+Contador);
            x = Float.parseFloat(calc.readLine());
            Acumulador= Acumulador + x;
            Contador=Contador+1;
        }
        Promedio = Acumulador / N;
        System.out.println(quot;El promedio es: quot; + Promedio);
    }
}




35È7,$ 
    Imprimir los números impares menores o iguales a N.



2EMHWLYR GH OD SUiFWLFD


    RPSUHQGHU HO XVR  IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH
LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ


$QiOLVLV GHO SUREOHPD


    Para resolver este ejercicio necesitaremos de una variable Contador de tipo LQW y un variable N que
delimitara el numero de iteraciones de la estructura repetitiva ZKLOH Incrementaremos el contador en
dos unidades en cada iteración para desplegar el número impar correspondiente.




                                                                                                   149
MANUAL DE PRÁCTICAS                                                                    FUNDAMENTOS DE PROGRAMACIÓN




                                                         inicio


                                                N = 0, Contador =1



                                                         leer N




                                                                                  No
                                                  Contador = N


                                                   Si
                                                         escribir
                                                        Contador


                                             Contador = Contador + 2




                                                           fin

                                          #¥4 ¨§¥ ¢$
                                          65 3 2 1 0 ) ( ' %       Práctica 13




3VHXGRFyGLJR

inicio
     N = 0, Contador = 1
     leer N
     mientras Contador = N
          imprimir Contador
          hacer Contador = Contador + 2
     fin_mientras
fin


3URJUDPD HQ -DYD

import java.io.*;
public class Practica_13{
    public static void main(String arg[]) throws IOException{
        int N = 0, Contador = 1;
        BufferedReader calc = new BufferedReader (new InputStreamReader(System.in));
        System.out.println(quot;Dame un numero: quot;);
        N = Integer.parseInt(calc.readLine());
        while (Contador = N){
            System.out.println(Contador);
            Contador=Contador + 2;
        }
    }
}

150
FUNDAMENTOS DE PROGRAMACIÓN                                                          MANUAL DE PRÁCTICAS


35È7,$ 
    Imprimir la tabla de Multiplicar de N.



2EMHWLYR GH OD SUiFWLFD

    RPSUHQGHU HO XVR  IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH
LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ


$QiOLVLV GHO SUREOHPD

    Se desea mostrar la tabla de multiplicar de un número dado, a partir de una estructura cíclica ZKLOH
con la cual utilizaremos una variable de tipo LQW llamada Contador que incrementa su valor en uno, para
esto aplicaremos un operador de incremento Contador++; que es similar a la expresión aritmética
Contador = Contador + 1, observe que el resultado es idéntico en ambos casos.




                                                        inicio


                                                 N = 0, Contador =1



                                                        leer N




                                                                               No
                                                   Contador = N


                                                   Si
                                                       escribir
                                     N + “ * ” + Contador + “ = ” + N * Contador




                                                    Contador++




                                                         fin

                                          #¥4 ¨§¥ ¢$
                                          65 3 2 1 0 ) ( ' %    Práctica 14




                                                                                                   151
MANUAL DE PRÁCTICAS                                                        FUNDAMENTOS DE PROGRAMACIÓN


3VHXGRFyGLJR

inicio
     N = 0, Contador = 1
     leer N
     mientras Contador = 10
          imprimir N + “ * ” + Contador + “ = “ + N*Contador
          hacer Contador ++
     fin_mientras
fin

3URJUDPD HQ -DYD

import java.io.*;
public class Practica_14{
    public static void main(String arg[]) throws IOException{
        int N = 0, Contador = 1;
        BufferedReader calc = new BufferedReader (new InputStreamReader(System.in));
        System.out.println(quot;Dame un numero: quot;);
        N = Integer.parseInt(calc.readLine());
        while (Contador = 10){
            System.out.println(N+ quot; * quot; +Contador+quot; = quot; + N*Contador);
            Contador++;
        }
    }
}




35È7,$ 
      Imprimir y calcular el cociente y el resto de dos números enteros.



2EMHWLYR GH OD SUiFWLFD

    RPSUHQGHU HO XVR  IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH
LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ


$QiOLVLV GHO SUREOHPD

     El método de obtener el cociente y el resto es por restas sucesivas, el cual consiste en restar
sucesivamente el divisor del dividendo hasta obtener un resultado menor o igual que el divisor y que
será el resto de la división, el número de restas efectuadas será el cociente.




152
FUNDAMENTOS DE PROGRAMACIÓN                                                  MANUAL DE PRÁCTICAS




                                                      inicio


                                            Dividendo = 0, Divisor = 0
                                             Cociente = 0, Resto = 0



                                             leer Dividendo, Divisor


                                                Resto = Dividendo




                                                Resto -= Divisor



                                                   Cociente++


                                       Si
                                                 Resto = Divisor

                                                               No

                                                 Cociente, Resto



                                                       fin

                                        #¥4 ¨§¥ ¢$
                                        65 3 2 1 0 ) ( ' %    Práctica 15




3VHXGRFyGLJR

inicio
     Dividendo = 0, Divisor = 0, Cociente = 0, Resto = 0
     leer Dividendo, Divisor
     Resto = Dividendo
     repetir
          Resto – = Divisor
          Cociente++
     hasta que (Resto = Divisor)
     escribir “ El cociente es : ” + Cociente
     escribir “ El resto es : ” + Resto
fin




                                                                                           153
MANUAL DE PRÁCTICAS                                                         FUNDAMENTOS DE PROGRAMACIÓN


3URJUDPD HQ -DYD

import java.io.*;
public class Practica_15{
    public static void main(String arg[]) throws IOException{
        int Dividendo = 0, Divisor = 0, Cociente = 0, Resto = 0;
        BufferedReader calc = new BufferedReader (new InputStreamReader(System.in));
        System.out.println(quot;Dame el dividendo: quot;);
        Dividendo = Integer.parseInt(calc.readLine());
        System.out.println(quot;Dame el divisor: quot;);
        Divisor = Integer.parseInt(calc.readLine());
        Resto = Dividendo;

          do{
              Resto –= Divisor;
              Cociente++;
          } while (Resto = Divisor);
          System.out.println(quot;El Cociente es:quot; +Cociente+quot;             El Resto es: quot;+Resto);
      }
}




35È7,$ 
      Construya un programa que indique al usuario los números primos comprendidos entre 1 y N.



2EMHWLYR GH OD SUiFWLFD

    RPSUHQGHU HO XVR  IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH
LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ

$QiOLVLV GHO SUREOHPD

    La característica principal de un número primo consiste en que éste solo es divisible entre si mismo
y uno, por lo tanto, el algoritmo consiste en buscar si el entero tiene un divisor diferente de los dos
anteriores; el proceso se lleva a cabo KDVWD la mitad entera del valor a evaluar ya que después de esta
cualquier valor no divide a éste.

     Un FRQWDGRU es una variable cuyo valor se incrementa o decrementa en una cantidad fija en cada
iteración, en este caso el contador lo inicializaremos en 1 e irá incrementando su valor hasta N, para
mostrar los números primos existentes, esta es una variable de tipo LQW.

    Para identificar si el número dentro del rango, es primo o no, se define la clase 3ULPR, la cual
devuelve una variable de tipo ERROHDQ o lógico (WUXH R IDOVH).




154
FUNDAMENTOS DE PROGRAMACIÓN                                                                                              MANUAL DE PRÁCTICAS




                        inicio                                                                         Primo (N)


                    Contador = 1
                                                                                                  primo = true,    i=2


                     leer Numero

                                                                                        No                                  Si
                                                                                                    (N mod i == 0)
                        escribir                                                                      and (N3)
               “ Los número primos son:”
                                                                                                                            primo = false



          No                                Si
                    Numero. primo
                                                                                                          i++
                                           escribir Contador


                                                                                             Si
                                                                                                       iN/2


                     Contador++                                                                                   No
                                                                                                          fin


     Si
                 Contador = Numero


                                 No

                         fin

                                                        #¥4 ¨§¥ ¢$
                                                        65 3 2 1 0 ) ( ' %   Práctica 16


3VHXGRFyGLJR

inicio
     escribir “ Escribe un número”
     leer Numero
     escribir “ Los números primos son:”
     Contador = 1
     repetir
          Num = Contador
          Si (Num es SULPR)
               Escribir Contador
          Fin_si
          Contador++
     hasta que (Contador = Numero)
fin




                                                                                                                                            155
MANUAL DE PRÁCTICAS                                                    FUNDAMENTOS DE PROGRAMACIÓN


clase 3ULPR
inicio
     primo = verdadero
     i=2
     Constructor Primo (N): entero
     inicio
          repetir
              si (N mod i = 0) and (N3)
                   primo = falso
              fin_si
              i++
          hasta que (i  N / 2)
     fin
fin

3URJUDPD HQ -DYD

import java.io.*;
public class Practica_16{
    public static void main (String arg[]) throws IOException{
        int Numero, Contador;
        BufferedReader tecl = new BufferedReader(new InputStreamReader(System.in));
        System.out.println (quot;Escribe un numero:quot;);
        Numero = Integer.parseInt(tecl.readLine());
        System.out.println(quot;nLos numeros primos son:quot;);
        Contador = 1;
        do{
            Primo Num = new Primo(Contador);
            if (Num.primo)
                System.out.println(Contador);
            Contador++;
        } while (Contador = Numero);
    }
}

class Primo{
    public boolean primo = true;
    private int i=2;
    public Primo(int N){
        do{
            if ((N % i == 0)(N  3))
                primo = false;
            i++;
        }while(i  N / 2);
    }
}

    Al enviar información de salida hay ocasiones en que resulta útil agregar algo de formato con
                                              VHFXHQFLDV        GH     HVFDSH,
caracteres     especiales       llamado                                         un ejemplo     es
System.out.println(quot;?QLos números primos son:quot;), en donde ?Q representa
una nueva línea, es decir, coloca el cursor al principio de la siguiente línea.




156
FUNDAMENTOS DE PROGRAMACIÓN                                                                                    MANUAL DE PRÁCTICAS


35È7,$ 
    Construya un programa que calcule la función Factorial de un número N (N!).



2EMHWLYR GH OD SUiFWLFD

    RPSUHQGHU HO XVR  IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH
LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ

$QiOLVLV GHO SUREOHPD

     El factorial de un número entero positivo se define como el producto de todos los números
naturales anteriores o iguales a él. Se escribe n! y se lee “ n factorial” , por definición establecida el
factorial de 0 es 1. Por ejemplo:

                                                    5! = 1 * 2 * 3 * 4 * 5
                                                    5! = 120

     Para realizar el factorial del número, hacemos uso de una clase )DFWRULDO, que recibe el argumento
de tipo LQW 1, se definen también dos variables, la primera SXEOLF llamada IDFW inicializada en 1, y la
segunda SULYDWH L; y en el constructor )DFWRULDO es donde se realizan las iteraciones del ciclo IRU cuyo
valor inicial es 2, el valor final 1 y su incremento en 1 de L.

                        inicio                                                            Factorial (N)



                        escribir                                                             Fact = 1
               “ Introduzca un número”

                                                                                                                  No
                                                                                        i = 2 ; i = N ; i++
                     leer Numero
                                                                                                    Si

                                                                                             Fact += i
                           escribir
       “ El factorial de ” Numero “ es ” Num.fact




                          fin                                                                       fin

                                                    #¥H @¨§¥@ ¢8
                                                    PI G F E D C @B A 9   Práctica 17




                                                                                                                             157
MANUAL DE PRÁCTICAS                                               FUNDAMENTOS DE PROGRAMACIÓN


3VHXGRFyGLJR

inicio
     escribir “ Introduzca un número”
     leer Numero
     Factorial Num (Numero)
     escribir “ El factorial de “ Numero “ es “ Num.fact
fin

clase Factorial
inicio
     fact = 1
     contructor Factorial (N): entero
     inicio
          desde i=2 hasta i = N hacer i++
              hacer fact *= i
          fin_desde
     fin
fin

3URJUDPD HQ -DYD

import java.io.*;
public class Practica_17{
    public static void main (String arg[] ) throws IOException{
        int Numero;
        BufferedReader tecl= new BufferedReader (new InputStreamReader(System.in));
        System.out.println (quot;Introduzca un numero entero:quot;);
        Numero = Integer.parseInt(tecl.readLine());
        Factorial Num = new Factorial(Numero);
        System.out.println(quot;Factorial de quot;+ Numero +quot; es quot;+Num.fact);
    }
}

class Factorial{
    public double fact=1;
    private int i;
    public Factorial(int N) {
        for (i=2; i=N; i++){
            fact *= i;
        }
    }
}

   La expresión fact *= i utiliza un operador de asignación 
   que es similar a la expresión
fact = fact * i.




158
FUNDAMENTOS DE PROGRAMACIÓN                                                                               MANUAL DE PRÁCTICAS


35È7,$ 
    Construya un programa que realice e imprima el método de Fibonacci de un número N.


2EMHWLYR GH OD SUiFWLFD

    RPSUHQGHU HO XVR  IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH
LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ

$QiOLVLV GHO SUREOHPD

    Leonardo Pisan Fibonacci probablemente se conoce mejor por descubrir la sucesión de Fibonacci,
una sucesión de números que existe en la naturaleza. La serie de Fibonacci es la siguiente:

                               0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377,…

     El próximo número en la serie simplemente es la suma de los dos números anteriores. Los números
de arranque son 0 y 1. El tercer número se calculó de la suma 0+1 (ya que no hay ningún número antes
del primer 1) y es de nuevo 1. El próximo número es 1+1 = 2, luego 1+2 = 3, luego 2+3 = 5 y 5+3 = 8,
etc., esta serie es consecutiva e infinita.

                    inicio                                                           Fibonacci (N)



                     escribir                                                       Fib = 0 , Sig = 1
            “ Introduzca un número”


                                                                                   escribir “ – “ + Fib
                 leer Numero

                                                                                                             No
                                                                                    i = 1; i  N; i++
              Fibonacci (Numero)
                                                                                                  Si
                                                                                       Aux = Sig
                      fin

                                                                                       Sig += Fib



                                                                                       Fib = Aux



                                                                                   escribir “ – “ + Fib




                                                                                            fin

                                               #¥H @¨§¥@ ¢8
                                               PI G F E D C @B A 9   Práctica 18



                                                                                                                        159
MANUAL DE PRÁCTICAS                                                       FUNDAMENTOS DE PROGRAMACIÓN


3VHXGRFyGLJR

inicio
     escribir “ Introduce un numero entero”
     leer Numero
     Fibonacci (Numero)
fin

Funcion Fibonacci(N): entero
inicio
     Fib = 0, Sig = 1
     escribir Fib
     desde i = 1 hasta i  N hacer i++
          hacer Aux = Sig
          hacer Sig += Fib
          hacer Fib = Aux
          escribir “ - ” + Fib
     fin_desde
fin


3URJUDPD HQ -DYD
import java.io.*;
public class Practica_18{
    public static void main (String args[]) throws IOException{
        int Numero;
        BufferedReader tecl = new BufferedReader (new InputStreamReader(System.in));
        System.out.println(quot;Introduzca un numeroquot;);
        Numero = Integer.parseInt(tecl.readLine());
        Fibonacci(Numero);
    }

      public static void Fibonacci(int n){
          int fib=0, sig = 1;
          System.out.print(fib);
          for( int i = 1; i  n; i++){
              int aux = sig;
              sig += fib;
              fib = aux;
              System.out.print(quot; - quot;+fib);
          }
      }
}

    Es importante resaltar la definición de una función para calcular y mostrar la serie de Fibonacci
dentro de la cual se observa la inicialización de variables en la sentencia for( int i = 1; i 
n; i++) y int aux = sig; que también es una forma válida para la declaración de variables.




160
FUNDAMENTOS DE PROGRAMACIÓN                                                            MANUAL DE PRÁCTICAS


35È7,$ 
    Construya un programa que muestre los múltiplos de 3 en orden descendente a partir de 99.


2EMHWLYR GH OD SUiFWLFD

    RPSUHQGHU HO XVR  IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH
LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ

$QiOLVLV GHO SUREOHPD

     La práctica consiste en decrementar el valor final del ciclo IRU en 3, con la expresión i-=, esta
es una de las características relevantes de la sentencia IRU, en donde el “ incremento” de la estructura
IRU puede ser negativo, en cuyo caso será realmente un decremento y el ciclo contará hacia atrás.



                                                      inicio


                                                                                  No
                                               i = 99; i =1; i - =3

                                                               Si


                                                 escribir “ – “ + i




                                                        fin

                                         #¥H @¨§¥@ ¢8
                                         PI G F E D C @B A 9        Práctica 19


3VHXGRFyGLJR

inicio
     desde i=99 hasta i=1 hacer i-=3
         escribir “ -“ + i
     fin_desde
fin

3URJUDPD HQ -DYD
public class Practica_19{
    public static void main (String args[]){
        for( int i = 99; i =1;i-=3){
            System.out.print(quot;-quot;+ i);
        }
    }
}



                                                                                                     161
MANUAL DE PRÁCTICAS                                                                        FUNDAMENTOS DE PROGRAMACIÓN


35È7,$ 
      Construya un programa que despliegue las tablas de multiplicar del 1 al 10.


2EMHWLYR GH OD SUiFWLFD

    RPSUHQGHU HO XVR  IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ DQLGDGDV HQ HO PRPHQWR GH
LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ

$QiOLVLV GHO SUREOHPD

    Aunque la realización de esta práctica aparenta ser sencilla el programador requiere de práctica y
experiencia en estructuras de repetición para poder anidarlas.



                                                           inicio


                                                                                      No
                                                   i = 1; i =10; i ++

                                                                   Si
                                                                                      No
                                                    j = 1; j =10; j++

                                                                   Si

                                                           escribir
                                                  i + ” *” + j + ” =” + i *j




                                                             fin

                                             #¥H @¨§¥@ ¢8
                                             PI G F E D C @B A 9        Práctica 20


3VHXGRFyGLJR

inicio
     desde i=1 hasta i=10 hacer i++
         desde j=1 hasta j=10 hacer j++
             escribir i +“ *” + j +” =” + i * j
         fin_desde
     fin_desde
fin




162
FUNDAMENTOS DE PROGRAMACIÓN                                   MANUAL DE PRÁCTICAS


3URJUDPD HQ -DYD

public class Practica_20{
    public static void main (String args[]){
        for( int i = 1; i =10;i++){
            for( int j=1; j= 10; j++)
                System.out.println(i+quot; * quot;+ j +quot; = quot;+ i*j);
            System.out.println(quot;nquot;);
        }
    }
}




                                                                            163
MANUAL DE PRÁCTICAS                                                                 FUNDAMENTOS DE PROGRAMACIÓN




      35È7,$6 35238(67$6

      1. Se definen los números triangulares como los obtenidos de sumar los números naturales
         sucesivos 1, 2, 3, ...; es decir, los primeros números triangulares son 1, 3, 6, 10, .... Elaborar un
         algoritmo para imprimir el N-ésimo número triangular. Describir el algoritmo mediante
         diagrama de flujo y Pseudocódigo.

      2. Diseñar un algoritmo que, dados 10 números enteros, indique cuantos de ellos son números
         pares, nos muestre estos y calcule la media aritmética de los impares.

      3. Se desea un algoritmo que realice la operación de suma o resta de so números leídos del teclado
         en función de la respuesta S/N a un mensaje de petición de datos.

      4. Diseñar el algoritmo de Euclides que calcule el M.C.D. (Máximo común divisor) de dos
         números A y B. Este método se basa en dos teoremas:

             •       Si dos números son divisibles el uno por el otro, el menor es su máximo común divisor.
             •       Si dos números a y b (ab) no son divisibles el uno por el otro, los divisores comunes de
                     a y b son los mismos que los de b y r, siendo r el resto de la división entera de a entre b.

      5. Elabore un programa para imprimir el triángulo de Floyd con un número dado de filas
         completas.

                 1
                 2     3
                 4     5    6
                 7     8    9    10

      6. La multiplicación ``a la rusa'' permite realizar el producto de dos números enteros utilizando
         solo sumas y divisiones o productos por dos. El método consiste en realizar sucesivamente las
         siguientes operaciones: multiplicar uno de los números por dos y obtener la división entera del
         otro, también por dos. Se detiene el proceso al obtener como cociente de la división un uno. Por
         ejemplo, para multiplicar 22 por 64 se obtienen las dos columnas siguientes:

                                                 22               64
                                                 11               128
                                                  5               256
                                                  2               512
                                                  1              1024
                                              22 x 64 =          1408

         A continuación sumamos los números de la columna de la derecha que corresponden a números
         impares en la columna de la izquierda, esto es en nuestro caso: 128+256+1.024=1.408 y el
         resultado de la suma es el producto de los números iniciales. Elaborar un programa en Pascal
         que multiplique mediante este método dos números enteros introducidos por pantalla.

164
FUNDAMENTOS DE PROGRAMACIÓN                                                            MANUAL DE PRÁCTICAS




   35È7,$6 35238(67$6

   7. Dado un número entero, N, si la suma de sus divisores (sin contar a si mismo) es igual a N se
      dice que ese número es perfecto. Si la suma es inferior, se dice que es deficiente, y si es superior
      se dice que es abundante. Por ejemplo:

               6 tiene como divisores 1, 2, 3: Su suma es 6, por lo tanto es perfecto.
           o
               8 tiene como divisores 1, 2, 4: Su suma es 7, por lo tanto es deficiente.
           o
               24 tiene como divisores 1, 2, 3, 4, 6, 8, 12: Su suma es 36, por lo tanto es abundante.
           o

       Escribir un programa que reciba un número entero como parámetro y devuelva un valor que lo
       clasifique como perfecto, deficiente o abundante.

   8. Diseñar un algoritmo que determine el precio de un billete de ida y vuelta en ferrocarril, dando
      la distancia a recorrer y el número de días en destino, sabiendo que si la estancia es superior a 7
      días y la distancia es superior a 800 km. el billete tiene una reducción del 30%. El precio por
      kilómetro es de 8,5 pesos.

   9. Diseñar un programa que cuente e imprima los dígitos de un número dado. Por ejemplo, 17568
      tiene 5 dígitos.

   10. Calcule el valor de PI (
D SDUWLU GH OD VHULH LQILQLWD

                                    4        4       4        4       4
                                         -       +        -       +       -…
                                    1        3       5        7       9

       Imprima una tabla que muestre el valor de PI aproximado a un termino de esta serie, a dos, a
       tres, a cuatro, hasta N.

   11. Ternas Pitagóricas. Un triangulo rectángulo puede tener lados que sean todos enteros. El
       conjunto de tres valores enteros para los lados de un triangulo rectángulo se conoce como una
       terna pitagórica. Estos tres lados deben de satisfacer la relación de que la suma de los cuadrados
       de dos de los lados es igual al cuadrado de la hipotenusa. Encuentre todas las ternas pitagóricas
       para lado1, lado2 e hipotenusa, todos ellos no mayores de 500. utilice un ciclo IRU de triple
       anidamiento que pruebe todas la posibilidades.




                                                                                                         165

Más contenido relacionado

La actualidad más candente

La actualidad más candente (8)

Diseño de bombas
Diseño de bombasDiseño de bombas
Diseño de bombas
 
Codigos c escritos
Codigos c escritosCodigos c escritos
Codigos c escritos
 
Analisis nodal hirschfeldt
Analisis nodal hirschfeldtAnalisis nodal hirschfeldt
Analisis nodal hirschfeldt
 
Bombas centrifugas
Bombas centrifugasBombas centrifugas
Bombas centrifugas
 
15+turbinas+pelton
15+turbinas+pelton15+turbinas+pelton
15+turbinas+pelton
 
1 bombas centrífugas ct5422 bc 01-01
1 bombas centrífugas  ct5422 bc 01-011 bombas centrífugas  ct5422 bc 01-01
1 bombas centrífugas ct5422 bc 01-01
 
Apuntes performance
Apuntes performanceApuntes performance
Apuntes performance
 
Cap ii y iii turbomaquinas
Cap ii y iii turbomaquinasCap ii y iii turbomaquinas
Cap ii y iii turbomaquinas
 

Similar a Manual JAVA

Ejercicios resueltos pascal
Ejercicios resueltos pascalEjercicios resueltos pascal
Ejercicios resueltos pascalAdriana Jimenez
 
Areas
AreasAreas
AreasJF-96
 
Ejemplos algoritmos (clase 1)
Ejemplos algoritmos (clase 1)Ejemplos algoritmos (clase 1)
Ejemplos algoritmos (clase 1)Miguel Manquillo
 
Guia de programacion Delfina 2010
Guia de programacion Delfina 2010Guia de programacion Delfina 2010
Guia de programacion Delfina 2010jose
 
Practica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIPractica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIJorge Iván Alba Hernández
 
Algoritmos computacionales y programación: 3
Algoritmos computacionales y programación: 3Algoritmos computacionales y programación: 3
Algoritmos computacionales y programación: 3Universidad Veracruzana
 
Pseudocódigo Delfina
Pseudocódigo DelfinaPseudocódigo Delfina
Pseudocódigo Delfinajose
 
3er semetre reportes
3er semetre reportes3er semetre reportes
3er semetre reportesAbelDM1104
 
Algoritmospseudocodigo
AlgoritmospseudocodigoAlgoritmospseudocodigo
AlgoritmospseudocodigoDavid Perez
 
Microcontroladores: Introducción al AVR Studio
Microcontroladores: Introducción al AVR StudioMicrocontroladores: Introducción al AVR Studio
Microcontroladores: Introducción al AVR StudioSANTIAGO PABLO ALBERTO
 
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresMicrocontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresSANTIAGO PABLO ALBERTO
 

Similar a Manual JAVA (20)

Programacion en pascal
Programacion en pascalProgramacion en pascal
Programacion en pascal
 
ejercicios-pascal
ejercicios-pascalejercicios-pascal
ejercicios-pascal
 
Ejercicios resueltos pascal
Ejercicios resueltos pascalEjercicios resueltos pascal
Ejercicios resueltos pascal
 
Ejercicio algoritmos
Ejercicio algoritmosEjercicio algoritmos
Ejercicio algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Diagrama de flujo.pdf
Diagrama de flujo.pdfDiagrama de flujo.pdf
Diagrama de flujo.pdf
 
Areas
AreasAreas
Areas
 
Ejemplos algoritmos (clase 1)
Ejemplos algoritmos (clase 1)Ejemplos algoritmos (clase 1)
Ejemplos algoritmos (clase 1)
 
Guia de programacion Delfina 2010
Guia de programacion Delfina 2010Guia de programacion Delfina 2010
Guia de programacion Delfina 2010
 
Practica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIPractica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FI
 
Vere
VereVere
Vere
 
Algoritmos computacionales y programación: 3
Algoritmos computacionales y programación: 3Algoritmos computacionales y programación: 3
Algoritmos computacionales y programación: 3
 
Pseudocódigo Delfina
Pseudocódigo DelfinaPseudocódigo Delfina
Pseudocódigo Delfina
 
Primera clase
Primera clasePrimera clase
Primera clase
 
Clase y asignación
Clase y asignaciónClase y asignación
Clase y asignación
 
3er semetre reportes
3er semetre reportes3er semetre reportes
3er semetre reportes
 
Algoritmospseudocodigo
AlgoritmospseudocodigoAlgoritmospseudocodigo
Algoritmospseudocodigo
 
Microcontroladores: Introducción al AVR Studio
Microcontroladores: Introducción al AVR StudioMicrocontroladores: Introducción al AVR Studio
Microcontroladores: Introducción al AVR Studio
 
Inicialización del modo gráfico de C
Inicialización del modo gráfico de CInicialización del modo gráfico de C
Inicialización del modo gráfico de C
 
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresMicrocontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
 

Más de GILDARDO MARTINEZ ESPINOSA (10)

Aspectos legales parte 2
Aspectos legales parte 2Aspectos legales parte 2
Aspectos legales parte 2
 
Aspectos legales parte 1
Aspectos legales parte 1Aspectos legales parte 1
Aspectos legales parte 1
 
Introduccion al desarrollo de software
Introduccion al desarrollo de softwareIntroduccion al desarrollo de software
Introduccion al desarrollo de software
 
Manual de Matlab70
Manual de Matlab70Manual de Matlab70
Manual de Matlab70
 
Manula Oracle 2
Manula Oracle 2Manula Oracle 2
Manula Oracle 2
 
Manualoracle 1
Manualoracle 1Manualoracle 1
Manualoracle 1
 
Revista Computer Hoy 263
Revista Computer Hoy 263Revista Computer Hoy 263
Revista Computer Hoy 263
 
Tabla De Transicion
Tabla De TransicionTabla De Transicion
Tabla De Transicion
 
Metodo Simplex
Metodo SimplexMetodo Simplex
Metodo Simplex
 
Formulario De Integrales
Formulario De IntegralesFormulario De Integrales
Formulario De Integrales
 

Último

texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 

Último (20)

texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 

Manual JAVA

  • 1. 0$18$/ '( 35É&7,&$6 Q /DYDULHJD ♦ P 0HUFDGR
  • 2. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN 35È7,$ Calcular e imprimir el área de un triangulo a partir de su base y altura. 2EMHWLYR GH OD SUiFWLFD ,PSOHPHQWDU XQD FODVH SDUD FRQRFHU VX HVWUXFWXUD H LPSOHPHQWDFLyQ HQ XQ OHQJXDMH GH SURJUDPDFLyQ $QiOLVLV GHO SUREOHPD Para calcular el área de la figura es necesario la introducción de dos variables: Base y Altura, y una tercera Area en donde se almacenara el resultado, todas de tipo IORDW. La superficie de un triangulo se calcula aplicando la siguiente fórmula: (Base * Altura) Area = 2 inicio leer Base, Altura Area = ( Base * Altura ) / 2 Escribir Area fin #¥ £¨§¥£ ¢  quot;! © £¦ ¤ ¡ Práctica 1 3VHXGRFyGLJR inicio leer Base, Altura hacer Area = (Base * Altura) / 2 escribir Area fin 130
  • 3. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 3URJUDPD HQ -DYD import java.io.*; public class Practica_1{ public static void main (String args[]) throws IOException{ float Base, Altura, Area; InputStreamReader res=new InputStreamReader(System.in); BufferedReader calculo=new BufferedReader(res); System.out.println(quot;Introduzca la base del trianguloquot;); Base = Float.parseFloat(calculo.readLine()); System.out.println(quot;Introduzca la altura del trianguloquot;); Altura = Float.parseFloat(calculo.readLine()); Area = (Base * Altura)/2; System.out.println(quot;La superficie del triangulo es: quot;+ Area); } } 35È7,$ Calcular e imprimir el costo total a cobrar al cliente en una gasolinera, tomando en cuenta que la gasolina que surten la registran en galones, pero el precio de la gasolina esta fijado en litros. 2EMHWLYR GH OD SUiFWLFD ,PSOHPHQWDU XQD FODVH SDUD FRQRFHU VX HVWUXFWXUD H LPSOHPHQWDFLyQ HQ XQ OHQJXDMH GH SURJUDPDFLyQ $QiOLVLV GHO SUREOHPD Para obtener el costo total a cobrar por el surtidor al cliente, sean dos variable Galones y Precio, que se necesitan leer desde el teclado y asignar el valor de la conversión del costo total de la gasolina en una variable Total, todas tipo GRXEOH. El equivalente a utilizar es de 3.785 Litros por Galón. inicio leer Galones, Precio Total = Galones * 3.785 * Precio Escribir Total fin #¥ £¨§¥£ ¢  quot;! © £¦ ¤ ¡ Práctica 2 131
  • 4. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN 3VHXGRFyGLJR inicio leer Galones, Precio hacer Total = Galones * 3.780 * Precio escribir Total fin 3URJUDPD HQ -DYD import java.io.*; public class Practica_2{ public static void main (String args[])throws IOException{ double Galones, Total, Precio; InputStreamReader res=new InputStreamReader(System.in); BufferedReader calculo=new BufferedReader(res); System.out.println(quot;Introduzca los galones de gasolinaquot;); Galones=Float.parseFloat(calculo.readLine()); System.out.println(quot;Introduzca el precio del litro de gasolinaquot;); Precio=Float.parseFloat(calculo.readLine()); Total=Galones*3.785*Precio; System.out.println(quot;Total a pagar del cliente es:quot;+Total); } } 35È7,$ Calcular e imprimir el área y volumen de un cilindro, dados su radio y altura. 2EMHWLYR GH OD SUiFWLFD ,PSOHPHQWDU XQ JUXSR GH FODVHV TXH XWLOLFHQ FRQVWUXFWRUHV PRGLILFDGRUHV GH DFFHVR SDUD DQDOL]DU GH TXp IRUPD DIHFWDQ HO IXQFLRQDPLHQWR GH ODV FODVHV FXDQGR VRQ UHFRPHQGDEOHV FDGD XQR GH HOORV $QiOLVLV GHO SUREOHPD Para el cálculo de los valores del área y volumen de un cilindro, es necesaria la lectura de dos variables Radio y Altura de tipo GRXEOH, así como dos variables de asignación de los valores de área y volumen, ambos de tipo GRXEOH. El área del cilindro lo calculamos aplicando la siguiente formula: UDGLR DOWXUD Área = 2 * 'RQGH El volumen del cilindro lo calculamos aplicando la siguiente formula: 9ROXPHQ UDGLR2 * altura 132
  • 5. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS inicio Pi = 3.141592 leer Radio, Altura Area = 2 * Pi * Radio * Altura Volumen = Pi * Radio * Radio * Altura Escribir Area, Volumen fin #¥ £¨§¥£ ¢  quot;! © £¦ ¤ ¡ Práctica 3 3VHXGRFyGLJR inicio Pi = 3.141592 leer Radio, Altura hacer Area = 2 * Pi * Radio * Altura hacer Volumen = Pi * Radio * Radio * Altura escribir Area escribir Volumen fin 3URJUDPD HQ -DYD 1 import java.io.*; 2 public class Practica_3{ 3 public static void main (String args[])throws IOException{ 4 double Radio, Altura; 5 InputStreamReader res=new InputStreamReader(System.in); 6 BufferedReader calculo=new BufferedReader(res); 7 System.out.println(quot;Introduzca el radioquot;); 8 Radio=Float.parseFloat(calculo.readLine()); 9 System.out.println(quot;Introduzca la alturaquot;); 10 Altura=Float.parseFloat(calculo.readLine()); 11 Cilindro cilindro = new Cilindro(Altura, Radio); 12 System.out.println(quot;El volumen del cilindro es:quot;+cilindro.volumen); 13 System.out.println(quot;El area del cilindro es:quot;+cilindro.area); 14 } 15 } 16 class Cilindro{ 17 public static final double PI = 3.14159265; 18 public double area, volumen; 133
  • 6. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN 19 public Cilindro(double h, double r) { 20 area = 2 * r * PI * h; 21 volumen = PI * r * r * h; 22 } 23 } En esta práctica se hace uso de dos clases, Practica_3 y Cilindro; la primera contiene la función PDLQ, en la cual realizamos la solicitud de las variables Radio y Altura, como se muestra de la línea 7 a la 10; la segunda clase es Cilindro, en donde inicialmente se define la variable PI como SXEOLF VWDWLF ILQDO, que indica que el valor no puede ser modificado, o lo que es lo mismo, es una FRQVWDQWH. La sentencia 18 nos muestra el modificador de acceso SXEOLF el cual nos indica que los atributos area y volumen son visibles fuera de la clase, contrario a si fueran declarados como SULYDWH. La sentencia 19 define el constructor general de la clase Cilindro, que recibe como argumentos (K U
  • 7. que son utilizados para calcular el área y volumen del cilindro. 35È7,$ Realizar e imprimir, la conversión de grados Celsius a grados Fahrenheit. 2EMHWLYR GH OD SUiFWLFD ,PSOHPHQWDU XQ JUXSR GH FODVHV TXH XWLOLFHQ FRQVWUXFWRUHV PRGLILFDGRUHV GH DFFHVR SDUD DQDOL]DU GH TXp IRUPD DIHFWDQ HO IXQFLRQDPLHQWR GH ODV FODVHV FXDQGR VRQ UHFRPHQGDEOHV FDGD XQR GH HOORV $QiOLVLV GHO SUREOHPD El cálculo de grados Celsius (centígrados) a grados Fahrenheit se genera a partir de la siguiente fórmula: ºF = 1.8 * ºC +32 inicio leer Centigrados Fahrenheit = 1.8 * Centigrados + 32 Escribir Fahrenheit fin #¥ £¨§¥£ ¢  quot;! © £¦ ¤ ¡ Práctica 4 134
  • 8. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 3VHXGRFyGLJR inicio leer Centigrados hacer Fahrenheit = 1.8 * Centigrados +32 escribir Fahrenheit fin 3URJUDPD HQ -DYD import java.io.*; public class Practica_4{ public static void main (String args[])throws IOException{ double Centigrado; InputStreamReader res=new InputStreamReader(System.in); BufferedReader calculo=new BufferedReader(res); System.out.println(quot;Introduzca el grados centigradosquot;); Centigrado=Float.parseFloat(calculo.readLine()); Grados grados = new Grados (Centigrado); System.out.println(quot;Los grados Fahrenheit son: quot;+grados.fahrenheit); } } class Grados{ public double fahrenheit; public Grados(double c) { fahrenheit = 1.8 * c + 32; } } 35È7,$ Construya un programa que tomando como dato la calificación de un alumno en un examen, escriba “Aprobado” en caso de que esa calificación sea mayor o igual a 8. 2EMHWLYR GH OD SUiFWLFD ,PSOHPHQWDU FODVHV TXH UHTXLHUDQ GH HVWUXFWXUDV VHOHFWLYDV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO SUREOHPD Para este ejercicio solo hacemos solicitud de una variable de tipo IORDW llamada calificación, que compararemos en una estructura selectiva LI simple. Solo si la condición resulta verdadera mostrara el mensaje “Aprobado”. 135
  • 9. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN inicio leer Calificacion Calificación = 8 Si No Escribir “ Aprobado” fin #¥ £¨§¥£ ¢  quot;! © £¦ ¤ ¡ Práctica 5 3VHXGRFyGLJR inicio leer Calificación si Calificación = 8 escribir “ Aprobado” fin_si fin 3URJUDPD HQ -DYD import java.io.*; public class Practica_5{ public static void main (String args[])throws IOException{ float Calificacion; InputStreamReader res= new InputStreamReader(System.in); BufferedReader calculo= new BufferedReader(res); System.out.println(quot;Introduzca la calificacionquot;); Calificacion=Float.parseFloat(calculo.readLine()); if (Calificacion=8) System.out.println(quot;Aprobadoquot;); } } 136
  • 10. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 35È7,$ Indique e imprima cual es el mayor de dos números dados. 2EMHWLYR GH OD SUiFWLFD ,PSOHPHQWDU FODVHV TXH UHTXLHUDQ GH HVWUXFWXUDV VHOHFWLYDV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO 3UREOHPD Se necesita introducir dos valores, almacenados en las variables N1 y N2 que declararemos como tipo LQW los cuales compararemos en una estructura selectiva LI HOVH que mostrara el mayor de los números dados. inicio leer N1, N2 No Si N1 N2 Escribir N2 Escribir N1 fin #¥ £¨§¥£ ¢  quot;! © £¦ ¤ ¡ Práctica 5 3VHXGRFyGLJR inicio leer N1, N2 si N1 N2 escribir N1 sino escribir N2 fin_si fin 137
  • 11. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN 3URJUDPD HQ -DYD import java.io.*; public class Practica_6{ public static void main (String args[])throws IOException{ int N1, N2; InputStreamReader res=new InputStreamReader(System.in); BufferedReader calculo=new BufferedReader(res); System.out.println(quot;Introduzca el entero numero 1quot;); N1=Integer.parseInt(calculo.readLine()); System.out.println(quot;Introduzca el entero numero 2quot;); N2=Integer.parseInt(calculo.readLine()); if (N1N2) System.out.println(quot;El mayor es: quot; + N1); else System.out.println(quot;El mayor es: quot; + N2); } } 35È7,$ Obtener e imprimir el nuevo sueldo de un trabajador, aplicando un aumento del 15% si su sueldo es inferior a $1000 y 12% en caso contrario. 2EMHWLYR GH OD SUiFWLFD ,PSOHPHQWDU FODVHV TXH UHTXLHUDQ GH HVWUXFWXUDV VHOHFWLYDV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO 3UREOHPD El nuevo sueldo del trabajador depende principalmente de su sueldo actual, por lo tanto, la variable que solicitada es 6XHOGR%DVH, comparada con la cantidad de $1000 se aplicara, si resulta menor se incrementara un 15% al salario, en caso contrario solo incrementar 12%. inicio leer Salario Si No Salario 1000 Salario = Salario * 1.15 Salario = Salario * 1.12 Escribir Salario fin #¥ £¨§¥£ ¢  quot;! © £¦ ¤ ¡ Práctica 7 138
  • 12. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 3VHXGRFyGLJR inicio leer Salario si Salario 1000 escribir Salario = Salario * 1.15 sino escribir Salario = Salario * 1.12 fin_si fin 3URJUDPD HQ -DYD import java.io.*; public class Practica_7{ public static void main (String args[])throws IOException{ double Salario; BufferedReader Calc = new BufferedReader(new InputStreamReader(System.in)); System.out.println(quot;Introduzca el salario del trabajadorquot;); Salario = Float.parseFloat(Calc.readLine()); if (Salario 1000) Salario = Salario*1.15; else Salario = Salario*1.12; System.out.println(quot;El nuevo sueldo del trabajador es:quot;+ Salario); } } 35È7,$ Imprimir tres números enteros diferentes leídos desde el teclado en forma descendente. 2EMHWLYR GH OD SUiFWLFD ,PSOHPHQWDU FODVHV TXH UHTXLHUDQ GH HVWUXFWXUDV VHOHFWLYDV DQLGDGDV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO 3UREOHPD Dados los datos A, B, C que representan variables de tipo LQW, ordenarlos en forma descendentes, esto con ayuda de varias estructuras selectivas LI HOVH anidadas 139
  • 13. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN inicio leer A, B, C, Si No AB Si No Si No AC BC escribir escribir Si No Si No C, A, B C, B, A BC AC escribir escribir escribir escribir A, B, C A, C, B, B, A, C B, C, A, fin #¥ £¨§¥£ ¢  quot;! © £¦ ¤ ¡ Práctica 8 3VHXGRFyGLJR inicio leer A, B, C, si A B si A C si B C escribir A, B, C sino escribir A, C, B fin_si sino escribir C, A, B fin_si sino si B C si A C escribir B, A, C sino escribir B, C, A fin_si sino escribir C, B, A fin_si fin_si fin 140
  • 14. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 3URJUDPD HQ -DYD import java.io.*; public class Practica_8{ public static void main (String args[])throws IOException{ int A,B,C; InputStreamReader res = new InputStreamReader (System.in); BufferedReader calculo = new BufferedReader(res); System.out.println(quot;Introduzca el valor de Aquot;); A=Integer.parseInt(calculo.readLine()); System.out.println(quot;Introduzca el valor de Bquot;); B=Integer.parseInt(calculo.readLine()); System.out.println(quot;Introduzca el valor de Cquot;); C=Integer.parseInt(calculo.readLine()); if (AB) if (AC) if (BC) System.out.println(A+quot; quot;+B+quot; quot;+C); else System.out.println(A+quot; quot;+C+quot; quot;+B); else System.out.println(C+quot; quot;+A+quot; quot;+B); else if (BC) if (AC) System.out.println(B+quot; quot;+A+quot; quot;+C); else System.out.println(B+quot; quot;+C+quot; quot;+A); else System.out.println(C+quot; quot;+ B+quot; quot;+A); } } 35È7,$ Imprimir los nombres de los días de la semana, en función del valor de una variable Dia introducida por el teclado. 2EMHWLYR GH OD SUiFWLFD ,PSOHPHQWDU FODVHV TXH UHTXLHUDQ GH HVWUXFWXUDV VHOHFWLYDV P~OWLSOHV SDUD LPSOHPHQWDUODV HQ HO GHVDUUROOR GH DSOLFDFLRQHV $QiOLVLV GHO 3UREOHPD La variable Día introducida por el usuario será de tipo LQW, y a partir de ella obtendremos el día de la semana correspondiente, para ello haremos uso de la estructura selectiva múltiple VZLWFK, debido a que cada sentencia FDVH se corresponde con un único valor de H[SUHVLyQ No se pueden establecer rangos o condiciones, como en el caso del LI HOVH, sino que se debe comparar con valores concretos. 141
  • 15. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN inicio leer Dia Dia 1 2 3 4 5 6 7 Otro Escribir Escribir Escribir Escribir Escribir Escribir Escribir Escribir “ Lunes” “ Martes” “ Miércoles” “ Jueves” “ Viernes” “ Sabado” “ Domingo” “ Error” fin #¥ £¨§¥£ ¢  quot;! © £¦ ¤ ¡ Práctica 9 3VHXGRFyGLJR inicio leer Dia según sea Dia 1: escribir “ Lunes” 2: escribir “ Martes” 3: escribir “ Miércoles” 4: escribir “ Jueves” 5: escribir “ Viernes” 6: escribir “ Sábado” 7: escribir “ Domingo” otro: escribir “ Error” fin_según fin 3URJUDPD HQ -DYD import java.io.*; public class Practica_9{ public static void main (String args[])throws IOException{ int Dia; BufferedReader calc = new BufferedReader(new InputStreamReader(System.in)); System.out.println(quot;Introduzca el numero del dia de la semanaquot;); Dia = Integer.parseInt(calc.readLine()); switch (Dia){ case 1: System.out.println(quot;Lunesquot;); break; case 2: System.out.println(quot;Martesquot;); break; 142
  • 16. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS case 3: System.out.println(quot;Miercolesquot;);break; case 4: System.out.println(quot;Juevesquot;); break; case 5: System.out.println(quot;Viernesquot;); break; case 6: System.out.println(quot;Sabadoquot;); break; case 7: System.out.println(quot;Domingoquot;); break; default: System.out.println(quot;Errorquot;); break; } } } Los valores no comprendidos en ninguna sentencia FDVH se pueden gestionar en GHIDXOW, que es opcional. En ausencia de EUHDN, cuando se ejecuta una sentencia FDVH se ejecutan también todas las que van a continuación, hasta que se llega a un EUHDN o hasta que se termina el VZLWFK. 35È7,$ Imprimir el número de días de un mes, en función del número de orden dentro del calendario (1= Enero, 2 = Febrero, etc.) y teniendo en cuenta si el año es bisiesto o no. 2EMHWLYR GH OD SUiFWLFD ,PSOHPHQWDU FODVHV TXH UHTXLHUDQ GH HVWUXFWXUDV VHOHFWLYDV P~OWLSOHV SDUD LPSOHPHQWDUODV HQ HO GHVDUUROOR GH DSOLFDFLRQHV $QiOLVLV GHO SUREOHPD La obtención del número de días con los que cuenta un mes, requiere de dos variables de tipo LQW, Mes, la palabra Año no puede ser utilizada como identificador válido porque la mayoría de los compiladores no reconoce la letra x, para este caso utilizaremos el identificador Anio y para ello debemos tomar en consideración si el año es o no bisiesto, esto se llevara a cabo a partir de las siguientes reglas: 5HJOD Los años exactamente divisibles entre 4 VRQ años bisiestos. • 5HJOD Los años exactamente divisibles entre 100 QR VRQ años bisiestos. • 5HJOD Los años exactamente divisibles entre 400 VRQ años bisiestos • Decidir si utilizar la sentencia LI o VZLWFK es a consideración del programador, el cual puede decidir cuál usar basado en la legibilidad y otros factores. La sentencia LI se puede utilizar para tomar las decisiones basadas en gamas de valores o de condiciones, mientras que la sentencia VZLWFK puede tomar las decisiones basadas solamente en un solo número entero, un valor enumerado o único. Otro punto de interés es la sentencia EUHDN después de cada FDVH. Cada sentencia EUHDN termina la declaración FDVH que incluye, y el flujo del control continúa con la siguiente declaración FDVH Las declaraciones EUHDN son necesarias porque sin ellas el control fluiría secuencialmente con declaraciones FDVH subsecuentes. Esta práctica nos ilustra una de las utilidades de la sentencia FDVH dentro de la estructura secuencial múltiple VZLWFK 143
  • 17. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN inicio leer Mes, Anio Mes 4, 6, 9, 11 1, 3, 5, 7, 8, 10, 12 2 Otro Escribir Escribir Escribir “ 31” “ 30” “ No existe” 6) 0 [(Anio 4 = 0) Si No 7 6 07 6) 0 (Anio 100 = 0)] 6 ( 6) 0 (Anio 400 = 0) Escribir Escribir “ 29” “ 28” fin #¥4 ¨§¥ ¢$ 65 3 2 1 0 ) ( ' % Práctica 10 3VHXGRFyGLJR inicio leer Mes, Anio según sea Mes 1, 3, 5, 7, 8, 10, 12: escribir “ 31” 4, 6, 9, 11: escribir “ 30” 2: si ((Anio % 4 = 0 !Anio % 100 = 0) || Anio % 400 = 0) escribir “ 29” sino escribir “ 30” fin_si otro: escribir “ No existe” fin_segun fin 144
  • 18. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 3URJUDPD HQ MDYD import java.io.*; public class Practica_10 { public static void main(String[] args) throws IOException { int Mes; int Anio; BufferedReader Oper= new BufferedReader (new InputStreamReader(System.in)); System.out.println (quot;Introduzca el numero del mesquot;); Mes = Integer.parseInt(Oper.readLine()); System.out.println (quot;Introduzca el anioquot;); Anio = Integer.parseInt(Oper.readLine()); switch (Mes) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println(quot;Numero de dias = 31 quot;); break; case 4: case 6: case 9: case 11: System.out.println(quot;Numero de dias = 30 quot;); break; case 2: if (((Anio % 4 == 0) !(Anio % 100 == 0)) || (Anio % 400 == 0)) System.out.println(quot;Numero de dias = 29 quot;); else System.out.println(quot;Numero de dias = 28 quot;); break; default: System.out.println(quot;No existequot;); break; } } } 35È7,$ Desarrolle un programa que invierta un número entero N dado por el usuario. 2EMHWLYR GH OD SUiFWLFD RPSUHQGHU HO XVR IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO SUREOHPD El fin de la práctica es mostrar el número invertido de una cifra, por ejemplo, de 12345 su número invertido es 54321. 145
  • 19. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN Para esta circunstancia, definimos las variables num_inv = 0, div_entera = num, resto_div = 0; el procedimiento a seguir es obtener el residuo de las divisiones sucesivas de la variable num de tipo LQW entre 10, para posteriormente sumar este residuo a la variable resto_div multiplicada por 10. inicio leer num num_inv = 0 div_entera = num resto_div = 0 No div_entera != 0 Si resto_div = div_entera mod 10 div_entera = div_entera / 10 num_inv = num_inv * 10 + resto_div escribir num_inv fin #¥4 ¨§¥ ¢$ 65 3 2 1 0 ) ( ' % Práctica 11 3VHXGRFyGLJR Inicio escribir “ Ingrese número” leer num num_inv = 0 div_entera = num resto_div = 0 mientras div_entera != 0 hacer resto_div = div_entera mod 10 hacer div_entera = div_entera / 10 hacer num_inv = num_inv * 10 + resto_div fin_mientras escribir quot;El numero quot; + num + quot; invertido es quot; + num_inv fin 146
  • 20. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 3URJUDPD HQ -DYD import java.io.*; class Practica_11{ public static void main(String Arg[ ]) throws IOException { int num , num_inv , div_entera , resto_div; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print(quot;Ingrese numero : quot;); num = Integer.parseInt(in.readLine()); num_inv = 0; div_entera = num; resto_div = 0; while (div_entera != 0) { resto_div = div_entera % 10; div_entera = div_entera / 10; num_inv = num_inv * 10 + resto_div; } System.out.println(quot;El numero quot; + num + quot; invertido es quot; + num_inv); } } 35È7,$ Calcular e imprimir la media de N números dados por el usuario. 2EMHWLYR GH OD SUiFWLFD RPSUHQGHU HO XVR IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO SUREOHPD Para realizar el cálculo del promedio de una cierta cantidad de números definiremos las siguientes variables: N : tipo LQW, determinará el número de veces que la estructura de repetición se efectuará; Contador: tipo LQW un contador es una variable que incrementa de forma constante dentro de la estructura de repetición. Acumulador: tipo GRXEOH, almacena la suma de los números introducidos desde el teclado; Promedio: tipo GRXEOH guarda la media de los números dados, mediante la formula: Promedio = Acumulador / N 147
  • 21. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN inicio N = 0, Contador =1, x = 0 Acumulador =0, Promedio = 0 leer N No Contador = N Si leer x Acumulador = Acumulador + x Contador = Contador + 1 Promedio = Acumulador / N escribir Promedio fin #¥4 ¨§¥ ¢$ 65 3 2 1 0 ) ( ' % Práctica 12 3VHXGRFyGLJR inicio N = 0, x = 0, Acumulador = 0, Promedio = 0, Contador = 1 leer N mientras Contador = N leer x hacer Acumulador =Acumulador + x hacer Contador = Contador + 1 fin_mientras hacer Promedio = Acumulador / N escribir Promedio fin 148
  • 22. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 3URJUDPD HQ -DYD import java.io.*; public class Practica_12{ public static void main(String arg[]) throws IOException{ int N = 0, Contador = 1; double Acumulador = 0, Promedio = 0, x = 0; BufferedReader calc = new BufferedReader (new InputStreamReader(System.in)); System.out.println(quot;Dame un numero: quot;); N = Integer.parseInt(calc.readLine()); while (Contador = N){ System.out.println(quot;Numero quot;+Contador); x = Float.parseFloat(calc.readLine()); Acumulador= Acumulador + x; Contador=Contador+1; } Promedio = Acumulador / N; System.out.println(quot;El promedio es: quot; + Promedio); } } 35È7,$ Imprimir los números impares menores o iguales a N. 2EMHWLYR GH OD SUiFWLFD RPSUHQGHU HO XVR IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO SUREOHPD Para resolver este ejercicio necesitaremos de una variable Contador de tipo LQW y un variable N que delimitara el numero de iteraciones de la estructura repetitiva ZKLOH Incrementaremos el contador en dos unidades en cada iteración para desplegar el número impar correspondiente. 149
  • 23. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN inicio N = 0, Contador =1 leer N No Contador = N Si escribir Contador Contador = Contador + 2 fin #¥4 ¨§¥ ¢$ 65 3 2 1 0 ) ( ' % Práctica 13 3VHXGRFyGLJR inicio N = 0, Contador = 1 leer N mientras Contador = N imprimir Contador hacer Contador = Contador + 2 fin_mientras fin 3URJUDPD HQ -DYD import java.io.*; public class Practica_13{ public static void main(String arg[]) throws IOException{ int N = 0, Contador = 1; BufferedReader calc = new BufferedReader (new InputStreamReader(System.in)); System.out.println(quot;Dame un numero: quot;); N = Integer.parseInt(calc.readLine()); while (Contador = N){ System.out.println(Contador); Contador=Contador + 2; } } } 150
  • 24. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 35È7,$ Imprimir la tabla de Multiplicar de N. 2EMHWLYR GH OD SUiFWLFD RPSUHQGHU HO XVR IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO SUREOHPD Se desea mostrar la tabla de multiplicar de un número dado, a partir de una estructura cíclica ZKLOH con la cual utilizaremos una variable de tipo LQW llamada Contador que incrementa su valor en uno, para esto aplicaremos un operador de incremento Contador++; que es similar a la expresión aritmética Contador = Contador + 1, observe que el resultado es idéntico en ambos casos. inicio N = 0, Contador =1 leer N No Contador = N Si escribir N + “ * ” + Contador + “ = ” + N * Contador Contador++ fin #¥4 ¨§¥ ¢$ 65 3 2 1 0 ) ( ' % Práctica 14 151
  • 25. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN 3VHXGRFyGLJR inicio N = 0, Contador = 1 leer N mientras Contador = 10 imprimir N + “ * ” + Contador + “ = “ + N*Contador hacer Contador ++ fin_mientras fin 3URJUDPD HQ -DYD import java.io.*; public class Practica_14{ public static void main(String arg[]) throws IOException{ int N = 0, Contador = 1; BufferedReader calc = new BufferedReader (new InputStreamReader(System.in)); System.out.println(quot;Dame un numero: quot;); N = Integer.parseInt(calc.readLine()); while (Contador = 10){ System.out.println(N+ quot; * quot; +Contador+quot; = quot; + N*Contador); Contador++; } } } 35È7,$ Imprimir y calcular el cociente y el resto de dos números enteros. 2EMHWLYR GH OD SUiFWLFD RPSUHQGHU HO XVR IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO SUREOHPD El método de obtener el cociente y el resto es por restas sucesivas, el cual consiste en restar sucesivamente el divisor del dividendo hasta obtener un resultado menor o igual que el divisor y que será el resto de la división, el número de restas efectuadas será el cociente. 152
  • 26. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS inicio Dividendo = 0, Divisor = 0 Cociente = 0, Resto = 0 leer Dividendo, Divisor Resto = Dividendo Resto -= Divisor Cociente++ Si Resto = Divisor No Cociente, Resto fin #¥4 ¨§¥ ¢$ 65 3 2 1 0 ) ( ' % Práctica 15 3VHXGRFyGLJR inicio Dividendo = 0, Divisor = 0, Cociente = 0, Resto = 0 leer Dividendo, Divisor Resto = Dividendo repetir Resto – = Divisor Cociente++ hasta que (Resto = Divisor) escribir “ El cociente es : ” + Cociente escribir “ El resto es : ” + Resto fin 153
  • 27. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN 3URJUDPD HQ -DYD import java.io.*; public class Practica_15{ public static void main(String arg[]) throws IOException{ int Dividendo = 0, Divisor = 0, Cociente = 0, Resto = 0; BufferedReader calc = new BufferedReader (new InputStreamReader(System.in)); System.out.println(quot;Dame el dividendo: quot;); Dividendo = Integer.parseInt(calc.readLine()); System.out.println(quot;Dame el divisor: quot;); Divisor = Integer.parseInt(calc.readLine()); Resto = Dividendo; do{ Resto –= Divisor; Cociente++; } while (Resto = Divisor); System.out.println(quot;El Cociente es:quot; +Cociente+quot; El Resto es: quot;+Resto); } } 35È7,$ Construya un programa que indique al usuario los números primos comprendidos entre 1 y N. 2EMHWLYR GH OD SUiFWLFD RPSUHQGHU HO XVR IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO SUREOHPD La característica principal de un número primo consiste en que éste solo es divisible entre si mismo y uno, por lo tanto, el algoritmo consiste en buscar si el entero tiene un divisor diferente de los dos anteriores; el proceso se lleva a cabo KDVWD la mitad entera del valor a evaluar ya que después de esta cualquier valor no divide a éste. Un FRQWDGRU es una variable cuyo valor se incrementa o decrementa en una cantidad fija en cada iteración, en este caso el contador lo inicializaremos en 1 e irá incrementando su valor hasta N, para mostrar los números primos existentes, esta es una variable de tipo LQW. Para identificar si el número dentro del rango, es primo o no, se define la clase 3ULPR, la cual devuelve una variable de tipo ERROHDQ o lógico (WUXH R IDOVH). 154
  • 28. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS inicio Primo (N) Contador = 1 primo = true, i=2 leer Numero No Si (N mod i == 0) escribir and (N3) “ Los número primos son:” primo = false No Si Numero. primo i++ escribir Contador Si iN/2 Contador++ No fin Si Contador = Numero No fin #¥4 ¨§¥ ¢$ 65 3 2 1 0 ) ( ' % Práctica 16 3VHXGRFyGLJR inicio escribir “ Escribe un número” leer Numero escribir “ Los números primos son:” Contador = 1 repetir Num = Contador Si (Num es SULPR) Escribir Contador Fin_si Contador++ hasta que (Contador = Numero) fin 155
  • 29. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN clase 3ULPR inicio primo = verdadero i=2 Constructor Primo (N): entero inicio repetir si (N mod i = 0) and (N3) primo = falso fin_si i++ hasta que (i N / 2) fin fin 3URJUDPD HQ -DYD import java.io.*; public class Practica_16{ public static void main (String arg[]) throws IOException{ int Numero, Contador; BufferedReader tecl = new BufferedReader(new InputStreamReader(System.in)); System.out.println (quot;Escribe un numero:quot;); Numero = Integer.parseInt(tecl.readLine()); System.out.println(quot;nLos numeros primos son:quot;); Contador = 1; do{ Primo Num = new Primo(Contador); if (Num.primo) System.out.println(Contador); Contador++; } while (Contador = Numero); } } class Primo{ public boolean primo = true; private int i=2; public Primo(int N){ do{ if ((N % i == 0)(N 3)) primo = false; i++; }while(i N / 2); } } Al enviar información de salida hay ocasiones en que resulta útil agregar algo de formato con VHFXHQFLDV GH HVFDSH, caracteres especiales llamado un ejemplo es System.out.println(quot;?QLos números primos son:quot;), en donde ?Q representa una nueva línea, es decir, coloca el cursor al principio de la siguiente línea. 156
  • 30. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 35È7,$ Construya un programa que calcule la función Factorial de un número N (N!). 2EMHWLYR GH OD SUiFWLFD RPSUHQGHU HO XVR IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO SUREOHPD El factorial de un número entero positivo se define como el producto de todos los números naturales anteriores o iguales a él. Se escribe n! y se lee “ n factorial” , por definición establecida el factorial de 0 es 1. Por ejemplo: 5! = 1 * 2 * 3 * 4 * 5 5! = 120 Para realizar el factorial del número, hacemos uso de una clase )DFWRULDO, que recibe el argumento de tipo LQW 1, se definen también dos variables, la primera SXEOLF llamada IDFW inicializada en 1, y la segunda SULYDWH L; y en el constructor )DFWRULDO es donde se realizan las iteraciones del ciclo IRU cuyo valor inicial es 2, el valor final 1 y su incremento en 1 de L. inicio Factorial (N) escribir Fact = 1 “ Introduzca un número” No i = 2 ; i = N ; i++ leer Numero Si Fact += i escribir “ El factorial de ” Numero “ es ” Num.fact fin fin #¥H @¨§¥@ ¢8 PI G F E D C @B A 9 Práctica 17 157
  • 31. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN 3VHXGRFyGLJR inicio escribir “ Introduzca un número” leer Numero Factorial Num (Numero) escribir “ El factorial de “ Numero “ es “ Num.fact fin clase Factorial inicio fact = 1 contructor Factorial (N): entero inicio desde i=2 hasta i = N hacer i++ hacer fact *= i fin_desde fin fin 3URJUDPD HQ -DYD import java.io.*; public class Practica_17{ public static void main (String arg[] ) throws IOException{ int Numero; BufferedReader tecl= new BufferedReader (new InputStreamReader(System.in)); System.out.println (quot;Introduzca un numero entero:quot;); Numero = Integer.parseInt(tecl.readLine()); Factorial Num = new Factorial(Numero); System.out.println(quot;Factorial de quot;+ Numero +quot; es quot;+Num.fact); } } class Factorial{ public double fact=1; private int i; public Factorial(int N) { for (i=2; i=N; i++){ fact *= i; } } } La expresión fact *= i utiliza un operador de asignación que es similar a la expresión fact = fact * i. 158
  • 32. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 35È7,$ Construya un programa que realice e imprima el método de Fibonacci de un número N. 2EMHWLYR GH OD SUiFWLFD RPSUHQGHU HO XVR IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO SUREOHPD Leonardo Pisan Fibonacci probablemente se conoce mejor por descubrir la sucesión de Fibonacci, una sucesión de números que existe en la naturaleza. La serie de Fibonacci es la siguiente: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377,… El próximo número en la serie simplemente es la suma de los dos números anteriores. Los números de arranque son 0 y 1. El tercer número se calculó de la suma 0+1 (ya que no hay ningún número antes del primer 1) y es de nuevo 1. El próximo número es 1+1 = 2, luego 1+2 = 3, luego 2+3 = 5 y 5+3 = 8, etc., esta serie es consecutiva e infinita. inicio Fibonacci (N) escribir Fib = 0 , Sig = 1 “ Introduzca un número” escribir “ – “ + Fib leer Numero No i = 1; i N; i++ Fibonacci (Numero) Si Aux = Sig fin Sig += Fib Fib = Aux escribir “ – “ + Fib fin #¥H @¨§¥@ ¢8 PI G F E D C @B A 9 Práctica 18 159
  • 33. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN 3VHXGRFyGLJR inicio escribir “ Introduce un numero entero” leer Numero Fibonacci (Numero) fin Funcion Fibonacci(N): entero inicio Fib = 0, Sig = 1 escribir Fib desde i = 1 hasta i N hacer i++ hacer Aux = Sig hacer Sig += Fib hacer Fib = Aux escribir “ - ” + Fib fin_desde fin 3URJUDPD HQ -DYD import java.io.*; public class Practica_18{ public static void main (String args[]) throws IOException{ int Numero; BufferedReader tecl = new BufferedReader (new InputStreamReader(System.in)); System.out.println(quot;Introduzca un numeroquot;); Numero = Integer.parseInt(tecl.readLine()); Fibonacci(Numero); } public static void Fibonacci(int n){ int fib=0, sig = 1; System.out.print(fib); for( int i = 1; i n; i++){ int aux = sig; sig += fib; fib = aux; System.out.print(quot; - quot;+fib); } } } Es importante resaltar la definición de una función para calcular y mostrar la serie de Fibonacci dentro de la cual se observa la inicialización de variables en la sentencia for( int i = 1; i n; i++) y int aux = sig; que también es una forma válida para la declaración de variables. 160
  • 34. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 35È7,$ Construya un programa que muestre los múltiplos de 3 en orden descendente a partir de 99. 2EMHWLYR GH OD SUiFWLFD RPSUHQGHU HO XVR IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ HQ HO PRPHQWR GH LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO SUREOHPD La práctica consiste en decrementar el valor final del ciclo IRU en 3, con la expresión i-=, esta es una de las características relevantes de la sentencia IRU, en donde el “ incremento” de la estructura IRU puede ser negativo, en cuyo caso será realmente un decremento y el ciclo contará hacia atrás. inicio No i = 99; i =1; i - =3 Si escribir “ – “ + i fin #¥H @¨§¥@ ¢8 PI G F E D C @B A 9 Práctica 19 3VHXGRFyGLJR inicio desde i=99 hasta i=1 hacer i-=3 escribir “ -“ + i fin_desde fin 3URJUDPD HQ -DYD public class Practica_19{ public static void main (String args[]){ for( int i = 99; i =1;i-=3){ System.out.print(quot;-quot;+ i); } } } 161
  • 35. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN 35È7,$ Construya un programa que despliegue las tablas de multiplicar del 1 al 10. 2EMHWLYR GH OD SUiFWLFD RPSUHQGHU HO XVR IXQFLRQDPLHQWR GH ODV HVWUXFWXUDV GH UHSHWLFLyQ DQLGDGDV HQ HO PRPHQWR GH LPSOHPHQWDU FODVHV TXH LPSOLTXHQ HO GLVHxR GH DOJRULWPRV SDUD SUREDUODV HQ XQD DSOLFDFLyQ $QiOLVLV GHO SUREOHPD Aunque la realización de esta práctica aparenta ser sencilla el programador requiere de práctica y experiencia en estructuras de repetición para poder anidarlas. inicio No i = 1; i =10; i ++ Si No j = 1; j =10; j++ Si escribir i + ” *” + j + ” =” + i *j fin #¥H @¨§¥@ ¢8 PI G F E D C @B A 9 Práctica 20 3VHXGRFyGLJR inicio desde i=1 hasta i=10 hacer i++ desde j=1 hasta j=10 hacer j++ escribir i +“ *” + j +” =” + i * j fin_desde fin_desde fin 162
  • 36. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 3URJUDPD HQ -DYD public class Practica_20{ public static void main (String args[]){ for( int i = 1; i =10;i++){ for( int j=1; j= 10; j++) System.out.println(i+quot; * quot;+ j +quot; = quot;+ i*j); System.out.println(quot;nquot;); } } } 163
  • 37. MANUAL DE PRÁCTICAS FUNDAMENTOS DE PROGRAMACIÓN 35È7,$6 35238(67$6 1. Se definen los números triangulares como los obtenidos de sumar los números naturales sucesivos 1, 2, 3, ...; es decir, los primeros números triangulares son 1, 3, 6, 10, .... Elaborar un algoritmo para imprimir el N-ésimo número triangular. Describir el algoritmo mediante diagrama de flujo y Pseudocódigo. 2. Diseñar un algoritmo que, dados 10 números enteros, indique cuantos de ellos son números pares, nos muestre estos y calcule la media aritmética de los impares. 3. Se desea un algoritmo que realice la operación de suma o resta de so números leídos del teclado en función de la respuesta S/N a un mensaje de petición de datos. 4. Diseñar el algoritmo de Euclides que calcule el M.C.D. (Máximo común divisor) de dos números A y B. Este método se basa en dos teoremas: • Si dos números son divisibles el uno por el otro, el menor es su máximo común divisor. • Si dos números a y b (ab) no son divisibles el uno por el otro, los divisores comunes de a y b son los mismos que los de b y r, siendo r el resto de la división entera de a entre b. 5. Elabore un programa para imprimir el triángulo de Floyd con un número dado de filas completas. 1 2 3 4 5 6 7 8 9 10 6. La multiplicación ``a la rusa'' permite realizar el producto de dos números enteros utilizando solo sumas y divisiones o productos por dos. El método consiste en realizar sucesivamente las siguientes operaciones: multiplicar uno de los números por dos y obtener la división entera del otro, también por dos. Se detiene el proceso al obtener como cociente de la división un uno. Por ejemplo, para multiplicar 22 por 64 se obtienen las dos columnas siguientes: 22 64 11 128 5 256 2 512 1 1024 22 x 64 = 1408 A continuación sumamos los números de la columna de la derecha que corresponden a números impares en la columna de la izquierda, esto es en nuestro caso: 128+256+1.024=1.408 y el resultado de la suma es el producto de los números iniciales. Elaborar un programa en Pascal que multiplique mediante este método dos números enteros introducidos por pantalla. 164
  • 38. FUNDAMENTOS DE PROGRAMACIÓN MANUAL DE PRÁCTICAS 35È7,$6 35238(67$6 7. Dado un número entero, N, si la suma de sus divisores (sin contar a si mismo) es igual a N se dice que ese número es perfecto. Si la suma es inferior, se dice que es deficiente, y si es superior se dice que es abundante. Por ejemplo: 6 tiene como divisores 1, 2, 3: Su suma es 6, por lo tanto es perfecto. o 8 tiene como divisores 1, 2, 4: Su suma es 7, por lo tanto es deficiente. o 24 tiene como divisores 1, 2, 3, 4, 6, 8, 12: Su suma es 36, por lo tanto es abundante. o Escribir un programa que reciba un número entero como parámetro y devuelva un valor que lo clasifique como perfecto, deficiente o abundante. 8. Diseñar un algoritmo que determine el precio de un billete de ida y vuelta en ferrocarril, dando la distancia a recorrer y el número de días en destino, sabiendo que si la estancia es superior a 7 días y la distancia es superior a 800 km. el billete tiene una reducción del 30%. El precio por kilómetro es de 8,5 pesos. 9. Diseñar un programa que cuente e imprima los dígitos de un número dado. Por ejemplo, 17568 tiene 5 dígitos. 10. Calcule el valor de PI (
  • 39. D SDUWLU GH OD VHULH LQILQLWD 4 4 4 4 4 - + - + -… 1 3 5 7 9 Imprima una tabla que muestre el valor de PI aproximado a un termino de esta serie, a dos, a tres, a cuatro, hasta N. 11. Ternas Pitagóricas. Un triangulo rectángulo puede tener lados que sean todos enteros. El conjunto de tres valores enteros para los lados de un triangulo rectángulo se conoce como una terna pitagórica. Estos tres lados deben de satisfacer la relación de que la suma de los cuadrados de dos de los lados es igual al cuadrado de la hipotenusa. Encuentre todas las ternas pitagóricas para lado1, lado2 e hipotenusa, todos ellos no mayores de 500. utilice un ciclo IRU de triple anidamiento que pruebe todas la posibilidades. 165