Fecha y hora actual: Jueves 17 Ene 2019 05:31
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Curso VB .NET-Tema 1.10-Primer programa Java, procedimientos

Responder al Tema

Índice del Foro > Visual Basic .NET > Curso VB .NET-Tema 1.10-Primer programa Java, procedimientos

Autor Mensaje
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 3200
Ubicación: Valencia - España

Mensaje Publicado: Lunes 24 Nov 2008 20:08

Título del mensaje: Curso VB .NET-Tema 1.10-Primer programa Java, procedimientos

Responder citando

Curso de programación .NET - Tema 1.10 (Java)

1. Primer programa en Java, procedimientos.
1.1 Objetivos del tema.
Visto como se inicia en Java un programa, veamos ahora como resolver un ejercicio, basándonos en el uso de procedimientos.

1.2 Introducción.
A la hora de programar, podemos optar por varias soluciones, programación clásica o con objetos.

Actualmente lo adecuado es utilizar objetos, por lo tanto deberíamos elegir ese camino, pero es una decisión personal e intransferible.
Si nos aclaramos mejor con procedimientos y funciones, sin profundizar en clases, podemos plantearnos las clases como un segundo nivel, al que intentar llegar después.

Pero el camino es el de empezar por los procedimientos, ya que como se ha comentado, un método es un procedimiento o una función.

1.3 Primer ejercicio.
Tomemos como punto de partida el del ejemplo del tema anterior, creemos un proyecto del tipo consola y démosle un nombre.

File -> New project, de la barra de herramientas.



El nombre del proyecto, podemos cambiarlo por el nombre que deseemos, y su ubicación será la que él tiene por defecto, podemos dejarla o bien crear la nuestra propia.



Aparecerá la ventana vacía a la que añadimos el código.

Código:
package primero;
 public class Main
 {
   public static void main(String[] args)
  {
  }
 }


Así que vamos a añadirle algo de código, y nuestro programa quedaría:

Código:
package primero;
 public class Main {
  public static void main(String[] args)
  {
    int dato1, dato2, resultado;
    dato1 = 20;
    dato2 = 10;
    resultado = dato1 + dato2;
    System.out.println("dato1 + dato2 = " + resultado);
  }
}

Tal cual lo vemos funciona, y el ejercicio quedaría resuelto, pero vamos un poco más allá.

Esta es una solución, pero así no se puede hacer un programa, un programa es una estructura muy compleja, o puede llegar a serlo, y para eso hace falta una estructura que sea resistente y eficiente.

Para ello creamos un procedimiento

Código:
public static void Procedimiento()
{
  int dato1, dato2, resultado;
  dato1 = 20;
  dato2 = 10;
  resultado = dato1 + dato2;
  System.out.println("Desde un procedimiento dato1 + dato2 = " + resultado);
}


Y el procedimiento lo llamamos desde el main del programa,

Código:
public static void main(String[] args)
{
  Procedimiento();
}


El programa principal queda como mucho más claro y fácil de leer, una sola línea.

Ahora veamos como quedaría todo completo y vemos la diferencia con la versión anterior.

Código:
package primero;
public class Main
{
  public static void Procedimiento()
  {
    int dato1, dato2, resultado;
    dato1 = 20;
    dato2 = 10;
    resultado = dato1 + dato2;
    System.out.println("Desde un procedimiento dato1 + dato2 = " + resultado);
  }
  public static void main(String[] args)
  {
    Procedimiento();
  }
}


Los procedimientos son los que vamos a utilizar para resolver la estructura de un programa.

Como un programa lo que utiliza son datos, los procedimientos deberán utilizar datos, información, y deberán recibir y devolver dichos datos, parámetros.

Vamos a ver el ejercicio de antes resuelto con un procedimiento.

1.4 Parámetros en los procedimientos.
El nombre que se le da a la línea de entrada en un procedimiento es de parámetros, línea de entrada, etc…

Empecemos por pasar parámetros al procedimiento, por lo que en la línea de parámetros tendrá que aparecer las dos variables.

Las variables tendrán que ir declaradas con el tipo que les corresponde.

Código:
public static void Procedimiento(int d1, int d2)
{
  int resultado;
  resultado = d1 + d2;
  System.out.println("Desde un procedimiento dato1 + dato2 = " + resultado);
}


Al procedimiento después hay que llamarlo para que se ejecute desde el programa principal, y por lo tanto también tiene que enviarse las variables que se supone tiene que recibir en la línea de entrada al mismo.

Código:
Procedimiento(dato1,dato2);


En el programa principal, dichas variables deberán estar declaradas para poderse utilizar.

Código:
int dato1, dato2;


Ahora veamos la solución completa con los cambios.

Código:
package primero;
public class Main
{
  public static void Procedimiento(int d1, int d2)
  {
    int resultado;
    resultado = d1 + d2;
    System.out.println("Desde un procedimiento dato1 + dato2 = " + resultado);
  }
  public static void main(String[] args)
  {
    int dato1, dato2;
    dato1 = 20;
    dato2 = 10;
    Procedimiento(dato1,dato2);
  }
}


Comprobemos que las variables que se pasan lo son en el mismo orden, del mismo tipo y con el mismo dato, d1 desde dato1 y d2 desde dato2.

1.5 Estructuras en los procedimientos.
Todas las estructuras que hemos visto, o sea las tres que hay, son de aplicación en el interior de un procedimiento, pero nos falta ver cual es su sintaxis, así que empecemos por ahí.

1.5.1 Estructuras alternativas.
Una estructura alternativa es una instrucción en la que se puede ejecutar una de entre varias posibilidades, la más sencilla es del tipo If.

Código:
if (Expresión)
{
  dat1 = dato;
}




Donde expresión será cualquier expresión cuyo resultado de evaluación final siempre es del tipo cierto o falso.

Pueden ir o no acompañadas de un else, en función de que sea necesario para nuestro programa.

Código:
if (dato > 0)
{
  dat1 = dato;
}
else
{
  dat1 = 25;
}


Hay otra instrucción alternativa que es switch, que mucho más estructurada y más potente en cuanto a sencillez de posibilidades de creación de estructuras.



Aquí tenemos un ejemplo con los posibles valores que nos interese de X, pero hay un sin fin de posibilidades en cuanto a posibles expresiones para evaluar.

Código:
switch (x)
{
  case 1:
    Instrucción;
    Instrucción;
  case 2:
    Instrucción;
    Instrucción;
  default:
    System.out.println("error" );
    break;
}


Otro ejemplo de un switch.

Código:
switch (mes)
{
  case 1: nombremes = "Enero";   break;
  case 2: nombremes = "Febrero";   break;
  case 3: nombremes = "Marzo";   break;
  .. / ..
  case 12: nombremes = "Diciembre";   break;
}


En el ejemplo podemos observar varias formas de escribir la instrucción.
Break, es necesario para que no continúe la ejecución una vez cumple la condición.

En caso de que en la estructura deseemos dar una salida para la situación en la que no se cumpla ninguna de las situaciones previstas, podemos utilizar la opción default.

Dicho de otra forma es el equivalente del else en la instrucción If, vista anteriormente.

En el ejemplo tenemos una variable con un valor previsto de -1 y desconocemos cuales son las otras posibilidades, por lo tanto utilizamos default para el resto.

Código:
switch (valor)
{
  case -1 : System.out.println("No existe");
  break;
  default : System.out.println("Encontrado en la posición " + valor);
}


Las estructuras alternativas pueden ir anidadas una en el interior de otra hasta alcanzar el nivel necesario para resolver la estructura que se nos presenta.

Código:
if (x > 0)
{
  y = 15;
  if (x > 10)
    x = 2;
  else
    x = 25;
}
else
{
  x = 25;
}


1.5.2 Estructuras repetitivas.
Como mencionamos en su momento, disponemos de dos tipos de bucles, el de tipo Repite y el de tipo Mientras, vamos a ver dichas instrucciones.

El bucle repite es una estructura en la que siempre se ejecutará un paso en el ciclo del bucle, dado que no existe ningún impedimento que impida la entrada en el mismo.

El control de la estructura está al final del mismo.
Si observamos la imagen podemos observar como el símbolo en forma de rombo, que es el que indica el control del bucle está situado al final de la estructura, y al principio solo hay instrucciones.



La flecha indica al punto del programa en el cual se inicia la estructura o en el que está la primera instrucción del bucle.

Si observamos las flechas podemos observar como la última instrucción del bucle es la encargada de analizar la situación en ese momento, para volver a iniciar una vez más el ciclo o seguir hacia la siguiente instrucción, ya fuera del bucle.

Su sintaxis es la siguiente.

Código:
do
{
  instrucción;
  ... / ...
  instrucción;
} While (expresión de condición)


Sin embargo si observamos la imagen del bucle mientras, podemos observar como a diferencia del bucle repite, la instrucción de control está situada al inicio del mismo.



Esto implica que si al llegar al inicio del bucle, la condición que expresamos en ese momento no se cumple, el bucle no se ejecutará, no entraremos en el mismo, o si lo queremos ver así, el bucle está protegido en su ejecución.

Si observamos las flechas podemos observar como al acabar la última instrucción del bucle se retorna al inicio del mismo, donde está la instrucción de control, en ese momento se analiza la situación y se vuelve a ejecutar una vez más el ciclo, o se abandona el mismo, siguiendo a la siguiente instrucción.

Su sintaxis es la siguiente.

Código:
While (expresión de condición)
{
  instrucción;
  ... / ...
  instrucción;
}


Hay una tercera opción de bucle que es el For.
Este bucle se ejecuta para un valor inicial, hasta un valor final, con un incremento determinado, no deja de ser una variación de un bucle mientras.

Código:
For (valor inicial; condición; incremento)
{
  instrucción;
  ... / ...
  instrucción;
}


Lo que con un bucle mientras, equivale a:

Código:
inicialización;
While (expresión de condición)
{
  instrucción;
  ... / ...
  instrucción;
  incremento;
}


Existe la instrucción break y continue dentro de los bucles, pero quizás sea poco didáctico y no sea muy adecuado su utilización en una primera fase del lenguaje, al igual que el uso del for, hasta que no se haya avanzado más en el
dominio del mismo.

En los bucles, sean del tipo que sean, y se utilicen para lo que sea, siempre hay que tener presente el valor de partida, el valor final, y el momento en el que se realiza el incremento del contador, si es que se usa, o de la instrucción
que provoque la progresión en el mismo.

Por ejemplo en la visualización de los números del 0 al 9, utilizaremos una variable del tipo entero.
Le daremos un valor inicial de cero, en el bucle la primera instrucción será visualizar, y la condición del bucle será mientras que x sea menor que diez.

El resultado será correcto.

Código:
public static void main(String[] args) {
  int x = 0;
  while (x < 10)
  {
    System.out.println(x);
    x = x + 1 ;
  }
 }
}


Pero si alteramos el orden de las instrucciones, el valor cero inicial, ya no será
válido, pues el primer valor que se visualizará será uno, y perdemos la visualización del cero. Además la condición final tampoco será válida, pues acabaremos en diez, no en nueve, que es de lo que se trata.
Pruébelo.

Por lo tanto hay que tener siempre presente, el punto de partida, los valores intermedios, el valor de la progresión, en que momento, y cual es el último valor que debe procesarse en el bucle.

Teniendo eso presente no debe haber nunca problemas en el manejo de los bucles.

1.5.3 Estructuras secuenciales.
Vistas las dos anteriores, una estructura secuencial no es más que una ejecución lineal de un número indeterminado de instrucciones, sin que medie una estructura alternativa o repetitiva, podría ser como ejemplo el siguiente.

Código:
instrucción;
instrucción;
instrucción;




Como ejemplo podríamos poner:

Código:
System.out.println(x);// Visualizar datos por pantalla
x = x + 1 ;               // Incremento de un contador
s = s + x ;               // Acumulador


1.6 Conclusiones.
Hemos visto como se inicia un programa en Java, las distintas estructuras que se utilizan en programación, como se escriben en Java y su uso dentro de los procedimientos, falta ver las funciones.

Hemos de tener presente que en lo que podemos denominar programa principal, que en muchas ocasiones es algo ficticio, o no muy próximo a la realidad, no se escribe casi código, si no llamadas a procedimientos, o declaración y ejecución de los objetos que se han declarado, y donde realmente se escriben los programas es en los procedimientos, y funciones que se convierten en métodos en las clases.

En los ejercicios pueden observar que se ha utilizado indistintamente, public y private, y los ejercicios funcionan igualmente, pero es que están en el mismo módulo, por lo que no influye, más adelante cuando lo separemos podremos observar las diferencias entre ambos modos.

1.7 Ejercicios propuestos.

    1º Introducir dos números y calcular la suma de los mismos, visualizando el resultado final.
    Repetir para la resta y la multiplicación.

    2º Hallar el área y la longitud de una circunferencia, solicitando el radio de la misma R .
      Area = PI * R al cuadrado, Longitud = 2 * PI * R .

    3º Introducir dos números A y B y visualizar el resultado de:
      Si A es mayor que B calcular A / B.
      Si A es menor que B calcular A * B.
      Si A es igual que B calcular A + B.

    4º Visualizar los números entre 10 y 20.

    5º Visualizar los números entre 10 y 20 y sumarlos.


1.8 Solución a los ejercicios propuestos.

Dado que estructuralmente los ejercicios están resueltos, exponemos solo el código de los mismos.

1º Introducir dos números y calcular la suma de los mismos, visualizando el resultado final.
Repetir para la resta y la multiplicación.

Código:
package primero;
public class Main
{
  private static void Uno(int D1, int D2 )
  {
    int resultado;
    resultado = D1 + D2;
    System.out.println("dato1 + dato2 = " + resultado);
  }
  public static void main(String[] args)
  {
    int dato1 = 10;
    int dato2 = 20;
    Uno(dato1, dato2);
  }
}


El enunciado del ejercicio especifica que se introduzcan dos números, es decir por teclado, el uso de la introducción de datos por teclado en Java, requiere de cierta complejidad, que para lo que pretendemos impartir en este momento, que es iniciarse en programación, excede y crearía una complejidad que pensamos excesiva.

De ahí que se haya substituido por:

Código:
int dato1 = 10;
int dato2 = 20;


Declaración e inicialización.
Los programas que se desarrollaran serán habitualmente en un entorno gráfico, en dicho entorno esa introducción de datos se hará con el objeto correspondiente, que ya incorpora dicho tratamiento, elevar el nivel de los apuntes por un tema puntual, creemos que está fuera de lugar.

2º Hallar el área y la longitud de una circunferencia, solicitando el radio de la misma R.
    Area = PI * R al cuadrado, Longitud = 2 * PI * R .


Código:
package segundo;
public class Main
{
  private static void AreaTriangulo(int b, int a)
  {
    int area;
    area = b * a / 2;
    System.out.println("El área es " + area);
  }


El programa principal.

Código:
  public static void main(String[] args)
  {
    int base = 5;
    int altura = 10;
    AreaTriangulo(base,altura);
  }
}


3º Introducir dos números A y B y visualizar el resultado de:
    Si A es mayor que B calcular A / B.
    Si A es menor que B calcular A * B.
    Si A es igual que B calcular A + B.


Código:
package Tercero;
public class Main
{
  private static void Tres(int a, int b)
  {
    int resultado;
    if (a>b)
    {
      resultado = a / b;
    }
    else
    {
      if (a<b)
      {
        resultado = a * b;
      }
      else
      {
        resultado = a + b;
      }
    }
   System.out.println("El resultado es " + resultado);
  }


Este es el procedimiento para la solución del ejercicio.

Código:
  public static void main(String[] args)
  {
    int Da = 100;
    int Db = 10;
    Tres(Da, Db);
  }
}


El programa principal.

4º Visualizar los números entre 10 y 20.

Código:
package Cuarto;
public class Main
{
  private static void Cuatro(int i, int f)
  {
    int x; // o int x = i;
    x = i; // o bien x = x - 1, si se desea incluir i en el rango
    while (x<f) // probar con x!=f, distinto
    {
      x = x+1;
      System.out.println("El valor de x es " + x);
    }
  }


Este es el procedimiento para la solución del ejercicio.

Código:
  public static void main(String[] args)
  {
    int Da = 10;
    int Db = 20;
    Cuatro(Da, Db);
  }
}


El programa principal.

5º Visualizar los números entre 10 y 20 y sumarlos.

Código:
package Quinto;
public class Main
{
  public static void Cinco(int i, int f)
  {
    int x; // o int x = i;
    int suma;
    x = i; // o bien x = x - 1, si se desea incluir i en el rango
    suma = 0;
    while (x<f)
    {
      x = x+1;
      suma = suma + x;
      System.out.println("El valor de x es " + x);
    }
  System.out.println("La suma es " + suma);
  }


Este es el procedimiento para la solución del ejercicio.

Código:
  public static void main(String[] args)
  {
    int Da = 10;
    int Db = 20;
    Cinco(Da, Db);
  }
}


El programa principal.


Autor del curso: Casiopea.


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Ayuda con TestNG Parametrico en java netbeans

baltigo Java 0 Sábado 30 Jun 2018 01:37 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Publicar Aplicación web JAVA en tomcat

Irvin Java Web 1 Viernes 13 Oct 2017 17:54 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Imagen referencial De creación de jtable en apl...

Jensel S.G Java 6 Miércoles 13 Sep 2017 20:06 Ver último mensaje
El tema está bloqueado: no pueden editarse ni agregar mensajes.

EMPLEO ANALISTA PROGRAMADOR/A BACK-END JAVA EE

GRUPOARESTORA Bolsa de trabajo 0 Viernes 23 Jun 2017 14:33 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Algún programa para autopublicar en grupos de F...

pryncype Programación Web en general 1 Jueves 18 May 2017 20:26 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,