LABORATORIO DE INF-111 LAB-111 (2009) Guía de ejercicios LIC. Menfy Morales R. LA PAZ – BOLIVIA Laboratorio de Inf-11
Views 66 Downloads 0 File size 334KB
LABORATORIO DE INF-111 LAB-111 (2009)
Guía de ejercicios
LIC. Menfy Morales R. LA PAZ – BOLIVIA
Laboratorio de Inf-111
1
Carrera de Informática
Variables y Tipos de Datos
Una variable es un nombre que contiene un valor que puede cambiar a lo largo del programa. Las variables son la parte más importante de un lenguaje de programación: ellas son las entidades (valores, datos) que actúan y sobre las que se actúa. Una declaración de variable siempre contiene dos componentes, el tipo de la variable y su nombre. TipoVariable nombre_variable;
De acuerdo con el tipo de información que contienen, en Java hay dos tipos principales de variables: 1. Variables de tipos primitivos. Están definidas mediante un valor único. 2. Variables referencia. Las variables referencia son referencias o nombres de información más compleja: arrays u objetos de una determinada clase. Desde el punto de vista de su papel en el programa, las variables pueden ser: 1. Variables miembro de una clase: Se definen en una clase, fuera de cualquier método; pueden ser tipos primitivos o referencias. 2. Variables locales: Se definen dentro de un método o más en general dentro de cualquierbloque entre llaves {}. Se crean en el interior del bloque y se destruyen al finalizar dicho bloque. Pueden ser también tipos primitivos o referencias. Tipos de Variables La siguiente tabla muestra todos los tipos primitivos soportados por el lenguaje Java, su formato, su tamaño y una breve descripción de cada uno. Tipo de Variable Boolean Char Byte Short Int Long Float Double
Descripción Valores true y false 2 bytes. Unicode. Comprende el código ASCII 1 byte. Valor entero entre -128 y 127 2 bytes. Valor entero entre -32768 y 32767 4 bytes. Valor entero entre -2.147.483.648 y 2.147.483.647 8 bytes. Valor entre -9.223.372.036.854.775.808 y 9.223.372.036.854.775.807 4 bytes (entre 6 y 7 cifras decimales equivalentes). De -3.402823E38 a -1.401298E-45 y de 1.401298E-45 a 3.402823E38 8 bytes (unas 15 cifras decimales equivalentes). De -1.79769313486232E308 a -4.94065645841247E-324 y de 4.94065645841247E-324 a 1.79769313486232E308
Cuatro tipos para enteros (byte, short, int y long) y dos para valores reales de punto flotante (float y double). Operadores Aritméticos Son operadores binarios (requieren siempre dos operandos) que realizan las operaciones aritméticas habituales: suma (+), resta (-), multiplicación (*), división (/) y resto de la división (%). Operadores de asignación Los operadores de asignación permiten asignar un valor a una variable. El operador de asignación por excelencia es el operador igual (=). La forma general de las sentencias de asignación con este operador es: variable = expresión;
Java dispone de otros operadores de asignación. Se trata de versiones abreviadas del operador (=) que realizan operaciones “acumulativas” sobre una variable. La siguiente Tabla nos muestra estos operadores y su equivalencia con el uso del operador igual (=). Operador
Utilización
Expresión equivalente
++ -+= -= *= /= %=
op1++ op1-op1 += op1 -= op1 *= op1 /= op1 %=
op1 op1 op1 op1 op1 op1 op1
op2 op2 op2 op2 op2
= = = = = = =
op1 op1 op1 op1 op1 op1 op1
+ + * / %
1 1 op2 op2 op2 op2 op2
Operadores relacionales Los operadores relacionales sirven para realizar comparaciones de igualdad, desigualdad y relación de menor o mayor. El resultado de estos operadores es siempre un valor boolean (true o false). Laboratorio de Inf-111
2
Carrera de Informática
Operador
Utilización
> >= < op2 >= op2 < op2 que la otra. indexOf(char c, int i) Devuelve el índice de la 1ra aparición de c comenzando en i indexOf(String cad) Devuelve el índice de la 1ra aparición de la subcadena cad replace(char a, char b) Reemplaza el carácter a por b en toda la cadena toLowerCase() Devuelve cadena con minúsculas toUpperCase() Devuelve cadena con mayúsculas trim() Elimina espacios en blanco en una cadena concat(String cad) Concatena la cadena cad al final de la cadena getChars(int, int, char[], Copia los caracteres indicados en la posición indicada de un int) array de caracteres lastIndexOf(String,[int]) Devuelve la última vez que un String aparece en otro empezando en una posición y hacia el principio replace(char, char) Sustituye un carácter pro otro en un String startsWith(String) Indica si un String comienza con otro String o no valueOf() Devuelve la representación como String de sus argumentos. Admite Object, arrays de caracteres y los tipos primitivos La Clase MATH Proporciona métodos estáticos para realizar operaciones matemáticas. sin(double) cos(double) pow(double, double) sqrt(double) log() random() 3 Laboratorio de Inf-111
Carrera de Informática
Laboratorio de Inf-111
4
Carrera de Informática
Sentencia Condicional Diagrama de Flujo
Codificación en JAVA
if – then
if – then – else
?
if - then
if - then - else
if (?) {
if (?) { P;
?
P
P; } else { S; }
}
P
S
1.- Introducir tres números enteros por teclado en las variables class Segmayor a, b y c, respectivamente. Encontrar el segundo mayor. { public static void main(String args[]) { int a,b,c,m1,m2; System.out.print("Digite el valor de A : ");
a=Leer.datoInt(); System.out.print("Digite el valor de B : "); b=Leer.datoInt(); System.out.print("Digite el valor de C : "); c=Leer.datoInt();
if ( a > b) { m1 = a; m2 = b; } else { m1 = b; m2 = a; }
if ( c > m1) { m2 = m1; m1 = c; } else { if ( c > m2) { m2 = c; } }
System.out.print(“mayor2 es ”+ m2); } } 2.- Introducir dos números enteros positivos en las variables a y b respectivamente. Calcular y desplegar la cantidad de números pares que existen en el intervalo cerrado entre a y b. Inicio
a,b a>b mab mea
maa meb cma-me+1
ma Mod 2 = 0 ^ me Mod 2 = 0 cparesc/2
cparesc/2 + 1
cpares Fin
3.- Introducir 3 valores que representen la hora, minuto y segundo, calcular el siguiente tiempo. Ej. Si entra 10: 45: 59 el siguiente tiempo es 10: 46: 00
Laboratorio de Inf-111
5
Carrera de Informática
Sentencia Condicional-Múltiple Diagrama de Flujo
Codificación en JAVA
Switch – default
switch (?) { case valor1: sentencias_P; break; case valor2: sentencias_S; break; case valorn: sentenciasn; break; [default:
expresión valor1
valor2
P
R
default
Z
sentenciasPorDefecto_Z; ] } 1.- Introducir un número entero positivo en la variable Dia. class DiaLiteral Desplegar en pantalla la descripción literal del día que { corresponde al número digitado. public static void main (String args [])
{ int dia; System.out.print ("Digite un numero: "); dia = Leer.datoInt ();
switch (dia) { case 1: System.out.println ("Lunes"); break; case 2: System.out.println ("Martes"); break; case 3: System.out.println ("Miercoles"); break; case 4: System.out.println ("Jueves"); break; case 5: System.out.println ("Viernes"); break; case 6: System.out.println ("Sabado"); break; case 7: System.out.println ("Domingo"); break; default: System.out.println ("Error"); } } } 2.- Introducir un número entre el 550 y 560, mostrar su equivalente en valor romano. 3.- Introducir un número entero y mostrar su equivalente mes del año.
Laboratorio de Inf-111
6
Carrera de Informática
Instrucciones Cíclicas Diagrama de Flujo
Codificación en JAVA
do while
while ?
do{ P; }while(?)
V
P
P
V
?
1.- Generar los n primeros términos de la serie: 01001100011100001111. . .
class Serie1 { public static void main(String args[]) { int n,cont,c,c1,t; System.out.print("Digite el valor de N: "); n=Leer.datoInt(); cont=1;c1=1;c=2;t=0; while(cont