Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
01
1. OBJETIVOS DE LABORATORIO
● Crear programas que implementen variables y constantes de diferentes tipos de
datos, expresiones y estructuras de control de flujo.
● Construir arreglos de una dimensión
● Guardar datos dentro de un arreglo de una dimensión
● Leer información de un arreglo de una dimensión
● Efectuar cálculos con los elementos de un arreglo de una dimensión
2. REVISIÓN TEÓRICA
2.1. Tipos primitivos en Java
Las variables de tipo por referencia (que por lo general se llaman referencias)
para almacenar las ubicaciones de los objetos en la memoria de la computadora.
Por ejemplo, el tipo String es una variable de referencia. Pues hace “referencia” a un
arreglo definido del tipo char. Es por eso por lo que en Java el tipo String se define a
través de una clase.
Variables
Sirven para almacenar datos durante la ejecución del programa; el valor asociado
puede cambiar varias veces durante la ejecución del programa.
También sirven para almacenar datos, pero una vez asignado el valor, éste no puede
modificarse posteriormente.
Casting o “Moldes”
Con operadores que producen la conversión entre tipos. Admite las conversiones de
promoción y de contracción indicadas anteriormente. Por ejemplo: si se desea convertir
un valor de tipo Double a un valor de tipo int se utilizará el siguiente código:
int n;
double x = 82.4;
n = (int) x;
2.3. Arreglos
1.
0 1 2 3 n
-
1
Valor Valor Valor Valor … … Valor
1 2 3 4 n
Sintaxis para definir arreglo de un número determinado de elementos:
Ejemplo:
int [ ] a;
a = new int[10];
System.out.print(v.length); // escribe 15
3. DESARROLLO DE LABORATORIO
3.1. Ejercicios resueltos de tipos de datos
package TiposDeDatos;
Explique el Resultado:
La salida es 198 por que el valor de a lo toma como su valor ascii que es 97 , entonces
100 +1 +97 =198
Copie la salida:
Explique el Resultado:
Aquí hay un for que va desde 97 a 123 y en su cuerpo se crea la variable letra de tipo char
que toma los valores del primer i entero hasta el ultimo i entero, pero convirtiéndolo a char
mediante el casteo y por ultimo imprime cada letra (todo el abecedario)
C. Cree la Clase Ejemplo3 y pruebe el siguiente código
package TiposDeDatos;
public class Ejemplo3 {
// Conversiones
int a=2;
double b=3.0;
float c= (float)(2000*a/b +5);
}
}
Copie la salida:
Explique el Resultado:
Primero saber que el resultado original en decimal es 1338.33333 periodico puro, entonces
para el caso de casting del resultado a float toma solo 3334 por la cantidad de 32bits máximo
que puede ocupar en la memoria .En el caso de doublé la capacidad de memoria se duplica a
64 bits gracias a esto le permite representar mayor cantidad de espacios decimales.En el caso
de byte solamente le permite almacenar solo 8 bits es decir 8 espacios de derecha a izquierda
00111010.En los casos short long e int estos son todos enteros es decir solo reciben la parte
entera del resultado y la mantienen su este no supera el espacio de memoria permitido por
cada una de estas variables.
D. Cree la Clase Ejemplo3 y pruebe el siguiente código
package TiposDeDatos;
int i=9,k;
float j= 47.9F;
Copie la salida:
La primera fila imprime los valores tal cual como fueron declarados. La segunda fila
imprime el valor k como la conversión a entero de j. La tercera fila imprime iguala j con k
pero como j sigue siendo float lo almacena como 47.0 y no como 47.La cuarta fila nos
muestra que apra declarar una varible tipo float es necesario poner una F al final de la
declaración para q no nos salga algún tipo de error.
i=i-1;
char letra=(char) i;
System.out.print(letra+" ,");
}
while(i>=66);
}
}
SALIDA
Explicación
Al igual que las minúsculas las mayúsculas también tienen un valor ascii , encontré a ‘A’ como 65 y
‘Z’ como 90, entonces como pide “do while”, el do siempre va funcionar hasta que llegue a la parte
de while , es por eso que tuve que poner en iteración una posición más o extra , porque mi contador i
al comienzo iva a realizar la operación de restar 1 sin ningún tipo de restricción hasta que llegue al
while y verifique que si cumple con la condición . En cuanto al cuerpo del “do”
Hay un contador que va reducirse en 1 por cada iteración, un casting (char) a el valor de “i” por cada
iteración y finalmente la impresión de todos los valores que tomara i mientras cumpla con la
condición del “while”
2. Implemente un programa que imprima el abecedario en minúscula y mayúscula.
Codificación
import java.util.Scanner;
import javax.swing.JOptionPane;
public class EjerciciosPropuesto1 {
public static void main(String []args){
Scanner sc= new Scanner (System.in);
System.out.println("Desea \n 1:Mayusculas "
+ " \n 2:minusculas"
+ "\n Por favor escriba 1 si desea Mayusculas,2 si desea minusculas");
int respuesta =sc.nextInt();
if(respuesta == 1){
for(int i=65;i<=90;i++){
char letra=(char) i;
System.out.print(letra+" ,");
}
System.out.println("\n VUELVA A CORRER EL PROGRAMA SI DESEA OTRA MUESTRA");
}
else{
}
}
}
Salida
Explicación
Utilizo un scanner para introducir las respuestas, con el objetivo de ingresar por teclado un numero
entero según las opciones disponibles, que en este caso la opción 1 es para Mayúsculas y la opción 2 es
para minúsculas, en caso de escribir cualquier otro número no hará nada el programa porque en el
último else no puse alguna sentencia que tenía que seguir solamente lo deje vacío.
Si escoge 1 entonces las mayúsculas empezaran a imprimirse haciendo casting desde el primer valor
ascii hasta el último que es 90, pero cuando escoge 2 procede a ejecutarse el cuerpo del segundo if del
mismo modo que el primero solo que la diferencia son los valores ascii distintos por que para este caso
queremos minúsculas. En cada condicional muestro un mensaje acabando el for que trata de
recomendar al usuario que vuelva a ejecutar el programa si desea otra muestra.
Codificación
import javax.swing.JOptionPane;
public class EjercicioPropuesto3 {
public static void main(String[] args) {
double f = Double.parseDouble(JOptionPane.showInputDialog("INGRESE EL
VALOR DE F "));
System.out.println(f);
double c = ((f-32)*5)/9;
Explicación
Utilice el JOptionPane para este ejercicio por la simplicidad del método ,entonces
primeramente cree la variable f como tipo double ya que muchas veces el tamaño de las
variables a utilizar en las formulas es grande y también puede tener la necesidad de exactitud
(mayor capacidad de almacenamiento de decimales).
Después utilizo la impresión del valor almacenado como JOptionPane ,la f.
Desarrollo la definición de toda la formula y la almaceno en la variable c para después
mostrarla utilizando en JOptionPane.showMessageDialog.
4. Cree una clase triángulo y desarrolle sus operaciones básicas
Codificación
import javax.swing.JOptionPane;
public class EjercicioPropuesto04 {
public static void main(String[] args) {
double base = Double.parseDouble(JOptionPane.showInputDialog("INGRESE LA BASE DEL
TRIANGULO "));
double altura= Double.parseDouble(JOptionPane.showInputDialog("INGRESE LA ALTURA DEL
TRIANGULO "));
double hipotenusa;
hipotenusa = Math.sqrt(base*base+altura*altura);
int eleccion=Integer.parseInt(JOptionPane.showInputDialog("ESCRIBA 1 O 2 \n 1:PERIMETRO \n
2:AREA "));
System.out.println(base);
System.out.println(altura);
if(eleccion == 1){
double respPerimetro = base + altura + hipotenusa;
JOptionPane.showMessageDialog(null,respPerimetro);
}
else if(eleccion == 2){
double respArea = (base*altura)/2;
JOptionPane.showMessageDialog(null,respArea);
}
else{
JOptionPane.showMessageDialog(null,"PORFAVOR SOLO INGRESE 1 O 2");
}
}
}
Salida
Explicación
Para este caso también uso JOptionPane , declaro variables que contendrán los JOptionPane como
double por la cantidad de espacio que puede llegar a almacenar y además como las medidas
muchas veces contienen decimal ,también influyeron en mi decisión por el double.La base y la
altura son suficientes para determinar la hipotenusa mediante el establecimiento de una formula
en ella al momento de declarla.Luego le doy al usuario la opción de poder escoger que necesita
sabes mediante dos opciones,el área o el perímetro .Si es área se ejecuta el contenido del
condicional con valor tomado como 1 ,en caso del perímetro se debe escoger la opción 2 para
poder ejecutarse el cuerpo de la segunda condición y sino es ninguna de las opciones anteriores le
pido al usuario que solo escoja alguna de las dos opciones.
package Arreglos;
Scanner sc = new
Scanner(System.in); int i;
int[] numeros = new int[10];
double media = 0;
La clase scanner permite ingresar por teclado los valores ,los valores son números int de
rango 10 es decir de 0 a 9 y poder almacenarlos mediante el metodo .nextInt().
B. Cree la Clase Arreglo2 y pruebe el siguiente código que gestiona las notas
de un centro educativo. Cada grupo (o clase) está compuesto por 5 alumnos.
package Arreglos;
for (i=0;i<5;i++){
System.out.print("Alumnos ("+i+"): ");
tercer[i]= entrada. nextInt ();
}
// mostramos datos
System.out.println("Media primer trimestre: "+ suma_primer/5.0);
System.out.println("Media segundo trimestre: "+ suma_segundo/5.0);
System.out.println("Media tercer trimestre: "+ suma_tercer/5.0); System.out.println();
}
Copie la salida:
package Arreglos;
int n,i;
double x [ ]= new double[50];
for (i=0;i<=n-1;i++) {
System.out.println("Dato ["+(i+1)+"]:");
x[i]=valor.nextDouble();
}
System.out.println("IMPRESION DE LOS
}
Copie la salida:
Explique el resultado:
package Arreglos;
import java.text.DecimalFormat;
import java.util.Scanner;
//PROGRAMA PRINCIPAL
public static void main(String[] args) {
int n,i;
double sum;
n=valor.nextInt();
double x []= new double[n];
leer (x, n); // función que se encarga de la lectura de datos visualizar (x,
n); //función que se encarga de la visualización de datos sum=sumaarreglo(x, n);
// función que realiza la suma de datos System.out.println("la suma de los
elementos es: "+sum);
mayor(x, n); //función que busca el mayor en un arreglo
}
//FUNCIONES
//////////////////////////////////////// static void
leer(double b[], int m){
double x;
DecimalFormat dosDigitos = new DecimalFormat( "0.00" );
for(int i=0;i<m;
i++){
x=Math.random()*100;
String
y=dosDigitos.format(x);
b[i]=Double.parseDouble(y);
}
}
int i,j;
System.out.println("\n\t Matriz leida ");
double s=0;
if (i==0){
ma=b[i]; pos=i;
} else {
if
(b[i]>ma){ ma
=b[i]; pos =i;
}
}
}
System.out.println("la posición del elemento mayor es : "+(pos+1));
}
}
}
Copie la salida: