Sunteți pe pagina 1din 30

CARRERA DE INGENIERA DE SISTEMAS

UNIVERSIDAD AUTONOMA TOMAS FRIAS

APUNTES BASICOS DE LA MATERIA DE


TECNICAS DE PROGRAMACIN II

ING. LIMBER RUIZ MOLINA


POTOSI BOLIVIA
2012

Programacin Java - Ingeniera de Sistemas - UATF

Ing. Limber Ruz Molina

FAMILIARIZANDONOS CON JAVA


1.1 INTRODUCCIN
El objetivo de este captulo es empezar a familiarizarnos con el lenguaje JAVA, aunque JAVA es un
lenguaje de Programacin Orientado a Objetos es recomendable empezar a programar JAVA de
manera estructurada ya que durante el primer semestre slo se program en C++ de manera
estructurada; por lo tanto es necesario ver las similitudes que hay entre C++ y JAVA como: los tipos de
datos (short, int, float, double , char, etc.) son similares con algunas pequeas diferencias; las
estructuras de control selectivas y repetitivas (if-else, while, do-while, for) son iguales en ambos
lenguajes.
Para conocer JAVA con ms profundidad es muy recomendable leer libros ms especializados
donde haya conceptos que no se explican en este manual prctico.
A continuacin se explican algunos conceptos y herramientas necesarias para poder programar en
JAVA.

1.2 JDK (Kit de Desarrollo de Java, Java Development Kit)


Para poder programar en Java, primeramente es necesario instalar en la computadora el JDK, el mismo
que lo podemos conseguir del laboratorio de servidores; el JDK se puede definir como un conjunto de
herramientas, utilidades, documentacin y ejemplos para desarrollar aplicaciones JAVA.

1.3 IDE (Entorno de Desarrollo Integrado, Integrated Development Environment)


Despus de instalar el JDK es necesario instalar un IDE para Java. Un IDE es un programa compuesto
por un conjunto de herramientas de programacin que proveen un marco de trabajo amigable para
realizar nuestros programas. Para Java existen varios IDEs como: Eclipse, JCreator, BlueJ, Ready To
Program, NetBeans, etc. Nosotros utilizaremos el IDE Eclipse, que tambin lo podemos conseguir de
laboratorio de Servidores.

1.4 ESTRUCTURA BSICA DE UN PROGRAMA EN JAVA


class nombre_de_clase
{
public static void main(String args[])
{
//cuerpo del programa
}
}

La funcin main es la primera


funcin que se ejecuta de la clase

Nota.- A la hora de grabar el archivo debe ser el mismo nombre que la clase (class), en el
ejemplo del nombre del archivo sera nombre_de_clase.java

Programacin Java - Ingeniera de Sistemas - UATF

Ing. Limber Ruz Molina

1.5 SALIDA DE DATOS EN PANTALLA

ln -> aumentamos ln, si queremos salto de lnea

System.out.println(salida en pantalla);
Ej.
class Ejemplo1
{
public static void main(String args[])
{
System.out.print("hola mundo");
}
}
1.6 ENTRADA DE DATOS (entrada de cadenas) next()
Al igual que en C++, en java tambin se pueden importar libreras (paquetes) con las instruccin
import. La clase Scanner que se encuentra dentro del paquete util, es la clase que nos
permite introducir datos por teclado
import java.util.Scanner;
class Ejemplo2
{
public static void main(String args[])
{
Scanner en=new Scanner(System.in);
System.out.println("introduzca su nombre:");
String nombre=en.next();
//next permite introducir slo una palabra por teclado
System.out.print("Hola "+nombre);
}
}
1.7 Entrada de nmeros enteros nextInt()
import java.util.Scanner;
class Ejemplo3
{
public static void main(String args[])
{
Scanner en=new Scanner(System.in);
int a=en.nextInt();
int b=en.nextInt();

Programacin Java - Ingeniera de Sistemas - UATF

int c=a+b;
System.out.print(c);
}
}
1.8 Entrada de nmeros flotantes nextFloat()
import java.util.Scanner;
class Ejemplo4
{
public static void main(String args[])
{
Scanner en=new Scanner(System.in);
float a=en.nextFloat();
float b=en.nextFloat();
float c=a/b;
System.out.print(c);
}
}
Nota.- tambin puede usar para datos doubles nextDouble()
1.9 Ejemplo de un programa con Eclipse
Primero debemos crearnos un nuevo proyecto o abrir uno que ya exista.
File -> New -> Project

Debemos seleccionar Java Project y luego presionamos en next

Ing. Limber Ruz Molina

Programacin Java - Ingeniera de Sistemas - UATF

Ing. Limber Ruz Molina

Seguidamente debemos darle un nombre al proyecto (Project name) y luego seleccione Finish

Dentro de un proyecto podemos crear varias clases, un programa puede estar en una clase.
Para crear una clase debemos hacer click derecho en el proyecto creado, New->Class

Posteriormente debemos darle un nombre a nuestra clase y seleccionar la casilla (public static
void main), y seleccionamos Finish

Programacin Java - Ingeniera de Sistemas - UATF

Ing. Limber Ruz Molina

En la clase que se cre debemos escribir nuestro programa

Para poder compilar y ejecutar nuestro programa debemos hacer click derecho en la clase
donde esta nuestro programa y luego seleccionamos run as y java application y el
programa se ejecutara y podremos insertar y visualizar los datos desde la consola

Si es que la consola (Console) no est a la vista, debemos ir al men principal, seleccionamos


la opcin window->show view->Console , ah podremos insertar los datos

Programacin Java - Ingeniera de Sistemas - UATF

1.10

Ing. Limber Ruz Molina

Ejemplos de programas en Java

Programa que visualiza los primeros N nmeros

Programa que permite insertar N nmeros por teclado y posteriormente visualiza cuntos son
mltiplos de 3

Programacin Java - Ingeniera de Sistemas - UATF

Ing. Limber Ruz Molina

Programa que visualiza la sumatoria de los dgitos de un nmero introducido por teclado

1.11

TIPOS DE DATOS EN JAVA

A toda variable que se use en un programa, se le debe asociar (generalmente al principio del programa) un tipo de
dato especfico.
Un tipo de dato define todo el posible rango de valores que una variable puede tomar al momento de ejecucin
del programa.
TIPO
ENTEROS
byte
short
Int
long
REALES
float
double
OTROS
char
boolean

TAMAO QUE OCUPA EN


MEMORIA

RANGO

8 bits
16 bits
32 bits
64 bits

-128 a 127
-32768 a 32767
-2147483648 a 2147483647
-9,223,372,036,854,775,808 a 9,223,372,036,854,775,807

32 bits
64 bits

+/- 3.4E+38 (7 dgitos importantes)


+/- 1.8E+308 (15 dgitos importantes)

16 bits
1 bits

Carcter unicode ej. A, a, 7, ?,


Verdadero o falso (true, false)

Ejemplo: Insertar 4 nmeros enteros por teclado y visualizar su promedio


Ejemplo:
Entrada
Salida
6 3 5 1
3.75
import java.util.Scanner;
class Promedio {
public static void main(String[] args) {
Scanner en=new Scanner(System.in);
int A,B,C,D;
float prom;
A=en.nextInt();

Programacin Java - Ingeniera de Sistemas - UATF

Ing. Limber Ruz Molina

B=en.nextInt();
C=en.nextInt();
D=en.nextInt();
prom=(float)(A+B+C+D)/4;
System.out.print(prom);
}
}

Ejemplos: Insertar 4 nmeros reales por teclado y visualizar su promedio


Ejemplo:
Entrada
Salida
0.01 2.03 0.45 0.78
0.8175
import java.util.Scanner;
class Promedio {
public static void main(String[] args) {
Scanner en=new Scanner(System.in);
float A,B,C,D;
float prom;
A=en.nextFloat();
B=en.nextFloat();
C=en.nextFloat();
D=en.nextFloat();
prom=(A+B+C+D)/4;
System.out.print(prom);
}
}

1.12 La clase Math (FUNCIONES MATEMATICAS)


Esta clase contiene mtodos para realizar las operaciones numricas ms habituales, tales como logaritmo, raz
cuadrada, exponenciacin, y funciones trigonomtricas. A continuacin se enunciar cada mtodo o variable de
esta clase, se incluiran ejemplos y precauciones que se deben tomar en cuenta:
Nota.- Las funciones trigonomtricas trabajan con valores en RADIANES
Variables :
E
Retorna la constante e (de Euler).
PI
Retorna la constante PI.
Mtodos :
abs -> Retorna el valor absoluto de un valor.
acos -> Retorna el arcocoseno de un ngulo.
asin -> Retorna el arcseno de un ngulo.
atan -> Retorna el arcotangente de un ngulo.
ceil -> Retorna la funcin techo de un nmero.
cos -> Retorna el coseno de un ngulo.
exp -> Retorna la funcin exponencial de un nmero.
floor ->Retorna la funcin piso de un nmero.
IEEEremainder -> Calcula la operacin reaminder descrita por el standard IEEE 754.
log -> Retorna el logaritmo en base e (ln) de un nmero.
max -> Retorna el mayor de dos valores.
min -> Retorna el menor de dos valores.

Programacin Java - Ingeniera de Sistemas - UATF

pow -> Retorna el resultado de elevar dos nmeros.


random -> Retorna nmeros aleatorios.
rint -> Retorna el entero ms cercano al argumento.
round -> Redondea.
sin -> Retorna el seno de un ngulo.
sqrt -> Retorna la raz cuadrada de un nmero.
tan -> Retorna la tangente de un nmero.

Ejemplo: Programa para calcular:

import java.util.Scanner;
class Ejemplo {
public static void main(String[] args) {
Scanner en=new Scanner(System.in);
int x=en.nextInt();
double y=Math.pow(x,5)/Math.sqrt(x);
System.out.print(y);
}
}

Ejemplo: Programa para calcular:

import java.util.Scanner;
class Ejemplo2 {
public static void main(String[] args) {
Scanner en=new Scanner(System.in);
int x=en.nextInt();
double y=Math.cos(x)/Math.sin(x);
System.out.print(y);
}
}

Ing. Limber Ruz Molina

Programacin Java - Ingeniera de Sistemas - UATF

ARRAYS

10

Ing. Limber Ruz Molina

(ARREGLOS)

2.1 INTRODUCCIN
Los arreglos son estructuras de datos que consisten en elementos de informacin del mismo tipo
relacionados entre s. Los arreglos son entidades estticas en cuanto a que su tamao no cambia
una vez que han sido creadas.
Un arreglo es un grupo de posiciones de memoria contiguas. Todas las cuales tienen el mismo
nombre y el mismo tipo.
Los arrays pueden ser unidimensionales (vectores) bidimensionales (matrices)
3 5 7 24
MATRIZ
Ejemplo:
4 6 10 4
VECTOR
3
12 14 17 8
10

19

13

92

2.2 VECTORES
Cmo algunos ejemplos de vectores podramos tener:
Vector de Enteros
1.3

Vector de Reales

Vector de Caracteres

Vector de Cadenas

12 14 17 8 19 13 7 9
6
10
0.05 4.0 6.7 1.0 4.7 9.002
8

Bolivia

Argentina

Per

92

Uruguay

Brasil

Un vector debe tener un nombre (sin espacios) Por ejemplo

12 14 17 8 19 13 7 9
6 92
10
Nombre del vector
Elementos del vector vec
vec

Cada elemento de un vector tiene una posicin, la misma que empieza en cero
vec =
POSICIONES

12

14

17

19

13

92

vec[0]

vec[1]

vec[2]

vec[3]

vec[4]

vec[5]

vec[6]

vec[8]

vec[8]

vec[9]

Entonces podemos ver que cada elemento de un vector tiene una posicin y un dato

Programacin Java - Ingeniera de Sistemas - UATF

11

Ing. Limber Ruz Molina

Por ejemplo:

vec[8]

vec[0] tiene el dato 12


vec[3] tiene el dato 8
tiene el dato 6
..

Cada elemento del vector puede ser manejado como cualquier variable. Por ejemplo:
int A = vec[0] + vec[8];
int B = 2 + vec[3];
vec[0] = A + B;

// A = 12 + 6 = 18
// B = 2 + 8 = 10
// vec[0] = 18 + 10 = 28

2.3 Declaracin de vectores en JAVA


Los arreglos ocupan espacio en la memoria. El programador especifica el tipo de los elementos y usa el
operador new para asignar espacio de almacenamiento al nmero de elementos requerido para el
arreglo. Entonces para declarar al vector vec de los ejemplos anteriores sera:

int vec[] = new int[10]


Tipo de elementos
del vector

Nombre del vector

Tamao del vector

En JAVA una vez creado un vector con datos numricos los datos del vector por defecto se inicializan en
cero
vec =

0 0

Nota. Un error muy comn al programar con vectores es manejar posiciones que no existen en el vector. Por
ejemplo en el vector vec no se podra utilizar el elemento vec[10] vec[11], porque no existen las posiciones 10
y 11. Ese error mostrara el siguiente mensaje java.lang.ArrayIndexOutOfBoundsException

2.4 Ejercicios con vectores


Realizar un programa para visualizar los datos de un vector
class vectores1
{
public static void main(String args[])
{
int vec[]={2,3,4,5,6,7};
for(int i=0;i<=5;i++)
System.out.println(vec[i]);

Se puede dar valores al vector al


momento de declarar el vector

Programacin Java - Ingeniera de Sistemas - UATF

12

Ing. Limber Ruz Molina

}
}
Insertar los primeros 10 nmeros naturales en un vector y posteriormente visualizar los datos del
vector
class vectores2
{
public static void main(String args[])
{
int A[]=new int[10]; //declaracin del vector A de tamao 10 de tipo int
int con=0;
while(con<10)
{
A[con]=con+1; //asignacin de valores al vector A
con++;
}
con=0;
while(con<10)
{
System.out.println(A[con]); //muestra en pantalla los valores del vector A
con++;
}
}
}
Realizar un programa para insertar por teclado 10 datos en un vector y posteriormente visualizar los
datos.
import java.util.*;
class vectores3
{
public static void main(String args[])
{
Scanner en=new Scanner(System.in);
int B[]=new int[100];
int con=0;
while(con<10)
{
B[con]=en.nextInt(); // asignacin de valores mediante teclado
con++;
}
con=0;
System.out.println("los datos del vector son:");
while(con<10)
{
System.out.println(B[con]);
con++;
}
}
}

Programacin Java - Ingeniera de Sistemas - UATF

13

Ing. Limber Ruz Molina

Realice un programa para insertar las notas de 5 alumnos en un vector notas y posteriormente
calcule el promedio
import java.util.*;
class vectores4 {
public static void main(String args[])
{
Scanner en=new Scanner(System.in);
float notas[]=new float[100];
int con=0;
float promedio,sum=0;
while(con<5)
{
notas[con]=en.nextFloat();
sum=sum+notas[con];
con++;
}
promedio=sum/5;
System.out.println(promedio);
}
}
Realice un programa para insertar 5 nmeros en un vector A, copie en un vector B todos los datos
pares del vector A, y posteriormente visualice los datos del vector B.
import java.util.Scanner;
class vectores5
{
public static void main(String args[])
{
Scanner en=new Scanner(System.in);
int A[]=new int[100];
int B[]=new int[100];
int i,con=0;
for(i=0;i<5;i++)
A[i]=en.nextInt();
for(i=0;i<5;i++)
{
if(A[i]%2==0)
{
B[con]=A[i];
con++;
}
}
for(i=0;i<con;i++)
System.out.println(B[i]);
}
}

Programacin Java - Ingeniera de Sistemas - UATF

14

Ing. Limber Ruz Molina

2.5 MATRICES
Una matriz es un array bidimensional (2 dimensiones, filas y columnas)
Cmo algunos ejemplos de matrices podramos tener:

Matriz de Enteros

Matriz de Caracteres

3 7 2 6

Matriz de Reales

3.0 7.4 2.5 6.0

4 6 4 8

0.6 0.6 4.9 8.4

2 4 6 8

2.6 0.4 6.0 0.8

a B

= /

h .

Una matriz debe tener un nombre (sin espacios) Por ejemplo


3 7 2 6
M

4 6 4 8
2 4 6 8

Nombre de la Matriz

Elementos de la matriz

Cada elemento de una matriz tiene una posicin dado por la fila y columna, las mismas que empieza en
cero
Sea la Matriz M
0 1 2 3
Posicin columnas
0
3 7 2 6
Posicin filas

4 6

4 8

2 4

6 8

Matriz de tamao 3 X 4 (3 filas y 4 columnas)


Entonces podemos ver que cada elemento de una matriz tiene una posicin (dado por la fila y columna)
y un dato
Por ejemplo:
M[0][1]
M[3][2]
M[2][0]

tiene el dato
7
error porque no existe la fila 3
tiene el dato
2

Programacin Java - Ingeniera de Sistemas - UATF

15

Ing. Limber Ruz Molina

M[2][3] tiene el dato


8
..
Cada elemento del vector puede ser manejado como cualquier variable. Por ejemplo:
int A = M[0][1] + M[1][1];
int B = 2 + M[1][2];
M[0][0] = A + B;

// A = 7 + 6 = 13
// B = 2 + 4 = 6
// M[0][0] = 13 + 6 = 19

2.6 Declaracin de Matrices en JAVA


Los arreglos ocupan espacio en la memoria. El programador especifica el tipo de los elementos y usa el
operador new para asignar espacio de almacenamiento al nmero de elementos requerido para arreglo.
Entonces para declarar la matriz M de los ejemplos anteriores sera:

int M[][] = new int[4][3]


Tipo de elementos
De la matriz

Nombre de la
matriz

cantidad de
filas

Cantidad de
columnas

En JAVA una vez creado un vector con datos numricos los datos del vector por defecto se inicializan en
cero
0 0 0 0
M=

0 0 0 0
0 0 0 0

2.7 Ejercicios con matrices


Realizar un programa para insertar datos por teclado en una matriz de 3 x 3 y posteriormente
visualizar los datos de la matriz
import java.util.*;
class matriz
{
public static void main(String args[])
{
Scanner EN=new Scanner(System.in);
int M[][]=new int[3][3];
Declaracin de la matriz M de 3 x 3
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
M[i][j]=EN.nextInt();
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
System.out.print(M[i][j]+" ");
System.out.println();
}

2 bucles for para insertar por teclado los


datos a la matriz

2 bucles for para visualizar los datos de la


matriz

Programacin Java - Ingeniera de Sistemas - UATF

16

Ing. Limber Ruz Molina

}
}
Realizar un programa para insertar datos por teclado en una matriz de M x N (M y N introducidos por
teclado) y posteriormente visualizar los datos de la matriz
import java.io.*;
class matriz
{
public static void main(String args[])
{
Scanner EN=new Scanner(System.in);
int mat[][]=new int[10][10];
int M,N;
System.out.println("inserte la cantidad de filas");
M=EN.nextInt();
System.out.println("inserte la cantidad de columnas");
N=EN.nextInt();
System.out.println("inserte los datos");
for(int i=0;i<M;i++)
for(int j=0;j<N;j++)
mat[i][j]=EN.nextInt();
for(int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
System.out.print(mat[i][j]+" ");
System.out.println();
}
}
}

M y N por teclado

Programacin Java - Ingeniera de Sistemas - UATF

17

Ing. Limber Ruz Molina

CADENAS (String)
3.1 La clase String
La clase String est orientada a manejar cadenas de caracteres. Pertenece al package (paquete) java.lang, y por lo
tanto no hay que importarlas. Los mtodos de String se pueden utilizar directamente sobre literales (cadenas
entre comillas), por ejemplo: hola.length().
3.2 Mtodos de la clase String.
Los objetos de la clase String se pueden crear a partir de cadenas de constantes o literales, definidas entre dobles
comillas, como por ejemplo: hola. Java crea siempre un objeto String al encontrar una cadena entre comillas.
Por ejemplo:
String str1=hola; //el sistema ms eficaz de crear Strings
Mtodos ms importantes de la clase String.

3.3 INSERTAR CADENAS DESDE TECLADO


Insertar palabras
Scanner en=new Scanner(System.in);
String cad=en.next();
Insertar frases
String cad=en.nextLine();

Programacin Java - Ingeniera de Sistemas - UATF

18

Ing. Limber Ruz Molina

3.4 Operaciones entre cadenas


Las operaciones bsicas entre cadenas son: asignacin, comparacin y concatenacin. Es posible asignar una
cadena a otra cadena. Las comparaciones de las cadenas de caracteres se hacen segn el orden de los caracteres
en el cdigo ASCII y con los operadores de relacin.
0 < 1
1 < 2
8 < 9
A < B
C < D
N < M
Otra operacin bsica que se puede realizar con cadenas es la concatenacin. La operacin es el proceso de
combinar dos o ms cadenas en una sola cadena. El operador es (+)
3.5 Ejemplo de Concatenacin
class cadenas1
{
public static void main(String args[])
{
String cadenaTotal,cadena1,cadena2,cadena3;
cadena1="ingenieria";
cadena2="de";
cadena3="sistemas";
cadenaTotal=cadena1+cadena2+cadena3;
System.out.println(cadenaTotal);
}
}
3.6 Ejemplo de la funcin length
class cadenas2
{
public static void main(String args[])
{
String cadena1="Hola, como estas?";
int longitud=cadena1.length();
System.out.println(longitud);
}
}
3.7 Ejemplos con caracteres
class cadenas4
{
public static void main(String args[])
{
String cadena;
cadena="alpaca";
int con=0;
int c=cadena.length();

Programacin Java - Ingeniera de Sistemas - UATF

19

Ing. Limber Ruz Molina

for(int i=0;i<c;i++)
if ('a'==cadena.charAt(i))
con++;
System.out.println("existen "+con);
}
}
Determinar si una palabra es capcua (es capcua cuando una palabra invertida es la misma palabra)
class capicua
{
public static void main(String args[])
{
String cad1="oruro";
String cad2=""; //se podra decir que empieza sin ningun caracter
int n=cad1.length();
for(int i=(n-1);i>=0;i--)
cad2=cad2+cad1.charAt(i);
if(cad1.equals(cad2))
System.out.println("es capicua");
else
System.out.println("no es capicua");
}
}
Mostrar el mayor de dos cadenas
class cadenamayor
{
public static void main(String args[])
{
String cadena1="juan";
String cadena2="pedro";
if(cadena1.compareTo(cadena2)>0)
System.out.println("el mayor es="+cadena1);
else
System.out.println("el mayor es="+cadena2);
}
}
Mostrar su correspondiente nmero ascii asociado a un carcter
class numeroascci
{
public static void main(String args[])
{
char c='0';
int num=(int)(c);
System.out.println(num);
}

Programacin Java - Ingeniera de Sistemas - UATF

20

Ing. Limber Ruz Molina

}
Mostrar su correspondiente carcter asociado a un nmero
class caracter
{
public static void main(String args[])
{
int n=64;
char c=(char)(n);
System.out.println(c);
}
}
Programa que permite insertar una frase por teclado, y posteriormente visualiza cada palabra en una lnea
diferente
Ejemplo Entrada
Salida
Potosi es una ciudad colonial
Potosi
Potosies
Potosi euna
Potosi es u ciudad
Potosi es una ciudcolonial
import java.util.*;
public class Ejemplo {
public static void main(String args[])
{
Scanner en=new Scanner(System.in);
//obtener la cadena por teclado
String cad=en.nextLine();
//tam almacena la longitud de la cadena
int tam=cad.length();
//esp ser para saber hasta donde imprimir espacios
int esp=0;
for(int i=0;i<tam;i++)
{
//si el caracter es diferente de espacio imprime el caracter
if(cad.charAt(i)!=' ')
{
esp++;
System.out.print(cad.charAt(i));
}
//si el caracter es espacio debemos hacer un salto de lnea
//e imprimir espacios hasta la siguiente palabra a imprimir
else
{
System.out.println();
for(int j=0;j<esp;j++)
System.out.print(" ");
}
}
}
}

Programacin Java - Ingeniera de Sistemas - UATF

21

Ing. Limber Ruz Molina

NMEROS ALEATORIOS
4.1 La funcin random()
Considere el siguiente enunciado:
double valor1 = Math.random();
La funcin random de la clase Math genera un valor double entre 0.0 y 1.0 , random produce
valores al azar, todos los valores de dicho intervalo tienen la misma oportunidad (o
probabilidad) de ser escogidos cada vez que se invoca random.
El intervalo de valores que random produce directamente a menudo es diferente del que se
necesita en una aplicacin especfica. Por ejemplo. Un programa que simula el lanzamiento de
una moneda podra requerir slo 0 para cara y 1 para cruz. Un programa que simula el
lanzamiento de un dado ordinario requerira enteros aleatorios dentro el intervalo de 1 a 6.
Las siguientes instrucciones generan los siguientes resultados:
(int)(Math.random() * 2) //produce los enteros 0 y 1
(int)(Math.random() * 3) //produce los enteros 0 , 1 y 2
(int)(Math.random() * 6) //produce los enteros 0 a 5
1 + (int)(Math.random() * 6) //produce los enteros 1 a 6
5 + (int)(Math.random() * 6) //produce los enteros 5 a 10
Como demostracin de random, crearemos un programa para simular 20 lanzamientos de un
dado e imprimiremos el valor de cada tirada.
class Aleatorio
{
public static void main(String args[])
{
int con=0;
while (con<20)
{
//genera un nmero entre 1 y 6
int r=1+(int)(Math.random()*6);
//mostramos en pantalla el nmero generado
System.out.println(r);
con++;
}
}
}

Programacin Java - Ingeniera de Sistemas - UATF

22

Ing. Limber Ruz Molina

4.2 Ejercicios
Ejercicio 1. Programa que llena un vector con 10 valores (0 y 1) generados aleatoriamente, y
posteriormente visualice los datos del vector.
class Generar10
{
public static void main(String args[])
{
int v[ ]=new int[10];
for(int i=0;i<10;i++)
v[i]=(int)(Math.random()*2);
for(int i=0;i<10;i++)
System.out.println(v[i]);
}
}
Ejercicio 2. Realice un programa que genere 20 nmeros aleatorios entre el rango de A y B, (A
y B por teclado). Por ejemplo si A=5 y B=20, entonces se deben generar 20 nmeros generados
aleatoriamente entre 5 y 20
import java.util.*;
class generar20
{
public static void main(String args[])
{
Scanner en=new Scanner(System.in);
int A=en.nextInt();
int B=en.nextInt();
int v[ ]=new int[20];
for(int i=0;i<20;i++)
v[i]=A+(int)(Math.random()*(B-A+1));
for(int i=0;i<20;i++)
System.out.println(v[i]);
}
}

Programacin Java - Ingeniera de Sistemas - UATF

23

Ing. Limber Ruz Molina

FUNCIONES (MTODOS)
5.1 INTRODUCCIN
En Java una funcin es un mdulo de un programa separado del cuerpo principal, que realiza
una tarea especfica y que puede regresar un valor a la parte principal del programa u otra
funcin o procedimiento que la invoque.
Las funciones en java tienen el siguiente formato:
Parmetros que
recibe la funcin

Nombre de la funcin
Tipo de dato que
devuelve la
funcin

int suma ( int A, int B)


{
int C=A+B;
return (C);

Dato que devuelve


la funcin

}
La anterior funcin tiene como nombre suma, esta funcin recibe dos parmetros de tipo entero
y retorna (devuelve) un valor de tipo entero (int)
La funcin anterior se puede utilizar en un programa en java de la siguiente manera:
class funciones1
{
public static void main(String args[])
{
int num1=4;
int num2=20;
int num3=suma(num1,num2);
System.out.println(num3);
}
static int suma(int A,int B)
{
int C=A+B;
return (C);
}
}

Funcin principal (main)

La funcin principal llama a la funcin suma

Funcin suma

Programacin Java - Ingeniera de Sistemas - UATF

24

Ing. Limber Ruz Molina

En java las funciones deben declararse static (se analizar ms adelante).


Las funciones pueden estar antes o despus de la funcin principal (main). Cmo se ve en el
siguiente ejemplo:
class funciones1
{
static int suma(int A,int B)
{
int C=A+B;
return (C);
}
public static void main(String args[])
{
int num1=4;
int num2=20;
int num3=suma(num1,num2);
System.out.println(num3);
}
}

5.2 Ejercicios con funciones:


Funcin para calcular el promedio de tres nmeros.

Ej si
N1=3 N2=7 N3=4
El promedio ser:
4.6666666666
Como el resultado puede ser un nmero real la funcin debe devolver un dato de tipo real (float
o double)
class Funciones2
{
static float promedio(float A,float B,float C)
{
float prom=(A+B+C)/3;
return (prom);
}
public static void main(String args[])
{
float num1=3;
float num2=7;
float num3=4;
float resultado=promedio(num1,num2,num3);

Programacin Java - Ingeniera de Sistemas - UATF

25

Ing. Limber Ruz Molina

System.out.println(resultado);
}
}
Funcin para calcular

f ( x)

x
1 x

class funcion3
{
public static void main(String args[])
{
double B=f1(4);
System.out.println(B);
}
static double f1(int x)
{
double resul=(Math.sqrt(x)/(1-x));
return(resul);
}
}
Funcin fibo(x) que reciba un nmero entero como parmetro y devuelva su correspondiente de la
serie Fibonacci.

la serie fibonacci es la siguiente:


entonces

la fibo de 2 ser
la fibo de 4 ser
la fibo de 7 ser

1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 ,
fibo(2) = 1
fibo(4) = 3
fibo(7) = 13

class Ejemplo3
{
public static void main(String args[])
{
int A=fibo(6);
System.out.println(A);
}
static int fibo(int x)
{
int fib=0,a=1,b=0;
for(int i=1;i<=x;i++)
{
fib=a+b;

etc.

Programacin Java - Ingeniera de Sistemas - UATF

26

Ing. Limber Ruz Molina

a=b;
b=fib;
}
return(fib);
}
}
Funcin que recibe como parmetro un vector de enteros y devuelve la sumatoria de sus datos
class Ejemplo4
{
public static void main(String[] args)
{
int v[]={3,5,7,4};
int s=sumatoriaVector(v);
System.out.print(s);
}
static int sumatoriaVector(int A[])
{
int sum=0;
int tam=A.length;
for(int i=0;i<tam;i++)
sum=sum+A[i];
return sum;
}
}

Funcin que recibe como parmetro una cadena y devuelve la misma pero en forma invertida
class Ejemplo5
{
static String invertir(String cad)
{
String S="";
int tam=cad.length();
for(int i=tam-1;i>=0;i--)
S=S+cad.charAt(i);
return S;
}
public static void main(String[] args)
{
String A="Alexander";
String B=invertir(A);
System.out.print(B);
}
}

Programacin Java - Ingeniera de Sistemas - UATF

27

Ing. Limber Ruz Molina

FUNCIONES VACIAS - (void)


6.1 Partes de una funcin vaca (void)

void nombre_Funcion(parmetros)
{
Variables locales
PROGRAMA INTERNO
}
Variables Locales. Este tipo de variables son las que pueden ser utilizadas slo dentro la
funcin, no son vlidos para otras funciones
Tambin existen las Variables Globales, ests si pueden ser utilizadas en cualquier funcin del
programa, pero, deben ser declaradas slo una vez al inicio del programa.
6.2 Ejemplos
1. Realice un programa que visualice la suma de dos nmeros introducidos por teclado.
Utilizando los siguientes subprogramas:
- leerNumeros()
- calcularSuma()
- verSuma()
import java.util.*;
public class Suma {

Variables globales

static int A,B,C;


public static void main(String[] args) {
leerNumeros();
calcularSuma();
mostrarSuma();
}
static void leerNumeros()
{
Scanner in=new Scanner(System.in);
A=in.nextInt();
B=in.nextInt();
}
static void calcularSuma()
{
C=A+B;
}
static void mostrarSuma()

Funcin principal

Programacin Java - Ingeniera de Sistemas - UATF

28

Ing. Limber Ruz Molina

{
System.out.print(C);
}
} //fin de la clase

2. Realice un programa que permita visualizar los primeros N nmeros de la serie Fibonacci.
Utilizando los siguientes subprogramas.
- leerNumero()
- mostrarSerie()
import java.util.*;
public class Fibonacci {
static int n;
public static void main(String[] args) {
leerNumero();
mostrarSerie();
}
static void leerNumero()
{
Scanner en=new Scanner(System.in);
n=en.nextInt();
}
static void mostrarSerie()
{
int a=1,b=0,c=1; //variables locales
for(int i=0;i<n;i++)
{
a=b+c;
System.out.print(a+ );
c=b;
b=a;
}
}
}

3. Realice un programa que permita insertar N nmeros en un vector, posteriormente visualice


todos los nmeros que sean mltiplos del nmero ms pequeo. Utilizando los siguientes
subprogramas.
-

leerCantidad();
llenarVector();
buscarMenor();
mostrarDivisibles();
import java.util.*;

Programacin Java - Ingeniera de Sistemas - UATF

29

public class Menor {


static int v[];
static int tam,men;
public static void main(String[] args) {
leerCantidad();
llenarVector();
buscarMenor();
mostrarDivisibles();
}
static void leerCantidad()
{
Scanner en=new Scanner(System.in);
tam=en.nextInt();
v[]=new int[tam];
}
static void llenarVector()
{
Scanner en=new Scanner(System.in);
for(int i=0;i<tam;i++)
v[i]=en.nextInt();
}
static void buscarMenor()
{
men=v[0];
for(int i=1;i<tam;i++)
if(v[i]<men)
men=v[i];
}
static void mostrarDivisibles()
{
for(int i=0;i<tam;i++)
if(v[i]%men==0)
System.out.print(v[i]+" ");
}
}

Ing. Limber Ruz Molina

S-ar putea să vă placă și