Subprogramas Declaraciones de subprogramas Tipos de

Anuncio
Subprogramas
Declaraciones de subprogramas
Tipos de subprogramas
Devolución de valores de un subprograma
Llamado a un subprograma
Transferencia de parámetros a subprogramas
Alcance global
Alcance local
Prof. MSc.
Luis Diego Sancho Fallas
UAM
Semana 09
Subprogramas
En computación, una subrutina o subprograma (también
llamada procedimiento, función o rutina), como idea general, se
presenta como un subalgoritmo que forma parte del algoritmo
principal, el cual permite resolver una tarea específica. Algunos
lenguajes de programación, como Visual Basic .NET, utilizan el
nombre función para referirse a subrutinas que devuelven un
valor.
Una subrutina al ser llamada dentro de un programa hace que el
código principal se detenga y se dirija a ejecutar el código de la
subrutina, en cambio cuando se llama a una macro, el
compilador toma el código de la macro y lo implanta donde fue
llamado, aumentando así el código fuente y por consiguiente el
objeto.
Elementos de la declaración de un
Subprograma
Las declaraciones de subrutinas generalmente
son especificadas por:
1.
2.
3.
4.
Un nombre único en el ámbito: nombre de la función con el que se
identifica y se distingue de otras. No podrá haber otra función ni
procedimiento con ese nombre (salvo sobrecarga o polimorfismo en
programación orientada a objetos).
Un tipo de dato de retorno: tipo de dato del valor que la subrutina
devolverá al terminar su ejecución.
Una lista de parámetros: especificación del conjunto de argumentos
(pueden ser cero, uno o más) que la función debe recibir para realizar su
tarea.
El código u órdenes de procesamiento: conjunto de órdenes y
sentencias que debe ejecutar la subrutina.
Ejemplo de Subprograma
Ejemplos
PROGRAMA principal
instrucción 1
instrucción 2
...
instrucción N
...
SUBRUTINA NombreX
.......
FIN SUBRUTINA
...
FIN PROGRAMA principal.
Subprogramas
La siguiente función es la analogía al cálculo del promedio
matemático.
La función "Promedio" devuelve un valor decimal correspondiente
a la suma de 2 valores enteros de entrada (A y B):
float Promedio(int A, int B)
{
float r;
r=(A+B)/2.0;
return r;
}
Así una llamada "Promedio(3, 5)" devolverá el valor de tipo real (float) 4,0.
Nuestro primer subprograma en Java.
package primer_subprograma_00;
// Paquetes de Java
import java.awt.Graphics; // importar la clase Graphics
import javax.swing.JApplet; // importar la clase JApplet
public class SubprogramaBienvenido extends JApplet
{
// dibujar texto en el fondo del subprograma
public void paint( Graphics g )
{
// llamar a la versión del método paint de la superclase
super.paint( g );
// dibujar un String en la coordenada x 25 y la coordenada y 25
g.drawString( "¡Bienvenido a la programación en Java!", 25, 25 );
}// fin del método paint
}// fin de la clase SubprogramaBienvenido
Salida
// Mostrar varias cadenas en un subprograma.
// paquetes de Java
import java.awt.Graphics; // importar la clase Graphics
import javax.swing.JApplet; // importar la clase JApplet
public class SubprogramaBienvenido2 extends JApplet
{
// dibujar texto en el fondo del subprograma
public void paint( Graphics g )
{
// llamar a la versión del método paint de la superclase
super.paint( g );
// dibujar dos valores String en diferentes ubicaciones
g.drawString( "¡Bienvenido a", 25, 25 );
g.drawString( "la programación en Java!", 25, 40 );
}// fin del método paint
} // fin de la clase SubprogramaBienvenido2
Salida
public class SubprogramaBienvenido extends JApplet
{
// dibujar texto en el fondo del subprograma
public void paint( Graphics g )
{
// dibujar líneas y una cadena en el fondo del subprograma
// llamar a la versión del método paint de la superclase
super.paint( g );
// dibujar una línea horizontal, desde (15, 10) hasta (250, 10)
g.drawLine( 15, 10, 250, 10 );
// dibujar una línea horizontal desde (15, 30) hasta (250, 30)
g.drawLine( 15, 30, 250, 30 );
// dibujar String entre líneas, en la ubicación (25, 25)
g.drawString( "Bienvenido a la programacion en Java!", 25, 25
);
}// fin del método paint
}// fin de la clase SubprogramaBienvenido
Salida












































// Suma dos números de punto flotante.
// paquetes de Java
import java.awt.Graphics; // importar la clase Graphics
import javax.swing.*;
// importar el paquete javax.swing
public class SubprogramaSuma extends JApplet
{
double suma; // la suma de los valores introducidos por el usuario
// inicializar el subprograma, obteniendo los valores del usuario
public void init()
{
String primerNumero; // primera cadena introducida por el usuario
String segundoNumero; // segunda cadena introducida por el usuario
double numero1;
double numero2;
// primer número a sumar
// segundo número a sumar
// obtener el primer número del usuario
primerNumero = JOptionPane.showInputDialog("Escriba el primer valor de punto flotante" );
// obtener el segundo número del usuario
segundoNumero = JOptionPane.showInputDialog("Escriba el segundo valor de punto flotante" );
// convertir los números de tipo Stromg a tipo double
numero1 = Double.parseDouble( primerNumero );
numero2 = Double.parseDouble( segundoNumero );
// sumar los números
suma = numero1 + numero2;
}// fin del método init
// dibujar los resultados en un rectángulo en el fondo del subprograma
public void paint( Graphics g )
{
// llamar a la versión del método paint de la superclase
super.paint( g );
// dibujar un rectángulo, empezando desde (15, 10), que tenga 270
// píxeles de ancho y 20 píxeles de alto
g.drawRect( 15, 10, 270, 20 );
// dibujar los resultados como String en (25, 25)
g.drawString( "La suma es " + suma, 25, 25 );
}// fin del método paint
} // fin de la clase SubprogramaSuma
Salida
Descargar