Programacion 3
Programacion 3
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
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();
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
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
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
1.10
Programa que permite insertar N nmeros por teclado y posteriormente visualiza cuntos son
mltiplos de 3
Programa que visualiza la sumatoria de los dgitos de un nmero introducido por teclado
1.11
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
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
16 bits
1 bits
B=en.nextInt();
C=en.nextInt();
D=en.nextInt();
prom=(float)(A+B+C+D)/4;
System.out.print(prom);
}
}
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);
}
}
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);
}
}
ARRAYS
10
(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
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
11
Por ejemplo:
vec[8]
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
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
12
}
}
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++;
}
}
}
13
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]);
}
}
14
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
4 6 4 8
2 4 6 8
a B
= /
h .
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
tiene el dato
7
error porque no existe la fila 3
tiene el dato
2
15
// A = 7 + 6 = 13
// B = 2 + 4 = 6
// M[0][0] = 13 + 6 = 19
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
16
}
}
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
17
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.
18
19
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);
}
20
}
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(" ");
}
}
}
}
21
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++;
}
}
}
22
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]);
}
}
23
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
}
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 suma
24
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);
25
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 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.
26
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);
}
}
27
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
Funcin principal
28
{
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;
}
}
}
leerCantidad();
llenarVector();
buscarMenor();
mostrarDivisibles();
import java.util.*;
29